Clazz
Class jq_Type

java.lang.Object
Clazz.jq_Type
- All Implemented Interfaces:
- Compil3r.Quad.AndersenInterface.AndersenType
- Direct Known Subclasses:
- jq_Primitive, jq_Reference
- public abstract class jq_Type
- extends java.lang.Object
- implements Compil3r.Quad.AndersenInterface.AndersenType
desc
protected final UTF.Utf8 desc
class_object
private java.lang.Class class_object
USE_CLASS_OBJECT_FIELD
public static final boolean USE_CLASS_OBJECT_FIELD
- See Also:
- Constant Field Values
DISPLAY_SIZE
public static final int DISPLAY_SIZE
- See Also:
- Constant Field Values
display
protected jq_Type[] display
- The first two elements are the positive and negative cache,
respectively. The remainder are the primary supertypes of this type
ordered by the tree relation. This array should be inlined into the
jq_Type object, hopefully.
See paper "Fast subtype checking in the HotSpot JVM".
offset
protected int offset
- The offset of our type in the display array if this is a primary type, or
0 or 1 if this is a secondary type.
See paper "Fast subtype checking in the HotSpot JVM".
s_s_array
protected jq_Reference[] s_s_array
- A reference to the secondary subtype array for this type.
See paper "Fast subtype checking in the HotSpot JVM".
s_s_array_length
protected int s_s_array_length
- The maximum index used in the secondary subtype array.
See paper "Fast subtype checking in the HotSpot JVM".
TRACE
public static final boolean TRACE
- See Also:
- Constant Field Values
_class
public static final jq_Class _class
jq_Type
protected jq_Type(UTF.Utf8 desc,
java.lang.ClassLoader class_loader)
initializeClassObject
private void initializeClassObject()
getName
public abstract java.lang.String getName()
shortName
public abstract java.lang.String shortName()
getDesc
public final UTF.Utf8 getDesc()
getJDKDesc
public abstract java.lang.String getJDKDesc()
isClassType
public abstract boolean isClassType()
isArrayType
public abstract boolean isArrayType()
- Specified by:
isArrayType
in interface Compil3r.Quad.AndersenInterface.AndersenType
isPrimitiveType
public abstract boolean isPrimitiveType()
isAddressType
public abstract boolean isAddressType()
isIntLike
public abstract boolean isIntLike()
isReferenceType
public final boolean isReferenceType()
getClassLoader
public abstract java.lang.ClassLoader getClassLoader()
getReferenceSize
public abstract int getReferenceSize()
getArrayTypeForElementType
public final jq_Array getArrayTypeForElementType()
needsDynamicLink
public boolean needsDynamicLink(jq_Method method)
isInstance
public abstract boolean isInstance(java.lang.Object o)
getDepth
public abstract int getDepth()
getJavaLangClassObject
public final java.lang.Class getJavaLangClassObject()
convertPrimitive
public static java.lang.String convertPrimitive(java.lang.String s)
parseType
public static jq_Type parseType(java.lang.String s)
isSubtypeOf
public final boolean isSubtypeOf(jq_Type that)
isBootType
public boolean isBootType()
isLoaded
public abstract boolean isLoaded()
isVerified
public abstract boolean isVerified()
isPrepared
public abstract boolean isPrepared()
isSFInitialized
public abstract boolean isSFInitialized()
isCompiled
public abstract boolean isCompiled()
isClsInitRunning
public abstract boolean isClsInitRunning()
isClsInitialized
public abstract boolean isClsInitialized()
isFinal
public abstract boolean isFinal()
load
public abstract void load()
- Specified by:
load
in interface Compil3r.Quad.AndersenInterface.AndersenType
verify
public abstract void verify()
- Specified by:
verify
in interface Compil3r.Quad.AndersenInterface.AndersenType
prepare
public abstract void prepare()
- Specified by:
prepare
in interface Compil3r.Quad.AndersenInterface.AndersenType
sf_initialize
public abstract void sf_initialize()
compile
public abstract void compile()
cls_initialize
public abstract void cls_initialize()
accept
public void accept(jq_TypeVisitor tv)
toString
public java.lang.String toString()
- Description copied from class:
java.lang.Object
- Convert this Object to a human-readable String.
There are no limits placed on how long this String
should be or what it should contain. We suggest you
make it as intuitive as possible to be able to place
it into System.out.println() 55
and such.
It is typical, but not required, to ensure that this method
never completes abruptly with a java.lang.RuntimeException.
This method will be called when performing string
concatenation with this object. If the result is
null
, string concatenation will instead
use "null"
.
The default implementation returns
getClass().getName() + "@" +
Integer.toHexString(hashCode())
.