org.eclipse.wst.jsdt.core.dom
Class WildcardType

java.lang.Object
  extended by org.eclipse.wst.jsdt.core.dom.ASTNode
      extended by org.eclipse.wst.jsdt.core.dom.Type
          extended by org.eclipse.wst.jsdt.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 JavaScript constructs. In particular, it is nonsense if a wildcard type node appears anywhere other than as an argument of a ParameterizedType node.

Note: This Class only applies to ECMAScript 4 which is not yet supported

Provisional API: This class/interface is part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.


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.wst.jsdt.core.dom.ASTNode
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, CONDITIONAL_EXPRESSION, CONSTRUCTOR_INVOCATION, CONTINUE_STATEMENT, DO_STATEMENT, EMPTY_EXPRESSION, EMPTY_STATEMENT, ENHANCED_FOR_STATEMENT, EXPRESSION_STATEMENT, FIELD_ACCESS, FIELD_DECLARATION, FOR_IN_STATEMENT, FOR_STATEMENT, FUNCTION_DECLARATION, FUNCTION_EXPRESSION, FUNCTION_INVOCATION, FUNCTION_REF, FUNCTION_REF_PARAMETER, IF_STATEMENT, IMPORT_DECLARATION, INFERRED_TYPE, INFIX_EXPRESSION, INITIALIZER, INSTANCEOF_EXPRESSION, JAVASCRIPT_UNIT, JSDOC, LABELED_STATEMENT, LINE_COMMENT, LIST_EXPRESSION, MALFORMED, MEMBER_REF, MODIFIER, NULL_LITERAL, NUMBER_LITERAL, OBJECT_LITERAL, OBJECT_LITERAL_FIELD, ORIGINAL, PACKAGE_DECLARATION, PARAMETERIZED_TYPE, PARENTHESIZED_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, PROTECT, QUALIFIED_NAME, QUALIFIED_TYPE, RECOVERED, REGULAR_EXPRESSION_LITERAL, RETURN_STATEMENT, SIMPLE_NAME, SIMPLE_TYPE, SINGLE_VARIABLE_DECLARATION, STRING_LITERAL, SUPER_CONSTRUCTOR_INVOCATION, SUPER_FIELD_ACCESS, SUPER_METHOD_INVOCATION, SWITCH_CASE, SWITCH_STATEMENT, TAG_ELEMENT, TEXT_ELEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, TYPE_PARAMETER, UNDEFINED_LITERAL, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WILDCARD_TYPE, WITH_STATEMENT
 
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 java.util.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.wst.jsdt.core.dom.Type
isArrayType, isInferred, isParameterizedType, isPrimitiveType, isQualifiedType, isSimpleType, isWildcardType, resolveBinding
 
Methods inherited from class org.eclipse.wst.jsdt.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
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

BOUND_PROPERTY

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


UPPER_BOUND_PROPERTY

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

Method Detail

propertyDescriptors

public static java.util.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)

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:
java.lang.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:
java.lang.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()