public class SubstrateType extends com.oracle.truffle.api.nodes.NodeClass implements SharedType
Modifier and Type | Field and Description |
---|---|
protected static SubstrateType[] |
EMPTY_ARRAY |
protected DynamicHub |
uniqueConcreteImplementation |
Constructor and Description |
---|
SubstrateType(jdk.vm.ci.meta.JavaKind kind,
DynamicHub hub) |
Modifier and Type | Method and Description |
---|---|
boolean |
declaresDefaultMethods() |
boolean |
equals(Object obj) |
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) |
<T extends Annotation> |
getAnnotation(Class<T> annotationClass) |
Annotation[] |
getAnnotations() |
jdk.vm.ci.meta.ResolvedJavaType |
getArrayClass() |
com.oracle.truffle.api.nodes.NodeFieldAccessor[] |
getChildFields() |
com.oracle.truffle.api.nodes.NodeFieldAccessor[] |
getChildrenFields() |
jdk.vm.ci.meta.ResolvedJavaMethod |
getClassInitializer() |
com.oracle.truffle.api.nodes.NodeFieldAccessor[] |
getCloneableFields() |
jdk.vm.ci.meta.ResolvedJavaType |
getComponentType() |
Annotation[] |
getDeclaredAnnotations() |
jdk.vm.ci.meta.ResolvedJavaMethod[] |
getDeclaredConstructors() |
jdk.vm.ci.meta.ResolvedJavaMethod[] |
getDeclaredMethods() |
jdk.vm.ci.meta.ResolvedJavaType |
getEnclosingType() |
String |
getFieldName(Object field) |
Object |
getFieldObject(Object field,
com.oracle.truffle.api.nodes.Node receiver) |
com.oracle.truffle.api.nodes.NodeFieldAccessor[] |
getFields() |
Class<?> |
getFieldType(Object field) |
Object |
getFieldValue(Object field,
com.oracle.truffle.api.nodes.Node node) |
jdk.vm.ci.meta.ResolvedJavaType |
getHostClass() |
DynamicHub |
getHub() |
int |
getInstanceFieldCount() |
SubstrateField[] |
getInstanceFields(boolean includeSuperclasses) |
jdk.vm.ci.meta.ResolvedJavaType[] |
getInterfaces() |
jdk.vm.ci.meta.JavaKind |
getJavaKind() |
int |
getModifiers() |
String |
getName() |
com.oracle.truffle.api.nodes.NodeFieldAccessor |
getNodeClassField() |
protected SubstrateField[] |
getNodeFieldArray() |
protected Iterable<SubstrateField> |
getNodeFields() |
com.oracle.truffle.api.nodes.NodeFieldAccessor |
getParentField() |
SubstrateField[] |
getRawAllInstanceFields() |
jdk.vm.ci.meta.ResolvedJavaType |
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
SubstrateType.getJavaKind() , which is the kind of
the field on the Java type system level). |
SubstrateType |
getSuperclass() |
Class<? extends com.oracle.truffle.api.nodes.Node> |
getType() |
boolean |
hasDefaultMethods() |
jdk.vm.ci.meta.Assumptions.AssumptionResult<Boolean> |
hasFinalizableSubclass() |
boolean |
hasFinalizer() |
int |
hashCode() |
void |
initialize() |
boolean |
isArray() |
boolean |
isAssignableFrom(jdk.vm.ci.meta.ResolvedJavaType other) |
boolean |
isChildField(Object field) |
boolean |
isChildrenField(Object field) |
boolean |
isCloneableField(Object field) |
boolean |
isCloneableWithAllocation() |
boolean |
isEnum() |
boolean |
isInitialized() |
boolean |
isInstance(jdk.vm.ci.meta.JavaConstant obj) |
boolean |
isInstanceClass() |
boolean |
isInterface() |
boolean |
isJavaLangObject() |
boolean |
isLinked() |
boolean |
isLocal() |
boolean |
isMember() |
boolean |
isPrimitive() |
void |
link() |
Iterator<com.oracle.truffle.api.nodes.Node> |
makeIterator(com.oracle.truffle.api.nodes.Node node) |
void |
putFieldObject(Object field,
com.oracle.truffle.api.nodes.Node receiver,
Object value) |
jdk.vm.ci.meta.ResolvedJavaType |
resolve(jdk.vm.ci.meta.ResolvedJavaType accessingClass) |
void |
setRawAllInstanceFields(SubstrateField[] allInstanceFields) |
void |
setTypeCheckData(DynamicHub uniqueConcreteImplementation) |
String |
toString() |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
findUniqueConcreteMethod, resolveConcreteMethod, resolveMethod
findMethod, getElementalType, isLeaf, lookupType, resolveField
getUnqualifiedName, toClassName, toJavaName, toJavaName
isAbstract, isConcrete, isFinalFlagSet, isNative, isPackagePrivate, isPrivate, isProtected, isPublic, isStatic, isStrict, isSynchronized, isTransient, isVolatile
getAnnotationsByType, getDeclaredAnnotation, getDeclaredAnnotationsByType, isAnnotationPresent
protected static final SubstrateType[] EMPTY_ARRAY
protected DynamicHub uniqueConcreteImplementation
public SubstrateType(jdk.vm.ci.meta.JavaKind kind, DynamicHub hub)
public void setRawAllInstanceFields(SubstrateField[] allInstanceFields)
public SubstrateField[] getRawAllInstanceFields()
public void setTypeCheckData(DynamicHub uniqueConcreteImplementation)
public final jdk.vm.ci.meta.JavaKind getStorageKind()
SubstrateType.getJavaKind()
, which is the kind of
the field on the Java type system level). For example word types
have a
SubstrateType.getJavaKind()
of JavaKind.Object
, but a primitive SubstrateType.getStorageKind()
.getStorageKind
in interface SharedType
public DynamicHub getHub()
getHub
in interface SharedType
public String getName()
getName
in interface jdk.vm.ci.meta.JavaType
public jdk.vm.ci.meta.JavaKind getJavaKind()
getJavaKind
in interface jdk.vm.ci.meta.JavaType
public jdk.vm.ci.meta.ResolvedJavaType resolve(jdk.vm.ci.meta.ResolvedJavaType accessingClass)
resolve
in interface jdk.vm.ci.meta.JavaType
public boolean hasFinalizer()
hasFinalizer
in interface jdk.vm.ci.meta.ResolvedJavaType
public jdk.vm.ci.meta.Assumptions.AssumptionResult<Boolean> hasFinalizableSubclass()
hasFinalizableSubclass
in interface jdk.vm.ci.meta.ResolvedJavaType
public boolean isInterface()
isInterface
in interface jdk.vm.ci.meta.ModifiersProvider
isInterface
in interface jdk.vm.ci.meta.ResolvedJavaType
public boolean isInstanceClass()
isInstanceClass
in interface jdk.vm.ci.meta.ResolvedJavaType
public boolean isArray()
isArray
in interface jdk.vm.ci.meta.JavaType
public boolean isPrimitive()
isPrimitive
in interface jdk.vm.ci.meta.ResolvedJavaType
public boolean isEnum()
isEnum
in interface jdk.vm.ci.meta.ResolvedJavaType
public int getModifiers()
getModifiers
in interface jdk.vm.ci.meta.ModifiersProvider
public boolean isInitialized()
isInitialized
in interface jdk.vm.ci.meta.ResolvedJavaType
public void initialize()
initialize
in interface jdk.vm.ci.meta.ResolvedJavaType
public boolean isAssignableFrom(jdk.vm.ci.meta.ResolvedJavaType other)
isAssignableFrom
in interface jdk.vm.ci.meta.ResolvedJavaType
public boolean isInstance(jdk.vm.ci.meta.JavaConstant obj)
isInstance
in interface jdk.vm.ci.meta.ResolvedJavaType
public jdk.vm.ci.meta.Assumptions.AssumptionResult<jdk.vm.ci.meta.ResolvedJavaType> findLeafConcreteSubtype()
findLeafConcreteSubtype
in interface jdk.vm.ci.meta.ResolvedJavaType
public jdk.vm.ci.meta.ResolvedJavaType getSingleImplementor()
getSingleImplementor
in interface jdk.vm.ci.meta.ResolvedJavaType
public SubstrateType getSuperclass()
getSuperclass
in interface jdk.vm.ci.meta.ResolvedJavaType
public jdk.vm.ci.meta.ResolvedJavaType[] getInterfaces()
getInterfaces
in interface jdk.vm.ci.meta.ResolvedJavaType
public jdk.vm.ci.meta.ResolvedJavaType findLeastCommonAncestor(jdk.vm.ci.meta.ResolvedJavaType otherType)
findLeastCommonAncestor
in interface jdk.vm.ci.meta.ResolvedJavaType
public boolean isJavaLangObject()
isJavaLangObject
in interface jdk.vm.ci.meta.ResolvedJavaType
public jdk.vm.ci.meta.ResolvedJavaType getComponentType()
getComponentType
in interface jdk.vm.ci.meta.JavaType
getComponentType
in interface jdk.vm.ci.meta.ResolvedJavaType
public jdk.vm.ci.meta.ResolvedJavaType getArrayClass()
getArrayClass
in interface jdk.vm.ci.meta.JavaType
getArrayClass
in interface jdk.vm.ci.meta.ResolvedJavaType
public SubstrateField[] getInstanceFields(boolean includeSuperclasses)
getInstanceFields
in interface jdk.vm.ci.meta.ResolvedJavaType
public int getInstanceFieldCount()
public jdk.vm.ci.meta.ResolvedJavaField[] getStaticFields()
getStaticFields
in interface jdk.vm.ci.meta.ResolvedJavaType
public Annotation[] getAnnotations()
getAnnotations
in interface AnnotatedElement
public Annotation[] getDeclaredAnnotations()
getDeclaredAnnotations
in interface AnnotatedElement
public <T extends Annotation> T getAnnotation(Class<T> annotationClass)
getAnnotation
in interface AnnotatedElement
public jdk.vm.ci.meta.ResolvedJavaField findInstanceFieldWithOffset(long offset, jdk.vm.ci.meta.JavaKind expectedKind)
findInstanceFieldWithOffset
in interface jdk.vm.ci.meta.ResolvedJavaType
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 jdk.vm.ci.meta.ResolvedJavaType getEnclosingType()
getEnclosingType
in interface jdk.vm.ci.meta.ResolvedJavaType
public jdk.vm.ci.meta.ResolvedJavaMethod[] getDeclaredConstructors()
getDeclaredConstructors
in interface jdk.vm.ci.meta.ResolvedJavaType
public jdk.vm.ci.meta.ResolvedJavaMethod[] 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 com.oracle.truffle.api.nodes.NodeFieldAccessor getNodeClassField()
getNodeClassField
in class com.oracle.truffle.api.nodes.NodeClass
public com.oracle.truffle.api.nodes.NodeFieldAccessor[] getCloneableFields()
getCloneableFields
in class com.oracle.truffle.api.nodes.NodeClass
public com.oracle.truffle.api.nodes.NodeFieldAccessor[] getFields()
getFields
in class com.oracle.truffle.api.nodes.NodeClass
public com.oracle.truffle.api.nodes.NodeFieldAccessor getParentField()
getParentField
in class com.oracle.truffle.api.nodes.NodeClass
public com.oracle.truffle.api.nodes.NodeFieldAccessor[] getChildFields()
getChildFields
in class com.oracle.truffle.api.nodes.NodeClass
public com.oracle.truffle.api.nodes.NodeFieldAccessor[] getChildrenFields()
getChildrenFields
in class com.oracle.truffle.api.nodes.NodeClass
public Iterator<com.oracle.truffle.api.nodes.Node> makeIterator(com.oracle.truffle.api.nodes.Node node)
makeIterator
in class com.oracle.truffle.api.nodes.NodeClass
public Class<? extends com.oracle.truffle.api.nodes.Node> getType()
getType
in class com.oracle.truffle.api.nodes.NodeClass
protected Iterable<SubstrateField> getNodeFields()
getNodeFields
in class com.oracle.truffle.api.nodes.NodeClass
protected SubstrateField[] getNodeFieldArray()
getNodeFieldArray
in class com.oracle.truffle.api.nodes.NodeClass
public void putFieldObject(Object field, com.oracle.truffle.api.nodes.Node receiver, Object value)
putFieldObject
in class com.oracle.truffle.api.nodes.NodeClass
public Object getFieldObject(Object field, com.oracle.truffle.api.nodes.Node receiver)
getFieldObject
in class com.oracle.truffle.api.nodes.NodeClass
public Object getFieldValue(Object field, com.oracle.truffle.api.nodes.Node node)
getFieldValue
in class com.oracle.truffle.api.nodes.NodeClass
public boolean isChildField(Object field)
isChildField
in class com.oracle.truffle.api.nodes.NodeClass
public boolean isChildrenField(Object field)
isChildrenField
in class com.oracle.truffle.api.nodes.NodeClass
public boolean isCloneableField(Object field)
isCloneableField
in class com.oracle.truffle.api.nodes.NodeClass
public Class<?> getFieldType(Object field)
getFieldType
in class com.oracle.truffle.api.nodes.NodeClass