|
Eclipse JDT 2.0 |
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Object | +--org.eclipse.jdt.core.Signature
Provides methods for encoding and decoding type and method signature strings.
The syntax for a type signature is:
typeSignature ::=
"B" // byte
| "C" // char
| "D" // double
| "F" // float
| "I" // int
| "J" // long
| "S" // short
| "V" // void
| "Z" // boolean
| "L" + binaryTypeName + ";" // resolved named type (i.e., in compiled code)
| "Q" + sourceTypeName + ";" // unresolved named type (i.e., in source code)
| "[" + typeSignature // array of type denoted by typeSignature
Examples:
"[[I" denotes int[][]"Ljava.lang.String;" denotes java.lang.String in compiled code"QString" denotes String in source code"Qjava.lang.String" denotes java.lang.String in source code"[QString" denotes String[] in source codeThe syntax for a method signature is:
methodSignature ::= "(" + paramTypeSignature* + ")" + returnTypeSignature
paramTypeSignature ::= typeSignature
returnTypeSignature ::= typeSignature
Examples:
"()I" denotes int foo()"([Ljava.lang.String;)V" denotes void foo(java.lang.String[]) in compiled code"(QString;)QObject;" denotes Object foo(String) in source codeThis class provides static methods and constants only; it is not intended to be instantiated or subclassed by clients.
| Field Summary | |
static char |
C_ARRAY
Character constant indicating an array type in a signature. |
static char |
C_BOOLEAN
Character constant indicating the primitive type boolean in a signature. |
static char |
C_BYTE
Character constant indicating the primitive type byte in a signature. |
static char |
C_CHAR
Character constant indicating the primitive type char in a signature. |
static char |
C_DOLLAR
Character constant indicating the dollar in a signature. |
static char |
C_DOT
Character constant indicating the dot in a signature. |
static char |
C_DOUBLE
Character constant indicating the primitive type double in a signature. |
static char |
C_FLOAT
Character constant indicating the primitive type float in a signature. |
static char |
C_INT
Character constant indicating the primitive type int in a signature. |
static char |
C_LONG
Character constant indicating the primitive type long in a signature. |
static char |
C_NAME_END
Character constant indicating the end of a named type in a signature. |
static char |
C_PARAM_END
Character constant indicating the end of a parameter type list in a signature. |
static char |
C_PARAM_START
Character constant indicating the start of a parameter type list in a signature. |
static char |
C_RESOLVED
Character constant indicating the start of a resolved, named type in a signature. |
static char |
C_SEMICOLON
Character constant indicating the semicolon in a signature. |
static char |
C_SHORT
Character constant indicating the primitive type short in a signature. |
static char |
C_UNRESOLVED
Character constant indicating the start of an unresolved, named type in a signature. |
static char |
C_VOID
Character constant indicating result type void in a signature. |
static String |
SIG_BOOLEAN
String constant for the signature of the primitive type boolean. |
static String |
SIG_BYTE
String constant for the signature of the primitive type byte. |
static String |
SIG_CHAR
String constant for the signature of the primitive type char. |
static String |
SIG_DOUBLE
String constant for the signature of the primitive type double. |
static String |
SIG_FLOAT
String constant for the signature of the primitive type float. |
static String |
SIG_INT
String constant for the signature of the primitive type int. |
static String |
SIG_LONG
String constant for the signature of the primitive type long. |
static String |
SIG_SHORT
String constant for the signature of the primitive type short. |
static String |
SIG_VOID
String constant for the signature of result type void. |
| Method Summary | |
static char[] |
createArraySignature(char[] typeSignature,
int arrayCount)
Creates a new type signature with the given amount of array nesting added to the given type signature. |
static String |
createArraySignature(String typeSignature,
int arrayCount)
Creates a new type signature with the given amount of array nesting added to the given type signature. |
static char[] |
createCharArrayTypeSignature(char[] typeName,
boolean isResolved)
Creates a new type signature from the given type name encoded as a character array. |
static char[] |
createMethodSignature(char[][] parameterTypes,
char[] returnType)
Creates a method signature from the given parameter and return type signatures. |
static String |
createMethodSignature(String[] parameterTypes,
String returnType)
Creates a method signature from the given parameter and return type signatures. |
static String |
createTypeSignature(char[] typeName,
boolean isResolved)
Creates a new type signature from the given type name encoded as a character array. |
static String |
createTypeSignature(String typeName,
boolean isResolved)
Creates a new type signature from the given type name. |
static int |
getArrayCount(char[] typeSignature)
Returns the array count (array nesting depth) of the given type signature. |
static int |
getArrayCount(String typeSignature)
Returns the array count (array nesting depth) of the given type signature. |
static char[] |
getElementType(char[] typeSignature)
Returns the type signature without any array nesting. |
static String |
getElementType(String typeSignature)
Returns the type signature without any array nesting. |
static int |
getParameterCount(char[] methodSignature)
Returns the number of parameter types in the given method signature. |
static int |
getParameterCount(String methodSignature)
Returns the number of parameter types in the given method signature. |
static char[][] |
getParameterTypes(char[] methodSignature)
Extracts the parameter type signatures from the given method signature. |
static String[] |
getParameterTypes(String methodSignature)
Extracts the parameter type signatures from the given method signature. |
static char[] |
getQualifier(char[] name)
Returns a char array containing all but the last segment of the given dot-separated qualified name. |
static String |
getQualifier(String name)
Returns a string containing all but the last segment of the given dot-separated qualified name. |
static char[] |
getReturnType(char[] methodSignature)
Extracts the return type from the given method signature. |
static String |
getReturnType(String methodSignature)
Extracts the return type from the given method signature. |
static char[] |
getSimpleName(char[] name)
Returns the last segment of the given dot-separated qualified name. |
static String |
getSimpleName(String name)
Returns the last segment of the given dot-separated qualified name. |
static char[][] |
getSimpleNames(char[] name)
Returns all segments of the given dot-separated qualified name. |
static String[] |
getSimpleNames(String name)
Returns all segments of the given dot-separated qualified name. |
static char[] |
toCharArray(char[] signature)
Converts the given type signature to a readable string. |
static char[] |
toCharArray(char[] methodSignature,
char[] methodName,
char[][] parameterNames,
boolean fullyQualifyTypeNames,
boolean includeReturnType)
Converts the given method signature to a readable form. |
static char[] |
toQualifiedName(char[][] segments)
Converts the given array of qualified name segments to a qualified name. |
static String |
toQualifiedName(String[] segments)
Converts the given array of qualified name segments to a qualified name. |
static String |
toString(String signature)
Converts the given type signature to a readable string. |
static String |
toString(String methodSignature,
String methodName,
String[] parameterNames,
boolean fullyQualifyTypeNames,
boolean includeReturnType)
Converts the given method signature to a readable string. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
public static final char C_BOOLEAN
'Z'.
public static final char C_BYTE
'B'.
public static final char C_CHAR
'C'.
public static final char C_DOUBLE
'D'.
public static final char C_FLOAT
'F'.
public static final char C_INT
'I'.
public static final char C_SEMICOLON
';'.
public static final char C_LONG
'J'.
public static final char C_SHORT
'S'.
public static final char C_VOID
'V'.
public static final char C_DOT
'.'.
public static final char C_DOLLAR
'$'.
public static final char C_ARRAY
'['.
public static final char C_RESOLVED
'L'.
public static final char C_UNRESOLVED
'Q'.
public static final char C_NAME_END
';'.
public static final char C_PARAM_START
'('.
public static final char C_PARAM_END
')'.
public static final String SIG_BOOLEAN
"Z".
public static final String SIG_BYTE
"B".
public static final String SIG_CHAR
"C".
public static final String SIG_DOUBLE
"D".
public static final String SIG_FLOAT
"F".
public static final String SIG_INT
"I".
public static final String SIG_LONG
"J".
public static final String SIG_SHORT
"S".
public static final String SIG_VOID
"V".
| Method Detail |
public static char[] createArraySignature(char[] typeSignature,
int arrayCount)
typeSignature - the type signaturearrayCount - the desired number of levels of array nesting
public static String createArraySignature(String typeSignature,
int arrayCount)
typeSignature - the type signaturearrayCount - the desired number of levels of array nesting
public static char[] createMethodSignature(char[][] parameterTypes,
char[] returnType)
parameterTypes - the list of parameter type signaturesreturnType - the return type signature
public static String createMethodSignature(String[] parameterTypes,
String returnType)
parameterTypes - the list of parameter type signaturesreturnType - the return type signature
public static String createTypeSignature(char[] typeName,
boolean isResolved)
createTypeSignature(new String(typeName),isResolved), although
more efficient for callers with character arrays rather than strings. If the
type name is qualified, then it is expected to be dot-based.
typeName - the possibly qualified type nameisResolved - true if the type name is to be considered
resolved (for example, a type name from a binary class file), and
false if the type name is to be considered unresolved
(for example, a type name found in source code)
createTypeSignature(java.lang.String,boolean)
public static char[] createCharArrayTypeSignature(char[] typeName,
boolean isResolved)
createTypeSignature(new String(typeName),isResolved).toCharArray(), although
more efficient for callers with character arrays rather than strings. If the
type name is qualified, then it is expected to be dot-based.
typeName - the possibly qualified type nameisResolved - true if the type name is to be considered
resolved (for example, a type name from a binary class file), and
false if the type name is to be considered unresolved
(for example, a type name found in source code)
createTypeSignature(java.lang.String,boolean)
public static String createTypeSignature(String typeName,
boolean isResolved)
For example:
createTypeSignature("int", hucairz) -> "I"
createTypeSignature("java.lang.String", true) -> "Ljava.lang.String;"
createTypeSignature("String", false) -> "QString;"
createTypeSignature("java.lang.String", false) -> "Qjava.lang.String;"
createTypeSignature("int []", false) -> "[I"
typeName - the possibly qualified type nameisResolved - true if the type name is to be considered
resolved (for example, a type name from a binary class file), and
false if the type name is to be considered unresolved
(for example, a type name found in source code)
public static int getArrayCount(char[] typeSignature)
throws IllegalArgumentException
typeSignature - the type signature
IllegalArgumentException - if the signature is not syntactically
correct
public static int getArrayCount(String typeSignature)
throws IllegalArgumentException
typeSignature - the type signature
IllegalArgumentException - if the signature is not syntactically
correct
public static char[] getElementType(char[] typeSignature)
throws IllegalArgumentException
For example:
getElementType({'[', '[', 'I'}) --> {'I'}.
typeSignature - the type signature
IllegalArgumentException - if the signature is not syntactically
correct
public static String getElementType(String typeSignature)
throws IllegalArgumentException
For example:
getElementType("[[I") --> "I".
typeSignature - the type signature
IllegalArgumentException - if the signature is not syntactically
correct
public static int getParameterCount(char[] methodSignature)
throws IllegalArgumentException
methodSignature - the method signature
IllegalArgumentException - if the signature is not syntactically
correct
public static int getParameterCount(String methodSignature)
throws IllegalArgumentException
methodSignature - the method signature
IllegalArgumentException - if the signature is not syntactically
correct
public static char[][] getParameterTypes(char[] methodSignature)
throws IllegalArgumentException
methodSignature - the method signature
IllegalArgumentException - if the signature is syntactically
incorrect
public static String[] getParameterTypes(String methodSignature)
throws IllegalArgumentException
methodSignature - the method signature
IllegalArgumentException - if the signature is syntactically
incorrectpublic static char[] getQualifier(char[] name)
For example:
getQualifier({'j', 'a', 'v', 'a', '.', 'l', 'a', 'n', 'g', '.', 'O', 'b', 'j', 'e', 'c', 't'}) -> {'j', 'a', 'v', 'a', '.', 'l', 'a', 'n', 'g'}
getQualifier({'O', 'u', 't', 'e', 'r', '.', 'I', 'n', 'n', 'e', 'r'}) -> {'O', 'u', 't', 'e', 'r'}
name - the name
public static String getQualifier(String name)
For example:
getQualifier("java.lang.Object") -> "java.lang"
getQualifier("Outer.Inner") -> "Outer"
name - the name
public static char[] getReturnType(char[] methodSignature)
throws IllegalArgumentException
methodSignature - the method signature
IllegalArgumentException - if the signature is syntactically
incorrect
public static String getReturnType(String methodSignature)
throws IllegalArgumentException
methodSignature - the method signature
IllegalArgumentException - if the signature is syntactically
incorrectpublic static char[] getSimpleName(char[] name)
For example:
getSimpleName({'j', 'a', 'v', 'a', '.', 'l', 'a', 'n', 'g', '.', 'O', 'b', 'j', 'e', 'c', 't'}) -> {'O', 'b', 'j', 'e', 'c', 't'}
name - the name
public static String getSimpleName(String name)
For example:
getSimpleName("java.lang.Object") -> "Object"
name - the name
public static char[][] getSimpleNames(char[] name)
For example:
getSimpleNames({'j', 'a', 'v', 'a', '.', 'l', 'a', 'n', 'g', '.', 'O', 'b', 'j', 'e', 'c', 't'}) -> {{'j', 'a', 'v', 'a'}, {'l', 'a', 'n', 'g'}, {'O', 'b', 'j', 'e', 'c', 't'}}
getSimpleNames({'O', 'b', 'j', 'e', 'c', 't'}) -> {{'O', 'b', 'j', 'e', 'c', 't'}}
getSimpleNames("") -> {}
name - the name
public static String[] getSimpleNames(String name)
For example:
getSimpleNames("java.lang.Object") -> {"java", "lang", "Object"}
getSimpleNames("Object") -> {"Object"}
getSimpleNames("") -> {}
name - the name
public static char[] toCharArray(char[] methodSignature,
char[] methodName,
char[][] parameterNames,
boolean fullyQualifyTypeNames,
boolean includeReturnType)
For example:
toString("([Ljava.lang.String;)V", "main", new String[] {"args"}, false, true) -> "void main(String[] args)"
methodSignature - the method signature to convertmethodName - the name of the method to insert in the result, or
null if no method name is to be includedparameterNames - the parameter names to insert in the result, or
null if no parameter names are to be included; if supplied,
the number of parameter names must match that of the method signaturefullyQualifyTypeNames - true if type names should be fully
qualified, and false to use only simple namesincludeReturnType - true if the return type is to be
included
public static char[] toCharArray(char[] signature)
throws IllegalArgumentException
For example:
toString({'[', 'L', 'j', 'a', 'v', 'a', '.', 'l', 'a', 'n', 'g', '.', 'S', 't', 'r', 'i', 'n', 'g', ';'}) -> {'j', 'a', 'v', 'a', '.', 'l', 'a', 'n', 'g', '.', 'S', 't', 'r', 'i', 'n', 'g', '[', ']'}
toString({'I'}) -> {'i', 'n', 't'}
Note: This method assumes that a type signature containing a '$'
is an inner type signature. While this is correct in most cases, someone could
define a non-inner type name containing a '$'. Handling this
correctly in all cases would have required resolving the signature, which
generally not feasible.
signature - the type signature
IllegalArgumentException - if the signature is not syntactically
correctpublic static char[] toQualifiedName(char[][] segments)
For example:
toQualifiedName({{'j', 'a', 'v', 'a'}, {'l', 'a', 'n', 'g'}, {'O', 'b', 'j', 'e', 'c', 't'}}) -> {'j', 'a', 'v', 'a', '.', 'l', 'a', 'n', 'g', '.', 'O', 'b', 'j', 'e', 'c', 't'}
toQualifiedName({{'O', 'b', 'j', 'e', 'c', 't'}}) -> {'O', 'b', 'j', 'e', 'c', 't'}
toQualifiedName({{}}) -> {}
segments - the list of name segments, possibly empty
public static String toQualifiedName(String[] segments)
For example:
toQualifiedName(new String[] {"java", "lang", "Object"}) -> "java.lang.Object"
toQualifiedName(new String[] {"Object"}) -> "Object"
toQualifiedName(new String[0]) -> ""
segments - the list of name segments, possibly empty
public static String toString(String signature)
throws IllegalArgumentException
For example:
toString("[Ljava.lang.String;") -> "java.lang.String[]"
toString("I") -> "int"
Note: This method assumes that a type signature containing a '$'
is an inner type signature. While this is correct in most cases, someone could
define a non-inner type name containing a '$'. Handling this
correctly in all cases would have required resolving the signature, which
generally not feasible.
signature - the type signature
IllegalArgumentException - if the signature is not syntactically
correct
public static String toString(String methodSignature,
String methodName,
String[] parameterNames,
boolean fullyQualifyTypeNames,
boolean includeReturnType)
For example:
toString("([Ljava.lang.String;)V", "main", new String[] {"args"}, false, true) -> "void main(String[] args)"
methodSignature - the method signature to convertmethodName - the name of the method to insert in the result, or
null if no method name is to be includedparameterNames - the parameter names to insert in the result, or
null if no parameter names are to be included; if supplied,
the number of parameter names must match that of the method signaturefullyQualifyTypeNames - true if type names should be fully
qualified, and false to use only simple namesincludeReturnType - true if the return type is to be
included
|
Eclipse JDT 2.0 |
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||