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) |
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() |
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. |
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, waitfindUniqueConcreteMethod, resolveMethodfindMethod, getElementalType, isEnum, isInstanceClass, isInterface, isJavaLangObject, isLeaf, isPrimitive, lookupType, resolveFieldgetUnqualifiedName, isArray, toClassName, toJavaName, toJavaNameisAbstract, isConcrete, isFinalFlagSet, isNative, isPackagePrivate, isPrivate, isProtected, isPublic, isStatic, isStrict, isSynchronized, isTransient, isVolatilegetAnnotationsByType, getDeclaredAnnotation, getDeclaredAnnotationsByType, isAnnotationPresentprotected 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 SharedTypepublic 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 SharedTypepublic int getInstanceOfNumTypeIDs()
SharedTypeSharedType.getInstanceOfFromTypeID() returns the bit numbergetInstanceOfNumTypeIDs in interface SharedTypeSharedType.getInstanceOfFromTypeID()public com.oracle.graal.pointsto.meta.AnalysisType getWrapped()
getWrapped in interface com.oracle.graal.pointsto.infrastructure.WrappedElementgetWrapped in interface com.oracle.graal.pointsto.infrastructure.WrappedJavaTypepublic boolean isInstantiated()
public final String getName()
getName in interface jdk.vm.ci.meta.JavaTypepublic final jdk.vm.ci.meta.JavaKind getJavaKind()
getJavaKind in interface jdk.vm.ci.meta.JavaTypepublic 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 SharedTypepublic final jdk.vm.ci.meta.ResolvedJavaType resolve(jdk.vm.ci.meta.ResolvedJavaType accessingClass)
resolve in interface jdk.vm.ci.meta.JavaTypepublic final boolean hasFinalizer()
hasFinalizer in interface jdk.vm.ci.meta.ResolvedJavaTypepublic final jdk.vm.ci.meta.Assumptions.AssumptionResult<Boolean> hasFinalizableSubclass()
hasFinalizableSubclass in interface jdk.vm.ci.meta.ResolvedJavaTypepublic final boolean isInitialized()
isInitialized in interface jdk.vm.ci.meta.ResolvedJavaTypepublic void initialize()
initialize in interface jdk.vm.ci.meta.ResolvedJavaTypepublic final HostedArrayClass getArrayClass()
getArrayClass in interface jdk.vm.ci.meta.JavaTypegetArrayClass in interface jdk.vm.ci.meta.ResolvedJavaTypepublic HostedType getArrayClass(int dimension)
public abstract HostedField[] getInstanceFields(boolean includeSuperclasses)
getInstanceFields in interface jdk.vm.ci.meta.ResolvedJavaTypepublic jdk.vm.ci.meta.ResolvedJavaField[] getStaticFields()
getStaticFields in interface jdk.vm.ci.meta.ResolvedJavaTypepublic final HostedClass getSuperclass()
getSuperclass in interface jdk.vm.ci.meta.ResolvedJavaTypepublic final HostedInterface[] getInterfaces()
getInterfaces in interface jdk.vm.ci.meta.ResolvedJavaTypepublic abstract HostedType getComponentType()
getComponentType in interface jdk.vm.ci.meta.JavaTypegetComponentType in interface jdk.vm.ci.meta.ResolvedJavaTypepublic 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.ResolvedJavaTypepublic HostedType getSingleImplementor()
getSingleImplementor in interface jdk.vm.ci.meta.ResolvedJavaTypepublic final boolean isAssignableFrom(jdk.vm.ci.meta.ResolvedJavaType other)
isAssignableFrom in interface jdk.vm.ci.meta.ResolvedJavaTypepublic final jdk.vm.ci.meta.ResolvedJavaType findLeastCommonAncestor(jdk.vm.ci.meta.ResolvedJavaType otherType)
findLeastCommonAncestor in interface jdk.vm.ci.meta.ResolvedJavaTypepublic jdk.vm.ci.meta.ResolvedJavaMethod resolveConcreteMethod(jdk.vm.ci.meta.ResolvedJavaMethod m,
jdk.vm.ci.meta.ResolvedJavaType ct)
resolveConcreteMethod in interface SharedTyperesolveConcreteMethod in interface jdk.vm.ci.meta.ResolvedJavaTypepublic final int getModifiers()
getModifiers in interface jdk.vm.ci.meta.ModifiersProviderpublic final boolean isInstance(jdk.vm.ci.meta.JavaConstant obj)
isInstance in interface jdk.vm.ci.meta.ResolvedJavaTypepublic jdk.vm.ci.meta.ResolvedJavaField findInstanceFieldWithOffset(long offset,
jdk.vm.ci.meta.JavaKind expectedKind)
findInstanceFieldWithOffset in interface jdk.vm.ci.meta.ResolvedJavaTypepublic Annotation[] getAnnotations()
getAnnotations in interface AnnotatedElementpublic Annotation[] getDeclaredAnnotations()
getDeclaredAnnotations in interface AnnotatedElementpublic final <T extends Annotation> T getAnnotation(Class<T> annotationClass)
getAnnotation in interface AnnotatedElementpublic String getSourceFileName()
getSourceFileName in interface jdk.vm.ci.meta.ResolvedJavaTypepublic boolean isLocal()
isLocal in interface jdk.vm.ci.meta.ResolvedJavaTypepublic boolean isMember()
isMember in interface jdk.vm.ci.meta.ResolvedJavaTypepublic HostedType getEnclosingType()
getEnclosingType in interface jdk.vm.ci.meta.ResolvedJavaTypepublic HostedMethod[] getDeclaredConstructors()
getDeclaredConstructors in interface jdk.vm.ci.meta.ResolvedJavaTypepublic HostedMethod[] getDeclaredMethods()
getDeclaredMethods in interface jdk.vm.ci.meta.ResolvedJavaTypepublic jdk.vm.ci.meta.ResolvedJavaMethod getClassInitializer()
getClassInitializer in interface jdk.vm.ci.meta.ResolvedJavaTypepublic boolean isLinked()
isLinked in interface jdk.vm.ci.meta.ResolvedJavaTypepublic boolean isCloneableWithAllocation()
isCloneableWithAllocation in interface jdk.vm.ci.meta.ResolvedJavaTypepublic jdk.vm.ci.meta.ResolvedJavaType getHostClass()
getHostClass in interface jdk.vm.ci.meta.ResolvedJavaTypepublic void setEnclosingType(HostedType enclosingType)
public Class<?> getJavaClass()
getJavaClass in interface com.oracle.graal.pointsto.infrastructure.OriginalClassProviderpublic int compareTo(HostedType other)
compareTo in interface Comparable<HostedType>