public abstract class HostedType extends Object implements SharedType, com.oracle.graal.pointsto.infrastructure.WrappedJavaType, Comparable<HostedType>, com.oracle.graal.pointsto.infrastructure.OriginalClassProvider
Modifier and Type | Field and Description |
---|---|
protected HostedMethod[] |
allDeclaredMethods |
protected HostedArrayClass |
arrayType |
protected int[] |
assignableFromMatches |
protected BitSet |
instanceOfBits
Bits for instanceof checks.
|
protected int |
instanceOfFromTypeID |
protected int |
instanceOfNumTypeIDs |
protected HostedField[] |
staticFields |
protected HostedType |
strengthenStampType
A more precise subtype that can replace this type as the declared type of values.
|
protected HostedType[] |
subTypes |
protected int |
typeID |
protected HostedType |
uniqueConcreteImplementation |
protected HostedUniverse |
universe |
protected HostedMethod[] |
vtable |
protected com.oracle.graal.pointsto.meta.AnalysisType |
wrapped |
Constructor and Description |
---|
HostedType(HostedUniverse universe,
com.oracle.graal.pointsto.meta.AnalysisType wrapped,
jdk.vm.ci.meta.JavaKind kind,
jdk.vm.ci.meta.JavaKind storageKind,
HostedClass superClass,
HostedInterface[] interfaces,
boolean isCloneable) |
Modifier and Type | Method and Description |
---|---|
int |
compareTo(HostedType other) |
boolean |
declaresDefaultMethods() |
jdk.vm.ci.meta.ResolvedJavaField |
findInstanceFieldWithOffset(long offset,
jdk.vm.ci.meta.JavaKind expectedKind) |
jdk.vm.ci.meta.Assumptions.AssumptionResult<jdk.vm.ci.meta.ResolvedJavaType> |
findLeafConcreteSubtype() |
jdk.vm.ci.meta.ResolvedJavaType |
findLeastCommonAncestor(jdk.vm.ci.meta.ResolvedJavaType otherType) |
HostedMethod[] |
getAllDeclaredMethods()
Returns all methods (including constructors and synthetic methods) that have this type as the
declaring class . |
<T extends Annotation> |
getAnnotation(Class<T> annotationClass) |
Annotation[] |
getAnnotations() |
HostedArrayClass |
getArrayClass() |
HostedType |
getArrayClass(int dimension) |
abstract int |
getArrayDimension() |
int[] |
getAssignableFromMatches() |
abstract HostedType |
getBaseType() |
jdk.vm.ci.meta.ResolvedJavaMethod |
getClassInitializer() |
abstract HostedType |
getComponentType() |
Annotation[] |
getDeclaredAnnotations() |
HostedMethod[] |
getDeclaredConstructors() |
HostedMethod[] |
getDeclaredMethods() |
HostedType |
getEnclosingType() |
jdk.vm.ci.meta.ResolvedJavaType |
getHostClass() |
DynamicHub |
getHub() |
abstract HostedField[] |
getInstanceFields(boolean includeSuperclasses) |
int |
getInstanceOfFromTypeID()
Gets the start of the type-ID range for instance-of checks.
|
int |
getInstanceOfNumTypeIDs()
Returns the size of the type-ID range for instance-of checks.
|
HostedInterface[] |
getInterfaces() |
Class<?> |
getJavaClass() |
jdk.vm.ci.meta.JavaKind |
getJavaKind() |
int |
getModifiers() |
String |
getName() |
HostedType |
getSingleImplementor() |
String |
getSourceFileName() |
jdk.vm.ci.meta.ResolvedJavaField[] |
getStaticFields() |
jdk.vm.ci.meta.JavaKind |
getStorageKind()
The kind of the field in memory (in contrast to
HostedType.getJavaKind() , which is the kind of
the field on the Java type system level). |
HostedType |
getStrengthenStampType() |
HostedType[] |
getSubTypes() |
HostedClass |
getSuperclass() |
int |
getTypeID() |
HostedType |
getUniqueConcreteImplementation() |
HostedMethod[] |
getVTable() |
com.oracle.graal.pointsto.meta.AnalysisType |
getWrapped() |
boolean |
hasDefaultMethods() |
jdk.vm.ci.meta.Assumptions.AssumptionResult<Boolean> |
hasFinalizableSubclass() |
boolean |
hasFinalizer() |
void |
initialize() |
boolean |
isAssignableFrom(jdk.vm.ci.meta.ResolvedJavaType other) |
boolean |
isCloneableWithAllocation() |
boolean |
isInitialized() |
boolean |
isInstance(jdk.vm.ci.meta.JavaConstant obj) |
boolean |
isInstantiated() |
boolean |
isLinked() |
boolean |
isLocal() |
boolean |
isMember() |
boolean |
isWordType()
Returns true if this type is part of the word type hierarchy, i.e, implements
WordBase . |
void |
link() |
jdk.vm.ci.meta.ResolvedJavaType |
resolve(jdk.vm.ci.meta.ResolvedJavaType accessingClass) |
jdk.vm.ci.meta.ResolvedJavaMethod |
resolveConcreteMethod(jdk.vm.ci.meta.ResolvedJavaMethod m,
jdk.vm.ci.meta.ResolvedJavaType ct) |
void |
setEnclosingType(HostedType enclosingType) |
void |
setInstanceOfRange(int instanceOfFromTypeID,
int instanceOfNumTypeIDs) |
String |
toString() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
findUniqueConcreteMethod, resolveMethod
findMethod, getElementalType, isEnum, isInstanceClass, isInterface, isJavaLangObject, isLeaf, isPrimitive, lookupType, resolveField
getUnqualifiedName, isArray, toClassName, toJavaName, toJavaName
isAbstract, isConcrete, isFinalFlagSet, isNative, isPackagePrivate, isPrivate, isProtected, isPublic, isStatic, isStrict, isSynchronized, isTransient, isVolatile
getAnnotationsByType, getDeclaredAnnotation, getDeclaredAnnotationsByType, isAnnotationPresent
protected final HostedUniverse universe
protected final com.oracle.graal.pointsto.meta.AnalysisType wrapped
protected HostedArrayClass arrayType
protected HostedType[] subTypes
protected HostedField[] staticFields
protected HostedMethod[] vtable
protected int instanceOfFromTypeID
SharedType.getInstanceOfFromTypeID()
protected int instanceOfNumTypeIDs
SharedType.getInstanceOfNumTypeIDs()
protected BitSet instanceOfBits
DynamicHub
.instanceOfBits.protected int typeID
protected int[] assignableFromMatches
protected HostedType uniqueConcreteImplementation
protected HostedMethod[] allDeclaredMethods
protected HostedType strengthenStampType
public HostedType(HostedUniverse universe, com.oracle.graal.pointsto.meta.AnalysisType wrapped, jdk.vm.ci.meta.JavaKind kind, jdk.vm.ci.meta.JavaKind storageKind, HostedClass superClass, HostedInterface[] interfaces, boolean isCloneable)
public HostedType getStrengthenStampType()
public void setInstanceOfRange(int instanceOfFromTypeID, int instanceOfNumTypeIDs)
public HostedType[] getSubTypes()
public HostedMethod[] getVTable()
public int getTypeID()
public int[] getAssignableFromMatches()
public boolean isWordType()
WordBase
.public HostedMethod[] getAllDeclaredMethods()
declaring class
.public HostedType getUniqueConcreteImplementation()
public DynamicHub getHub()
getHub
in interface SharedType
public int getInstanceOfFromTypeID()
SharedType
Now if there is not a single type-ID range to be used for the check (e.g. for interface
types), then the instance-of check must be done with a bit test. In this case
SharedType.getInstanceOfNumTypeIDs()
return -1 and this method returns the bit number to check
in the bit-set of the object's DynamicHub
.
getInstanceOfFromTypeID
in interface SharedType
public int getInstanceOfNumTypeIDs()
SharedType
SharedType.getInstanceOfFromTypeID()
returns the bit numbergetInstanceOfNumTypeIDs
in interface SharedType
SharedType.getInstanceOfFromTypeID()
public com.oracle.graal.pointsto.meta.AnalysisType getWrapped()
getWrapped
in interface com.oracle.graal.pointsto.infrastructure.WrappedElement
getWrapped
in interface com.oracle.graal.pointsto.infrastructure.WrappedJavaType
public boolean isInstantiated()
public final String getName()
getName
in interface jdk.vm.ci.meta.JavaType
public final jdk.vm.ci.meta.JavaKind getJavaKind()
getJavaKind
in interface jdk.vm.ci.meta.JavaType
public final jdk.vm.ci.meta.JavaKind getStorageKind()
HostedType.getJavaKind()
, which is the kind of
the field on the Java type system level). For example word types
have a
HostedType.getJavaKind()
of JavaKind.Object
, but a primitive HostedType.storageKind
.getStorageKind
in interface SharedType
public final jdk.vm.ci.meta.ResolvedJavaType resolve(jdk.vm.ci.meta.ResolvedJavaType accessingClass)
resolve
in interface jdk.vm.ci.meta.JavaType
public final boolean hasFinalizer()
hasFinalizer
in interface jdk.vm.ci.meta.ResolvedJavaType
public final jdk.vm.ci.meta.Assumptions.AssumptionResult<Boolean> hasFinalizableSubclass()
hasFinalizableSubclass
in interface jdk.vm.ci.meta.ResolvedJavaType
public final boolean isInitialized()
isInitialized
in interface jdk.vm.ci.meta.ResolvedJavaType
public void initialize()
initialize
in interface jdk.vm.ci.meta.ResolvedJavaType
public final HostedArrayClass getArrayClass()
getArrayClass
in interface jdk.vm.ci.meta.JavaType
getArrayClass
in interface jdk.vm.ci.meta.ResolvedJavaType
public HostedType getArrayClass(int dimension)
public abstract HostedField[] getInstanceFields(boolean includeSuperclasses)
getInstanceFields
in interface jdk.vm.ci.meta.ResolvedJavaType
public jdk.vm.ci.meta.ResolvedJavaField[] getStaticFields()
getStaticFields
in interface jdk.vm.ci.meta.ResolvedJavaType
public final HostedClass getSuperclass()
getSuperclass
in interface jdk.vm.ci.meta.ResolvedJavaType
public final HostedInterface[] getInterfaces()
getInterfaces
in interface jdk.vm.ci.meta.ResolvedJavaType
public abstract HostedType getComponentType()
getComponentType
in interface jdk.vm.ci.meta.JavaType
getComponentType
in interface jdk.vm.ci.meta.ResolvedJavaType
public abstract HostedType getBaseType()
public abstract int getArrayDimension()
public jdk.vm.ci.meta.Assumptions.AssumptionResult<jdk.vm.ci.meta.ResolvedJavaType> findLeafConcreteSubtype()
findLeafConcreteSubtype
in interface jdk.vm.ci.meta.ResolvedJavaType
public HostedType getSingleImplementor()
getSingleImplementor
in interface jdk.vm.ci.meta.ResolvedJavaType
public final boolean isAssignableFrom(jdk.vm.ci.meta.ResolvedJavaType other)
isAssignableFrom
in interface jdk.vm.ci.meta.ResolvedJavaType
public final jdk.vm.ci.meta.ResolvedJavaType findLeastCommonAncestor(jdk.vm.ci.meta.ResolvedJavaType otherType)
findLeastCommonAncestor
in interface jdk.vm.ci.meta.ResolvedJavaType
public jdk.vm.ci.meta.ResolvedJavaMethod resolveConcreteMethod(jdk.vm.ci.meta.ResolvedJavaMethod m, jdk.vm.ci.meta.ResolvedJavaType ct)
resolveConcreteMethod
in interface SharedType
resolveConcreteMethod
in interface jdk.vm.ci.meta.ResolvedJavaType
public final int getModifiers()
getModifiers
in interface jdk.vm.ci.meta.ModifiersProvider
public final boolean isInstance(jdk.vm.ci.meta.JavaConstant obj)
isInstance
in interface jdk.vm.ci.meta.ResolvedJavaType
public jdk.vm.ci.meta.ResolvedJavaField findInstanceFieldWithOffset(long offset, jdk.vm.ci.meta.JavaKind expectedKind)
findInstanceFieldWithOffset
in interface jdk.vm.ci.meta.ResolvedJavaType
public Annotation[] getAnnotations()
getAnnotations
in interface AnnotatedElement
public Annotation[] getDeclaredAnnotations()
getDeclaredAnnotations
in interface AnnotatedElement
public final <T extends Annotation> T getAnnotation(Class<T> annotationClass)
getAnnotation
in interface AnnotatedElement
public String getSourceFileName()
getSourceFileName
in interface jdk.vm.ci.meta.ResolvedJavaType
public boolean isLocal()
isLocal
in interface jdk.vm.ci.meta.ResolvedJavaType
public boolean isMember()
isMember
in interface jdk.vm.ci.meta.ResolvedJavaType
public HostedType getEnclosingType()
getEnclosingType
in interface jdk.vm.ci.meta.ResolvedJavaType
public HostedMethod[] getDeclaredConstructors()
getDeclaredConstructors
in interface jdk.vm.ci.meta.ResolvedJavaType
public HostedMethod[] getDeclaredMethods()
getDeclaredMethods
in interface jdk.vm.ci.meta.ResolvedJavaType
public jdk.vm.ci.meta.ResolvedJavaMethod getClassInitializer()
getClassInitializer
in interface jdk.vm.ci.meta.ResolvedJavaType
public boolean isLinked()
isLinked
in interface jdk.vm.ci.meta.ResolvedJavaType
public void link()
link
in interface jdk.vm.ci.meta.ResolvedJavaType
public boolean hasDefaultMethods()
hasDefaultMethods
in interface jdk.vm.ci.meta.ResolvedJavaType
public boolean declaresDefaultMethods()
declaresDefaultMethods
in interface jdk.vm.ci.meta.ResolvedJavaType
public boolean isCloneableWithAllocation()
isCloneableWithAllocation
in interface jdk.vm.ci.meta.ResolvedJavaType
public jdk.vm.ci.meta.ResolvedJavaType getHostClass()
getHostClass
in interface jdk.vm.ci.meta.ResolvedJavaType
public void setEnclosingType(HostedType enclosingType)
public Class<?> getJavaClass()
getJavaClass
in interface com.oracle.graal.pointsto.infrastructure.OriginalClassProvider
public int compareTo(HostedType other)
compareTo
in interface Comparable<HostedType>