Class SignatureParser
- java.lang.Object
-
- org.codehaus.janino.util.signature.SignatureParser
-
public class SignatureParser extends java.lang.ObjectHelper class for parsing signatures and descriptors. See Java 5 class file format, section 4.4.4, "Signatures".The various structures that the parser returns (e.g.
SignatureParser.ClassTypeSignature) all haveObject.toString()methods that convert them into nice, human-readable strings. This conversion can be customized usingSignatureParser(Options)and passing a customSignatureParser.Optionsobject.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classSignatureParser.ArrayTypeSignatureRepresentation of the "ArrayTypeSignature" clause.static classSignatureParser.ClassSignatureRepresentation of the "ClassSignature" clause.static classSignatureParser.ClassTypeSignatureRepresentation of the "ClassTypeSignature" clause, e.g.static interfaceSignatureParser.FieldTypeSignatureRepresentation of the "FieldTypeSignature" clause.static interfaceSignatureParser.FieldTypeSignatureVisitor<T,EX extends java.lang.Throwable>static classSignatureParser.FormalTypeParameterRepresentation of the "FormalTypeParameter" clause, e.g.static classSignatureParser.MethodTypeSignatureRepresentation of the "MethodTypeSignature" clause.static interfaceSignatureParser.Optionsstatic classSignatureParser.PrimitiveTypeSignatureRepresentation of the "PrimitiveTypeSignature" clause, i.e.static classSignatureParser.SignatureExceptionSignalizes am malformed signature.static classSignatureParser.SimpleClassTypeSignatureRepresentation of the "SimpleClassTypeSignature" clause, e.g.static interfaceSignatureParser.ThrowsSignatureRepresentation of the "ThrowsSignature" clause.static classSignatureParser.TypeArgumentRepresentation of the "TypeArgument" clause.static interfaceSignatureParser.TypeSignatureRepresentation of the "TypeSignature" clause.static classSignatureParser.TypeVariableSignatureRepresentation of the "TypeVariableSignature" clause, e.g.
-
Field Summary
-
Constructor Summary
Constructors Constructor Description SignatureParser()SignatureParser(SignatureParser.Options options)
-
Method Summary
-
-
-
Field Detail
-
DEFAULT_OPTIONS
public static final SignatureParser.Options DEFAULT_OPTIONS
A trivial implementation ofSignatureParser.Options.
-
options
private SignatureParser.Options options
-
object
public final SignatureParser.ClassTypeSignature object
The class type signature of theObjectclass.
-
BYTE
public static final SignatureParser.PrimitiveTypeSignature BYTE
The primitive 'byte' type.
-
CHAR
public static final SignatureParser.PrimitiveTypeSignature CHAR
The primitive 'char' type.
-
DOUBLE
public static final SignatureParser.PrimitiveTypeSignature DOUBLE
The primitive 'double' type.
-
FLOAT
public static final SignatureParser.PrimitiveTypeSignature FLOAT
The primitive 'float' type.
-
INT
public static final SignatureParser.PrimitiveTypeSignature INT
The primitive 'int' type.
-
LONG
public static final SignatureParser.PrimitiveTypeSignature LONG
The primitive 'long' type.
-
SHORT
public static final SignatureParser.PrimitiveTypeSignature SHORT
The primitive 'short' type.
-
BOOLEAN
public static final SignatureParser.PrimitiveTypeSignature BOOLEAN
The primitive 'boolean' type.
-
VOID
public static final SignatureParser.TypeSignature VOID
Representation of the 'void' type.
-
PRIMITIVE_TYPES
private static final SignatureParser.PrimitiveTypeSignature[] PRIMITIVE_TYPES
-
-
Constructor Detail
-
SignatureParser
public SignatureParser()
-
SignatureParser
public SignatureParser(SignatureParser.Options options)
-
-
Method Detail
-
decodeClassSignature
public SignatureParser.ClassSignature decodeClassSignature(java.lang.String s) throws SignatureParser.SignatureException
Decodes a 'class signature' as defined in JVMS7 4.3.4 / JVMS8 4.7.9.1.
-
decodeMethodTypeSignature
public SignatureParser.MethodTypeSignature decodeMethodTypeSignature(java.lang.String s) throws SignatureParser.SignatureException
Decodes a 'method type signature' as defined in JVMS7 4.3.4 / JVMS8 4.7.9.1.
-
decodeTypeSignature
public SignatureParser.TypeSignature decodeTypeSignature(java.lang.String s) throws SignatureParser.SignatureException
Decodes a 'type signature' as defined in JVMS7 4.3.4 / JVMS8 4.7.9.1.
-
decodeFieldTypeSignature
public SignatureParser.FieldTypeSignature decodeFieldTypeSignature(java.lang.String s) throws SignatureParser.SignatureException
Decodes a 'field type signature' as defined in JVMS7 4.3.4 / JVMS8 4.7.9.1.
-
decodeMethodDescriptor
public SignatureParser.MethodTypeSignature decodeMethodDescriptor(java.lang.String s) throws SignatureParser.SignatureException
Decodes a 'method descriptor' as defined in JVMS[78] 4.3.3.- Returns:
- E.g.
"(Object[]) => java.util.stream.Stream"or"join()"(void method) - Throws:
SignatureParser.SignatureException
-
decodeClassName
private SignatureParser.TypeSignature decodeClassName(java.lang.String internalName)
-
decodeFieldDescriptor
public SignatureParser.TypeSignature decodeFieldDescriptor(java.lang.String s) throws SignatureParser.SignatureException
Decodes a 'field descriptor' as defined in JLS7 4.3.2.
-
decodeClassNameOrFieldDescriptor
public SignatureParser.TypeSignature decodeClassNameOrFieldDescriptor(java.lang.String s) throws SignatureParser.SignatureException
Decodes a "class-name-or-field-descriptor" as defined in JLS8 4.4.1 ("name_index").
-
decodeReturnType
public SignatureParser.TypeSignature decodeReturnType(java.lang.String s) throws SignatureParser.SignatureException
Decodes a 'return type' as defined in JVMS7 4.3.4 / JVMS8 4.7.9.1.
-
parseFieldDescriptor
private SignatureParser.TypeSignature parseFieldDescriptor(StringCharStream scs) throws java.io.EOFException, UnexpectedCharacterException, SignatureParser.SignatureException
- Throws:
java.io.EOFExceptionUnexpectedCharacterExceptionSignatureParser.SignatureException
-
parseMethodDescriptor
private SignatureParser.MethodTypeSignature parseMethodDescriptor(StringCharStream scs) throws java.io.EOFException, UnexpectedCharacterException, SignatureParser.SignatureException
- Throws:
java.io.EOFExceptionUnexpectedCharacterExceptionSignatureParser.SignatureException
-
parseClassSignature
private SignatureParser.ClassSignature parseClassSignature(StringCharStream scs) throws java.io.EOFException, SignatureParser.SignatureException, UnexpectedCharacterException
- Throws:
java.io.EOFExceptionSignatureParser.SignatureExceptionUnexpectedCharacterException
-
parseMethodTypeSignature
private SignatureParser.MethodTypeSignature parseMethodTypeSignature(StringCharStream scs) throws java.io.EOFException, UnexpectedCharacterException, SignatureParser.SignatureException
- Throws:
java.io.EOFExceptionUnexpectedCharacterExceptionSignatureParser.SignatureException
-
parseReturnType
private SignatureParser.TypeSignature parseReturnType(StringCharStream scs) throws java.io.EOFException, UnexpectedCharacterException, SignatureParser.SignatureException
- Throws:
java.io.EOFExceptionUnexpectedCharacterExceptionSignatureParser.SignatureException
-
parseThrowsSignature
private SignatureParser.ThrowsSignature parseThrowsSignature(StringCharStream scs) throws java.io.EOFException, UnexpectedCharacterException, SignatureParser.SignatureException
- Throws:
java.io.EOFExceptionUnexpectedCharacterExceptionSignatureParser.SignatureException
-
parseClassTypeSignature
private SignatureParser.ClassTypeSignature parseClassTypeSignature(StringCharStream scs) throws java.io.EOFException, UnexpectedCharacterException, SignatureParser.SignatureException
- Throws:
java.io.EOFExceptionUnexpectedCharacterExceptionSignatureParser.SignatureException
-
parseIdentifier
private static java.lang.String parseIdentifier(StringCharStream scs) throws java.io.EOFException, SignatureParser.SignatureException
- Throws:
java.io.EOFExceptionSignatureParser.SignatureException
-
parseIdentifierRest
private static java.lang.String parseIdentifierRest(StringCharStream scs) throws java.io.EOFException, SignatureParser.SignatureException
- Throws:
java.io.EOFExceptionSignatureParser.SignatureException
-
parseTypeVariableSignature
private static SignatureParser.TypeVariableSignature parseTypeVariableSignature(StringCharStream scs) throws java.io.EOFException, UnexpectedCharacterException, SignatureParser.SignatureException
- Throws:
java.io.EOFExceptionUnexpectedCharacterExceptionSignatureParser.SignatureException
-
parseFormalTypeParameter
private SignatureParser.FormalTypeParameter parseFormalTypeParameter(StringCharStream scs) throws java.io.EOFException, SignatureParser.SignatureException, UnexpectedCharacterException
- Throws:
java.io.EOFExceptionSignatureParser.SignatureExceptionUnexpectedCharacterException
-
parseTypeSignature
private SignatureParser.TypeSignature parseTypeSignature(StringCharStream scs) throws java.io.EOFException, UnexpectedCharacterException, SignatureParser.SignatureException
- Throws:
java.io.EOFExceptionUnexpectedCharacterExceptionSignatureParser.SignatureException
-
parseFieldTypeSignature
private SignatureParser.FieldTypeSignature parseFieldTypeSignature(StringCharStream scs) throws java.io.EOFException, UnexpectedCharacterException, SignatureParser.SignatureException
- Throws:
java.io.EOFExceptionUnexpectedCharacterExceptionSignatureParser.SignatureException
-
parseArrayTypeSignature
private SignatureParser.FieldTypeSignature parseArrayTypeSignature(StringCharStream scs) throws java.io.EOFException, UnexpectedCharacterException, SignatureParser.SignatureException
- Throws:
java.io.EOFExceptionUnexpectedCharacterExceptionSignatureParser.SignatureException
-
parseTypeArgument
private SignatureParser.TypeArgument parseTypeArgument(StringCharStream scs) throws java.io.EOFException, UnexpectedCharacterException, SignatureParser.SignatureException
- Throws:
java.io.EOFExceptionUnexpectedCharacterExceptionSignatureParser.SignatureException
-
-