Package org.apache.bcel.generic
Class Type
- java.lang.Object
-
- org.apache.bcel.generic.Type
-
- Direct Known Subclasses:
BasicType,DOUBLE_Upper,LONG_Upper,ReferenceType,ReturnaddressType
public abstract class Type extends java.lang.ObjectAbstract super class for all possible Java types, namely basic types such as int, object types like String and array types, for example int[]
-
-
Field Summary
Fields Modifier and Type Field Description static BasicTypeBOOLEANstatic BasicTypeBYTEstatic BasicTypeCHARstatic ObjectTypeCLASSprivate static java.lang.ThreadLocal<java.lang.Integer>CONSUMED_CHARSstatic BasicTypeDOUBLEstatic BasicTypeFLOATstatic BasicTypeINTstatic BasicTypeLONGstatic Type[]NO_ARGSEmpty array.static ReferenceTypeNULLstatic ObjectTypeOBJECTstatic BasicTypeSHORTprotected java.lang.StringsignatureDeprecated.(since 6.0) will be made private; do not access directly, use getter/setterstatic ObjectTypeSTRINGstatic ObjectTypeSTRINGBUFFERstatic ObjectTypeTHROWABLEprotected bytetypeDeprecated.(since 6.0) will be made private; do not access directly, use getter/setterstatic TypeUNKNOWNstatic BasicTypeVOIDPredefined constants
-
Constructor Summary
Constructors Modifier Constructor Description protectedType(byte type, java.lang.String signature)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) static intconsumed(int coded)(package private) static intencode(int size, int consumed)booleanequals(java.lang.Object o)static Type[]getArgumentTypes(java.lang.String signature)Convert arguments of a method (signature) to an array of Type objects.(package private) static intgetArgumentTypesSize(java.lang.String signature)java.lang.StringgetClassName()Gets the class name.static java.lang.StringgetMethodSignature(Type returnType, Type[] argTypes)Convert type to Java method signature, for example int[] f(java.lang.String x) becomes (Ljava/lang/String;)[Istatic TypegetReturnType(java.lang.String signature)Convert return value of a method (signature) to a Type object.(package private) static intgetReturnTypeSize(java.lang.String signature)java.lang.StringgetSignature()Gets the signature for this type.static java.lang.StringgetSignature(java.lang.reflect.Method meth)intgetSize()Gets the stack size of this type.bytegetType()Gets the type as defined in Constants.static TypegetType(java.lang.Class<?> cls)Convert runtimeClassto BCEL Type object.static TypegetType(java.lang.String signature)Convert signature to a Type object.static Type[]getTypes(java.lang.Class<?>[] classes)Convert runtimejava.lang.Class[]to BCEL Type objects.(package private) static intgetTypeSize(java.lang.String signature)inthashCode()Gets the hash code of this Type.(package private) static java.lang.StringinternalTypeNameToSignature(java.lang.String internalTypeName)TypenormalizeForStackOrLocal()boolean, short and char variable are considered as int in the stack or local variable area.(package private) static intsize(int coded)java.lang.StringtoString()private static intunwrap(java.lang.ThreadLocal<java.lang.Integer> tl)private static voidwrap(java.lang.ThreadLocal<java.lang.Integer> tl, int value)
-
-
-
Field Detail
-
VOID
public static final BasicType VOID
Predefined constants
-
BOOLEAN
public static final BasicType BOOLEAN
-
INT
public static final BasicType INT
-
SHORT
public static final BasicType SHORT
-
BYTE
public static final BasicType BYTE
-
LONG
public static final BasicType LONG
-
DOUBLE
public static final BasicType DOUBLE
-
FLOAT
public static final BasicType FLOAT
-
CHAR
public static final BasicType CHAR
-
OBJECT
public static final ObjectType OBJECT
-
CLASS
public static final ObjectType CLASS
-
STRING
public static final ObjectType STRING
-
STRINGBUFFER
public static final ObjectType STRINGBUFFER
-
THROWABLE
public static final ObjectType THROWABLE
-
NO_ARGS
public static final Type[] NO_ARGS
Empty array.
-
NULL
public static final ReferenceType NULL
-
UNKNOWN
public static final Type UNKNOWN
-
CONSUMED_CHARS
private static final java.lang.ThreadLocal<java.lang.Integer> CONSUMED_CHARS
-
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
-
-
Method Detail
-
consumed
static int consumed(int coded)
-
encode
static int encode(int size, int consumed)
-
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.
-
getArgumentTypesSize
static int getArgumentTypesSize(java.lang.String signature)
-
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.
-
getReturnTypeSize
static int getReturnTypeSize(java.lang.String signature)
-
getSignature
public static java.lang.String getSignature(java.lang.reflect.Method meth)
-
getType
public static Type getType(java.lang.Class<?> cls)
Convert runtimeClassto 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 runtimejava.lang.Class[]to BCEL Type objects.- Parameters:
classes- an array of runtime class objects.- Returns:
- array of corresponding Type objects.
-
getTypeSize
static int getTypeSize(java.lang.String signature) throws java.lang.StringIndexOutOfBoundsException- Throws:
java.lang.StringIndexOutOfBoundsException
-
internalTypeNameToSignature
static java.lang.String internalTypeNameToSignature(java.lang.String internalTypeName)
-
size
static int size(int coded)
-
unwrap
private static int unwrap(java.lang.ThreadLocal<java.lang.Integer> tl)
-
wrap
private static void wrap(java.lang.ThreadLocal<java.lang.Integer> tl, int value)
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equalsin classjava.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:
hashCodein classjava.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. ReturnsINTforBOOLEAN,SHORTorCHAR, otherwise returns the given type.- Returns:
- the normalized type.
- Since:
- 6.0
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object- Returns:
- Type string, for example 'int[]'.
-
-