Package edu.umd.cs.findbugs.classfile
Class DescriptorFactory
- java.lang.Object
-
- edu.umd.cs.findbugs.classfile.DescriptorFactory
-
public class DescriptorFactory extends java.lang.ObjectFactory for creating ClassDescriptors, MethodDescriptors, and FieldDescriptors.- Author:
- David Hovemeyer
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcanonicalize(FieldDescriptor m)voidcanonicalize(MethodDescriptor m)static java.lang.StringcanonicalizeString(java.lang.String s)static voidclearInstance()static ClassDescriptorcreateClassDescriptor(java.lang.Class<?> aClass)static ClassDescriptorcreateClassDescriptor(java.lang.String className)static ClassDescriptor[]createClassDescriptor(java.lang.String[] classNames)static ClassDescriptorcreateClassDescriptor(org.apache.bcel.classfile.JavaClass c)static ClassDescriptorcreateClassDescriptorFromDottedClassName(java.lang.String dottedClassName)static ClassDescriptorcreateClassDescriptorFromFieldSignature(java.lang.String signature)Create a class descriptor from a field signaturestatic ClassDescriptorcreateClassDescriptorFromResourceName(java.lang.String resourceName)Create a class descriptor from a resource name.static ClassDescriptorcreateClassDescriptorFromSignature(java.lang.String signature)static ClassDescriptorcreateClassOrObjectDescriptorFromSignature(java.lang.String signature)java.util.Collection<ClassDescriptor>getAllClassDescriptors()ClassDescriptorgetClassDescriptor(java.lang.Class<?> actualClass)ClassDescriptorgetClassDescriptor(java.lang.String className)Get a ClassDescriptor for a class name in VM (slashed) format.static ClassDescriptorgetClassDescriptor(org.apache.bcel.generic.ObjectType type)Get a ClassDescriptor for the class described by given ObjectType object.ClassDescriptorgetClassDescriptorForDottedClassName(java.lang.String dottedClassName)Get a ClassDescriptor for a class name in dotted format.FieldDescriptorgetFieldDescriptor(FieldAnnotation ma)FieldDescriptorgetFieldDescriptor(java.lang.String className, java.lang.String name, java.lang.String signature, boolean isStatic)Get a FieldDescriptor.FieldDescriptorgetFieldDescriptor(java.lang.String className, org.apache.bcel.classfile.Field ma)MethodDescriptorgetMethodDescriptor(MethodAnnotation ma)MethodDescriptorgetMethodDescriptor(java.lang.String className, java.lang.String name, java.lang.String signature, boolean isStatic)Get a MethodDescriptor.MethodDescriptorgetMethodDescriptor(org.apache.bcel.classfile.JavaClass jClass, org.apache.bcel.classfile.Method method)static DescriptorFactoryinstance()Get the singleton instance of the DescriptorFactory.static booleanisClassResource(java.lang.String resourceName)Determine whether or not the given resource name refers to a class.voidprofile()voidpurge(java.util.Collection<ClassDescriptor> unusable)
-
-
-
Method Detail
-
canonicalizeString
public static java.lang.String canonicalizeString(@CheckForNull java.lang.String s)
-
instance
public static DescriptorFactory instance()
Get the singleton instance of the DescriptorFactory.- Returns:
- the singleton instance of the DescriptorFactory
-
clearInstance
public static void clearInstance()
-
getAllClassDescriptors
public java.util.Collection<ClassDescriptor> getAllClassDescriptors()
-
purge
public void purge(java.util.Collection<ClassDescriptor> unusable)
-
getClassDescriptor
@Nonnull public ClassDescriptor getClassDescriptor(java.lang.Class<?> actualClass)
-
getClassDescriptor
@Nonnull public ClassDescriptor getClassDescriptor(@SlashedClassName java.lang.String className)
Get a ClassDescriptor for a class name in VM (slashed) format.- Parameters:
className- a class name in VM (slashed) format- Returns:
- ClassDescriptor for that class
-
getClassDescriptorForDottedClassName
public ClassDescriptor getClassDescriptorForDottedClassName(@DottedClassName java.lang.String dottedClassName)
Get a ClassDescriptor for a class name in dotted format.- Parameters:
dottedClassName- a class name in dotted format- Returns:
- ClassDescriptor for that class
-
getMethodDescriptor
public MethodDescriptor getMethodDescriptor(org.apache.bcel.classfile.JavaClass jClass, org.apache.bcel.classfile.Method method)
-
getMethodDescriptor
public MethodDescriptor getMethodDescriptor(@SlashedClassName java.lang.String className, java.lang.String name, java.lang.String signature, boolean isStatic)
Get a MethodDescriptor.- Parameters:
className- name of the class containing the method, in VM format (e.g., "java/lang/String")name- name of the methodsignature- signature of the methodisStatic- true if method is static, false otherwise- Returns:
- MethodDescriptor
-
profile
public void profile()
-
canonicalize
public void canonicalize(MethodDescriptor m)
-
canonicalize
public void canonicalize(FieldDescriptor m)
-
getMethodDescriptor
public MethodDescriptor getMethodDescriptor(MethodAnnotation ma)
-
getFieldDescriptor
public FieldDescriptor getFieldDescriptor(@SlashedClassName java.lang.String className, java.lang.String name, java.lang.String signature, boolean isStatic)
Get a FieldDescriptor.- Parameters:
className- the name of the class the field belongs to, in VM format (e.g., "java/lang/String")name- the name of the fieldsignature- the field signature (type)isStatic- true if field is static, false if not- Returns:
- FieldDescriptor
-
getFieldDescriptor
public FieldDescriptor getFieldDescriptor(@SlashedClassName java.lang.String className, org.apache.bcel.classfile.Field ma)
-
getFieldDescriptor
public FieldDescriptor getFieldDescriptor(FieldAnnotation ma)
-
getClassDescriptor
public static ClassDescriptor getClassDescriptor(org.apache.bcel.generic.ObjectType type)
Get a ClassDescriptor for the class described by given ObjectType object.- Parameters:
type- an ObjectType- Returns:
- a ClassDescriptor for the class described by the ObjectType
-
createClassDescriptor
public static ClassDescriptor createClassDescriptor(org.apache.bcel.classfile.JavaClass c)
-
createClassDescriptorFromResourceName
public static ClassDescriptor createClassDescriptorFromResourceName(java.lang.String resourceName)
Create a class descriptor from a resource name.- Parameters:
resourceName- the resource name- Returns:
- the class descriptor
-
createClassDescriptorFromFieldSignature
@CheckForNull public static ClassDescriptor createClassDescriptorFromFieldSignature(java.lang.String signature)
Create a class descriptor from a field signature
-
isClassResource
public static boolean isClassResource(java.lang.String resourceName)
Determine whether or not the given resource name refers to a class.- Parameters:
resourceName- the resource name- Returns:
- true if the resource is a class, false otherwise
-
createClassDescriptorFromSignature
public static ClassDescriptor createClassDescriptorFromSignature(java.lang.String signature)
-
createClassOrObjectDescriptorFromSignature
public static ClassDescriptor createClassOrObjectDescriptorFromSignature(java.lang.String signature)
-
createClassDescriptor
public static ClassDescriptor createClassDescriptor(java.lang.Class<?> aClass)
-
createClassDescriptor
@Nonnull public static ClassDescriptor createClassDescriptor(@SlashedClassName java.lang.String className)
-
createClassDescriptor
public static ClassDescriptor[] createClassDescriptor(java.lang.String[] classNames)
-
createClassDescriptorFromDottedClassName
public static ClassDescriptor createClassDescriptorFromDottedClassName(java.lang.String dottedClassName)
-
-