question: private void computeHash ( ) throws IOException , NoSuchAlgorithmException { hash = 0 ; MessageDigest md = MessageDigest . getInstance ( "SHA" ) ; DataOutputStream out = new DataOutputStream ( new DigestOutputStream ( new OptimizedByteArrayOutputStream ( 127 ) , md ) ) ; out . writeUTF ( name ) ; out . flush ( ) ; byte [ ] digest = md . digest ( ) ; for ( int i = Math . min ( 8 , digest . length ) ; -- i >= 0 ; ) { hash += ( ( long ) ( digest [ i ] & 0xFF ) ) << ( i * 8 ) ; } }
target:  Computes a SHA-1 digest from the hash of the superclass, if there is a superclass, followed by the name of this class, followed by the name and type for each field, if any, declared by this class and ordered alphabetically by field name.  The first 8 bytes of the digest are used to form the 64-bit hash value for this type.