Class CompoundTypeReference
- java.lang.Object
-
- org.eclipse.xtext.xbase.typesystem.references.LightweightTypeReference
-
- org.eclipse.xtext.xbase.typesystem.references.CompoundTypeReference
-
public class CompoundTypeReference 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 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 CompoundTypeReference(ITypeReferenceOwner owner, boolean synonym)
-
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)voidaddComponent(LightweightTypeReference component)protected LightweightTypeReferencedoCopyInto(ITypeReferenceOwner owner)LightweightTypeReferencegetComponentType()Returns the component type of the current array type.FunctionTypeKindgetFunctionTypeKind()java.lang.StringgetIdentifier()Returns the identifier of this type reference.java.lang.StringgetJavaIdentifier()intgetKind()Subclasses must override this method.java.util.List<LightweightTypeReference>getMultiTypeComponents()LightweightTypeReferencegetRawTypeReference()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.booleanisAnonymous()booleanisAny()booleanisArray()booleanisInterfaceType()booleanisMultiType()booleanisOwnedBy(ITypeReferenceOwner owner)booleanisPrimitive()booleanisPrimitiveVoid()booleanisRawType()Returnstrueis this type points to a raw type.booleanisResolved()booleanisSynonym()booleanisType(java.lang.Class<?> clazz)Returns true if this type reference represents an type with the given raw typeclazz.booleanisVisible(IVisibilityHelper visibilityHelper)Returnstrueif this type is fully visible according to the givenvisibilityHelper.booleanisWrapper()org.eclipse.xtext.common.types.JvmTypeReferencetoJavaCompliantTypeReference(IVisibilityHelper visibilityHelper)Converts this type reference to aJvmTypeReferencethat can be used in Java source code.LightweightTypeReferencetoJavaType()Converts types to references that can be expressed as Java type references in source code.org.eclipse.xtext.common.types.JvmTypeReferencetoTypeReference()-
Methods inherited from class org.eclipse.xtext.xbase.typesystem.references.LightweightTypeReference
collectSuperTypes, collectSuperTypes, copyInto, createSubstitutor, expose, findNonNullType, findType, getAllSuperTypes, getAsFunctionTypeReference, getConstraintSubstitute, getHumanReadableName, getInvariantBoundSubstitute, getLowerBoundSubstitute, getNamedType, getNonInterfaceTypes, getOuter, getOwner, getPrimitiveIfWrapperType, getPrimitiveKind, getPrimitiveKindIfWrapperType, getRawTypes, getServices, getSuperTypes, getTypesFactory, getUniqueIdentifier, getUpperBoundSubstitute, getWrapperTypeIfPrimitive, hasTypeArguments, internalFindTopLevelType, internalIsAssignableFrom, isAssignableFrom, isAssignableFrom, isAssignableFrom, isAssignableFrom, isFunctionType, isSubtypeOf, isSubtypeOf, isUnknown, isValidHint, isWildcard, toJavaCompliantTypeReference, toJavaCompliantTypeReference, toString, tryConvertToArray, tryConvertToFunctionTypeReference, tryConvertToListType
-
-
-
-
Constructor Detail
-
CompoundTypeReference
public CompoundTypeReference(ITypeReferenceOwner owner, boolean synonym)
-
-
Method Detail
-
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
-
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)
Converts this type reference to aJvmTypeReferencethat can be used in Java source code. If this is a multi-type rather than asynonym, the Java compliant type reference is determined from the common super type of all participating, non-interface types. If there is no such type or this is a synonym, all the component types are used to compute the common super type and use that one as the type.- Specified by:
toJavaCompliantTypeReferencein classLightweightTypeReference
-
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
-
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
-
isArray
public boolean isArray()
- Overrides:
isArrayin classLightweightTypeReference
-
getComponentType
public LightweightTypeReference getComponentType()
Description copied from class:LightweightTypeReferenceReturns the component type of the current array type. Does not attempt to convert this reference from iterable to array, first.- Overrides:
getComponentTypein classLightweightTypeReference- Returns:
- the compoent type of the current array or
null. - See Also:
LightweightTypeReference.isArray()
-
isAny
public boolean isAny()
- Overrides:
isAnyin classLightweightTypeReference
-
isPrimitive
public boolean isPrimitive()
- Overrides:
isPrimitivein classLightweightTypeReference
-
isAnonymous
public boolean isAnonymous()
- Overrides:
isAnonymousin classLightweightTypeReference
-
isWrapper
public boolean isWrapper()
- Overrides:
isWrapperin classLightweightTypeReference
-
isPrimitiveVoid
public boolean isPrimitiveVoid()
- Overrides:
isPrimitiveVoidin classLightweightTypeReference
-
getFunctionTypeKind
public FunctionTypeKind getFunctionTypeKind()
- Overrides:
getFunctionTypeKindin classLightweightTypeReference
-
isInterfaceType
public boolean isInterfaceType()
- Overrides:
isInterfaceTypein classLightweightTypeReference
-
getRawTypeReference
public LightweightTypeReference getRawTypeReference()
- Overrides:
getRawTypeReferencein classLightweightTypeReference- Returns:
- the erasure type of this type reference
-
isOwnedBy
public boolean isOwnedBy(ITypeReferenceOwner owner)
- Overrides:
isOwnedByin classLightweightTypeReference
-
getType
public org.eclipse.xtext.common.types.JvmType getType()
- Specified by:
getTypein classLightweightTypeReference
-
getSuperTypes
protected java.util.List<LightweightTypeReference> getSuperTypes(TypeParameterSubstitutor<?> substitutor)
- Specified by:
getSuperTypesin classLightweightTypeReference
-
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.
-
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.
-
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
-
doCopyInto
protected LightweightTypeReference doCopyInto(ITypeReferenceOwner owner)
- Specified by:
doCopyIntoin classLightweightTypeReference
-
isResolved
public boolean isResolved()
- Overrides:
isResolvedin classLightweightTypeReference
-
isSynonym
public boolean isSynonym()
- Overrides:
isSynonymin classLightweightTypeReference
-
addComponent
public void addComponent(LightweightTypeReference component)
-
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
-
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
-
isMultiType
public boolean isMultiType()
- Overrides:
isMultiTypein classLightweightTypeReference
-
toJavaType
public LightweightTypeReference toJavaType()
Description copied from class:LightweightTypeReferenceConverts types to references that can be expressed as Java type references in source code. Any types will be expressed as Object whereas multi types will be expressed as their common super type. Unknown types are considered to be ok thus returned as is.- Overrides:
toJavaTypein classLightweightTypeReference
-
getMultiTypeComponents
public java.util.List<LightweightTypeReference> getMultiTypeComponents()
- Overrides:
getMultiTypeComponentsin classLightweightTypeReference
-
-