FindBugs™ 1.3.9

edu.umd.cs.findbugs.ba
Class XFactory

java.lang.Object
  extended by edu.umd.cs.findbugs.ba.XFactory

public class XFactory
extends java.lang.Object

Factory methods for creating XMethod objects.

Author:
David Hovemeyer

Field Summary
static boolean DEBUG_CIRCULARITY
           
static boolean DEBUG_UNRESOLVED
           
 
Constructor Summary
XFactory()
          Constructor.
 
Method Summary
 void addCalledMethod(MethodDescriptor m)
           
 void addEmptyArrayField(XField f)
           
 boolean addReflectiveClasses(ClassDescriptor c)
           
 java.util.Collection<XField> allFields()
           
static void assertDottedClassName(java.lang.String className)
           
static void assertSlashedClassName(java.lang.String className)
           
 void canonicalizeAll()
           
static java.lang.String canonicalizeString(java.lang.String s)
           
static
<E extends ClassMember>
int
compare(E lhs, E rhs)
          Compare XMethod or XField object objects.
static XField createReferencedXField(DismantleBytecode visitor)
           
static XMethod createReferencedXMethod(DismantleBytecode visitor)
           
static XField createXField(FieldAnnotation f)
           
static XField createXField(FieldDescriptor desc)
           
static XField createXField(org.apache.bcel.generic.FieldInstruction fieldInstruction, org.apache.bcel.generic.ConstantPoolGen cpg)
           
static XField createXField(org.apache.bcel.classfile.JavaClass javaClass, org.apache.bcel.classfile.Field field)
           
static XField createXField(PreorderVisitor visitor)
          Create an XField object from the field currently being visited by the given PreorderVisitor.
static XField createXField(java.lang.String className, org.apache.bcel.classfile.Field field)
          Create an XField object from a BCEL Field.
static XField createXField(java.lang.String className, java.lang.String fieldName, java.lang.String fieldSignature, boolean isStatic)
          Create an XField object
static XField createXFieldUsingSlashedClassName(java.lang.String className, java.lang.String fieldName, java.lang.String fieldSignature, boolean isStatic)
          Create an XField object
static XMethod createXMethod(org.apache.bcel.generic.InvokeInstruction invokeInstruction, org.apache.bcel.generic.ConstantPoolGen cpg)
          Create an XMethod object from an InvokeInstruction.
static XMethod createXMethod(JavaClassAndMethod classAndMethod)
           
static XMethod createXMethod(org.apache.bcel.classfile.JavaClass javaClass, org.apache.bcel.classfile.Method method)
          Create an XMethod object from a BCEL Method.
static XMethod createXMethod(MethodAnnotation ma)
           
static XMethod createXMethod(MethodDescriptor desc)
           
static XMethod createXMethod(org.apache.bcel.generic.MethodGen methodGen)
           
static XMethod createXMethod(PreorderVisitor visitor)
          Create an XMethod object from the method currently being visited by the given PreorderVisitor.
static XMethod createXMethod(java.lang.String className, org.apache.bcel.classfile.Method method)
          Create an XMethod object from a BCEL Method.
static XMethod createXMethod(java.lang.String className, java.lang.String methodName, java.lang.String methodSig, boolean isStatic)
           
static XMethod createXMethodUsingSlashedClassName(java.lang.String className, java.lang.String methodName, java.lang.String methodSig, boolean isStatic)
           
 java.util.Set<XMethod> getCalledMethods()
           
static XField getExactXField(FieldDescriptor desc)
           
static XField getExactXField(java.lang.String className, org.apache.bcel.classfile.Field f)
           
static XField getExactXField(java.lang.String className, java.lang.String name, java.lang.String signature, boolean isStatic)
          Get an XField object exactly matching given class, name, and signature.
 java.util.Set<ClassDescriptor> getReflectiveClasses()
           
 XClass getXClass(ClassDescriptor classDescriptor)
          Get the XClass object providing information about the class named by the given ClassDescriptor.
 void intern(XClass c)
           
 boolean isCalled(XMethod m)
           
 boolean isCalledDirectlyOrIndirectly(XMethod m)
           
 boolean isEmptyArrayField(XField f)
           
 boolean isInterned(XMethod m)
          Deprecated. 
 boolean isReflectiveClass(ClassDescriptor c)
           
 boolean nameAndSignatureIsCalled(XMethod m)
           
static void profile()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEBUG_UNRESOLVED

public static final boolean DEBUG_UNRESOLVED

DEBUG_CIRCULARITY

public static final boolean DEBUG_CIRCULARITY
Constructor Detail

XFactory

public XFactory()
Constructor.

Method Detail

canonicalizeAll

public void canonicalizeAll()

intern

public void intern(XClass c)

allFields

public java.util.Collection<XField> allFields()

addCalledMethod

public void addCalledMethod(MethodDescriptor m)

addEmptyArrayField

public void addEmptyArrayField(XField f)

isEmptyArrayField

public boolean isEmptyArrayField(@CheckForNull
                                 XField f)

isCalled

public boolean isCalled(XMethod m)

getCalledMethods

public java.util.Set<XMethod> getCalledMethods()

getReflectiveClasses

public java.util.Set<ClassDescriptor> getReflectiveClasses()

isReflectiveClass

public boolean isReflectiveClass(ClassDescriptor c)

addReflectiveClasses

public boolean addReflectiveClasses(ClassDescriptor c)

isCalledDirectlyOrIndirectly

public boolean isCalledDirectlyOrIndirectly(XMethod m)

nameAndSignatureIsCalled

public boolean nameAndSignatureIsCalled(XMethod m)

isInterned

@Deprecated
public boolean isInterned(XMethod m)
Deprecated. 


canonicalizeString

public static java.lang.String canonicalizeString(java.lang.String s)

