Class Type

    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected Type​(byte type, java.lang.String signature)
      Constructs a Type.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean equals​(java.lang.Object o)  
      static Type[] getArgumentTypes​(java.lang.String signature)
      Convert arguments of a method (signature) to an array of Type objects.
      java.lang.String getClassName()
      Gets the class name.
      static java.lang.String getMethodSignature​(Type returnType, Type[] argTypes)
      Convert type to Java method signature, for example int[] f(java.lang.String x) becomes (Ljava/lang/String;)[I
      static Type getReturnType​(java.lang.String signature)
      Convert return value of a method (signature) to a Type object.
      java.lang.String getSignature()
      Gets the signature for this type.
      static java.lang.String getSignature​(java.lang.reflect.Method meth)
      Gets the signature for a method.
      int getSize()
      Gets the stack size of this type.
      byte getType()
      Gets the type as defined in Constants.
      static Type getType​(java.lang.Class<?> cls)
      Convert runtime Class to BCEL Type object.
      static Type getType​(java.lang.String signature)
      Convert signature to a Type object.
      static Type[] getTypes​(java.lang.Class<?>[] classes)
      Convert runtime java.lang.Class[] to BCEL Type objects.
      int hashCode()
      Gets the hash code of this Type.
      Type normalizeForStackOrLocal()
      boolean, short and char variable are considered as int in the stack or local variable area.
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Field Detail

      • BOOLEAN

        public static final BasicType BOOLEAN
        Predefined constant for boolean type.
      • INT

        public static final BasicType INT
        Predefined constant for int type.
      • SHORT

        public static final BasicType SHORT
        Predefined constant for short type.
      • BYTE

        public static final BasicType BYTE
        Predefined constant for byte type.
      • LONG

        public static final BasicType LONG
        Predefined constant for long type.
      • DOUBLE

        public static final BasicType DOUBLE
        Predefined constant for double type.
      • FLOAT

        public static final BasicType FLOAT
        Predefined constant for float type.
      • CHAR

        public static final BasicType CHAR
        Predefined constant for char type.
      • OBJECT

        public static final ObjectType OBJECT
        Predefined constant for Object type.
      • CLASS

        public static final ObjectType CLASS
        Predefined constant for Class type.
      • STRING

        public static final ObjectType STRING
        Predefined constant for String type.
      • NO_ARGS

        public static final Type[] NO_ARGS
        Empty array.
      • UNKNOWN

        public static final Type UNKNOWN
        Predefined constant for unknown type.
      • type

        @Deprecated
        protected byte type
        Deprecated.
        (since 6.0) will be made private; do not access directly, use getter/setter
      • signature

        @Deprecated
        protected java.lang.String signature
        Deprecated.
        (since 6.0) will be made private; do not access directly, use getter/setter
    • Constructor Detail

      • Type

        protected Type​(byte type,
                       java.lang.String signature)
        Constructs a Type.
        Parameters:
        type - The type constant.
        signature - The type signature.
    • Method Detail

      • getArgumentTypes

        public static Type[] getArgumentTypes​(java.lang.String signature)
        Convert arguments of a method (signature) to an array of Type objects.
        Parameters:
        signature - signature string such as (Ljava/lang/String;)V.
        Returns:
        array of argument types.
      • getMethodSignature

        public static java.lang.String getMethodSignature​(Type returnType,
                                                          Type[] argTypes)
        Convert type to Java method signature, for example int[] f(java.lang.String x) becomes (Ljava/lang/String;)[I
        Parameters:
        returnType - what the method returns.
        argTypes - what are the argument types.
        Returns:
        method signature for given type(s).
      • getReturnType

        public static Type getReturnType​(java.lang.String signature)
        Convert return value of a method (signature) to a Type object.
        Parameters:
        signature - signature string such as (Ljava/lang/String;)V.
        Returns:
        return type.
      • getSignature

        public static java.lang.String getSignature​(java.lang.reflect.Method meth)
        Gets the signature for a method.
        Parameters:
        meth - The method.
        Returns:
        The method signature.
      • getType

        public static Type getType​(java.lang.Class<?> cls)
        Convert runtime Class to BCEL Type object.
        Parameters:
        cls - Java class.
        Returns:
        corresponding Type object.
      • getType

        public static Type getType​(java.lang.String signature)
                            throws java.lang.StringIndexOutOfBoundsException
        Convert signature to a Type object.
        Parameters:
        signature - signature string such as Ljava/lang/String;.
        Returns:
        type object.
        Throws:
        java.lang.StringIndexOutOfBoundsException
      • getTypes

        public static Type[] getTypes​(java.lang.Class<?>[] classes)
        Convert runtime java.lang.Class[] to BCEL Type objects.
        Parameters:
        classes - An array of runtime class objects.
        Returns:
        array of corresponding Type objects.
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
        Returns:
        whether the Types are equal.
      • getClassName

        public java.lang.String getClassName()
        Gets the class name.
        Returns:
        The class name.
      • getSignature

        public java.lang.String getSignature()
        Gets the signature for this type.
        Returns:
        signature for given type.
      • getSize

        public int getSize()
        Gets the stack size of this type.
        Returns:
        stack size of this type (2 for long and double, 0 for void, 1 otherwise).
      • getType

        public byte getType()
        Gets the type as defined in Constants.
        Returns:
        type as defined in Constants.
      • hashCode

        public int hashCode()
        Gets the hash code of this Type.
        Overrides:
        hashCode in class java.lang.Object
        Returns:
        hash code of Type.
      • normalizeForStackOrLocal

        public Type normalizeForStackOrLocal()
        boolean, short and char variable are considered as int in the stack or local variable area. Returns INT for BOOLEAN, SHORT or CHAR, otherwise returns the given type.
        Returns:
        The normalized type.
        Since:
        6.0
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
        Returns:
        Type string, for example 'int[]'.