Class SignatureParser
- java.lang.Object
-
- org.codehaus.janino.util.signature.SignatureParser
-
public class SignatureParser extends java.lang.Object
Helper 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.Options
object.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
SignatureParser.ArrayTypeSignature
Representation of the "ArrayTypeSignature" clause.static class
SignatureParser.ClassSignature
Representation of the "ClassSignature" clause.static class
SignatureParser.ClassTypeSignature
Representation of the "ClassTypeSignature" clause, e.g.static interface
SignatureParser.FieldTypeSignature
Representation of the "FieldTypeSignature" clause.static interface
SignatureParser.FieldTypeSignatureVisitor<T,EX extends java.lang.Throwable>
static class
SignatureParser.FormalTypeParameter
Representation of the "FormalTypeParameter" clause, e.g.static class
SignatureParser.MethodTypeSignature
Representation of the "MethodTypeSignature" clause.static interface
SignatureParser.Options
static class
SignatureParser.PrimitiveTypeSignature
Representation of the "PrimitiveTypeSignature" clause, i.e.static class
SignatureParser.SignatureException
Signalizes am malformed signature.static class
SignatureParser.SimpleClassTypeSignature
Representation of the "SimpleClassTypeSignature" clause, e.g.static interface
SignatureParser.ThrowsSignature
Representation of the "ThrowsSignature" clause.static class
SignatureParser.TypeArgument
Representation of the "TypeArgument" clause.static interface
SignatureParser.TypeSignature
Representation of the "TypeSignature" clause.static class
SignatureParser.TypeVariableSignature
Representation 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 theObject
class.
-
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.EOFException
UnexpectedCharacterException
SignatureParser.SignatureException
-
parseMethodDescriptor
private SignatureParser.MethodTypeSignature parseMethodDescriptor(StringCharStream scs) throws java.io.EOFException, UnexpectedCharacterException, SignatureParser.SignatureException
- Throws:
java.io.EOFException
UnexpectedCharacterException
SignatureParser.SignatureException
-
parseClassSignature
private SignatureParser.ClassSignature parseClassSignature(StringCharStream scs) throws java.io.EOFException, SignatureParser.SignatureException, UnexpectedCharacterException
- Throws:
java.io.EOFException
SignatureParser.SignatureException
UnexpectedCharacterException
-
parseMethodTypeSignature
private SignatureParser.MethodTypeSignature parseMethodTypeSignature(StringCharStream scs) throws java.io.EOFException, UnexpectedCharacterException, SignatureParser.SignatureException
- Throws:
java.io.EOFException
UnexpectedCharacterException
SignatureParser.SignatureException
-
parseReturnType
private SignatureParser.TypeSignature parseReturnType(StringCharStream scs) throws java.io.EOFException, UnexpectedCharacterException, SignatureParser.SignatureException
- Throws:
java.io.EOFException
UnexpectedCharacterException
SignatureParser.SignatureException
-
parseThrowsSignature
private SignatureParser.ThrowsSignature parseThrowsSignature(StringCharStream scs) throws java.io.EOFException, UnexpectedCharacterException, SignatureParser.SignatureException
- Throws:
java.io.EOFException
UnexpectedCharacterException
SignatureParser.SignatureException
-
parseClassTypeSignature
private SignatureParser.ClassTypeSignature parseClassTypeSignature(StringCharStream scs) throws java.io.EOFException, UnexpectedCharacterException, SignatureParser.SignatureException
- Throws:
java.io.EOFException
UnexpectedCharacterException
SignatureParser.SignatureException
-
parseIdentifier
private static java.lang.String parseIdentifier(StringCharStream scs) throws java.io.EOFException, SignatureParser.SignatureException
- Throws:
java.io.EOFException
SignatureParser.SignatureException
-
parseIdentifierRest
private static java.lang.String parseIdentifierRest(StringCharStream scs) throws java.io.EOFException, SignatureParser.SignatureException
- Throws:
java.io.EOFException
SignatureParser.SignatureException
-
parseTypeVariableSignature
private static SignatureParser.TypeVariableSignature parseTypeVariableSignature(StringCharStream scs) throws java.io.EOFException, UnexpectedCharacterException, SignatureParser.SignatureException
- Throws:
java.io.EOFException
UnexpectedCharacterException
SignatureParser.SignatureException
-
parseFormalTypeParameter
private SignatureParser.FormalTypeParameter parseFormalTypeParameter(StringCharStream scs) throws java.io.EOFException, SignatureParser.SignatureException, UnexpectedCharacterException
- Throws:
java.io.EOFException
SignatureParser.SignatureException
UnexpectedCharacterException
-
parseTypeSignature
private SignatureParser.TypeSignature parseTypeSignature(StringCharStream scs) throws java.io.EOFException, UnexpectedCharacterException, SignatureParser.SignatureException
- Throws:
java.io.EOFException
UnexpectedCharacterException
SignatureParser.SignatureException
-
parseFieldTypeSignature
private SignatureParser.FieldTypeSignature parseFieldTypeSignature(StringCharStream scs) throws java.io.EOFException, UnexpectedCharacterException, SignatureParser.SignatureException
- Throws:
java.io.EOFException
UnexpectedCharacterException
SignatureParser.SignatureException
-
parseArrayTypeSignature
private SignatureParser.FieldTypeSignature parseArrayTypeSignature(StringCharStream scs) throws java.io.EOFException, UnexpectedCharacterException, SignatureParser.SignatureException
- Throws:
java.io.EOFException
UnexpectedCharacterException
SignatureParser.SignatureException
-
parseTypeArgument
private SignatureParser.TypeArgument parseTypeArgument(StringCharStream scs) throws java.io.EOFException, UnexpectedCharacterException, SignatureParser.SignatureException
- Throws:
java.io.EOFException
UnexpectedCharacterException
SignatureParser.SignatureException
-
-