createXMethod

public static XMethod createXMethod(java.lang.String className,
                                    org.apache.bcel.classfile.Method method)
Create an XMethod object from a BCEL Method.

Parameters:
className - the class to which the Method belongs
method - the Method
Returns:
an XMethod representing the Method

createXMethod

public static XMethod createXMethod(org.apache.bcel.classfile.JavaClass javaClass,
                                    org.apache.bcel.classfile.Method method)
Create an XMethod object from a BCEL Method.

Parameters:
javaClass - the class to which the Method belongs
method - the Method
Returns:
an XMethod representing the Method

assertDottedClassName

public static void assertDottedClassName(@DottedClassName
                                         java.lang.String className)

assertSlashedClassName

public static void assertSlashedClassName(@SlashedClassName
                                          java.lang.String className)

createXMethodUsingSlashedClassName

public static XMethod createXMethodUsingSlashedClassName(@SlashedClassName
                                                         java.lang.String className,
                                                         java.lang.String methodName,
                                                         java.lang.String methodSig,
                                                         boolean isStatic)
Parameters:
className -
methodName -
methodSig -
isStatic -
Returns:
the created XMethod

createXMethod

public static XMethod createXMethod(@DottedClassName
                                    java.lang.String className,
                                    java.lang.String methodName,
                                    java.lang.String methodSig,
                                    boolean isStatic)
Parameters:
className -
methodName -
methodSig -
isStatic -
Returns:
the created XMethod

createXMethod

public static XMethod createXMethod(MethodDescriptor desc)

profile

public static void profile()

createXMethod

public static XMethod createXMethod(MethodAnnotation ma)

createXFieldUsingSlashedClassName

public static XField createXFieldUsingSlashedClassName(@SlashedClassName
                                                       java.lang.String className,
                                                       java.lang.String fieldName,
                                                       java.lang.String fieldSignature,
                                                       boolean isStatic)
Create an XField object

Parameters:
className -
fieldName -
fieldSignature -
isStatic -
Returns:
the created XField

createXField

public static XField createXField(@DottedClassName
                                  java.lang.String className,
                                  java.lang.String fieldName,
                                  java.lang.String fieldSignature,
                                  boolean isStatic)
Create an XField object

Parameters:
className -
fieldName -
fieldSignature -
isStatic -
Returns:
the created XField

createXField

public static XField createXField(org.apache.bcel.generic.FieldInstruction fieldInstruction,
                                  org.apache.bcel.generic.ConstantPoolGen cpg)

createReferencedXField

public static XField createReferencedXField(DismantleBytecode visitor)

createReferencedXMethod

public static XMethod createReferencedXMethod(DismantleBytecode visitor)

createXField

public static XField createXField(FieldAnnotation f)

createXField

public static XField createXField(org.apache.bcel.classfile.JavaClass javaClass,
                                  org.apache.bcel.classfile.Field field)

createXField

public static XField createXField(java.lang.String className,
                                  org.apache.bcel.classfile.Field field)
Create an XField object from a BCEL Field.

Parameters:
className - the name of the Java class containing the field
field - the Field within the JavaClass
Returns:
the created XField

getExactXField

public static XField getExactXField(@SlashedClassName
                                    java.lang.String className,
                                    java.lang.String name,
                                    java.lang.String signature,
                                    boolean isStatic)
Get an XField object exactly matching given class, name, and signature. May return an unresolved object (if the class can't be found, or does not directly declare named field).

Parameters:
className - name of class containing the field
name - name of field
signature - field signature
isStatic - field access flags
Returns:
XField exactly matching class name, field name, and field signature

getExactXField

@Nonnull
public static XField getExactXField(@SlashedClassName
                                            java.lang.String className,
                                            org.apache.bcel.classfile.Field f)

getExactXField

@Nonnull
public static XField getExactXField(FieldDescriptor desc)

createXField

public static XField createXField(FieldDescriptor desc)

createXMethod

public static XMethod createXMethod(org.apache.bcel.generic.InvokeInstruction invokeInstruction,
                                    org.apache.bcel.generic.ConstantPoolGen cpg)
Create an XMethod object from an InvokeInstruction.

Parameters:
invokeInstruction - the InvokeInstruction
cpg - ConstantPoolGen from the class containing the instruction
Returns:
XMethod representing the method called by the InvokeInstruction

createXMethod

public static XMethod createXMethod(PreorderVisitor visitor)
Create an XMethod object from the method currently being visited by the given PreorderVisitor.

Parameters:
visitor - the PreorderVisitor
Returns:
the XMethod representing the method currently being visited

createXField

public static XField createXField(PreorderVisitor visitor)
Create an XField object from the field currently being visited by the given PreorderVisitor.

Parameters:
visitor - the PreorderVisitor
Returns:
the XField representing the method currently being visited

createXMethod

public static XMethod createXMethod(org.apache.bcel.generic.MethodGen methodGen)

createXMethod

public static XMethod createXMethod(JavaClassAndMethod classAndMethod)

getXClass

@CheckForNull
public XClass getXClass(ClassDescriptor classDescriptor)
Get the XClass object providing information about the class named by the given ClassDescriptor.

Parameters:
classDescriptor - a ClassDescriptor
Returns:
an XClass object providing information about the class, or null if the class cannot be found

compare

public static <E extends ClassMember> int compare(E lhs,
                                                  E rhs)
Compare XMethod or XField object objects. All methods that implement XMethod or XField should delegate to this method when implementing compareTo(Object) if the right-hand object implements XField or XMethod.

Parameters:
lhs - an XMethod or XField
rhs - an XMethod or XField
Returns:
comparison of lhs and rhs

FindBugs™ 1.3.9

FindBugs™ is licenced under the LGPL. Copyright © 2006 University of Maryland.