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
ParameterizedTypenode.- Since:
- 3.1
- Restriction:
- This class is not intended to be instantiated by clients.
-
-
Field Summary
Fields Modifier and Type Field Description static ChildListPropertyDescriptorANNOTATIONS_PROPERTYThe "annotations" structural property of this node type (element type:Annotation).static ChildPropertyDescriptorBOUND_PROPERTYThe "bound" structural property of this node type (child type:Type).static SimplePropertyDescriptorUPPER_BOUND_PROPERTYThe "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 TypegetBound()Returns the bound of this wildcard type if it has one.booleanisUpperBound()Returns 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.voidsetBound(Type type)Sets the bound of this wildcard type to the given type.voidsetBound(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.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, 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:
trueif an upper bound, andfalseif a lower bound- See Also:
setBound(Type)
-
getBound
public Type 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(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, 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:
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, ornullif 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-trueif an upper bound, andfalseif a lower bound- See Also:
isUpperBound()
-
-