Class Type

java.lang.Object
org.gjt.sp.jedit.bsh.org.objectweb.asm.Type

public class Type extends Object
A Java type. This class can be used to make it easier to manipulate type and method descriptors.
  • Field Details

    • VOID

      public static final int VOID
      The sort of the void type. See getSort.
      See Also:
    • BOOLEAN

      public static final int BOOLEAN
      The sort of the boolean type. See getSort.
      See Also:
    • CHAR

      public static final int CHAR
      The sort of the char type. See getSort.
      See Also:
    • BYTE

      public static final int BYTE
      The sort of the byte type. See getSort.
      See Also:
    • SHORT

      public static final int SHORT
      The sort of the short type. See getSort.
      See Also:
    • INT

      public static final int INT
      The sort of the int type. See getSort.
      See Also:
    • FLOAT

      public static final int FLOAT
      The sort of the float type. See getSort.
      See Also:
    • LONG

      public static final int LONG
      The sort of the long type. See getSort.
      See Also:
    • DOUBLE

      public static final int DOUBLE
      The sort of the double type. See getSort.
      See Also:
    • ARRAY

      public static final int ARRAY
      The sort of array reference types. See getSort.
      See Also:
    • OBJECT

      public static final int OBJECT
      The sort of object reference type. See getSort.
      See Also:
    • VOID_TYPE

      public static final Type VOID_TYPE
      The void type.
    • BOOLEAN_TYPE

      public static final Type BOOLEAN_TYPE
      The boolean type.
    • CHAR_TYPE

      public static final Type CHAR_TYPE
      The char type.
    • BYTE_TYPE

      public static final Type BYTE_TYPE
      The byte type.
    • SHORT_TYPE

      public static final Type SHORT_TYPE
      The short type.
    • INT_TYPE

      public static final Type INT_TYPE
      The int type.
    • FLOAT_TYPE

      public static final Type FLOAT_TYPE
      The float type.
    • LONG_TYPE

      public static final Type LONG_TYPE
      The long type.
    • DOUBLE_TYPE

      public static final Type DOUBLE_TYPE
      The double type.
  • Method Details

    • getType

      public static Type getType(String typeDescriptor)
      Returns the Java type corresponding to the given type descriptor.
      Parameters:
      typeDescriptor - a type descriptor.
      Returns:
      the Java type corresponding to the given type descriptor.
    • getType

      public static Type getType(Class c)
      Returns the Java type corresponding to the given class.
      Parameters:
      c - a class.
      Returns:
      the Java type corresponding to the given class.
    • getArgumentTypes

      public static Type[] getArgumentTypes(String methodDescriptor)
      Returns the Java types corresponding to the argument types of the given method descriptor.
      Parameters:
      methodDescriptor - a method descriptor.
      Returns:
      the Java types corresponding to the argument types of the given method descriptor.
    • getArgumentTypes

      public static Type[] getArgumentTypes(Method method)
      Returns the Java types corresponding to the argument types of the given method.
      Parameters:
      method - a method.
      Returns:
      the Java types corresponding to the argument types of the given method.
    • getReturnType

      public static Type getReturnType(String methodDescriptor)
      Returns the Java type corresponding to the return type of the given method descriptor.
      Parameters:
      methodDescriptor - a method descriptor.
      Returns:
      the Java type corresponding to the return type of the given method descriptor.
    • getReturnType

      public static Type getReturnType(Method method)
      Returns the Java type corresponding to the return type of the given method.
      Parameters:
      method - a method.
      Returns:
      the Java type corresponding to the return type of the given method.
    • getSort

      public int getSort()
      Returns the sort of this Java type.
      Returns:
      VOID, BOOLEAN, CHAR, BYTE, SHORT, INT, FLOAT, LONG, DOUBLE, ARRAY or OBJECT.
    • getDimensions

      public int getDimensions()
      Returns the number of dimensions of this array type. This method should only be used for an array type.
      Returns:
      the number of dimensions of this array type.
    • getElementType

      public Type getElementType()
      Returns the type of the elements of this array type. This method should only be used for an array type.
      Returns:
      Returns the type of the elements of this array type.
    • getClassName

      public String getClassName()
      Returns the name of the class corresponding to this object type. This method should only be used for an object type.
      Returns:
      the fully qualified name of the class corresponding to this object type.
    • getInternalName

      public String getInternalName()
      Returns the internal name of the class corresponding to this object type. The internal name of a class is its fully qualified name, where '.' are replaced by '/'. * This method should only be used for an object type.
      Returns:
      the internal name of the class corresponding to this object type.
    • getDescriptor

      public String getDescriptor()
      Returns the descriptor corresponding to this Java type.
      Returns:
      the descriptor corresponding to this Java type.
    • getMethodDescriptor

      public static String getMethodDescriptor(Type returnType, Type[] argumentTypes)
      Returns the descriptor corresponding to the given argument and return types.
      Parameters:
      returnType - the return type of the method.
      argumentTypes - the argument types of the method.
      Returns:
      the descriptor corresponding to the given argument and return types.
    • getInternalName

      public static String getInternalName(Class c)
      Returns the internal name of the given class. The internal name of a class is its fully qualified name, where '.' are replaced by '/'.
      Parameters:
      c - an object class.
      Returns:
      the internal name of the given class.
    • getDescriptor

      public static String getDescriptor(Class c)
      Returns the descriptor corresponding to the given Java type.
      Parameters:
      c - an object class, a primitive class or an array class.
      Returns:
      the descriptor corresponding to the given class.
    • getMethodDescriptor

      public static String getMethodDescriptor(Method m)
      Returns the descriptor corresponding to the given method.
      Parameters:
      m - a Method object.
      Returns:
      the descriptor of the given method.
    • getSize

      public int getSize()
      Returns the size of values of this type.
      Returns:
      the size of values of this type, i.e., 2 for long and double, and 1 otherwise.
    • getOpcode

      public int getOpcode(int opcode)
      Returns a JVM instruction opcode adapted to this Java type.
      Parameters:
      opcode - a JVM instruction opcode. This opcode must be one of ILOAD, ISTORE, IALOAD, IASTORE, IADD, ISUB, IMUL, IDIV, IREM, INEG, ISHL, ISHR, IUSHR, IAND, IOR, IXOR and IRETURN.
      Returns:
      an opcode that is similar to the given opcode, but adapted to this Java type. For example, if this type is float and opcode is IRETURN, this method returns FRETURN.