Class 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
    • Constructor Detail

      • ZipEightByteInteger

        public ZipEightByteInteger​(long value)
        Create instance from a number.
        Parameters:
        value - the long to store as a ZipEightByteInteger
      • ZipEightByteInteger

        public ZipEightByteInteger​(BigInteger value)
        Create instance from a number.
        Parameters:
        value - the BigInteger to store as a ZipEightByteInteger
      • ZipEightByteInteger

        public ZipEightByteInteger​(byte[] bytes)
        Create instance from bytes.
        Parameters:
        bytes - the bytes to store as a ZipEightByteInteger
      • ZipEightByteInteger

        public ZipEightByteInteger​(byte[] bytes,
                                   int offset)
        Create instance from the eight bytes starting at offset.
        Parameters:
        bytes - the bytes to store as a ZipEightByteInteger
        offset - the offset to start
    • Method Detail

      • getBytes

        public byte[] getBytes()
        Get value as eight bytes in big endian byte order.
        Returns:
        value as eight bytes in big endian order
      • getLongValue

        public long getLongValue()
        Get value as Java long.
        Returns:
        value as a long
      • getValue

        public BigInteger getValue()
        Get value as Java BigInteger.
        Returns:
        value as a BigInteger
      • getBytes

        public static byte[] getBytes​(long value)
        Get 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​(BigInteger value)
        Get 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,
                                        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,
                                          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
      • 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
      • 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
      • 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 hashCode of the value stored in the ZipEightByteInteger