Package edu.umd.cs.findbugs.ba
Class ClassHash
- java.lang.Object
-
- edu.umd.cs.findbugs.ba.ClassHash
-
- All Implemented Interfaces:
XMLWriteable
,java.lang.Comparable<ClassHash>
public class ClassHash extends java.lang.Object implements XMLWriteable, java.lang.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.- Author:
- David Hovemeyer
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
CLASS_HASH_ELEMENT_NAME
XML element name for a ClassHash.static java.lang.String
METHOD_HASH_ELEMENT_NAME
XML element name for a MethodHash.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description int
compareTo(ClassHash other)
ClassHash
computeHash(org.apache.bcel.classfile.JavaClass javaClass)
Compute hash for given class and all of its methods.boolean
equals(java.lang.Object o)
byte[]
getClassHash()
Get class hash.java.lang.String
getClassName()
MethodHash
getMethodHash(XMethod method)
Get method hash for given method.int
hashCode()
static java.lang.String
hashToString(byte[] hash)
Convert a hash to a string of hex digits.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[]
stringToHash(java.lang.String s)
Convert a string of hex digits to a hash.java.lang.String
toString()
void
writeXML(XMLOutput xmlOutput)
Write this object to given XMLOutput.
-
-
-
Field Detail
-
CLASS_HASH_ELEMENT_NAME
public static final java.lang.String CLASS_HASH_ELEMENT_NAME
XML element name for a ClassHash.- See Also:
- Constant Field Values
-
METHOD_HASH_ELEMENT_NAME
public static final java.lang.String METHOD_HASH_ELEMENT_NAME
XML element name for a MethodHash.- See Also:
- Constant Field Values
-
-
Method Detail
-
setMethodHash
public void setMethodHash(XMethod method, byte[] methodHash)
Set method hash for given method.- Parameters:
method
- the methodmethodHash
- the method hash
-
getClassName
public java.lang.String 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
public MethodHash getMethodHash(XMethod method)
Get method hash for given method.- Parameters:
method
- the method- Returns:
- the MethodHash
-
computeHash
public ClassHash computeHash(org.apache.bcel.classfile.JavaClass javaClass)
Compute hash for given class and all of its methods.- Parameters:
javaClass
- the class- Returns:
- this object
-
writeXML
public void writeXML(XMLOutput xmlOutput) throws java.io.IOException
Description copied from interface:XMLWriteable
Write this object to given XMLOutput.- Specified by:
writeXML
in interfaceXMLWriteable
- Parameters:
xmlOutput
- the XMLOutput for the document- Throws:
java.io.IOException
-
hashToString
public static java.lang.String hashToString(byte[] hash)
Convert a hash to a string of hex digits.- Parameters:
hash
- the hash- Returns:
- a String representation of the hash
-
stringToHash
public static byte[] stringToHash(java.lang.String s)
Convert a string of hex digits to a hash.- Parameters:
s
- string of hex digits- Returns:
- the hash value represented by the string
-
isSameHash
public boolean isSameHash(ClassHash other)
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()
- Overrides:
hashCode
in classjava.lang.Object
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equals
in classjava.lang.Object
-
compareTo
public int compareTo(ClassHash other)
- Specified by:
compareTo
in interfacejava.lang.Comparable<ClassHash>
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-