public class WildcardTypeReference extends LightweightTypeReference
LightweightTypeReference.IdentifierFunction, LightweightTypeReference.JavaIdentifierFunction, LightweightTypeReference.SimpleNameFunction, LightweightTypeReference.UniqueIdentifierFunctionKIND_ANY_TYPE_REFERENCE, KIND_ARRAY_TYPE_REFERENCE, KIND_COMPOUND_TYPE_REFERENCE, KIND_FUNCTION_TYPE_REFERENCE, KIND_INNER_FUNCTION_TYPE_REFERENCE, KIND_INNER_TYPE_REFERENCE, KIND_LIGHTWEIGHT_TYPE_REFERENCE, KIND_PARAMETERIZED_TYPE_REFERENCE, KIND_UNBOUND_TYPE_REFERENCE, KIND_UNKNOWN_TYPE_REFERENCE, KIND_WILDCARD_TYPE_REFERENCE| Constructor and Description |
|---|
WildcardTypeReference(ITypeReferenceOwner owner) |
| Modifier and Type | Method and Description |
|---|---|
void |
accept(TypeReferenceVisitor visitor) |
<Param> void |
accept(TypeReferenceVisitorWithParameter<Param> visitor,
Param param) |
<Param,Result> |
accept(TypeReferenceVisitorWithParameterAndResult<Param,Result> visitor,
Param param) |
<Result> Result |
accept(TypeReferenceVisitorWithResult<Result> visitor) |
void |
addUpperBound(LightweightTypeReference upperBound) |
protected WildcardTypeReference |
doCopyInto(ITypeReferenceOwner owner) |
java.lang.String |
getIdentifier()
Returns the identifier of this type reference.
|
LightweightTypeReference |
getInvariantBoundSubstitute() |
java.lang.String |
getJavaIdentifier() |
int |
getKind()
Subclasses must override this method.
|
LightweightTypeReference |
getLowerBound() |
LightweightTypeReference |
getLowerBoundSubstitute() |
java.lang.String |
getSimpleName()
Prints the simple name of this type reference.
|
LightweightTypeReference |
getSuperType(java.lang.Class<?> rawType)
Returns the resolved super type for the given raw type or
null if the raw type
is not a valid super type of this type. |
LightweightTypeReference |
getSuperType(org.eclipse.xtext.common.types.JvmType rawType)
Returns the resolved super type for the given raw type or null if the raw type
is not a valid super type of this type.
|
protected java.util.List<LightweightTypeReference> |
getSuperTypes(TypeParameterSubstitutor<?> substitutor) |
org.eclipse.xtext.common.types.JvmType |
getType() |
java.util.List<LightweightTypeReference> |
getTypeArguments()
Returns the type arguments of this reference if it has any.
|
java.lang.String |
getUniqueIdentifier()
Returns an identifier that allows to disambiguate type parameter names that have
different origins.
|
java.util.List<LightweightTypeReference> |
getUpperBounds() |
LightweightTypeReference |
getUpperBoundSubstitute() |
boolean |
hasTypeArguments() |
boolean |
isOwnedBy(ITypeReferenceOwner owner) |
boolean |
isResolved() |
boolean |
isType(java.lang.Class<?> clazz)
Returns true if this type reference represents an type with the given
raw type
clazz. |
boolean |
isUnbounded()
Returns
true if this wilcard is unbounded according to
http://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.5.1. |
boolean |
isVisible(IVisibilityHelper visibilityHelper)
Returns
true if this type is fully visible according to the given visibilityHelper. |
boolean |
isWildcard() |
void |
setLowerBound(LightweightTypeReference lowerBound) |
org.eclipse.xtext.common.types.JvmTypeReference |
toJavaCompliantTypeReference(IVisibilityHelper helper)
Converts this type reference to a
JvmTypeReference that can
be used in Java source code. |
org.eclipse.xtext.common.types.JvmTypeReference |
toTypeReference() |
collectSuperTypes, collectSuperTypes, copyInto, createSubstitutor, expose, findNonNullType, findType, getAllSuperTypes, getAsFunctionTypeReference, getComponentType, getFunctionTypeKind, getHumanReadableName, getMultiTypeComponents, getNamedType, getNonInterfaceTypes, getOuter, getOwner, getPrimitiveIfWrapperType, getPrimitiveKind, getPrimitiveKindIfWrapperType, getRawTypeReference, getRawTypes, getServices, getSuperTypes, getTypesFactory, getUniqueIdentifier, getWrapperTypeIfPrimitive, internalFindTopLevelType, internalIsAssignableFrom, isAnonymous, isAny, isArray, isAssignableFrom, isAssignableFrom, isAssignableFrom, isAssignableFrom, isFunctionType, isInterfaceType, isMultiType, isPrimitive, isPrimitiveVoid, isRawType, isSubtypeOf, isSubtypeOf, isSynonym, isUnknown, isValidHint, isWrapper, toJavaCompliantTypeReference, toJavaCompliantTypeReference, toJavaType, toString, tryConvertToArray, tryConvertToFunctionTypeReference, tryConvertToListTypepublic WildcardTypeReference(ITypeReferenceOwner owner)
public int getKind()
getKind in class LightweightTypeReferencepublic boolean isResolved()
isResolved in class LightweightTypeReferencepublic java.util.List<LightweightTypeReference> getTypeArguments()
LightweightTypeReferenceList<String> is String.
? extends List<String>.
Raw types don't carry type arguments. Wildcards with more than one upper bound
don't carry type arguments.getTypeArguments in class LightweightTypeReferencepublic boolean hasTypeArguments()
hasTypeArguments in class LightweightTypeReferencepublic java.util.List<LightweightTypeReference> getUpperBounds()
public boolean isUnbounded()
true if this wilcard is unbounded according to
http://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.5.1.
Unbounded wildcards do not have any upper or lower bound defined.
Unbounded references are only useful on the source level since at runtime
an unbound wildcard type gets Object as upper bound (see WildcardType.getUpperBounds().public LightweightTypeReference getLowerBound()
public boolean isOwnedBy(ITypeReferenceOwner owner)
isOwnedBy in class LightweightTypeReferenceprotected WildcardTypeReference doCopyInto(ITypeReferenceOwner owner)
doCopyInto in class LightweightTypeReferencepublic boolean isType(java.lang.Class<?> clazz)
LightweightTypeReferenceclazz.
Returns false if this is not exactly the given type, but a sub type, a
super type or a completely unrelated type.isType in class LightweightTypeReferencepublic LightweightTypeReference getUpperBoundSubstitute()
getUpperBoundSubstitute in class LightweightTypeReferencepublic LightweightTypeReference getLowerBoundSubstitute()
getLowerBoundSubstitute in class LightweightTypeReferencepublic LightweightTypeReference getInvariantBoundSubstitute()
getInvariantBoundSubstitute in class LightweightTypeReferenceprotected java.util.List<LightweightTypeReference> getSuperTypes(TypeParameterSubstitutor<?> substitutor)
getSuperTypes in class LightweightTypeReferencepublic LightweightTypeReference getSuperType(org.eclipse.xtext.common.types.JvmType rawType)
LightweightTypeReferencegetSuperType in class LightweightTypeReferencerawType - the raw type that should be resolved.public LightweightTypeReference getSuperType(java.lang.Class<?> rawType)
LightweightTypeReferencenull if the raw type
is not a valid super type of this type.getSuperType in class LightweightTypeReferencerawType - the raw type that should be resolved.public org.eclipse.xtext.common.types.JvmTypeReference toTypeReference()
toTypeReference in class LightweightTypeReferencepublic org.eclipse.xtext.common.types.JvmTypeReference toJavaCompliantTypeReference(IVisibilityHelper helper)
LightweightTypeReferenceJvmTypeReference that can
be used in Java source code.toJavaCompliantTypeReference in class LightweightTypeReferencepublic boolean isVisible(IVisibilityHelper visibilityHelper)
LightweightTypeReferencetrue if this type is fully visible according to the given visibilityHelper.
All components and bounds are taken into account, e.g.
arrays use their component type
and generified types check their type arguments, too.isVisible in class LightweightTypeReferencepublic void addUpperBound(LightweightTypeReference upperBound)
public void setLowerBound(LightweightTypeReference lowerBound)
public java.lang.String getSimpleName()
LightweightTypeReferencegetSimpleName in class LightweightTypeReferencepublic java.lang.String getIdentifier()
LightweightTypeReferencegetIdentifier in class LightweightTypeReferencepublic java.lang.String getUniqueIdentifier()
LightweightTypeReferencegetUniqueIdentifier in class LightweightTypeReferencepublic java.lang.String getJavaIdentifier()
getJavaIdentifier in class LightweightTypeReferencepublic org.eclipse.xtext.common.types.JvmType getType()
getType in class LightweightTypeReferencepublic void accept(TypeReferenceVisitor visitor)
accept in class LightweightTypeReferencepublic <Param> void accept(TypeReferenceVisitorWithParameter<Param> visitor, Param param)
accept in class LightweightTypeReferencepublic <Result> Result accept(TypeReferenceVisitorWithResult<Result> visitor)
accept in class LightweightTypeReferencepublic <Param,Result> Result accept(TypeReferenceVisitorWithParameterAndResult<Param,Result> visitor, Param param)
accept in class LightweightTypeReferencepublic boolean isWildcard()
isWildcard in class LightweightTypeReference