Package 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 little-endian byte order of ZIP files.

See Also:
  - Serialized Form
This class is immutable

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final ZipLong`
  `AED_SIG`
  Archive extra data record signature.
  `static final ZipLong`
  `CFH_SIG`
  Central File Header Signature
  `static final ZipLong`
  `DD_SIG`
  Data Descriptor signature.
  `static final ZipLong`
  `LFH_SIG`
  Local File Header Signature
  `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).

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ZipLong(byte[] bytes)`
  Constructs a new instance from bytes.
  `ZipLong(byte[] bytes, int offset)`
  Creates instance from the four bytes starting at offset.
  `ZipLong(int value)`
  create instance from a Java int.
  `ZipLong(long value)`
  Creates instance from a number.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Object`
  `clone()`
  `boolean`
  `equals(Object o)`
  Override to make two instances with same value equal.
  `byte[]`
  `getBytes()`
  Gets value as four bytes in big-endian byte order.
  `static byte[]`
  `getBytes(long value)`
  Gets value as four bytes in big-endian byte order.
  `int`
  `getIntValue()`
  Gets value as a (signed) Java int
  `long`
  `getValue()`
  Gets 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)`
  Puts this long value in a buffer as four bytes in little-endian byte order.
  `static void`
  `putLong(long value, byte[] buf, int offset)`
  Puts a long value in a buffer as four bytes in little-endian byte order.
  `String`
  `toString()`

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

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

- ## Field Details

  - ### 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 Details

  - ### ZipLong

    public ZipLong(byte[] bytes)
    Constructs a new instance from bytes.
    Parameters:
      `bytes` - the bytes to store as a ZipLong

  - ### ZipLong

    public ZipLong(byte[] bytes, int offset)
    Creates instance from the four bytes starting at offset.
    Parameters:
      `bytes` - the bytes to store as a ZipLong
      `offset` - the offset to start

  - ### ZipLong

    public ZipLong(int value)
    create instance from a Java int.
    Parameters:
      `value` - the int to store as a ZipLong
    Since:
      1.15

  - ### ZipLong

    public ZipLong(long value)
    Creates instance from a number.
    Parameters:
      `value` - the long to store as a ZipLong

- ## Method Details

  - ### getBytes

    public static byte[] getBytes(long value)
    Gets 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

  - ### 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

  - ### 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

  - ### putLong

    public static void putLong(long value, byte[] buf, int offset)
    Puts a long value in a buffer as four bytes in little-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`

  - ### clone

    public Object clone()
    Overrides:
      `clone` in class `Object`

  - ### 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

  - ### getBytes

    public byte[] getBytes()
    Gets value as four bytes in big-endian byte order.
    Returns:
      value as four bytes in big-endian order

  - ### getIntValue

    public int getIntValue()
    Gets value as a (signed) Java int
    Returns:
      value as int
    Since:
      1.15

  - ### getValue

    public long getValue()
    Gets value as Java long.
    Returns:
      value as a long

  - ### 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

  - ### putLong

    public void putLong(byte[] buf, int offset)
    Puts this long value in a buffer as four bytes in little-endian byte order.
    Parameters:
      `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`

  - ### toString

    public String toString()
    Overrides:
      `toString` in class `Object`