edu.harvard.hul.ois.jhove
Class Checksummer

java.lang.Object
  extended by edu.harvard.hul.ois.jhove.Checksummer
All Implemented Interfaces:
java.util.zip.Checksum

public class Checksummer
extends java.lang.Object
implements java.util.zip.Checksum

The Checksummer class encapsulates the calculation of the CRC32, MD5, and SHA-1 checksums.


Field Summary
protected  long _nByte
          Byte count.
 
Constructor Summary
Checksummer()
          Creates a Checksummer, with instances of each of CRC32, MD5 MessageDigest, and SHA-1 MessageDigest.
 
Method Summary
 java.lang.String getCRC32()
          Returns the value of the CRC32 as a hex string.
 java.lang.String getMD5()
          Returns the value of the MD5 digest as a hex string.
 java.lang.String getSHA1()
          Returns the value of the SHA-1 digest as a hex string.
 long getValue()
          getValue is required by the Checksum interface, but we can return only one of the three values.
 void reset()
          Resets all checksums and the byte count to their initial values.
 void update(byte b)
          Updates the checksum with the argument.
 void update(byte[] b)
          Updates the checksum with the argument.
 void update(byte[] b, int off, int len)
          Updates the checksum with the argument.
 void update(int b)
          Updates the checksum with the argument.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_nByte

protected long _nByte
Byte count.

Constructor Detail

Checksummer

public Checksummer()
Creates a Checksummer, with instances of each of CRC32, MD5 MessageDigest, and SHA-1 MessageDigest. If one or both of the MessageDigests aren't supported on the current platform, they are left as null.

See Also:
CRC32, MessageDigest
Method Detail

reset

public void reset()
Resets all checksums and the byte count to their initial values.

Specified by:
reset in interface java.util.zip.Checksum

getValue

public long getValue()
getValue is required by the Checksum interface, but we can return only one of the three values. We return the CRC32 value, since that's the one which is guaranteed to be available.

Specified by:
getValue in interface java.util.zip.Checksum

update

public void update(byte b)
Updates the checksum with the argument. Called when a signed byte is available.


update

public void update(int b)
Updates the checksum with the argument. Called when an unsigned byte is available.

Specified by:
update in interface java.util.zip.Checksum

update

public void update(byte[] b)
Updates the checksum with the argument. Called when a byte array is available.


update

public void update(byte[] b,
                   int off,
                   int len)
Updates the checksum with the argument. Called when a byte array is available.

Specified by:
update in interface java.util.zip.Checksum

getCRC32

public java.lang.String getCRC32()
Returns the value of the CRC32 as a hex string.


getMD5

public java.lang.String getMD5()
Returns the value of the MD5 digest as a hex string. Returns null if the digest is not available.


getSHA1

public java.lang.String getSHA1()
Returns the value of the SHA-1 digest as a hex string. Returns null if the digest is not available.