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
-
public class WildcardType extends AnnotatableType
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
Fields Modifier and Type Field Description static ChildListPropertyDescriptor
ANNOTATIONS_PROPERTY
The "annotations" structural property of this node type (element type:Annotation
).static ChildPropertyDescriptor
BOUND_PROPERTY
The "bound" structural property of this node type (child type:Type
).static SimplePropertyDescriptor
UPPER_BOUND_PROPERTY
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, CAST_EXPRESSION, CATCH_CLAUSE, CHARACTER_LITERAL, CLASS_INSTANCE_CREATION, COMPILATION_UNIT, CONDITIONAL_EXPRESSION, CONSTRUCTOR_INVOCATION, CONTINUE_STATEMENT, CREATION_REFERENCE, DIMENSION, DO_STATEMENT, EMPTY_STATEMENT, ENHANCED_FOR_STATEMENT, ENUM_CONSTANT_DECLARATION, ENUM_DECLARATION, EXPORTS_DIRECTIVE, EXPRESSION_METHOD_REFERENCE, EXPRESSION_STATEMENT, FIELD_ACCESS, FIELD_DECLARATION, FOR_STATEMENT, IF_STATEMENT, IMPORT_DECLARATION, INFIX_EXPRESSION, INITIALIZER, INSTANCEOF_EXPRESSION, INTERSECTION_TYPE, JAVADOC, 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, NAME_QUALIFIED_TYPE, NORMAL_ANNOTATION, NULL_LITERAL, NUMBER_LITERAL, OPENS_DIRECTIVE, ORIGINAL, PACKAGE_DECLARATION, PARAMETERIZED_TYPE, PARENTHESIZED_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, PROTECT, PROVIDES_DIRECTIVE, QUALIFIED_NAME, QUALIFIED_TYPE, RECORD_DECLARATION, 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, TEXT_BLOCK, TEXT_ELEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, TYPE_METHOD_REFERENCE, TYPE_PARAMETER, UNION_TYPE, USES_DIRECTIVE, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WILDCARD_TYPE, YIELD_STATEMENT
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Type
getBound()
Returns the bound of this wildcard type if it has one.boolean
isUpperBound()
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
setBound(Type type)
Sets the bound of this wildcard type to the given type.void
setBound(Type type, boolean isUpperBound)
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 Detail
-
ANNOTATIONS_PROPERTY
public static final ChildListPropertyDescriptor ANNOTATIONS_PROPERTY
The "annotations" structural property of this node type (element type:Annotation
).- Since:
- 3.10
-
BOUND_PROPERTY
public static final ChildPropertyDescriptor BOUND_PROPERTY
The "bound" structural property of this node type (child type:Type
).
-
UPPER_BOUND_PROPERTY
public static final SimplePropertyDescriptor UPPER_BOUND_PROPERTY
The "upperBound" structural property of this node type (type:Boolean
).
-
-
Method Detail
-
propertyDescriptors
public static List propertyDescriptors(int apiLevel)
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:
setBound(Type)
-
getBound
public Type 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(Type)
-
setBound
public void setBound(Type type, boolean isUpperBound)
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:
getBound()
,isUpperBound()
-
setBound
public void setBound(Type type)
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:
getBound()
-
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:
isUpperBound()
-
-