Class AsiExtraField
- java.lang.Object
 - 
- org.apache.commons.compress.archivers.zip.AsiExtraField
 
 
- 
- All Implemented Interfaces:
 java.lang.Cloneable,UnixStat,ZipExtraField
public class AsiExtraField extends java.lang.Object implements ZipExtraField, UnixStat, java.lang.Cloneable
Adds UNIX file permission and UID/GID fields as well as symbolic link handling.This class uses the ASi extra field in the format:
Value Size Description ----- ---- ----------- (Unix3) 0x756e Short tag for this extra block type TSize Short total data size for this block CRC Long CRC-32 of the remaining data Mode Short file permissions SizDev Long symlink'd size OR major/minor dev num UID Short user ID GID Short group ID (var.) variable symbolic link file nametaken from appnote.iz (Info-ZIP note, 981119) found at ftp://ftp.uu.net/pub/archiving/zip/doc/
Short is two bytes and Long is four bytes in big-endian byte and word order, device numbers are currently not supported.
 
- 
- 
Field Summary
- 
Fields inherited from interface org.apache.commons.compress.archivers.zip.UnixStat
DEFAULT_DIR_PERM, DEFAULT_FILE_PERM, DEFAULT_LINK_PERM, DIR_FLAG, FILE_FLAG, FILE_TYPE_FLAG, LINK_FLAG, PERM_MASK 
- 
Fields inherited from interface org.apache.commons.compress.archivers.zip.ZipExtraField
EXTRAFIELD_HEADER_SIZE 
 - 
 
- 
Constructor Summary
Constructors Constructor Description AsiExtraField()Constructor for AsiExtraField. 
- 
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Objectclone()byte[]getCentralDirectoryData()Delegate to local file data.ZipShortgetCentralDirectoryLength()Delegate to local file data.intgetGroupId()Gets the group id.ZipShortgetHeaderId()The Header-ID.java.lang.StringgetLinkedFile()Name of linked filebyte[]getLocalFileDataData()The actual data to put into local file data - without Header-ID or length specifier.ZipShortgetLocalFileDataLength()Length of the extra field in the local file data - without Header-ID or length specifier.intgetMode()File mode of this file.intgetUserId()Gets the user id.booleanisDirectory()Is this entry a directory?booleanisLink()Is this entry a symbolic link?voidparseFromCentralDirectoryData(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.voidparseFromLocalFileData(byte[] data, int offset, int length)Populate data from this array as if it was in local file data.voidsetDirectory(boolean dirFlag)Indicate whether this entry is a directory.voidsetGroupId(int gid)Sets the group id.voidsetLinkedFile(java.lang.String name)Indicate that this entry is a symbolic link to the given file name.voidsetMode(int mode)File mode of this file.voidsetUserId(int uid)Sets the user id. 
 - 
 
- 
- 
Method Detail
- 
clone
public java.lang.Object clone()
 
- 
getCentralDirectoryData
public byte[] getCentralDirectoryData()
Delegate to local file data.- Specified by:
 getCentralDirectoryDatain interfaceZipExtraField- Returns:
 - the local file data
 
 
- 
getCentralDirectoryLength
public ZipShort getCentralDirectoryLength()
Delegate to local file data.- Specified by:
 getCentralDirectoryLengthin interfaceZipExtraField- Returns:
 - the centralDirectory length
 
 
- 
getGroupId
public int getGroupId()
Gets the group id.- Returns:
 - the group id
 
 
- 
getHeaderId
public ZipShort getHeaderId()
The Header-ID.- Specified by:
 getHeaderIdin interfaceZipExtraField- Returns:
 - the value for the header id for this extrafield
 
 
- 
getLinkedFile
public java.lang.String getLinkedFile()
Name of linked file- Returns:
 - name of the file this entry links to if it is a symbolic link, the empty string otherwise.
 
 
- 
getLocalFileDataData
public byte[] getLocalFileDataData()
The actual data to put into local file data - without Header-ID or length specifier.- Specified by:
 getLocalFileDataDatain interfaceZipExtraField- 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:
 getLocalFileDataLengthin interfaceZipExtraField- Returns:
 - a 
ZipShortfor the length of the data of this extra field 
 
- 
getMode
public int getMode()
File mode of this file.- Returns:
 - the file mode
 
 
- 
getUserId
public int getUserId()
Gets the user id.- Returns:
 - the user id
 
 
- 
isDirectory
public boolean isDirectory()
Is this entry a directory?- Returns:
 - true if this entry is a directory
 
 
- 
isLink
public boolean isLink()
Is this entry a symbolic link?- Returns:
 - true if this is a symbolic link
 
 
- 
parseFromCentralDirectoryData
public void parseFromCentralDirectoryData(byte[] buffer, int offset, int length) throws java.util.zip.ZipExceptionDoesn't do anything special since this class always uses the same data in central directory and local file data.- Specified by:
 parseFromCentralDirectoryDatain interfaceZipExtraField- Parameters:
 buffer- the buffer to read data fromoffset- offset into buffer to read datalength- the length of data- Throws:
 java.util.zip.ZipException- on error
 
- 
parseFromLocalFileData
public void parseFromLocalFileData(byte[] data, int offset, int length) throws java.util.zip.ZipExceptionPopulate data from this array as if it was in local file data.- Specified by:
 parseFromLocalFileDatain interfaceZipExtraField- Parameters:
 data- an array of bytesoffset- the start offsetlength- the number of bytes in the array from offset- Throws:
 java.util.zip.ZipException- on error
 
- 
setDirectory
public void setDirectory(boolean dirFlag)
Indicate whether this entry is a directory.- Parameters:
 dirFlag- if true, this entry is a directory
 
- 
setGroupId
public void setGroupId(int gid)
Sets the group id.- Parameters:
 gid- the group id
 
- 
setLinkedFile
public void setLinkedFile(java.lang.String name)
Indicate that this entry is a symbolic link to the given file name.- Parameters:
 name- Name of the file this entry links to, empty String if it is not a symbolic link.
 
- 
setMode
public void setMode(int mode)
File mode of this file.- Parameters:
 mode- the file mode
 
- 
setUserId
public void setUserId(int uid)
Sets the user id.- Parameters:
 uid- the user id
 
 - 
 
 -