Class Type

    • Field Detail

      • 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
      • VOID

        public static final BasicType VOID
        Predefined constants
      • BOOLEAN

        public static final BasicType BOOLEAN
      • DOUBLE

        public static final BasicType DOUBLE
      • STRINGBUFFER

        public static final ObjectType STRINGBUFFER
      • THROWABLE

        public static final ObjectType THROWABLE
      • NO_ARGS

        public static final Type[] NO_ARGS
      • UNKNOWN

        public static final Type UNKNOWN
    • Constructor Detail

      • Type

        protected Type​(byte t,
                       java.lang.String s)
    • Method Detail

      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
        Returns:
        hashcode of Type
      • equals

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

        public java.lang.String getSignature()
        Returns:
        signature for given type.
      • getType

        public byte getType()
        Returns:
        type as defined in Constants
      • 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.
        Since:
        6.0
      • getSize

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

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
        Returns:
        Type string, e.g. `int[]'
      • getMethodSignature

        public static java.lang.String getMethodSignature​(Type return_type,
                                                          Type[] arg_types)
        Convert type to Java method signature, e.g. int[] f(java.lang.String x) becomes (Ljava/lang/String;)[I
        Parameters:
        return_type - what the method returns
        arg_types - what are the argument types
        Returns:
        method signature for given type(s).
      • 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
      • 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
      • 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
      • getType

        public static Type getType​(java.lang.Class<?> cl)
        Convert runtime java.lang.Class to BCEL Type object.
        Parameters:
        cl - Java class
        Returns:
        corresponding Type object
      • 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
      • getSignature

        public static java.lang.String getSignature​(java.lang.reflect.Method meth)