Package edu.umd.cs.findbugs.ba
Class XFactory
java.lang.Object
edu.umd.cs.findbugs.ba.XFactory
Factory methods for creating XMethod objects.
- Author:
- David Hovemeyer
-
Field Summary
Modifier and TypeFieldDescriptionstatic final boolean
static final boolean
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
void
void
boolean
static void
assertDottedClassName
(String className) static void
assertSlashedClassName
(String className) void
static String
Deprecated.static <E extends ClassMember>
intcompare
(E lhs, E rhs) Compare XMethod or XField object objects.static XField
createReferencedXField
(DismantleBytecode visitor) static XMethod
createReferencedXMethod
(DismantleBytecode visitor) static XField
createXField
(FieldDescriptor desc) static XField
static XField
createXField
(PreorderVisitor visitor) Create an XField object from the field currently being visited by the given PreorderVisitor.static XField
createXField
(String className, String fieldName, String fieldSignature, boolean isStatic) Create an XField objectstatic XField
createXField
(String className, org.apache.bcel.classfile.Field field) Create an XField object from a BCEL Field.static XField
createXField
(org.apache.bcel.classfile.JavaClass javaClass, org.apache.bcel.classfile.Field field) static XField
createXField
(org.apache.bcel.generic.FieldInstruction fieldInstruction, org.apache.bcel.generic.ConstantPoolGen cpg) static XField
createXFieldUsingSlashedClassName
(String className, String fieldName, String fieldSignature, boolean isStatic) Create an XField objectstatic XMethod
createXMethod
(JavaClassAndMethod classAndMethod) static XMethod
static XMethod
static XMethod
createXMethod
(PreorderVisitor visitor) Create an XMethod object from the method currently being visited by the given PreorderVisitor.static XMethod
createXMethod
(String className, String methodName, String methodSig, boolean isStatic) static XMethod
createXMethod
(String className, org.apache.bcel.classfile.Method method) Create an XMethod object from a BCEL Method.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
(org.apache.bcel.generic.InvokeInstruction invokeInstruction, org.apache.bcel.generic.ConstantPoolGen cpg) Create an XMethod object from an InvokeInstruction.static XMethod
createXMethod
(org.apache.bcel.generic.MethodGen methodGen) static XMethod
createXMethodUsingSlashedClassName
(String className, String methodName, String methodSig, boolean isStatic) static XField
static XField
getExactXField
(String className, String name, String signature, boolean isStatic) Get an XField object exactly matching given class, name, and signature.static XField
getExactXField
(String className, org.apache.bcel.classfile.Field f) getXClass
(ClassDescriptor classDescriptor) Get the XClass object providing information about the class named by the given ClassDescriptor.void
boolean
boolean
boolean
boolean
boolean
Deprecated.boolean
boolean
Deprecated.This method does not work as expected.static void
profile()
-
Field Details
-
DEBUG_UNRESOLVED
public static final boolean DEBUG_UNRESOLVED -
DEBUG_CIRCULARITY
public static final boolean DEBUG_CIRCULARITY
-
-
Constructor Details
-
XFactory
public XFactory()Constructor.
-
-
Method Details
-
canonicalizeAll
public void canonicalizeAll() -
intern
-
allFields
-
addCalledMethod
-
addEmptyArrayField
-
isEmptyArrayField
-
isCalled
-
getCalledMethods
-
addFunctionThatMightBeMistakenForProcedures
-
isFunctionshatMightBeMistakenForProcedures
-
getReflectiveClasses
-
isReflectiveClass
-
addReflectiveClasses
-
isCalledDirectlyOrIndirectly
-
nameAndSignatureIsCalled
Deprecated.This method does not work as expected. Will be removed in 5.x release. -
isInterned
Deprecated. -
canonicalizeString
Deprecated. -
createXMethod
Create an XMethod object from a BCEL Method.- Parameters:
className
- the class to which the Method belongsmethod
- 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 belongsmethod
- the Method- Returns:
- an XMethod representing the Method
-
assertDottedClassName
-
assertSlashedClassName
-
createXMethodUsingSlashedClassName
public static XMethod createXMethodUsingSlashedClassName(@SlashedClassName String className, String methodName, String methodSig, boolean isStatic) - Parameters:
className
-methodName
-methodSig
-isStatic
-- Returns:
- the created XMethod
-
createXMethod
public static XMethod createXMethod(@DottedClassName String className, String methodName, String methodSig, boolean isStatic) - Parameters:
className
-methodName
-methodSig
-isStatic
-- Returns:
- the created XMethod
-
createXMethod
-
profile
public static void profile() -
createXMethod
-
createXFieldUsingSlashedClassName
public static XField createXFieldUsingSlashedClassName(@SlashedClassName String className, String fieldName, String fieldSignature, boolean isStatic) Create an XField object- Parameters:
className
-fieldName
-fieldSignature
-isStatic
-- Returns:
- the created XField
-
createXField
public static XField createXField(@DottedClassName String className, String fieldName, 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
-
createReferencedXMethod
-
createXField
-
createXField
public static XField createXField(org.apache.bcel.classfile.JavaClass javaClass, org.apache.bcel.classfile.Field field) -
createXField
Create an XField object from a BCEL Field.- Parameters:
className
- the name of the Java class containing the fieldfield
- the Field within the JavaClass- Returns:
- the created XField
-
getExactXField
public static XField getExactXField(@SlashedClassName String className, String name, 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 fieldname
- name of fieldsignature
- field signatureisStatic
- field access flags- Returns:
- XField exactly matching class name, field name, and field signature
-
getExactXField
@Nonnull public static XField getExactXField(@SlashedClassName String className, org.apache.bcel.classfile.Field f) -
getExactXField
-
createXField
-
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 InvokeInstructioncpg
- ConstantPoolGen from the class containing the instruction- Returns:
- XMethod representing the method called by the InvokeInstruction
-
createXMethod
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
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
-
createXMethod
-
getXClass
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
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 XFieldrhs
- an XMethod or XField- Returns:
- comparison of lhs and rhs
-