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
Modifier and TypeFieldDescriptionstatic final ChildListPropertyDescriptor
The "annotations" structural property of this node type (element type:Annotation
).static final ChildPropertyDescriptor
The "bound" structural property of this node type (child type:Type
).static final SimplePropertyDescriptor
The "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_FRAGMENT, STRING_LITERAL, STRING_TEMPLATE_COMPONENT, STRING_TEMPLATE_EXPRESSION, 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.boolean
Returns whether this wildcard type is an upper bound ("extends") as opposed to a lower bound ("super").static List
propertyDescriptors
(int apiLevel) Returns a list of structural property descriptors for this node type.void
Sets the bound of this wildcard type to the given type.void
Sets the bound of this wildcard type to the given type and marks it as an upper or a lower bound.void
setUpperBound
(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, getAnnotationsProperty
Methods inherited from class org.eclipse.jdt.core.dom.Type
isAnnotatable, isArrayType, isIntersectionType, isNameQualifiedType, isParameterizedType, isPrimitiveType, isQualifiedType, isSimpleType, isUnionType, isVar, isWildcardType, resolveBinding
Methods 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:
true
if an upper bound, andfalse
if a lower bound- See Also:
-
getBound
Returns the bound of this wildcard type if it has one. IfisUpperBound
returns 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
null
if 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, ornull
if noneisUpperBound
-true
for an upper bound ("? extends B"), andfalse
for 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, ornull
if 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
-true
if an upper bound, andfalse
if a lower bound- See Also:
-