@Override public boolean equals(Object obj){
  if (this == obj)   return true;
  if (obj == null)   return false;
  if (getClass() != obj.getClass())   return false;
  ChunkReader other=(ChunkReader)obj;
  if (chunkRaw == null) {
    if (other.chunkRaw != null)     return false;
  }
 else   if (!chunkRaw.equals(other.chunkRaw))   return false;
  return true;
}

@ Override public boolean equals ( Object obj ) { if ( this == obj ) return true ; if ( obj == null ) return false ; if ( getClass ( ) != obj . getClass ( ) ) return false ; ChunkReader other = ( ChunkReader ) obj ; if ( chunkRaw == null ) { if ( other . chunkRaw != null ) return false ; } else if ( ! chunkRaw . equals ( other . chunkRaw ) ) return false ; return true ; }
equality ( and hash ) is basically delegated to the chunkraw
