Package gnu.bytecode

Class PrimType

java.lang.Object
gnu.bytecode.Type
gnu.bytecode.PrimType
All Implemented Interfaces:
Type
Direct Known Subclasses:
LangPrimType

public class PrimType extends Type
  • Constructor Details

    • PrimType

      public PrimType(String nam, String sig, int siz, Class reflectClass)
    • PrimType

      protected PrimType(PrimType type)
  • Method Details

    • isUnsigned

      public boolean isUnsigned()
    • coerceFromObject

      public Object coerceFromObject(Object obj)
      Description copied from class: Type
      Convert an object to a value of this Type. The result is actually of the implementation type, boxed as appropriate, so it is suitable for standard reflective operations, like the arguments to Field#set or Method#invoke. Throw a ClassCastException when this is not possible.
      Specified by:
      coerceFromObject in class Type
    • convertToRaw

      public Object convertToRaw(Object obj)
    • charValue

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

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

      public ClassType boxedType()
    • unboxedType

      public static PrimType unboxedType(Type type)
    • 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)
    • promotedType

      public Type promotedType()
    • 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 values" 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 but 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