public final class SignatureUtils
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
private static java.util.regex.Pattern |
ANONYMOUS_COMPONENT |
private static java.util.regex.Pattern |
CLASS_COMPONENT_DELIMITER |
private static java.lang.String |
ECLIPSE_WEIRD_SIG_CHARS |
private static java.util.Map<java.lang.String,java.lang.String> |
PRIMITIVE_NAME_TO_SIG |
static java.util.Set<java.lang.String> |
PRIMITIVE_TYPES |
private static java.util.Set<java.lang.String> |
TWO_SLOT_TYPES |
Modifier | Constructor and Description |
---|---|
private |
SignatureUtils()
private to reinforce the helper status of the class
|
Modifier and Type | Method and Description |
---|---|
static java.lang.String |
classToSignature(java.lang.String className)
returns a slashed or dotted class name into a signature, like java/lang/String -- Ljava/lang/String; Primitives and arrays are accepted.
|
static boolean |
compareGenericSignature(java.lang.String genericSignature,
java.lang.String regularSignature) |
private static org.apache.bcel.classfile.JavaClass |
findInheritedMethod(org.apache.bcel.classfile.JavaClass[] classes,
java.lang.String methodName,
java.lang.String signature) |
static int |
getFirstRegisterSlot(org.apache.bcel.classfile.Method m)
returns the first open register slot after parameters
|
static java.lang.String |
getNonAnonymousPortion(java.lang.String className) |
static int |
getNumParameters(java.lang.String methodSignature)
returns the number of parameters in this method signature
|
static java.lang.String |
getPackageName(java.lang.String className)
parses the package name from a fully qualified class name
|
static java.util.List<java.lang.String> |
getParameterSignatures(java.lang.String methodSignature)
returns a List of parameter signatures
|
static java.util.Map<java.lang.Integer,java.lang.String> |
getParameterSlotAndSignatures(boolean methodIsStatic,
java.lang.String methodSignature)
returns a Map that represents the type of the parameter in slot x
|
static java.lang.String |
getReturnSignature(java.lang.String methodSig)
gets the return type signature from a method signature
|
static int |
getSignatureSize(java.lang.String signature) |
static java.lang.String |
getTypeCodeSignature(int typeCode)
converts a primitive type code to a signature
|
static boolean |
isInheritedMethod(org.apache.bcel.classfile.JavaClass cls,
java.lang.String methodName,
java.lang.String signature) |
static boolean |
isPlainStringConvertableClass(java.lang.String className) |
private static boolean |
isWonkyEclipseSignature(java.lang.String sig,
int startIndex)
Eclipse makes weird class signatures.
|
static boolean |
similarPackages(java.lang.String packName1,
java.lang.String packName2,
int depth)
returns whether or not the two packages have the same first 'depth' parts, if they exist
|
static java.lang.String |
stripSignature(java.lang.String signature)
converts a signature, like Ljava/lang/String; into a dotted class name.
|
static java.lang.String |
toArraySignature(java.lang.String typeName)
Converts a type name into an array signature.
|
static java.lang.String |
trimSignature(java.lang.String signature)
converts a signature, like Ljava/lang/String; into a slashed class name.
|
public static final java.util.Set<java.lang.String> PRIMITIVE_TYPES
private static final java.util.Set<java.lang.String> TWO_SLOT_TYPES
private static final java.util.regex.Pattern CLASS_COMPONENT_DELIMITER
private static final java.util.regex.Pattern ANONYMOUS_COMPONENT
private static final java.lang.String ECLIPSE_WEIRD_SIG_CHARS
private static final java.util.Map<java.lang.String,java.lang.String> PRIMITIVE_NAME_TO_SIG
private SignatureUtils()
public static boolean isInheritedMethod(org.apache.bcel.classfile.JavaClass cls, java.lang.String methodName, java.lang.String signature) throws java.lang.ClassNotFoundException
java.lang.ClassNotFoundException
public static java.lang.String getPackageName(java.lang.String className)
className
- the class in questionpublic static boolean similarPackages(java.lang.String packName1, java.lang.String packName2, int depth)
packName1
- the first package to checkpackName2
- the second package to checkdepth
- the number of package parts to checkpublic static java.lang.String getTypeCodeSignature(int typeCode)
typeCode
- the raw JVM type value@Nullable private static org.apache.bcel.classfile.JavaClass findInheritedMethod(org.apache.bcel.classfile.JavaClass[] classes, java.lang.String methodName, java.lang.String signature)
public static java.util.Map<java.lang.Integer,java.lang.String> getParameterSlotAndSignatures(boolean methodIsStatic, java.lang.String methodSignature)
methodIsStatic
- if the method is static, causes where to start counting from, slot 0 or 1methodSignature
- the signature of the method to parsepublic static java.util.List<java.lang.String> getParameterSignatures(java.lang.String methodSignature)
methodSignature
- the signature of the method to parsepublic static java.lang.String getReturnSignature(java.lang.String methodSig)
methodSig
- the signature of the methodpublic static int getNumParameters(java.lang.String methodSignature)
methodSignature
- the method signature to parsepublic static int getFirstRegisterSlot(org.apache.bcel.classfile.Method m)
m
- the method for which you want the parameterspublic static boolean compareGenericSignature(java.lang.String genericSignature, java.lang.String regularSignature)
public static int getSignatureSize(java.lang.String signature)
@DottedClassName public static java.lang.String stripSignature(java.lang.String signature)
signature
- a class signature, must not be null@SlashedClassName public static java.lang.String trimSignature(java.lang.String signature)
signature
- the class signature@Nullable public static java.lang.String classToSignature(java.lang.String className)
className
- the class name to convert@Nullable public static java.lang.String toArraySignature(java.lang.String typeName)
typeName
- the class name to generate an array signature frompublic static java.lang.String getNonAnonymousPortion(java.lang.String className)
className
- the name of the classpublic static boolean isPlainStringConvertableClass(@SlashedClassName java.lang.String className)
private static boolean isWonkyEclipseSignature(java.lang.String sig, int startIndex)
sig
- the signature in type tablestartIndex
- the index into the signature where the wonkyness beginsCopyright © 2005-2018 MeBigFatGuy.com. All Rights Reserved.