Package edu.umd.cs.findbugs.ba
Class ClassHash
java.lang.Object
edu.umd.cs.findbugs.ba.ClassHash
- All Implemented Interfaces:
XMLWriteable
,Comparable<ClassHash>
Compute a hash of method names and signatures. This allows us to find out
when a class has been renamed, but not changed in any other obvious way.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionint
computeHash
(org.apache.bcel.classfile.JavaClass javaClass) Compute hash for given class and all of its methods.boolean
byte[]
Get class hash.getMethodHash
(XMethod method) Get method hash for given method.int
hashCode()
static String
hashToString
(byte[] hash) Convert a hash to a string of hex digits.private static int
hexDigitValue
(char c) boolean
isSameHash
(ClassHash other) Return whether or not this class hash has the same hash value as the one given.void
setClassHash
(byte[] classHash) Set class hash.void
setMethodHash
(XMethod method, byte[] methodHash) Set method hash for given method.static byte[]
Convert a string of hex digits to a hash.toString()
private static void
work
(MessageDigest digest, String s, CharsetEncoder encoder) void
Write this object to given XMLOutput.
-
Field Details
-
CLASS_HASH_ELEMENT_NAME
XML element name for a ClassHash.- See Also:
-
METHOD_HASH_ELEMENT_NAME
XML element name for a MethodHash.- See Also:
-
className
-
classHash
private byte[] classHash -
methodHashMap
-
HEX_CHARS
private static final char[] HEX_CHARS
-
-
Constructor Details
-
ClassHash
public ClassHash()Constructor. -
ClassHash
Constructor.- Parameters:
classHash
- pre-computed class hash
-
-
Method Details
-
setMethodHash
Set method hash for given method.- Parameters:
method
- the methodmethodHash
- the method hash
-
getClassName
- Returns:
- Returns the className.
-
getClassHash
public byte[] getClassHash()Get class hash.- Returns:
- the class hash
-
setClassHash
public void setClassHash(byte[] classHash) Set class hash.- Parameters:
classHash
- the class hash value to set
-
getMethodHash
Get method hash for given method.- Parameters:
method
- the method- Returns:
- the MethodHash
-
computeHash
Compute hash for given class and all of its methods.- Parameters:
javaClass
- the class- Returns:
- this object
-
work
-
writeXML
Description copied from interface:XMLWriteable
Write this object to given XMLOutput.- Specified by:
writeXML
in interfaceXMLWriteable
- Parameters:
xmlOutput
- the XMLOutput for the document- Throws:
IOException
-
hashToString
Convert a hash to a string of hex digits.- Parameters:
hash
- the hash- Returns:
- a String representation of the hash
-
hexDigitValue
private static int hexDigitValue(char c) -
stringToHash
Convert a string of hex digits to a hash.- Parameters:
s
- string of hex digits- Returns:
- the hash value represented by the string
-
isSameHash
Return whether or not this class hash has the same hash value as the one given.- Parameters:
other
- another ClassHash- Returns:
- true if the hash values are the same, false if not
-
hashCode
public int hashCode() -
equals
-
compareTo
- Specified by:
compareTo
in interfaceComparable<ClassHash>
-
toString
-