Package org.codehaus.janino
Class Descriptor
- java.lang.Object
-
- org.codehaus.janino.Descriptor
-
public final class Descriptor extends java.lang.ObjectHelper class that defines useful methods for handling "field descriptors" (JVMS 4.3.2) and "method descriptors" (JVMS 4.3.3).Typical descriptors are:
IInteger[IArray of integerLpkg1/pkg2/Cls;ClassLpkg1/pkg2/Outer$Inner;Member class
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringBOOLEANThe field descriptor for the primitive type BOOLEAN.static java.lang.StringBYTEThe field descriptor for the primitive type BYTE.static java.lang.StringCHARThe field descriptor for the primitive type CHAR.static java.lang.StringDOUBLEThe field descriptor for the primitive type DOUBLE.static java.lang.StringFLOATThe field descriptor for the primitive type FLOAT.static java.lang.StringINTThe field descriptor for the primitive type INT.static java.lang.StringJAVA_IO_SERIALIZABLEThe field descriptor for the interfaceSerializable.static java.lang.StringJAVA_LANG_ASSERTIONERRORThe field descriptor for the wrapper classAssertionError.static java.lang.StringJAVA_LANG_BOOLEANThe field descriptor for the wrapper classBoolean.static java.lang.StringJAVA_LANG_BYTEThe field descriptor for the wrapper classByte.static java.lang.StringJAVA_LANG_CHARACTERThe field descriptor for the wrapper classCharacter.static java.lang.StringJAVA_LANG_CLASSThe field descriptor for the classClass.static java.lang.StringJAVA_LANG_CLONEABLEThe field descriptor for the interfaceCloneable.static java.lang.StringJAVA_LANG_DOUBLEThe field descriptor for the wrapper classDouble.static java.lang.StringJAVA_LANG_ERRORThe field descriptor for the classError.static java.lang.StringJAVA_LANG_FLOATThe field descriptor for the wrapper classFloat.static java.lang.StringJAVA_LANG_INTEGERThe field descriptor for the wrapper classInteger.static java.lang.StringJAVA_LANG_LONGThe field descriptor for the wrapper classLong.static java.lang.StringJAVA_LANG_OBJECTThe field descriptor for the classObject.static java.lang.StringJAVA_LANG_OVERRIDEThe field descriptor for the annotationOverride.static java.lang.StringJAVA_LANG_RUNTIMEEXCEPTIONThe field descriptor for the classRuntimeException.static java.lang.StringJAVA_LANG_SHORTThe field descriptor for the wrapper classShort.static java.lang.StringJAVA_LANG_STRINGThe field descriptor for the classString.static java.lang.StringJAVA_LANG_STRINGBUILDERThe field descriptor for the classStringBuilder.static java.lang.StringJAVA_LANG_THROWABLEThe field descriptor for the classThrowable.static java.lang.StringLONGThe field descriptor for the primitive type LONG.static java.lang.StringSHORTThe field descriptor for the primitive type SHORT.static java.lang.StringVOIDThe field descriptor for the type VOID.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static booleanareInSamePackage(java.lang.String d1, java.lang.String d2)Check whether two reference types are declared in the same package.static java.lang.StringfromClassName(java.lang.String className)Convert a class name as defined by "Class.getName()" into a descriptor.static java.lang.StringfromInternalForm(java.lang.String internalForm)Convert a class name in the "internal form" as described in JVMS 4.2 into a descriptor.static java.lang.StringgetComponentDescriptor(java.lang.String d)static java.lang.StringgetPackageName(java.lang.String d)Returns the package name of a class or interface reference descriptor, ornullif the class or interface is declared in the default package.static booleanhasSize1(java.lang.String d)static booleanhasSize2(java.lang.String d)static booleanisArrayReference(java.lang.String d)static booleanisClassOrInterfaceReference(java.lang.String d)static booleanisPrimitive(java.lang.String d)static booleanisPrimitiveNumeric(java.lang.String d)static booleanisReference(java.lang.String d)static shortsize(java.lang.String d)static java.lang.StringtoClassName(java.lang.String d)Convert a field descriptor into a class name as defined byClass.getName().static java.lang.StringtoInternalForm(java.lang.String d)Convert a descriptor into the "internal form" as defined by JVMS 4.2.static java.lang.StringtoString(java.lang.String d)Pretty-prints the given descriptor.
-
-
-
Field Detail
-
VOID
public static final java.lang.String VOID
The field descriptor for the type VOID.- See Also:
- Constant Field Values
-
BYTE
public static final java.lang.String BYTE
The field descriptor for the primitive type BYTE.- See Also:
- Constant Field Values
-
CHAR
public static final java.lang.String CHAR
The field descriptor for the primitive type CHAR.- See Also:
- Constant Field Values
-
DOUBLE
public static final java.lang.String DOUBLE
The field descriptor for the primitive type DOUBLE.- See Also:
- Constant Field Values
-
FLOAT
public static final java.lang.String FLOAT
The field descriptor for the primitive type FLOAT.- See Also:
- Constant Field Values
-
INT
public static final java.lang.String INT
The field descriptor for the primitive type INT.- See Also:
- Constant Field Values
-
LONG
public static final java.lang.String LONG
The field descriptor for the primitive type LONG.- See Also:
- Constant Field Values
-
SHORT
public static final java.lang.String SHORT
The field descriptor for the primitive type SHORT.- See Also:
- Constant Field Values
-
BOOLEAN
public static final java.lang.String BOOLEAN
The field descriptor for the primitive type BOOLEAN.- See Also:
- Constant Field Values
-
JAVA_LANG_OBJECT
public static final java.lang.String JAVA_LANG_OBJECT
The field descriptor for the classObject.- See Also:
- Constant Field Values
-
JAVA_LANG_STRING
public static final java.lang.String JAVA_LANG_STRING
The field descriptor for the classString.- See Also:
- Constant Field Values
-
JAVA_LANG_STRINGBUILDER
public static final java.lang.String JAVA_LANG_STRINGBUILDER
The field descriptor for the classStringBuilder.- See Also:
- Constant Field Values
-
JAVA_LANG_CLASS
public static final java.lang.String JAVA_LANG_CLASS
The field descriptor for the classClass.- See Also:
- Constant Field Values
-
JAVA_LANG_THROWABLE
public static final java.lang.String JAVA_LANG_THROWABLE
The field descriptor for the classThrowable.- See Also:
- Constant Field Values
-
JAVA_LANG_RUNTIMEEXCEPTION
public static final java.lang.String JAVA_LANG_RUNTIMEEXCEPTION
The field descriptor for the classRuntimeException.- See Also:
- Constant Field Values
-
JAVA_LANG_ERROR
public static final java.lang.String JAVA_LANG_ERROR
The field descriptor for the classError.- See Also:
- Constant Field Values
-
JAVA_LANG_CLONEABLE
public static final java.lang.String JAVA_LANG_CLONEABLE
The field descriptor for the interfaceCloneable.- See Also:
- Constant Field Values
-
JAVA_LANG_OVERRIDE
public static final java.lang.String JAVA_LANG_OVERRIDE
The field descriptor for the annotationOverride.- See Also:
- Constant Field Values
-
JAVA_IO_SERIALIZABLE
public static final java.lang.String JAVA_IO_SERIALIZABLE
The field descriptor for the interfaceSerializable.- See Also:
- Constant Field Values
-
JAVA_LANG_ASSERTIONERROR
public static final java.lang.String JAVA_LANG_ASSERTIONERROR
The field descriptor for the wrapper classAssertionError.- See Also:
- Constant Field Values
-
JAVA_LANG_BOOLEAN
public static final java.lang.String JAVA_LANG_BOOLEAN
The field descriptor for the wrapper classBoolean.- See Also:
- Constant Field Values
-
JAVA_LANG_BYTE
public static final java.lang.String JAVA_LANG_BYTE
The field descriptor for the wrapper classByte.- See Also:
- Constant Field Values
-
JAVA_LANG_CHARACTER
public static final java.lang.String JAVA_LANG_CHARACTER
The field descriptor for the wrapper classCharacter.- See Also:
- Constant Field Values
-
JAVA_LANG_SHORT
public static final java.lang.String JAVA_LANG_SHORT
The field descriptor for the wrapper classShort.- See Also:
- Constant Field Values
-
JAVA_LANG_INTEGER
public static final java.lang.String JAVA_LANG_INTEGER
The field descriptor for the wrapper classInteger.- See Also:
- Constant Field Values
-
JAVA_LANG_LONG
public static final java.lang.String JAVA_LANG_LONG
The field descriptor for the wrapper classLong.- See Also:
- Constant Field Values
-
JAVA_LANG_FLOAT
public static final java.lang.String JAVA_LANG_FLOAT
The field descriptor for the wrapper classFloat.- See Also:
- Constant Field Values
-
JAVA_LANG_DOUBLE
public static final java.lang.String JAVA_LANG_DOUBLE
The field descriptor for the wrapper classDouble.- See Also:
- Constant Field Values
-
-
Method Detail
-
isReference
public static boolean isReference(java.lang.String d)
- Returns:
- Whether this
Descriptordescribes a reference (i.e. non-primitive) type
-
isClassOrInterfaceReference
public static boolean isClassOrInterfaceReference(java.lang.String d)
- Returns:
- Whether this
Descriptordescribes a class or an interface (and not an array or a primitive type)
-
isArrayReference
public static boolean isArrayReference(java.lang.String d)
- Returns:
- Whether this
Descriptordescribes an array type
-
getComponentDescriptor
public static java.lang.String getComponentDescriptor(java.lang.String d)
- Returns:
- The descriptor of the component of the array type
d - Throws:
JaninoRuntimeException-ddoes not describe an array type
-
size
public static short size(java.lang.String d)
- Returns:
- The number of slots (1 or two) that a value of the type described by
doccupies on the operand stack or in the local variable array, or 0 iffddescribes the type VOID
-
hasSize1
public static boolean hasSize1(java.lang.String d)
- Returns:
trueiffddescribes a primitive type except LONG and DOUBLE, or a reference type
-
hasSize2
public static boolean hasSize2(java.lang.String d)
- Returns:
trueiffdLONG or DOUBLE
-
toString
public static java.lang.String toString(java.lang.String d)
Pretty-prints the given descriptor.- Parameters:
d- A valid field or method descriptor
-
fromClassName
public static java.lang.String fromClassName(java.lang.String className)
Convert a class name as defined by "Class.getName()" into a descriptor.
-
fromInternalForm
public static java.lang.String fromInternalForm(java.lang.String internalForm)
Convert a class name in the "internal form" as described in JVMS 4.2 into a descriptor.Also implement the encoding of array types as described in JVMS 4.4.1.
-
toClassName
public static java.lang.String toClassName(java.lang.String d)
Convert a field descriptor into a class name as defined byClass.getName().
-
toInternalForm
public static java.lang.String toInternalForm(java.lang.String d)
Convert a descriptor into the "internal form" as defined by JVMS 4.2.
-
isPrimitive
public static boolean isPrimitive(java.lang.String d)
- Returns:
- Whether
ddescribes a primitive type or VOID
-
isPrimitiveNumeric
public static boolean isPrimitiveNumeric(java.lang.String d)
- Returns:
- Whether
ddescribes a primitive type except BOOLEAN and VOID
-
getPackageName
public static java.lang.String getPackageName(java.lang.String d)
Returns the package name of a class or interface reference descriptor, ornullif the class or interface is declared in the default package.
-
areInSamePackage
public static boolean areInSamePackage(java.lang.String d1, java.lang.String d2)Check whether two reference types are declared in the same package.
-
-