gnu.bytecode
Class PrimType
java.lang.Object
|
+--gnu.bytecode.Type
|
+--gnu.bytecode.PrimType
- Direct Known Subclasses:
- SpecialType
- public class PrimType
- extends Type
| 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,
long_type,
longValue_method,
number_type,
pointer_type,
reflectClass,
short_type,
string_type,
throwable_type,
toString_method,
typeArray0,
void_type |
|
Constructor Summary |
PrimType(java.lang.String nam,
java.lang.String sig,
int siz,
java.lang.Class reflectClass)
|
|
Method Summary |
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 members;
-1: if this is a pure subtype of other;
-2: if both a member 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. |
| Methods inherited from class gnu.bytecode.Type |
coerceToObject,
emitCoerceToObject,
emitIsInstance,
getName,
getReflectClass,
getSignature,
getSize,
getType,
isInstance,
isMoreSpecific,
isSubtype,
isValidJavaTypeName,
isVoid,
lookupType,
lowestCommonSuperType,
make,
promote,
registerTypeForClass,
setSignature,
signatureLength,
signatureLength,
signatureToName,
signatureToPrimitive,
signatureToType,
signatureToType,
swappedCompareResult,
toString |
| Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
wait,
wait,
wait |
PrimType
public PrimType(java.lang.String nam,
java.lang.String sig,
int siz,
java.lang.Class reflectClass)
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.
- Overrides:
- 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 boolean booleanValue(java.lang.Object value)
- Coerce value to a boolean.
Only defined if getSignature() is "Z".
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 members;
-1: if this is a pure subtype of other;
-2: if both a member 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), 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.
- Overrides:
- compare in class Type