Class ParameterizedTypeReference
- java.lang.Object
-
- org.eclipse.xtext.xbase.typesystem.references.LightweightTypeReference
-
- org.eclipse.xtext.xbase.typesystem.references.ParameterizedTypeReference
-
- Direct Known Subclasses:
FunctionTypeReference,InnerTypeReference
public class ParameterizedTypeReference extends LightweightTypeReference
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.eclipse.xtext.xbase.typesystem.references.LightweightTypeReference
LightweightTypeReference.IdentifierFunction, LightweightTypeReference.JavaIdentifierFunction, LightweightTypeReference.SimpleNameFunction, LightweightTypeReference.UniqueIdentifierFunction
-
-
Field Summary
Fields Modifier and Type Field Description protected booleanresolved-
Fields inherited from class org.eclipse.xtext.xbase.typesystem.references.LightweightTypeReference
KIND_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 Summary
Constructors Constructor Description ParameterizedTypeReference(ITypeReferenceOwner owner, org.eclipse.xtext.common.types.JvmType type)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaccept(TypeReferenceVisitor visitor)<Param> voidaccept(TypeReferenceVisitorWithParameter<Param> visitor, Param param)<Param,Result>
Resultaccept(TypeReferenceVisitorWithParameterAndResult<Param,Result> visitor, Param param)<Result> Resultaccept(TypeReferenceVisitorWithResult<Result> visitor)voidaddTypeArgument(LightweightTypeReference argument)protected voidcheckStaticFlag(org.eclipse.xtext.common.types.JvmDeclaredType type)protected voidcopyTypeArguments(ParameterizedTypeReference result, ITypeReferenceOwner owner)protected LightweightTypeReferencecreateRawTypeReference(org.eclipse.xtext.common.types.JvmType rawType)protected ParameterizedTypeReferencedoCopyInto(ITypeReferenceOwner owner)FunctionTypeReferencegetAsFunctionTypeReference()Returns the equivalentFunctionTypeReferenceif this reference points to afunctionorprocedureor if it is already a function type reference.protected java.lang.StringgetAsString(java.lang.String type, com.google.common.base.Function<LightweightTypeReference,java.lang.String> format)LightweightTypeReferencegetConstraintSubstitute()Returns the constraint type of this reference.FunctionTypeKindgetFunctionTypeKind()java.lang.StringgetIdentifier()Returns the identifier of this type reference.java.lang.StringgetJavaIdentifier()intgetKind()Subclasses must override this method.LightweightTypeReferencegetPrimitiveIfWrapperType()org.eclipse.xtext.common.types.util.Primitives.PrimitivegetPrimitiveKind()org.eclipse.xtext.common.types.util.Primitives.PrimitivegetPrimitiveKindIfWrapperType()LightweightTypeReferencegetRawSuperType(org.eclipse.xtext.common.types.JvmType rawType)LightweightTypeReferencegetRawTypeReference()java.util.List<org.eclipse.xtext.common.types.JvmType>getRawTypes()java.lang.StringgetSimpleName()Prints the simple name of this type reference.LightweightTypeReferencegetSuperType(java.lang.Class<?> rawType)Returns the resolved super type for the given raw type ornullif the raw type is not a valid super type of this type.LightweightTypeReferencegetSuperType(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.JvmTypegetType()java.util.List<LightweightTypeReference>getTypeArguments()Returns the type arguments of this reference if it has any.java.lang.StringgetUniqueIdentifier()Returns an identifier that allows to disambiguate type parameter names that have different origins.LightweightTypeReferencegetWrapperTypeIfPrimitive()booleanisAnonymous()protected booleanisInner(org.eclipse.xtext.common.types.JvmType type)booleanisInterfaceType()booleanisOwnedBy(ITypeReferenceOwner owner)booleanisPrimitive()booleanisPrimitiveVoid()booleanisRawType()Returnstrueis this type points to a raw type.booleanisResolved()booleanisType(java.lang.Class<?> clazz)Returns true if this type reference represents an type with the given raw typeclazz.protected booleanisTypeVisible(IVisibilityHelper visibilityHelper)booleanisVisible(IVisibilityHelper visibilityHelper)Returnstrueif this type is fully visible according to the givenvisibilityHelper.booleanisWrapper()ParameterizedTypeReferencetoInstanceTypeReference()Returns a projection of this type to the instance level.org.eclipse.xtext.common.types.JvmTypeReferencetoJavaCompliantTypeReference(IVisibilityHelper visibilityHelper)Converts this type reference to aJvmTypeReferencethat can be used in Java source code.org.eclipse.xtext.common.types.JvmTypeReferencetoTypeReference()ArrayTypeReferencetryConvertToArray()Returns the array representation of this reference if its represents a subtype ofIterableor already an array itself.FunctionTypeReferencetryConvertToFunctionTypeReference(boolean rawType)Converts this reference to aFunctionTypeReferenceif the referenced type is a SAM type.LightweightTypeReferencetryConvertToListType()Returns the list representation of this reference if it represents an array or is already a subtype ofList.-
Methods inherited from class org.eclipse.xtext.xbase.typesystem.references.LightweightTypeReference
collectSuperTypes, collectSuperTypes, copyInto, createSubstitutor, expose, findNonNullType, findType, getAllSuperTypes, getComponentType, getHumanReadableName, getInvariantBoundSubstitute, getLowerBoundSubstitute, getMultiTypeComponents, getNamedType, getNonInterfaceTypes, getOuter, getOwner, getServices, getSuperTypes, getTypesFactory, getUniqueIdentifier, getUpperBoundSubstitute, hasTypeArguments, internalFindTopLevelType, internalIsAssignableFrom, isAny, isArray, isAssignableFrom, isAssignableFrom, isAssignableFrom, isAssignableFrom, isFunctionType, isMultiType, isSubtypeOf, isSubtypeOf, isSynonym, isUnknown, isValidHint, isWildcard, toJavaCompliantTypeReference, toJavaCompliantTypeReference, toJavaType, toString
-
-
-
-
Constructor Detail
-
ParameterizedTypeReference
public ParameterizedTypeReference(ITypeReferenceOwner owner, org.eclipse.xtext.common.types.JvmType type)
-
-
Method Detail
-
checkStaticFlag
protected void checkStaticFlag(org.eclipse.xtext.common.types.JvmDeclaredType type)
-
getKind
public int getKind()
Subclasses must override this method.- Overrides:
getKindin classLightweightTypeReference
-
toTypeReference
public org.eclipse.xtext.common.types.JvmTypeReference toTypeReference()
- Specified by:
toTypeReferencein classLightweightTypeReference
-
getRawTypeReference
public LightweightTypeReference getRawTypeReference()
- Overrides:
getRawTypeReferencein classLightweightTypeReference- Returns:
- the erasure type of this type reference
-
getConstraintSubstitute
public LightweightTypeReference getConstraintSubstitute()
Description copied from class:LightweightTypeReferenceReturns the constraint type of this reference. The constraint of a type parameter is its declared super type.T extends CharSequence & Serializablehas a compound constraint substitute of the formCharSequence & Serializable.- Overrides:
getConstraintSubstitutein classLightweightTypeReference
-
getRawTypes
public java.util.List<org.eclipse.xtext.common.types.JvmType> getRawTypes()
- Overrides:
getRawTypesin classLightweightTypeReference
-
isTypeVisible
protected boolean isTypeVisible(IVisibilityHelper visibilityHelper)
-
isVisible
public boolean isVisible(IVisibilityHelper visibilityHelper)
Description copied from class:LightweightTypeReferenceReturnstrueif this type is fully visible according to the givenvisibilityHelper. All components and bounds are taken into account, e.g.arraysuse theircomponent typeandgenerified typescheck their type arguments, too.- Specified by:
isVisiblein classLightweightTypeReference
-
toJavaCompliantTypeReference
public org.eclipse.xtext.common.types.JvmTypeReference toJavaCompliantTypeReference(IVisibilityHelper visibilityHelper)
Description copied from class:LightweightTypeReferenceConverts this type reference to aJvmTypeReferencethat can be used in Java source code.- Specified by:
toJavaCompliantTypeReferencein classLightweightTypeReference
-
getType
public org.eclipse.xtext.common.types.JvmType getType()
- Specified by:
getTypein classLightweightTypeReference
-
isRawType
public boolean isRawType()
Description copied from class:LightweightTypeReferenceReturnstrueis this type points to a raw type. That is, it points to a parameterized type but does not define type arguments or it points to an external type parameter that has a raw type constraint. Type parameters that are declared by the current owner are not considered to be raw types. A type is also a raw type if it inherits from a raw type.- Overrides:
isRawTypein classLightweightTypeReference
-
isOwnedBy
public boolean isOwnedBy(ITypeReferenceOwner owner)
- Overrides:
isOwnedByin classLightweightTypeReference
-
getWrapperTypeIfPrimitive
public LightweightTypeReference getWrapperTypeIfPrimitive()
- Overrides:
getWrapperTypeIfPrimitivein classLightweightTypeReference
-
getPrimitiveIfWrapperType
public LightweightTypeReference getPrimitiveIfWrapperType()
- Overrides:
getPrimitiveIfWrapperTypein classLightweightTypeReference
-
isAnonymous
public boolean isAnonymous()
- Overrides:
isAnonymousin classLightweightTypeReference
-
isPrimitive
public boolean isPrimitive()
- Overrides:
isPrimitivein classLightweightTypeReference
-
getPrimitiveKind
public org.eclipse.xtext.common.types.util.Primitives.Primitive getPrimitiveKind()
- Overrides:
getPrimitiveKindin classLightweightTypeReference
-
getPrimitiveKindIfWrapperType
public org.eclipse.xtext.common.types.util.Primitives.Primitive getPrimitiveKindIfWrapperType()
- Overrides:
getPrimitiveKindIfWrapperTypein classLightweightTypeReference
-
isPrimitiveVoid
public boolean isPrimitiveVoid()
- Overrides:
isPrimitiveVoidin classLightweightTypeReference
-
isInterfaceType
public boolean isInterfaceType()
- Overrides:
isInterfaceTypein classLightweightTypeReference
-
isWrapper
public boolean isWrapper()
- Overrides:
isWrapperin classLightweightTypeReference
-
getSuperTypes
protected java.util.List<LightweightTypeReference> getSuperTypes(TypeParameterSubstitutor<?> substitutor)
- Specified by:
getSuperTypesin classLightweightTypeReference
-
getSuperType
public LightweightTypeReference getSuperType(java.lang.Class<?> rawType)
Description copied from class:LightweightTypeReferenceReturns the resolved super type for the given raw type ornullif the raw type is not a valid super type of this type.- Overrides:
getSuperTypein classLightweightTypeReference- Parameters:
rawType- the raw type that should be resolved.- Returns:
- the resolved super type.
-
getSuperType
public LightweightTypeReference getSuperType(org.eclipse.xtext.common.types.JvmType rawType)
Description copied from class:LightweightTypeReferenceReturns the resolved super type for the given raw type or null if the raw type is not a valid super type of this type.- Overrides:
getSuperTypein classLightweightTypeReference- Parameters:
rawType- the raw type that should be resolved.- Returns:
- the resolved super type.
-
getRawSuperType
public LightweightTypeReference getRawSuperType(org.eclipse.xtext.common.types.JvmType rawType)
-
createRawTypeReference
protected LightweightTypeReference createRawTypeReference(org.eclipse.xtext.common.types.JvmType rawType)
-
isInner
protected boolean isInner(org.eclipse.xtext.common.types.JvmType type)
-
getTypeArguments
public java.util.List<LightweightTypeReference> getTypeArguments()
Description copied from class:LightweightTypeReferenceReturns the type arguments of this reference if it has any. The type argument ofList<String>isString.is also the type argument of a wildcard reference with upper bound ? extends List<String>. Raw types don't carry type arguments. Wildcards with more than one upper bound don't carry type arguments.- Overrides:
getTypeArgumentsin classLightweightTypeReference
-
doCopyInto
protected ParameterizedTypeReference doCopyInto(ITypeReferenceOwner owner)
- Specified by:
doCopyIntoin classLightweightTypeReference
-
copyTypeArguments
protected void copyTypeArguments(ParameterizedTypeReference result, ITypeReferenceOwner owner)
-
isResolved
public boolean isResolved()
- Overrides:
isResolvedin classLightweightTypeReference
-
addTypeArgument
public void addTypeArgument(LightweightTypeReference argument)
-
getSimpleName
public java.lang.String getSimpleName()
Description copied from class:LightweightTypeReferencePrints the simple name of this type reference. Useful for testing.- Specified by:
getSimpleNamein classLightweightTypeReference
-
getIdentifier
public java.lang.String getIdentifier()
Description copied from class:LightweightTypeReferenceReturns the identifier of this type reference. Usually the qualified name with a dollar delimiter.- Specified by:
getIdentifierin classLightweightTypeReference
-
getUniqueIdentifier
public java.lang.String getUniqueIdentifier()
Description copied from class:LightweightTypeReferenceReturns an identifier that allows to disambiguate type parameter names that have different origins. Rather than just giving the name of the type parameter, it also prints the declarator.- Specified by:
getUniqueIdentifierin classLightweightTypeReference
-
getJavaIdentifier
public java.lang.String getJavaIdentifier()
- Specified by:
getJavaIdentifierin classLightweightTypeReference
-
getAsString
protected java.lang.String getAsString(java.lang.String type, com.google.common.base.Function<LightweightTypeReference,java.lang.String> format)
-
isType
public boolean isType(java.lang.Class<?> clazz)
Description copied from class:LightweightTypeReferenceReturns true if this type reference represents an type with the given raw typeclazz. Returns false if this is not exactly the given type, but a sub type, a super type or a completely unrelated type.- Specified by:
isTypein classLightweightTypeReference
-
accept
public void accept(TypeReferenceVisitor visitor)
- Overrides:
acceptin classLightweightTypeReference
-
accept
public <Param> void accept(TypeReferenceVisitorWithParameter<Param> visitor, Param param)
- Overrides:
acceptin classLightweightTypeReference
-
accept
public <Result> Result accept(TypeReferenceVisitorWithResult<Result> visitor)
- Overrides:
acceptin classLightweightTypeReference
-
accept
public <Param,Result> Result accept(TypeReferenceVisitorWithParameterAndResult<Param,Result> visitor, Param param)
- Overrides:
acceptin classLightweightTypeReference
-
getFunctionTypeKind
public FunctionTypeKind getFunctionTypeKind()
- Overrides:
getFunctionTypeKindin classLightweightTypeReference
-
getAsFunctionTypeReference
public FunctionTypeReference getAsFunctionTypeReference()
Returns the equivalentFunctionTypeReferenceif this reference points to afunctionorprocedureor if it is already a function type reference. Otherwise returnsnull.- Overrides:
getAsFunctionTypeReferencein classLightweightTypeReference- See Also:
FunctionTypes.getAsFunctionTypeReference(ParameterizedTypeReference)
-
tryConvertToFunctionTypeReference
public FunctionTypeReference tryConvertToFunctionTypeReference(boolean rawType)
Converts this reference to aFunctionTypeReferenceif the referenced type is a SAM type. Returnsnullif this reference does not point to a valid function type.- Overrides:
tryConvertToFunctionTypeReferencein classLightweightTypeReference- Parameters:
rawType- if a raw view on the function type is sufficient.- See Also:
FunctionTypes.tryConvertToFunctionTypeReference(ParameterizedTypeReference, boolean)
-
tryConvertToArray
public ArrayTypeReference tryConvertToArray()
Returns the array representation of this reference if its represents a subtype ofIterableor already an array itself. If the iterable's type is a primitive wrapper, the array is not the primitive array but the wrapper array. May returnnullif the conversion is not possible.- Overrides:
tryConvertToArrayin classLightweightTypeReference- Returns:
- an equivalent
ArrayTypeReferenceornull. - See Also:
ArrayTypes.tryConvertToArray(ParameterizedTypeReference)
-
tryConvertToListType
public LightweightTypeReference tryConvertToListType()
Description copied from class:LightweightTypeReferenceReturns the list representation of this reference if it represents an array or is already a subtype ofList. If the array's type is a primitive, the list's element type is the wrapper. May returnnullif the conversion is not possible.- Overrides:
tryConvertToListTypein classLightweightTypeReference- Returns:
- an equivalent list type or
null.
-
toInstanceTypeReference
public ParameterizedTypeReference toInstanceTypeReference()
Returns a projection of this type to the instance level. That is, type arguments will be replaced by their invariant bounds. The instance projection ofArrayList<? extends Iterable<? extends String>>isArrayList<Iterable<? extends String>>since it is possible to create instances ofArrayList<Iterable<? extends String>>.
-
-