class MinimalZipEntry {

  @Override
  public boolean equals(Object obj) {
    if (this == obj) {
      return true;
    }
    if (obj == null) {
      return false;
    }
    if (getClass() != obj.getClass()) {
      return false;
    }
    MinimalZipEntry other = (MinimalZipEntry) obj;
    if (compressedSize != other.compressedSize) {
      return false;
    }
    if (compressionMethod != other.compressionMethod) {
      return false;
    }
    if (crc32OfUncompressedData != other.crc32OfUncompressedData) {
      return false;
    }
    if (!Arrays.equals(fileNameBytes, other.fileNameBytes)) {
      return false;
    }
    if (fileOffsetOfCompressedData != other.fileOffsetOfCompressedData) {
      return false;
    }
    if (fileOffsetOfLocalEntry != other.fileOffsetOfLocalEntry) {
      return false;
    }
    if (generalPurposeFlagBit11 != other.generalPurposeFlagBit11) {
      return false;
    }
    if (uncompressedSize != other.uncompressedSize) {
      return false;
    }
    return true;
  }

  public  MinimalZipEntry(
      int compressionMethod,
      long crc32OfUncompressedData,
      long compressedSize,
      long uncompressedSize,
      byte[] fileNameBytes,
      boolean generalPurposeFlagBit11,
      long fileOffsetOfLocalEntry);

}