Class ZipLong

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable

    public final class ZipLong
    extends java.lang.Object
    implements java.lang.Cloneable, java.io.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
    • Field Summary

      Fields 
      Modifier and Type Field 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 Description
      ZipLong​(byte[] bytes)
      Create instance from bytes.
      ZipLong​(byte[] bytes, int offset)
      Create instance from the four bytes starting at offset.
      ZipLong​(int value)
      create instance from a java int.
      ZipLong​(long value)
      Create instance from a number.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Object clone()  
      boolean equals​(java.lang.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.
      int getIntValue()
      Get value as a (signed) java int
      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.
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        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​(int value)
        create instance from a java int.
        Parameters:
        value - the int to store as a ZipLong
        Since:
        1.15
      • 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
      • getIntValue

        public int getIntValue()
        Get value as a (signed) java int
        Returns:
        value as int
        Since:
        1.15
      • 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​(java.lang.Object o)
        Override to make two instances with same value equal.
        Overrides:
        equals in class java.lang.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 java.lang.Object
        Returns:
        the value stored in the ZipLong
      • clone

        public java.lang.Object clone()
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object