public class MethodAnnotation extends PackageMemberAnnotation
BugAnnotation
,
Serialized FormModifier and Type | Field and Description |
---|---|
static java.lang.String |
DEFAULT_ROLE |
static java.lang.String |
METHOD_ALTERNATIVE_TARGET |
static java.lang.String |
METHOD_CALLED |
static java.lang.String |
METHOD_COMPUTED_IN |
static java.lang.String |
METHOD_CONSTRUCTOR |
static java.lang.String |
METHOD_DANGEROUS_TARGET |
static java.lang.String |
METHOD_DANGEROUS_TARGET_ACTUAL_GUARANTEED_NULL |
static java.lang.String |
METHOD_DID_YOU_MEAN_TO_OVERRIDE |
static java.lang.String |
METHOD_EQUALS_USED |
static java.lang.String |
METHOD_OVERRIDDEN |
static java.lang.String |
METHOD_RETURN_VALUE_OF |
static java.lang.String |
METHOD_SAFE_TARGET |
static java.lang.String |
METHOD_SUPERCLASS_CONSTRUCTOR |
static java.lang.String |
SHOULD_CALL |
className, description
sourceFileName, sourceLines
MESSAGE_TAG
Constructor and Description |
---|
MethodAnnotation(java.lang.String className,
java.lang.String methodName,
java.lang.String methodSig,
boolean isStatic)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
void |
accept(BugAnnotationVisitor visitor)
Accept a BugAnnotationVisitor.
|
int |
compareTo(BugAnnotation o) |
boolean |
equals(java.lang.Object o) |
protected java.lang.String |
formatPackageMember(java.lang.String key,
ClassAnnotation primaryClass)
Do default and subclass-specific formatting.
|
static MethodAnnotation |
fromCalledMethod(DismantleBytecode visitor)
Factory method to create a MethodAnnotation from a method called by the
instruction the given visitor is currently visiting.
|
static MethodAnnotation |
fromCalledMethod(java.lang.String className,
java.lang.String methodName,
java.lang.String methodSig,
boolean isStatic)
Create a MethodAnnotation from a method that is not directly accessible.
|
static MethodAnnotation |
fromForeignMethod(java.lang.String className,
java.lang.String methodName,
java.lang.String methodSig,
boolean isStatic)
Factory method to create the MethodAnnotation from the classname, method
name, signature, etc.
|
static MethodAnnotation |
fromForeignMethod(java.lang.String className,
java.lang.String methodName,
java.lang.String methodSig,
int accessFlags)
Factory method to create the MethodAnnotation from the classname, method
name, signature, etc.
|
static MethodAnnotation |
fromMethodDescriptor(MethodDescriptor methodDescriptor)
Create a MethodAnnotation from a MethodDescriptor.
|
static MethodAnnotation |
fromVisitedMethod(PreorderVisitor visitor)
Factory method to create a MethodAnnotation from the method the given
visitor is currently visiting.
|
static MethodAnnotation |
fromXMethod(XMethod xmethod)
Create a MethodAnnotation from an XMethod.
|
java.lang.String |
getFullMethod(ClassAnnotation primaryClass)
Get the "full" method name.
|
java.lang.String |
getJavaSourceMethodName() |
java.lang.String |
getMethodName()
Get the method name.
|
java.lang.String |
getMethodSignature()
Get the method type signature.
|
java.lang.String |
getNameInClass(boolean shortenPackages,
boolean useJVMMethodName,
boolean hash) |
java.lang.String |
getNameInClass(boolean shortenPackages,
boolean useJVMMethodName,
boolean hash,
boolean omitMethodName)
Get the "full" method name.
|
java.lang.String |
getNameInClass(ClassAnnotation primaryClass)
Get the "full" method name.
|
java.lang.String |
getSignatureInClass(ClassAnnotation primaryClass) |
int |
hashCode() |
boolean |
isSignificant()
Is this annotation used to compute instance hashes or match bug instances
across versions
|
boolean |
isStatic()
Return whether or not the method is static.
|
java.lang.String |
stripJavaLang(java.lang.String className) |
MethodDescriptor |
toMethodDescriptor() |
XMethod |
toXMethod()
Convert to an XMethod.
|
void |
writeXML(XMLOutput xmlOutput)
Write this object to given XMLOutput.
|
void |
writeXML(XMLOutput xmlOutput,
boolean addMessages,
boolean isPrimary) |
format, getClassDescriptor, getClassName, getDescription, getPackageName, getSimpleClassName, getSlashedClassName, removePackage, removePackageName, setDescription, shorten, toString, toString
clone, getSourceFileName, getSourceLines, setSourceLines
public static final java.lang.String DEFAULT_ROLE
public static final java.lang.String METHOD_DANGEROUS_TARGET_ACTUAL_GUARANTEED_NULL
public static final java.lang.String METHOD_DANGEROUS_TARGET
public static final java.lang.String METHOD_RETURN_VALUE_OF
public static final java.lang.String METHOD_SAFE_TARGET
public static final java.lang.String METHOD_EQUALS_USED
public static final java.lang.String METHOD_CALLED
public static final java.lang.String METHOD_SUPERCLASS_CONSTRUCTOR
public static final java.lang.String METHOD_CONSTRUCTOR
public static final java.lang.String METHOD_OVERRIDDEN
public static final java.lang.String METHOD_DID_YOU_MEAN_TO_OVERRIDE
public static final java.lang.String METHOD_COMPUTED_IN
public static final java.lang.String METHOD_ALTERNATIVE_TARGET
public static final java.lang.String SHOULD_CALL
public MethodAnnotation(@DottedClassName java.lang.String className, java.lang.String methodName, java.lang.String methodSig, boolean isStatic)
className
- the name of the class containing the methodmethodName
- the name of the methodmethodSig
- the Java type signature of the methodisStatic
- true if the method is static, false if notpublic static MethodAnnotation fromVisitedMethod(PreorderVisitor visitor)
visitor
- the BetterVisitor currently visiting the methodpublic static MethodAnnotation fromCalledMethod(DismantleBytecode visitor)
visitor
- the visitorpublic static MethodAnnotation fromForeignMethod(@SlashedClassName java.lang.String className, java.lang.String methodName, java.lang.String methodSig, int accessFlags)
className
- name of the class containing the methodmethodName
- name of the methodmethodSig
- signature of the methodaccessFlags
- the access flags of the methodpublic static MethodAnnotation fromForeignMethod(java.lang.String className, java.lang.String methodName, java.lang.String methodSig, boolean isStatic)
className
- name of the class containing the methodmethodName
- name of the methodmethodSig
- signature of the methodisStatic
- true if the method is static, false otherwisepublic static MethodAnnotation fromCalledMethod(java.lang.String className, java.lang.String methodName, java.lang.String methodSig, boolean isStatic)
className
- class containing called methodmethodName
- name of called methodmethodSig
- signature of called methodisStatic
- true if called method is staticpublic static MethodAnnotation fromXMethod(XMethod xmethod)
xmethod
- the XMethodpublic static MethodAnnotation fromMethodDescriptor(MethodDescriptor methodDescriptor)
methodDescriptor
- the MethodDescriptorpublic java.lang.String getMethodName()
public java.lang.String getJavaSourceMethodName()
public java.lang.String getMethodSignature()
public boolean isStatic()
public XMethod toXMethod()
public MethodDescriptor toMethodDescriptor()
public void accept(BugAnnotationVisitor visitor)
BugAnnotation
visitor
- the visitor to acceptprotected java.lang.String formatPackageMember(java.lang.String key, ClassAnnotation primaryClass)
PackageMemberAnnotation
formatPackageMember
in class PackageMemberAnnotation
key
- the key specifying how to do the formattingprimaryClass
- TODOpublic java.lang.String getNameInClass(ClassAnnotation primaryClass)
public java.lang.String getSignatureInClass(ClassAnnotation primaryClass)
public java.lang.String getNameInClass(boolean shortenPackages, boolean useJVMMethodName, boolean hash)
public java.lang.String getNameInClass(boolean shortenPackages, boolean useJVMMethodName, boolean hash, boolean omitMethodName)
shortenPackages
- whether to shorten package names if they are in java or in the
same package as this method.public java.lang.String getFullMethod(ClassAnnotation primaryClass)
public java.lang.String stripJavaLang(@DottedClassName java.lang.String className)
public int hashCode()
hashCode
in class java.lang.Object
public boolean equals(java.lang.Object o)
equals
in class java.lang.Object
public int compareTo(BugAnnotation o)
public void writeXML(XMLOutput xmlOutput) throws java.io.IOException
XMLWriteable
xmlOutput
- the XMLOutput for the documentjava.io.IOException
public void writeXML(XMLOutput xmlOutput, boolean addMessages, boolean isPrimary) throws java.io.IOException
java.io.IOException
public boolean isSignificant()
BugAnnotation
isSignificant
in interface BugAnnotation
isSignificant
in class PackageMemberAnnotation
SpotBugs is licensed under the LGPL.