Commons Compress 1.5-redhat-1

org.apache.commons.compress.archivers.zip
Class X7875_NewUnix

java.lang.Object
  extended by 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

 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)
 

Since:
1.5
See Also:
Serialized Form

Constructor Summary
X7875_NewUnix()
          Constructor for X7875_NewUnix.
 
Method Summary
 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 special since this class always uses the same data in central directory and local file data.
 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

getHeaderId

public ZipShort getHeaderId()
The Header-ID.

Specified by:
getHeaderId in interface ZipExtraField
Returns:
the value for the header id for this extrafield

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.

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.

setUID

public void setUID(long l)
Sets the UID.

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

setGID

public void setGID(long l)
Sets the GID.

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

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

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

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

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

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

parseFromCentralDirectoryData

public void parseFromCentralDirectoryData(byte[] buffer,
                                          int offset,
                                          int length)
                                   throws ZipException
Doesn't do anything special since this class always uses the same data in central directory and local file data.

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

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.

clone

public Object clone()
             throws CloneNotSupportedException
Overrides:
clone in class Object
Throws:
CloneNotSupportedException

equals

public boolean equals(Object o)
Overrides:
equals in class Object

hashCode

public int hashCode()
Overrides:
hashCode in class Object

Commons Compress 1.5-redhat-1

Copyright © 2013 JBoss by Red Hat. All Rights Reserved.