gnu.bytecode
Class PrimType

java.lang.Object
  extended by gnu.bytecode.Type
      extended by gnu.bytecode.PrimType
Direct Known Subclasses:
LangPrimType

public class PrimType
extends Type


Field Summary
 
Fields inherited from class gnu.bytecode.Type
boolean_ctype, boolean_type, booleanValue_method, byte_type, char_type, double_type, doubleValue_method, float_type, floatValue_method, int_type, intValue_method, java_lang_Class_type, long_type, longValue_method, neverReturnsType, nullType, number_type, pointer_type, reflectClass, short_type, string_type, throwable_type, toString_method, tostring_type, typeArray0, void_type
 
Constructor Summary
protected PrimType(PrimType type)
           
  PrimType(java.lang.String nam, java.lang.String sig, int siz, java.lang.Class reflectClass)
           
 
Method Summary
static boolean booleanValue(java.lang.Object value)
          Coerce value to a boolean.
 char charValue(java.lang.Object value)
          Coerce value to a char.
 java.lang.Object coerceFromObject(java.lang.Object obj)
          Convert an object to a value of this Type.
static int compare(PrimType type1, PrimType type2)
           
 int compare(Type other)
          Return a numeric code showing "subtype" relationship: 1: if other is a pure subtype of this; 0: if has the same values; -1: if this is a pure subtype of other; -2: if they have values in common but neither is a subtype of the other; -3: if the types have no values in common.
 void emitCoerceFromObject(CodeAttr code)
          Compile code to coerce/convert from Object to this type.
 void emitCoerceToObject(CodeAttr code)
          Compile code to convert a object of this type on the stack to Object.
 void emitIsInstance(CodeAttr code)
           
 
Methods inherited from class gnu.bytecode.Type
coerceToObject, getImplementationType, getName, getReflectClass, getSignature, getSize, getType, hashCode, isInstance, isMoreSpecific, isSubtype, isValidJavaTypeName, isVoid, lookupType, lowestCommonSuperType, make, promote, registerTypeForClass, setName, setReflectClass, setSignature, signatureLength, signatureLength, signatureToName, signatureToPrimitive, signatureToType, signatureToType, swappedCompareResult, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

PrimType

public PrimType(java.lang.String nam,
                java.lang.String sig,
                int siz,
                java.lang.Class reflectClass)

PrimType

protected PrimType(PrimType type)
Method Detail

coerceFromObject

public java.lang.Object coerceFromObject(java.lang.Object obj)
Description copied from class: Type
Convert an object to a value of this Type. Throw a ClassCastException when this is not possible.

Specified by:
coerceFromObject in class Type

charValue

public char charValue(java.lang.Object value)
Coerce value to a char. Only defined if getSignature() is "C".


booleanValue

public static boolean booleanValue(java.lang.Object value)
Coerce value to a boolean. Only defined if getSignature() is "Z".


emitCoerceToObject

public void emitCoerceToObject(CodeAttr code)
Description copied from class: Type
Compile code to convert a object of this type on the stack to Object.

Overrides:
emitCoerceToObject in class Type

emitIsInstance

public void emitIsInstance(CodeAttr code)
Overrides:
emitIsInstance in class Type

emitCoerceFromObject

public void emitCoerceFromObject(CodeAttr code)
Description copied from class: Type
Compile code to coerce/convert from Object to this type.

Overrides:
emitCoerceFromObject in class Type

compare

public static int compare(PrimType type1,
                          PrimType type2)

compare

public int compare(Type other)
Description copied from class: Type
Return a numeric code showing "subtype" relationship: 1: if other is a pure subtype of this; 0: if has the same values; -1: if this is a pure subtype of other; -2: if they have values in common but neither is a subtype of the other; -3: if the types have no values in common. "Same member" is rather loose; by "A is a subtype of B" we mean that all instance of A can be "widened" to B. More formally, A.compare(B) returns: 1: all B values can be converted to A without a coercion failure (i.e. a ClassCastException or overflow or major loss of information), but not vice versa. 0: all A values can be converted to B without a coercion failure and vice versa; -1: all A values can be converted to B without a coercion failure not not vice versa; -2: there are (potentially) some A values that can be converted to B, and some B values can be converted to A; -3: there are no A values that can be converted to B, and neither are there any B values that can be converted to A.

Specified by:
compare in class Type