public class WildcardType extends AnnotatableType
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.
Modifier and Type | Field and 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 ). |
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, 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_STATEMENT, SYNCHRONIZED_STATEMENT, TAG_ELEMENT, 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
Modifier and Type | Method and 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").
|
annotations, getAnnotationsProperty
isAnnotatable, isArrayType, isIntersectionType, isNameQualifiedType, isParameterizedType, isPrimitiveType, isQualifiedType, isSimpleType, isUnionType, isVar, isWildcardType, resolveBinding
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
public static final ChildListPropertyDescriptor ANNOTATIONS_PROPERTY
Annotation
).public static final ChildPropertyDescriptor BOUND_PROPERTY
Type
).public static final SimplePropertyDescriptor UPPER_BOUND_PROPERTY
Boolean
).public static List propertyDescriptors(int apiLevel)
apiLevel
- the API level; one of the
AST.JLS*
constantsStructuralPropertyDescriptor
)public boolean isUpperBound()
Note that this property is irrelevant for wildcards that do not have a bound.
true
if an upper bound,
and false
if a lower boundsetBound(Type)
public Type getBound()
isUpperBound
returns true, this
is an upper bound ("? extends B"); if it returns false, this
is a lower bound ("? super B").null
if nonesetBound(Type)
public void setBound(Type type, boolean isUpperBound)
setBound(type); setUpperBound(isUpperBound)
.type
- the new bound of this wildcard type, or null
if noneisUpperBound
- true
for an upper bound ("? extends B"),
and false
for a lower bound ("? super B")IllegalArgumentException
- if:
getBound()
,
isUpperBound()
public void setBound(Type type)
type
- the new bound of this wildcard type, or null
if noneIllegalArgumentException
- if:
getBound()
public void setUpperBound(boolean isUpperBound)
isUpperBound
- true
if an upper bound,
and false
if a lower boundisUpperBound()
Copyright (c) 2000, 2018 Eclipse Contributors and others. All rights reserved.Guidelines for using Eclipse APIs.