Package org.apache.commons.compress.archivers.zip

# Class ZipEightByteInteger

java.lang.Object
org.apache.commons.compress.archivers.zip.ZipEightByteInteger

All Implemented Interfaces:
  `Serializable`

public final class ZipEightByteInteger extends Object implements Serializable
Utility class that represents an eight byte integer with conversion rules for the little-endian byte order of ZIP files.

Since:
  1.2
See Also:
  - Serialized Form
This class is immutable

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final ZipEightByteInteger`
  `ZERO`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ZipEightByteInteger(byte[] bytes)`
  Constructs a new instance from bytes.
  `ZipEightByteInteger(byte[] bytes, int offset)`
  Constructs a new instance from the eight bytes starting at offset.
  `ZipEightByteInteger(long value)`
  Constructs a new instance from a number.
  `ZipEightByteInteger(BigInteger value)`
  Constructs a new instance from a number.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `equals(Object o)`
  Override to make two instances with same value equal.
  `byte[]`
  `getBytes()`
  Gets value as eight bytes in big-endian byte order.
  `static byte[]`
  `getBytes(long value)`
  Gets value as eight bytes in big-endian byte order.
  `static byte[]`
  `getBytes(BigInteger value)`
  Gets value as eight bytes in big-endian byte order.
  `long`
  `getLongValue()`
  Gets value as Java long.
  `static long`
  `getLongValue(byte[] bytes)`
  Helper method to get the value as a Java long from an eight-byte array
  `static long`
  `getLongValue(byte[] bytes, int offset)`
  Helper method to get the value as a Java long from eight bytes starting at given array offset
  `BigInteger`
  `getValue()`
  Gets value as Java BigInteger.
  `static BigInteger`
  `getValue(byte[] bytes)`
  Helper method to get the value as a Java long from an eight-byte array
  `static BigInteger`
  `getValue(byte[] bytes, int offset)`
  Helper method to get the value as a Java BigInteger from eight bytes starting at given array offset
  `int`
  `hashCode()`
  Override to make two instances with same value equal.
  `String`
  `toString()`

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

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

- ## Field Details

  - ### ZERO

    public static final ZipEightByteInteger ZERO

- ## Constructor Details

  - ### ZipEightByteInteger

    public ZipEightByteInteger(BigInteger value)
    Constructs a new instance from a number.
    Parameters:
      `value` - the BigInteger to store as a ZipEightByteInteger

  - ### ZipEightByteInteger

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

  - ### ZipEightByteInteger

    public ZipEightByteInteger(byte[] bytes, int offset)
    Constructs a new instance from the eight bytes starting at offset.
    Parameters:
      `bytes` - the bytes to store as a ZipEightByteInteger
      `offset` - the offset to start

  - ### ZipEightByteInteger

    public ZipEightByteInteger(long value)
    Constructs a new instance from a number.
    Parameters:
      `value` - the long to store as a ZipEightByteInteger

- ## Method Details

  - ### getBytes

    public static byte[] getBytes(BigInteger value)
    Gets value as eight bytes in big-endian byte order.
    Parameters:
      `value` - the value to convert
    Returns:
      value as eight bytes in big-endian byte order

  - ### getBytes

    public static byte[] getBytes(long value)
    Gets value as eight bytes in big-endian byte order.
    Parameters:
      `value` - the value to convert
    Returns:
      value as eight bytes in big-endian byte order

  - ### getLongValue

    public static long getLongValue(byte[] bytes)
    Helper method to get the value as a Java long from an eight-byte array
    Parameters:
      `bytes` - the array of bytes
    Returns:
      the corresponding Java long value

  - ### getLongValue

    public static long getLongValue(byte[] bytes, int offset)
    Helper method to get the value as a Java long from eight 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 BigInteger getValue(byte[] bytes)
    Helper method to get the value as a Java long from an eight-byte array
    Parameters:
      `bytes` - the array of bytes
    Returns:
      the corresponding Java BigInteger value

  - ### getValue

    public static BigInteger getValue(byte[] bytes, int offset)
    Helper method to get the value as a Java BigInteger from eight bytes starting at given array offset
    Parameters:
      `bytes` - the array of bytes
      `offset` - the offset to start
    Returns:
      the corresponding Java BigInteger 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

  - ### getBytes

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

  - ### getLongValue

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

  - ### getValue

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

  - ### hashCode

    public int hashCode()
    Override to make two instances with same value equal.
    Overrides:
      `hashCode` in class `Object`
    Returns:
      the hash code of the value stored in the ZipEightByteInteger

  - ### toString

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