Package jodd.asm
Class AsmUtil
- java.lang.Object
-
- jodd.asm.AsmUtil
-
public class AsmUtil extends java.lang.ObjectGeneric ASM utils.
-
-
Field Summary
Fields Modifier and Type Field Description static intACC_ABSTRACTstatic intACC_ANNOTATIONstatic intACC_BRIDGEstatic intACC_ENUMstatic intACC_FINALstatic intACC_INTERFACEstatic intACC_NATIVEstatic intACC_PRIVATEstatic intACC_PROTECTEDstatic intACC_PUBLICstatic intACC_STATICstatic intACC_STRICTstatic intACC_SUPERstatic intACC_SYNCHRONIZEDstatic intACC_SYNTHETICstatic intACC_TRANSIENTstatic intACC_VARARGSstatic intACC_VOLATILEstatic java.lang.StringL_SIGNATURE_JAVA_LANG_CLASSstatic java.lang.StringL_SIGNATURE_JAVA_LANG_OBJECTstatic java.lang.StringL_SIGNATURE_JAVA_LANG_STRINGstatic java.lang.StringSIGNATURE_JAVA_LANG_BOOLEANstatic java.lang.StringSIGNATURE_JAVA_LANG_BYTEstatic java.lang.StringSIGNATURE_JAVA_LANG_CHARACTERstatic java.lang.StringSIGNATURE_JAVA_LANG_CLASSstatic java.lang.StringSIGNATURE_JAVA_LANG_DOUBLEstatic java.lang.StringSIGNATURE_JAVA_LANG_FLOATstatic java.lang.StringSIGNATURE_JAVA_LANG_INTEGERstatic java.lang.StringSIGNATURE_JAVA_LANG_LONGstatic java.lang.StringSIGNATURE_JAVA_LANG_OBJECTstatic java.lang.StringSIGNATURE_JAVA_LANG_SHORTstatic java.lang.StringSIGNATURE_JAVA_LANG_VOIDstatic intTYPE_ANNOTATIONstatic intTYPE_ARRAYstatic intTYPE_BOOLEANstatic intTYPE_BYTEstatic intTYPE_CHARstatic intTYPE_DOUBLEstatic intTYPE_FLOATstatic intTYPE_INTstatic intTYPE_LONGstatic intTYPE_REFERENCEstatic intTYPE_SHORTstatic intTYPE_VOID
-
Constructor Summary
Constructors Constructor Description AsmUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static voidbooleanValue(MethodVisitor mv)ConvertsBooleanobject to aboolean.static voidbyteValue(MethodVisitor mv)ConvertsByteobject to abyte.static voidcharValue(MethodVisitor mv)ConvertsCharacterobject to achar.static voiddoubleValue(MethodVisitor mv)ConvertsDoubleobject to adouble.static voidfloatValue(MethodVisitor mv)ConvertsFloatobject to afloat.static voidintValue(MethodVisitor mv)ConvertsIntegerobject to anint.static voidlongValue(MethodVisitor mv)ConvertsLongobject to along.static java.lang.StringremoveGenericsFromSignature(java.lang.String signature)static voidshortValue(MethodVisitor mv)ConvertsShortobject to ashort.static java.lang.Stringtypedesc2ClassName(java.lang.String desc)Converts bytecode-like description to java class name that can be loaded with a classloader.static java.lang.StringtypedescToSignature(java.lang.String desc)Returns java-like signature of a bytecode-like description.static java.lang.StringtypedescToSignature(java.lang.String desc, MutableInteger from)Returns java-like signature of a bytecode-like description.static chartypeNameToOpcode(java.lang.String typeName)Returns type-name to type char.static java.lang.Stringtyperef2Name(java.lang.String desc)Converts type reference to java-name.static java.lang.StringtypeToSignature(java.lang.Class type)Converts java-class name ("foo.Bar") to bytecode-name ("foo/bar").static java.lang.StringtypeToSignature(java.lang.String className)Converts java-class name ("foo.Bar") to bytecode-signature ("foo/bar").static java.lang.StringtypeToTyperef(java.lang.Class type)Converts type to byteccode type ref.static voidvalueOfBoolean(MethodVisitor mv)static voidvalueOfByte(MethodVisitor mv)static voidvalueOfCharacter(MethodVisitor mv)static voidvalueOfDouble(MethodVisitor mv)static voidvalueOfFloat(MethodVisitor mv)static voidvalueOfInteger(MethodVisitor mv)static voidvalueOfLong(MethodVisitor mv)static voidvalueOfShort(MethodVisitor mv)
-
-
-
Field Detail
-
TYPE_BYTE
public static final int TYPE_BYTE
- See Also:
- Constant Field Values
-
TYPE_CHAR
public static final int TYPE_CHAR
- See Also:
- Constant Field Values
-
TYPE_DOUBLE
public static final int TYPE_DOUBLE
- See Also:
- Constant Field Values
-
TYPE_FLOAT
public static final int TYPE_FLOAT
- See Also:
- Constant Field Values
-
TYPE_INT
public static final int TYPE_INT
- See Also:
- Constant Field Values
-
TYPE_LONG
public static final int TYPE_LONG
- See Also:
- Constant Field Values
-
TYPE_REFERENCE
public static final int TYPE_REFERENCE
- See Also:
- Constant Field Values
-
TYPE_SHORT
public static final int TYPE_SHORT
- See Also:
- Constant Field Values
-
TYPE_BOOLEAN
public static final int TYPE_BOOLEAN
- See Also:
- Constant Field Values
-
TYPE_VOID
public static final int TYPE_VOID
- See Also:
- Constant Field Values
-
TYPE_ARRAY
public static final int TYPE_ARRAY
- See Also:
- Constant Field Values
-
TYPE_ANNOTATION
public static final int TYPE_ANNOTATION
- See Also:
- Constant Field Values
-
ACC_PUBLIC
public static final int ACC_PUBLIC
- See Also:
- Constant Field Values
-
ACC_PRIVATE
public static final int ACC_PRIVATE
- See Also:
- Constant Field Values
-
ACC_PROTECTED
public static final int ACC_PROTECTED
- See Also:
- Constant Field Values
-
ACC_STATIC
public static final int ACC_STATIC
- See Also:
- Constant Field Values
-
ACC_FINAL
public static final int ACC_FINAL
- See Also:
- Constant Field Values
-
ACC_SUPER
public static final int ACC_SUPER
- See Also:
- Constant Field Values
-
ACC_SYNCHRONIZED
public static final int ACC_SYNCHRONIZED
- See Also:
- Constant Field Values
-
ACC_VOLATILE
public static final int ACC_VOLATILE
- See Also:
- Constant Field Values
-
ACC_BRIDGE
public static final int ACC_BRIDGE
- See Also:
- Constant Field Values
-
ACC_VARARGS
public static final int ACC_VARARGS
- See Also:
- Constant Field Values
-
ACC_TRANSIENT
public static final int ACC_TRANSIENT
- See Also:
- Constant Field Values
-
ACC_NATIVE
public static final int ACC_NATIVE
- See Also:
- Constant Field Values
-
ACC_INTERFACE
public static final int ACC_INTERFACE
- See Also:
- Constant Field Values
-
ACC_ABSTRACT
public static final int ACC_ABSTRACT
- See Also:
- Constant Field Values
-
ACC_STRICT
public static final int ACC_STRICT
- See Also:
- Constant Field Values
-
ACC_SYNTHETIC
public static final int ACC_SYNTHETIC
- See Also:
- Constant Field Values
-
ACC_ANNOTATION
public static final int ACC_ANNOTATION
- See Also:
- Constant Field Values
-
ACC_ENUM
public static final int ACC_ENUM
- See Also:
- Constant Field Values
-
SIGNATURE_JAVA_LANG_OBJECT
public static final java.lang.String SIGNATURE_JAVA_LANG_OBJECT
- See Also:
- Constant Field Values
-
SIGNATURE_JAVA_LANG_CLASS
public static final java.lang.String SIGNATURE_JAVA_LANG_CLASS
- See Also:
- Constant Field Values
-
SIGNATURE_JAVA_LANG_BYTE
public static final java.lang.String SIGNATURE_JAVA_LANG_BYTE
- See Also:
- Constant Field Values
-
SIGNATURE_JAVA_LANG_CHARACTER
public static final java.lang.String SIGNATURE_JAVA_LANG_CHARACTER
- See Also:
- Constant Field Values
-
SIGNATURE_JAVA_LANG_SHORT
public static final java.lang.String SIGNATURE_JAVA_LANG_SHORT
- See Also:
- Constant Field Values
-
SIGNATURE_JAVA_LANG_INTEGER
public static final java.lang.String SIGNATURE_JAVA_LANG_INTEGER
- See Also:
- Constant Field Values
-
SIGNATURE_JAVA_LANG_BOOLEAN
public static final java.lang.String SIGNATURE_JAVA_LANG_BOOLEAN
- See Also:
- Constant Field Values
-
SIGNATURE_JAVA_LANG_LONG
public static final java.lang.String SIGNATURE_JAVA_LANG_LONG
- See Also:
- Constant Field Values
-
SIGNATURE_JAVA_LANG_FLOAT
public static final java.lang.String SIGNATURE_JAVA_LANG_FLOAT
- See Also:
- Constant Field Values
-
SIGNATURE_JAVA_LANG_DOUBLE
public static final java.lang.String SIGNATURE_JAVA_LANG_DOUBLE
- See Also:
- Constant Field Values
-
SIGNATURE_JAVA_LANG_VOID
public static final java.lang.String SIGNATURE_JAVA_LANG_VOID
- See Also:
- Constant Field Values
-
L_SIGNATURE_JAVA_LANG_OBJECT
public static final java.lang.String L_SIGNATURE_JAVA_LANG_OBJECT
- See Also:
- Constant Field Values
-
L_SIGNATURE_JAVA_LANG_STRING
public static final java.lang.String L_SIGNATURE_JAVA_LANG_STRING
- See Also:
- Constant Field Values
-
L_SIGNATURE_JAVA_LANG_CLASS
public static final java.lang.String L_SIGNATURE_JAVA_LANG_CLASS
- See Also:
- Constant Field Values
-
-
Method Detail
-
typedesc2ClassName
public static java.lang.String typedesc2ClassName(java.lang.String desc)
Converts bytecode-like description to java class name that can be loaded with a classloader. Uses less-known feature of class loaders for loading array classes.
-
typeref2Name
public static java.lang.String typeref2Name(java.lang.String desc)
Converts type reference to java-name.
-
typeNameToOpcode
public static char typeNameToOpcode(java.lang.String typeName)
Returns type-name to type char. Arrays are not supported.
-
typedescToSignature
public static java.lang.String typedescToSignature(java.lang.String desc)
Returns java-like signature of a bytecode-like description.
-
typedescToSignature
public static java.lang.String typedescToSignature(java.lang.String desc, MutableInteger from)Returns java-like signature of a bytecode-like description. Only first description is parsed. The field signature represents the value of an argument to a function or the value of a variable. It is a series of bytes generated by the following grammar:
This method converts this string into a Java type declaration such as<field_signature> ::= <field_type> <field_type> ::= <base_type>|<object_type>|<array_type> <base_type> ::= B|C|D|F|I|J|S|Z <object_type> ::= L<fullclassname>; <array_type> ::= [<field_type> The meaning of the base types is as follows: B byte signed byte C char character D double double precision IEEE float F float single precision IEEE float I int integer J long long integer L<fullclassname>; ... an object of the given class S short signed short Z boolean true or false [<field sig> ... arrayString[].
-
typeToSignature
public static java.lang.String typeToSignature(java.lang.String className)
Converts java-class name ("foo.Bar") to bytecode-signature ("foo/bar").
-
typeToSignature
public static java.lang.String typeToSignature(java.lang.Class type)
Converts java-class name ("foo.Bar") to bytecode-name ("foo/bar").
-
typeToTyperef
public static java.lang.String typeToTyperef(java.lang.Class type)
Converts type to byteccode type ref.
-
intValue
public static void intValue(MethodVisitor mv)
ConvertsIntegerobject to anint.
-
longValue
public static void longValue(MethodVisitor mv)
ConvertsLongobject to along.
-
floatValue
public static void floatValue(MethodVisitor mv)
ConvertsFloatobject to afloat.
-
doubleValue
public static void doubleValue(MethodVisitor mv)
ConvertsDoubleobject to adouble.
-
byteValue
public static void byteValue(MethodVisitor mv)
ConvertsByteobject to abyte.
-
shortValue
public static void shortValue(MethodVisitor mv)
ConvertsShortobject to ashort.
-
booleanValue
public static void booleanValue(MethodVisitor mv)
ConvertsBooleanobject to aboolean.
-
charValue
public static void charValue(MethodVisitor mv)
ConvertsCharacterobject to achar.
-
valueOfInteger
public static void valueOfInteger(MethodVisitor mv)
-
valueOfLong
public static void valueOfLong(MethodVisitor mv)
-
valueOfFloat
public static void valueOfFloat(MethodVisitor mv)
-
valueOfDouble
public static void valueOfDouble(MethodVisitor mv)
-
valueOfByte
public static void valueOfByte(MethodVisitor mv)
-
valueOfShort
public static void valueOfShort(MethodVisitor mv)
-
valueOfBoolean
public static void valueOfBoolean(MethodVisitor mv)
-
valueOfCharacter
public static void valueOfCharacter(MethodVisitor mv)
-
removeGenericsFromSignature
public static java.lang.String removeGenericsFromSignature(java.lang.String signature)
-
-