# ZipLong (Apache Commons Compress 1.13 API)

org.apache.commons.compress.archivers.zip

## Class ZipLong

- java.lang.Object
- - org.apache.commons.compress.archivers.zip.ZipLong

- All Implemented Interfaces:
    Serializable, Cloneable

      public final class ZipLong
      extends Object
      implements Cloneable, Serializable

  Utility class that represents a four byte integer with conversion rules for the big endian byte order of ZIP files.
  See Also:
    Serialized Form
  This class is immutable

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static ZipLong` | `AED_SIG` Archive extra data record signature.
    `static ZipLong` | `CFH_SIG` Central File Header Signature
    `static ZipLong` | `DD_SIG` Data Descriptor signature.
    `static ZipLong` | `LFH_SIG` Local File Header Signature
    `static ZipLong` | `SINGLE_SEGMENT_SPLIT_MARKER` Marks ZIP archives that were supposed to be split or spanned but only needed a single segment in then end (so are actually neither split nor spanned).

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ZipLong(byte[] bytes)` Create instance from bytes.
    `ZipLong(byte[] bytes, int offset)` Create instance from the four bytes starting at offset.
    `ZipLong(long value)` Create instance from a number.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Object` | `clone()`
    `boolean` | `equals(Object o)` Override to make two instances with same value equal.
    `byte[]` | `getBytes()` Get value as four bytes in big endian byte order.
    `static byte[]` | `getBytes(long value)` Get value as four bytes in big endian byte order.
    `long` | `getValue()` Get value as Java long.
    `static long` | `getValue(byte[] bytes)` Helper method to get the value as a Java long from a four-byte array
    `static long` | `getValue(byte[] bytes, int offset)` Helper method to get the value as a Java long from four bytes starting at given array offset
    `int` | `hashCode()` Override to make two instances with same value equal.
    `void` | `putLong(byte[] buf, int offset)`
    `static void` | `putLong(long value, byte[] buf, int offset)` put the value as four bytes in big endian byte order.
    `String` | `toString()`

    - ### Methods inherited from class java.lang.Object

      `finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### CFH_SIG

          public static final ZipLong CFH_SIG

      Central File Header Signature

    - #### LFH_SIG

          public static final ZipLong LFH_SIG

      Local File Header Signature

    - #### DD_SIG

          public static final ZipLong DD_SIG

      Data Descriptor signature.

      Actually, PKWARE uses this as marker for split/spanned archives and other archivers have started to use it as Data Descriptor signature (as well).

      Since:
        1.1

    - #### SINGLE_SEGMENT_SPLIT_MARKER

          public static final ZipLong SINGLE_SEGMENT_SPLIT_MARKER

      Marks ZIP archives that were supposed to be split or spanned but only needed a single segment in then end (so are actually neither split nor spanned).

      This is the "PK00" prefix found in some archives.

      Since:
        1.5

    - #### AED_SIG

          public static final ZipLong AED_SIG

      Archive extra data record signature.
      Since:
        1.5

  - ### Constructor Detail

    - #### ZipLong

          public ZipLong(long value)

      Create instance from a number.
      Parameters:
        `value` - the long to store as a ZipLong

    - #### ZipLong

          public ZipLong(byte[] bytes)

      Create instance from bytes.
      Parameters:
        `bytes` - the bytes to store as a ZipLong

    - #### ZipLong

          public ZipLong(byte[] bytes,
                 int offset)

      Create instance from the four bytes starting at offset.
      Parameters:
        `bytes` - the bytes to store as a ZipLong
        `offset` - the offset to start

  - ### Method Detail

    - #### getBytes

          public byte[] getBytes()

      Get value as four bytes in big endian byte order.
      Returns:
        value as four bytes in big endian order

    - #### getValue

          public long getValue()

      Get value as Java long.
      Returns:
        value as a long

    - #### getBytes

          public static byte[] getBytes(long value)

      Get value as four bytes in big endian byte order.
      Parameters:
        `value` - the value to convert
      Returns:
        value as four bytes in big endian byte order

    - #### putLong

          public static void putLong(long value,
                     byte[] buf,
                     int offset)

      put the value as four bytes in big endian byte order.
      Parameters:
        `value` - the Java long to convert to bytes
        `buf` - the output buffer
        `offset` - The offset within the output buffer of the first byte to be written. must be non-negative and no larger than `buf.length-4`

    - #### putLong

          public void putLong(byte[] buf,
                     int offset)

    - #### getValue

          public static long getValue(byte[] bytes,
                      int offset)

      Helper method to get the value as a Java long from four bytes starting at given array offset
      Parameters:
        `bytes` - the array of bytes
        `offset` - the offset to start
      Returns:
        the corresponding Java long value

    - #### getValue

          public static long getValue(byte[] bytes)

      Helper method to get the value as a Java long from a four-byte array
      Parameters:
        `bytes` - the array of bytes
      Returns:
        the corresponding Java long value

    - #### equals

          public boolean equals(Object o)

      Override to make two instances with same value equal.
      Overrides:
        `equals` in class `Object`
      Parameters:
        `o` - an object to compare
      Returns:
        true if the objects are equal

    - #### hashCode

          public int hashCode()

      Override to make two instances with same value equal.
      Overrides:
        `hashCode` in class `Object`
      Returns:
        the value stored in the ZipLong

    - #### clone

          public Object clone()

      Overrides:
        `clone` in class `Object`

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

Copyright © 2016 The Apache Software Foundation. All rights reserved.