Package org.eclipse.jdt.core.dom
Class WildcardType
java.lang.Object
org.eclipse.jdt.core.dom.ASTNode
org.eclipse.jdt.core.dom.Type
org.eclipse.jdt.core.dom.AnnotatableType
org.eclipse.jdt.core.dom.WildcardType
Type node for a wildcard type (added in JLS3 API).
WildcardType:
{ Annotation } ? [ ( extends | super) Type ]
Not all node arrangements will represent legal Java constructs. In particular,
it is nonsense if a wildcard type node appears anywhere other than as an
argument of a ParameterizedType node.
- Since:
- 3.1
- Restriction:
- This class is not intended to be instantiated by clients.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final ChildListPropertyDescriptorThe "annotations" structural property of this node type (element type:Annotation).static final ChildPropertyDescriptorThe "bound" structural property of this node type (child type:Type).static final SimplePropertyDescriptorThe "upperBound" structural property of this node type (type:Boolean).Fields inherited from class org.eclipse.jdt.core.dom.ASTNode
ANNOTATION_TYPE_DECLARATION, ANNOTATION_TYPE_MEMBER_DECLARATION, ANONYMOUS_CLASS_DECLARATION, ARRAY_ACCESS, ARRAY_CREATION, ARRAY_INITIALIZER, ARRAY_TYPE, ASSERT_STATEMENT, ASSIGNMENT, BLOCK, BLOCK_COMMENT, BOOLEAN_LITERAL, BREAK_STATEMENT, CASE_DEFAULT_EXPRESSION, CAST_EXPRESSION, CATCH_CLAUSE, CHARACTER_LITERAL, CLASS_INSTANCE_CREATION, COMPILATION_UNIT, CONDITIONAL_EXPRESSION, CONSTRUCTOR_INVOCATION, CONTINUE_STATEMENT, CREATION_REFERENCE, DIMENSION, DO_STATEMENT, EitherOr_MultiPattern, EMPTY_STATEMENT, ENHANCED_FOR_STATEMENT, ENUM_CONSTANT_DECLARATION, ENUM_DECLARATION, EXPORTS_DIRECTIVE, EXPRESSION_METHOD_REFERENCE, EXPRESSION_STATEMENT, FIELD_ACCESS, FIELD_DECLARATION, FOR_STATEMENT, GUARDED_PATTERN, IF_STATEMENT, IMPORT_DECLARATION, INFIX_EXPRESSION, INITIALIZER, INSTANCEOF_EXPRESSION, INTERSECTION_TYPE, JAVADOC, JAVADOC_REGION, JAVADOC_TEXT_ELEMENT, LABELED_STATEMENT, LAMBDA_EXPRESSION, LINE_COMMENT, MALFORMED, MARKER_ANNOTATION, MEMBER_REF, MEMBER_VALUE_PAIR, METHOD_DECLARATION, METHOD_INVOCATION, METHOD_REF, METHOD_REF_PARAMETER, MODIFIER, MODULE_DECLARATION, MODULE_MODIFIER, MODULE_QUALIFIED_NAME, NAME_QUALIFIED_TYPE, NORMAL_ANNOTATION, NULL_LITERAL, NULL_PATTERN, NUMBER_LITERAL, OPENS_DIRECTIVE, ORIGINAL, PACKAGE_DECLARATION, PARAMETERIZED_TYPE, PARENTHESIZED_EXPRESSION, PATTERN_INSTANCEOF_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, PROTECT, PROVIDES_DIRECTIVE, QUALIFIED_NAME, QUALIFIED_TYPE, RECORD_DECLARATION, RECORD_PATTERN, RECOVERED, REQUIRES_DIRECTIVE, RETURN_STATEMENT, SIMPLE_NAME, SIMPLE_TYPE, SINGLE_MEMBER_ANNOTATION, SINGLE_VARIABLE_DECLARATION, STRING_LITERAL, SUPER_CONSTRUCTOR_INVOCATION, SUPER_FIELD_ACCESS, SUPER_METHOD_INVOCATION, SUPER_METHOD_REFERENCE, SWITCH_CASE, SWITCH_EXPRESSION, SWITCH_STATEMENT, SYNCHRONIZED_STATEMENT, TAG_ELEMENT, TAG_PROPERTY, TEXT_BLOCK, TEXT_ELEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, TYPE_METHOD_REFERENCE, TYPE_PARAMETER, TYPE_PATTERN, UNION_TYPE, UNNAMED_CLASS, USES_DIRECTIVE, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WILDCARD_TYPE, YIELD_STATEMENT -
Method Summary
Modifier and TypeMethodDescriptiongetBound()Returns the bound of this wildcard type if it has one.booleanReturns whether this wildcard type is an upper bound ("extends") as opposed to a lower bound ("super").static ListpropertyDescriptors(int apiLevel) Returns a list of structural property descriptors for this node type.voidSets the bound of this wildcard type to the given type.voidSets the bound of this wildcard type to the given type and marks it as an upper or a lower bound.voidsetUpperBound(boolean isUpperBound) Sets whether this wildcard type is an upper bound ("extends") as opposed to a lower bound ("super").Methods inherited from class org.eclipse.jdt.core.dom.AnnotatableType
annotations, getAnnotationsPropertyMethods inherited from class org.eclipse.jdt.core.dom.Type
isAnnotatable, isArrayType, isIntersectionType, isNameQualifiedType, isParameterizedType, isPrimitiveType, isQualifiedType, isSimpleType, isUnionType, isVar, isWildcardType, resolveBindingMethods inherited from class org.eclipse.jdt.core.dom.ASTNode
accept, copySubtree, copySubtrees, delete, equals, getAST, getFlags, getLength, getLocationInParent, getNodeType, getParent, getProperty, getRoot, getStartPosition, getStructuralProperty, hashCode, nodeClassForType, properties, setFlags, setProperty, setSourceRange, setStructuralProperty, structuralPropertiesForType, subtreeBytes, subtreeMatch, toString
-
Field Details
-
ANNOTATIONS_PROPERTY
The "annotations" structural property of this node type (element type:Annotation).- Since:
- 3.10
-
BOUND_PROPERTY
The "bound" structural property of this node type (child type:Type). -
UPPER_BOUND_PROPERTY
The "upperBound" structural property of this node type (type:Boolean).
-
-
Method Details
-
propertyDescriptors
Returns a list of structural property descriptors for this node type. Clients must not modify the result.- Parameters:
apiLevel- the API level; one of theAST.JLS*constants- Returns:
- a list of property descriptors (element type:
StructuralPropertyDescriptor)
-
isUpperBound
public boolean isUpperBound()Returns whether this wildcard type is an upper bound ("extends") as opposed to a lower bound ("super").Note that this property is irrelevant for wildcards that do not have a bound.
- Returns:
trueif an upper bound, andfalseif a lower bound- See Also:
-
getBound
Returns the bound of this wildcard type if it has one. IfisUpperBoundreturns true, this is an upper bound ("? extends B"); if it returns false, this is a lower bound ("? super B").- Returns:
- the bound of this wildcard type, or
nullif none - See Also:
-
setBound
Sets the bound of this wildcard type to the given type and marks it as an upper or a lower bound. The method is equivalent to callingsetBound(type); setUpperBound(isUpperBound).- Parameters:
type- the new bound of this wildcard type, ornullif noneisUpperBound-truefor an upper bound ("? extends B"), andfalsefor a lower bound ("? super B")- Throws:
IllegalArgumentException- if:- the node belongs to a different AST
- the node already has a parent
- See Also:
-
setBound
Sets the bound of this wildcard type to the given type.- Parameters:
type- the new bound of this wildcard type, ornullif none- Throws:
IllegalArgumentException- if:- the node belongs to a different AST
- the node already has a parent
- See Also:
-
setUpperBound
public void setUpperBound(boolean isUpperBound) Sets whether this wildcard type is an upper bound ("extends") as opposed to a lower bound ("super").- Parameters:
isUpperBound-trueif an upper bound, andfalseif a lower bound- See Also:
-