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.StringCLASS_HASH_ELEMENT_NAMEXML element name for a ClassHash.static java.lang.StringMETHOD_HASH_ELEMENT_NAMEXML element name for a MethodHash.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description intcompareTo(ClassHash other)ClassHashcomputeHash(org.apache.bcel.classfile.JavaClass javaClass)Compute hash for given class and all of its methods.booleanequals(java.lang.Object o)byte[]getClassHash()Get class hash.java.lang.StringgetClassName()MethodHashgetMethodHash(XMethod method)Get method hash for given method.inthashCode()static java.lang.StringhashToString(byte[] hash)Convert a hash to a string of hex digits.booleanisSameHash(ClassHash other)Return whether or not this class hash has the same hash value as the one given.voidsetClassHash(byte[] classHash)Set class hash.voidsetMethodHash(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.StringtoString()voidwriteXML(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:XMLWriteableWrite this object to given XMLOutput.- Specified by:
writeXMLin 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:
hashCodein classjava.lang.Object
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equalsin classjava.lang.Object
-
compareTo
public int compareTo(ClassHash other)
- Specified by:
compareToin interfacejava.lang.Comparable<ClassHash>
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-