Eclipse JDT
Release 3.0

org.eclipse.jdt.core.dom
Class WildcardType

java.lang.Object
  extended byorg.eclipse.jdt.core.dom.ASTNode
      extended byorg.eclipse.jdt.core.dom.Type
          extended byorg.eclipse.jdt.core.dom.WildcardType

public class WildcardType
extends Type

Type node for a wildcard type (added in JLS3 API).

 WildcardType:
    ? [ ( 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.

Note: This API element is only needed for dealing with Java code that uses new language features of J2SE 1.5. It is included in anticipation of J2SE 1.5 support, which is planned for the next release of Eclipse after 3.0, and may change slightly before reaching its final form.

Since:
3.0

Field Summary
static ChildPropertyDescriptor BOUND_PROPERTY
          The "bound" structural property of this node type.
static SimplePropertyDescriptor UPPER_BOUND_PROPERTY
          The "upperBound" structural property of this node type.
 
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, DO_STATEMENT, EMPTY_STATEMENT, ENHANCED_FOR_STATEMENT, ENUM_CONSTANT_DECLARATION, ENUM_DECLARATION, EXPRESSION_STATEMENT, FIELD_ACCESS, FIELD_DECLARATION, FOR_STATEMENT, IF_STATEMENT, IMPORT_DECLARATION, INFIX_EXPRESSION, INITIALIZER, INSTANCEOF_EXPRESSION, JAVADOC, LABELED_STATEMENT, LINE_COMMENT, MALFORMED, MARKER_ANNOTATION, MEMBER_REF, MEMBER_VALUE_PAIR, METHOD_DECLARATION, METHOD_INVOCATION, METHOD_REF, METHOD_REF_PARAMETER, MODIFIER, NORMAL_ANNOTATION, NULL_LITERAL, NUMBER_LITERAL, ORIGINAL, PACKAGE_DECLARATION, PARAMETERIZED_TYPE, PARENTHESIZED_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, PROTECT, QUALIFIED_NAME, QUALIFIED_TYPE, RETURN_STATEMENT, SIMPLE_NAME, SIMPLE_TYPE, SINGLE_MEMBER_ANNOTATION, SINGLE_VARIABLE_DECLARATION, STRING_LITERAL, SUPER_CONSTRUCTOR_INVOCATION, SUPER_FIELD_ACCESS, SUPER_METHOD_INVOCATION, SWITCH_CASE, SWITCH_STATEMENT, SYNCHRONIZED_STATEMENT, TAG_ELEMENT, TEXT_ELEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, TYPE_PARAMETER, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WILDCARD_TYPE
 
Method Summary
 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.Type
isArrayType, isParameterizedType, isPrimitiveType, isQualifiedType, isSimpleType, 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, nodeClassForType, properties, setFlags, setProperty, setSourceRange, setStructuralProperty, structuralPropertiesForType, subtreeBytes, subtreeMatch, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

BOUND_PROPERTY

public static final ChildPropertyDescriptor BOUND_PROPERTY
The "bound" structural property of this node type.

Since:
3.0

UPPER_BOUND_PROPERTY

public static final SimplePropertyDescriptor UPPER_BOUND_PROPERTY
The "upperBound" structural property of this node type.

Since:
3.0
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 the AST.JLS* constants
Returns:
a list of property descriptors (element type: StructuralPropertyDescriptor)
Since:
3.0

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, and false if a lower bound
See Also:
setBound(Type)

getBound

public Type getBound()
Returns the bound of this wildcard type if it has one. If isUpperBound 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 calling setBound(type); setUpperBound(isUpperBound).

Parameters:
type - the new bound of this wildcard type, or null if none
isUpperBound - true for an upper bound ("? extends B"), and false 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, or null 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, and false if a lower bound
See Also:
isUpperBound()

Eclipse JDT
Release 3.0

Copyright (c) IBM Corp. and others 2000, 2004. All Rights Reserved.