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 void
accept(TypeReferenceVisitor visitor)
<Param> void
accept(TypeReferenceVisitorWithParameter<Param> visitor, Param param)
<Param,Result>
Resultaccept(TypeReferenceVisitorWithParameterAndResult<Param,Result> visitor, Param param)
<Result> Result
accept(TypeReferenceVisitorWithResult<Result> visitor)
void
addComponent(LightweightTypeReference component)
protected LightweightTypeReference
doCopyInto(ITypeReferenceOwner owner)
LightweightTypeReference
getComponentType()
Returns the component type of the current array type.FunctionTypeKind
getFunctionTypeKind()
java.lang.String
getIdentifier()
Returns the identifier of this type reference.java.lang.String
getJavaIdentifier()
int
getKind()
Subclasses must override this method.java.util.List<LightweightTypeReference>
getMultiTypeComponents()
LightweightTypeReference
getRawTypeReference()
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 ornull
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.boolean
isAnonymous()
boolean
isAny()
boolean
isArray()
boolean
isInterfaceType()
boolean
isMultiType()
boolean
isOwnedBy(ITypeReferenceOwner owner)
boolean
isPrimitive()
boolean
isPrimitiveVoid()
boolean
isRawType()
Returnstrue
is this type points to a raw type.boolean
isResolved()
boolean
isSynonym()
boolean
isType(java.lang.Class<?> clazz)
Returns true if this type reference represents an type with the given raw typeclazz
.boolean
isVisible(IVisibilityHelper visibilityHelper)
Returnstrue
if this type is fully visible according to the givenvisibilityHelper
.boolean
isWrapper()
org.eclipse.xtext.common.types.JvmTypeReference
toJavaCompliantTypeReference(IVisibilityHelper visibilityHelper)
Converts this type reference to aJvmTypeReference
that can be used in Java source code.LightweightTypeReference
toJavaType()
Converts types to references that can be expressed as Java type references in source code.org.eclipse.xtext.common.types.JvmTypeReference
toTypeReference()
-
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:
getKind
in classLightweightTypeReference
-
toTypeReference
public org.eclipse.xtext.common.types.JvmTypeReference toTypeReference()
- Specified by:
toTypeReference
in classLightweightTypeReference
-
isVisible
public boolean isVisible(IVisibilityHelper visibilityHelper)
Description copied from class:LightweightTypeReference
Returnstrue
if this type is fully visible according to the givenvisibilityHelper
. All components and bounds are taken into account, e.g.arrays
use theircomponent type
andgenerified types
check their type arguments, too.- Specified by:
isVisible
in classLightweightTypeReference
-
toJavaCompliantTypeReference
public org.eclipse.xtext.common.types.JvmTypeReference toJavaCompliantTypeReference(IVisibilityHelper visibilityHelper)
Converts this type reference to aJvmTypeReference
that 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:
toJavaCompliantTypeReference
in classLightweightTypeReference
-
getTypeArguments
public java.util.List<LightweightTypeReference> getTypeArguments()
Description copied from class:LightweightTypeReference
Returns 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:
getTypeArguments
in classLightweightTypeReference
-
isRawType
public boolean isRawType()
Description copied from class:LightweightTypeReference
Returnstrue
is 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:
isRawType
in classLightweightTypeReference
-
isArray
public boolean isArray()
- Overrides:
isArray
in classLightweightTypeReference
-
getComponentType
public LightweightTypeReference getComponentType()
Description copied from class:LightweightTypeReference
Returns the component type of the current array type. Does not attempt to convert this reference from iterable to array, first.- Overrides:
getComponentType
in classLightweightTypeReference
- Returns:
- the compoent type of the current array or
null
. - See Also:
LightweightTypeReference.isArray()
-
isAny
public boolean isAny()
- Overrides:
isAny
in classLightweightTypeReference
-
isPrimitive
public boolean isPrimitive()
- Overrides:
isPrimitive
in classLightweightTypeReference
-
isAnonymous
public boolean isAnonymous()
- Overrides:
isAnonymous
in classLightweightTypeReference
-
isWrapper
public boolean isWrapper()
- Overrides:
isWrapper
in classLightweightTypeReference
-
isPrimitiveVoid
public boolean isPrimitiveVoid()
- Overrides:
isPrimitiveVoid
in classLightweightTypeReference
-
getFunctionTypeKind
public FunctionTypeKind getFunctionTypeKind()
- Overrides:
getFunctionTypeKind
in classLightweightTypeReference
-
isInterfaceType
public boolean isInterfaceType()
- Overrides:
isInterfaceType
in classLightweightTypeReference
-
getRawTypeReference
public LightweightTypeReference getRawTypeReference()
- Overrides:
getRawTypeReference
in classLightweightTypeReference
- Returns:
- the erasure type of this type reference
-
isOwnedBy
public boolean isOwnedBy(ITypeReferenceOwner owner)
- Overrides:
isOwnedBy
in classLightweightTypeReference
-
getType
public org.eclipse.xtext.common.types.JvmType getType()
- Specified by:
getType
in classLightweightTypeReference
-
getSuperTypes
protected java.util.List<LightweightTypeReference> getSuperTypes(TypeParameterSubstitutor<?> substitutor)
- Specified by:
getSuperTypes
in classLightweightTypeReference
-
getSuperType
public LightweightTypeReference getSuperType(org.eclipse.xtext.common.types.JvmType rawType)
Description copied from class:LightweightTypeReference
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.- Overrides:
getSuperType
in 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:LightweightTypeReference
Returns the resolved super type for the given raw type ornull
if the raw type is not a valid super type of this type.- Overrides:
getSuperType
in 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:LightweightTypeReference
Returns 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:
isType
in classLightweightTypeReference
-
doCopyInto
protected LightweightTypeReference doCopyInto(ITypeReferenceOwner owner)
- Specified by:
doCopyInto
in classLightweightTypeReference
-
isResolved
public boolean isResolved()
- Overrides:
isResolved
in classLightweightTypeReference
-
isSynonym
public boolean isSynonym()
- Overrides:
isSynonym
in classLightweightTypeReference
-
addComponent
public void addComponent(LightweightTypeReference component)
-
getSimpleName
public java.lang.String getSimpleName()
Description copied from class:LightweightTypeReference
Prints the simple name of this type reference. Useful for testing.- Specified by:
getSimpleName
in classLightweightTypeReference
-
getIdentifier
public java.lang.String getIdentifier()
Description copied from class:LightweightTypeReference
Returns the identifier of this type reference. Usually the qualified name with a dollar delimiter.- Specified by:
getIdentifier
in classLightweightTypeReference
-
getUniqueIdentifier
public java.lang.String getUniqueIdentifier()
Description copied from class:LightweightTypeReference
Returns 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:
getUniqueIdentifier
in classLightweightTypeReference
-
getJavaIdentifier
public java.lang.String getJavaIdentifier()
- Specified by:
getJavaIdentifier
in classLightweightTypeReference
-
accept
public void accept(TypeReferenceVisitor visitor)
- Overrides:
accept
in classLightweightTypeReference
-
accept
public <Param> void accept(TypeReferenceVisitorWithParameter<Param> visitor, Param param)
- Overrides:
accept
in classLightweightTypeReference
-
accept
public <Result> Result accept(TypeReferenceVisitorWithResult<Result> visitor)
- Overrides:
accept
in classLightweightTypeReference
-
accept
public <Param,Result> Result accept(TypeReferenceVisitorWithParameterAndResult<Param,Result> visitor, Param param)
- Overrides:
accept
in classLightweightTypeReference
-
isMultiType
public boolean isMultiType()
- Overrides:
isMultiType
in classLightweightTypeReference
-
toJavaType
public LightweightTypeReference toJavaType()
Description copied from class:LightweightTypeReference
Converts 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:
toJavaType
in classLightweightTypeReference
-
getMultiTypeComponents
public java.util.List<LightweightTypeReference> getMultiTypeComponents()
- Overrides:
getMultiTypeComponents
in classLightweightTypeReference
-
-