org.apache.commons.compress.archivers.zip

## Class X7875_NewUnix

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

- All Implemented Interfaces:
    Serializable, Cloneable, ZipExtraField

      public class X7875_NewUnix
      extends Object
      implements ZipExtraField, Cloneable, Serializable

  An extra field that stores UNIX UID/GID data (owner & group ownership) for a given ZIP entry. We're using the field definition given in Info-Zip's source archive: zip-3.0.tar.gz/proginfo/extrafld.txt

       Local-header version:

       Value         Size        Description
       -----         ----        -----------
       0x7875        Short       tag for this extra block type ("ux")
       TSize         Short       total data size for this block
       Version       1 byte      version of this extra field, currently 1
       UIDSize       1 byte      Size of UID field
       UID           Variable    UID for this entry (little endian)
       GIDSize       1 byte      Size of GID field
       GID           Variable    GID for this entry (little endian)

       Central-header version:

       Value         Size        Description
       -----         ----        -----------
       0x7855        Short       tag for this extra block type ("Ux")
       TSize         Short       total data size for this block (0)

  Since:
    1.5
  See Also:
    Serialized Form

- - ### Field Summary

    - ### Fields inherited from interface org.apache.commons.compress.archivers.zip.ZipExtraField

      `EXTRAFIELD_HEADER_SIZE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `X7875_NewUnix()` Constructor for X7875_NewUnix.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Object` | `clone()`
    `boolean` | `equals(Object o)`
    `byte[]` | `getCentralDirectoryData()` The actual data to put into central directory data - without Header-ID or length specifier.
    `ZipShort` | `getCentralDirectoryLength()` Length of the extra field in the central directory data - without Header-ID or length specifier.
    `long` | `getGID()` Gets the GID as a long.
    `ZipShort` | `getHeaderId()` The Header-ID.
    `byte[]` | `getLocalFileDataData()` The actual data to put into local file data - without Header-ID or length specifier.
    `ZipShort` | `getLocalFileDataLength()` Length of the extra field in the local file data - without Header-ID or length specifier.
    `long` | `getUID()` Gets the UID as a long.
    `int` | `hashCode()`
    `void` | `parseFromCentralDirectoryData(byte[] buffer, int offset, int length)` Doesn't do anything since this class doesn't store anything inside the central directory.
    `void` | `parseFromLocalFileData(byte[] data, int offset, int length)` Populate data from this array as if it was in local file data.
    `void` | `setGID(long l)` Sets the GID.
    `void` | `setUID(long l)` Sets the UID.
    `String` | `toString()` Returns a String representation of this class useful for debugging purposes.

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

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

- - ### Constructor Detail

    - #### X7875_NewUnix

          public X7875_NewUnix()

      Constructor for X7875_NewUnix.

  - ### Method Detail

    - #### clone

          public Object clone()
                       throws CloneNotSupportedException

      Overrides:
        `clone` in class `Object`
      Throws:
        `CloneNotSupportedException`

    - #### equals

          public boolean equals(Object o)

      Overrides:
        `equals` in class `Object`

    - #### getCentralDirectoryData

          public byte[] getCentralDirectoryData()

      The actual data to put into central directory data - without Header-ID or length specifier.
      Specified by:
        `getCentralDirectoryData` in interface `ZipExtraField`
      Returns:
        get the data

    - #### getCentralDirectoryLength

          public ZipShort getCentralDirectoryLength()

      Length of the extra field in the central directory data - without Header-ID or length specifier.
      Specified by:
        `getCentralDirectoryLength` in interface `ZipExtraField`
      Returns:
        a `ZipShort` for the length of the data of this extra field

    - #### getGID

          public long getGID()

      Gets the GID as a long. GID is typically a 32 bit unsigned value on most UNIX systems, so we return a long to avoid integer overflow into the negatives in case values above and including 2^31 are being used.
      Returns:
        the GID value.

    - #### getHeaderId

          public ZipShort getHeaderId()

      The Header-ID.
      Specified by:
        `getHeaderId` in interface `ZipExtraField`
      Returns:
        the value for the header id for this extrafield

    - #### getLocalFileDataData

          public byte[] getLocalFileDataData()

      The actual data to put into local file data - without Header-ID or length specifier.
      Specified by:
        `getLocalFileDataData` in interface `ZipExtraField`
      Returns:
        get the data

    - #### getLocalFileDataLength

          public ZipShort getLocalFileDataLength()

      Length of the extra field in the local file data - without Header-ID or length specifier.
      Specified by:
        `getLocalFileDataLength` in interface `ZipExtraField`
      Returns:
        a `ZipShort` for the length of the data of this extra field

    - #### getUID

          public long getUID()

      Gets the UID as a long. UID is typically a 32 bit unsigned value on most UNIX systems, so we return a long to avoid integer overflow into the negatives in case values above and including 2^31 are being used.
      Returns:
        the UID value.

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `Object`

    - #### parseFromCentralDirectoryData

          public void parseFromCentralDirectoryData(byte[] buffer,
                                                    int offset,
                                                    int length)
                                             throws ZipException

      Doesn't do anything since this class doesn't store anything inside the central directory.
      Specified by:
        `parseFromCentralDirectoryData` in interface `ZipExtraField`
      Parameters:
        `buffer` - the buffer to read data from
        `offset` - offset into buffer to read data
        `length` - the length of data
      Throws:
        `ZipException` - on error

    - #### parseFromLocalFileData

          public void parseFromLocalFileData(byte[] data,
                                             int offset,
                                             int length)
                                      throws ZipException

      Populate data from this array as if it was in local file data.
      Specified by:
        `parseFromLocalFileData` in interface `ZipExtraField`
      Parameters:
        `data` - an array of bytes
        `offset` - the start offset
        `length` - the number of bytes in the array from offset
      Throws:
        `ZipException` - on error

    - #### setGID

          public void setGID(long l)

      Sets the GID.
      Parameters:
        `l` - GID value to set on this extra field.

    - #### setUID

          public void setUID(long l)

      Sets the UID.
      Parameters:
        `l` - UID value to set on this extra field.

    - #### toString

          public String toString()

      Returns a String representation of this class useful for debugging purposes.
      Overrides:
        `toString` in class `Object`
      Returns:
        A String representation of this class useful for debugging purposes.

Copyright © 2002–2022 The Apache Software Foundation. All rights reserved.