org.apache.tools.zip
Class AbstractUnicodeExtraField

java.lang.Object
  extended by org.apache.tools.zip.AbstractUnicodeExtraField
All Implemented Interfaces:
ZipExtraField
Direct Known Subclasses:
UnicodeCommentExtraField, UnicodePathExtraField

public abstract class AbstractUnicodeExtraField
extends java.lang.Object
implements ZipExtraField

A common base class for Unicode extra information extra fields.


Constructor Summary
protected AbstractUnicodeExtraField()
           
protected AbstractUnicodeExtraField(java.lang.String text, byte[] bytes)
          Assemble as unicode extension from the name/comment and encoding of the original zip entry.
protected AbstractUnicodeExtraField(java.lang.String text, byte[] bytes, int off, int len)
          Assemble as unicode extension from the name/comment and encoding of the original zip entry.
 
Method Summary
 byte[] getCentralDirectoryData()
          The actual data to put into central directory - without Header-ID or length specifier.
 ZipShort getCentralDirectoryLength()
          Length of the extra field in the central directory - without Header-ID or length specifier.
 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 getNameCRC32()
           
 byte[] getUnicodeName()
           
 void parseFromLocalFileData(byte[] buffer, int offset, int length)
          Populate data from this array as if it was in local file data.
 void setNameCRC32(long nameCRC32)
           
 void setUnicodeName(byte[] unicodeName)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.tools.zip.ZipExtraField
getHeaderId
 

Constructor Detail

AbstractUnicodeExtraField

protected AbstractUnicodeExtraField()

AbstractUnicodeExtraField

protected AbstractUnicodeExtraField(java.lang.String text,
                                    byte[] bytes,
                                    int off,
                                    int len)
Assemble as unicode extension from the name/comment and encoding of the original zip entry.

Parameters:
text - The file name or comment.
bytes - The encoded of the filename or comment in the zip file.
off - The offset of the encoded filename or comment in bytes.
len - The length of the encoded filename or commentin bytes.

AbstractUnicodeExtraField

protected AbstractUnicodeExtraField(java.lang.String text,
                                    byte[] bytes)
Assemble as unicode extension from the name/comment and encoding of the original zip entry.

Parameters:
text - The file name or comment.
bytes - The encoded of the filename or comment in the zip file.
Method Detail

getNameCRC32

public long getNameCRC32()
Returns:
The CRC32 checksum of the filename or comment as encoded in the central directory of the zip file.

setNameCRC32

public void setNameCRC32(long nameCRC32)
Parameters:
nameCRC32 - The CRC32 checksum of the filename as encoded in the central directory of the zip file to set.

getUnicodeName

public byte[] getUnicodeName()
Returns:
The utf-8 encoded name.

setUnicodeName

public void setUnicodeName(byte[] unicodeName)
Parameters:
unicodeName - The utf-8 encoded name to set.

getCentralDirectoryData

public byte[] getCentralDirectoryData()
The actual data to put into central directory - without Header-ID or length specifier.

Specified by:
getCentralDirectoryData in interface ZipExtraField
Returns:
the data

getCentralDirectoryLength

public ZipShort getCentralDirectoryLength()
Length of the extra field in the central directory - without Header-ID or length specifier.

Specified by:
getCentralDirectoryLength in interface ZipExtraField
Returns:
the length of the field in the central directory

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:
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:
the length of the field in the local file data

parseFromLocalFileData

public void parseFromLocalFileData(byte[] buffer,
                                   int offset,
                                   int length)
                            throws java.util.zip.ZipException
Populate data from this array as if it was in local file data.

Specified by:
parseFromLocalFileData in interface ZipExtraField
Parameters:
buffer - an array of bytes
offset - the start offset
length - the number of bytes in the array from offset
Throws:
java.util.zip.ZipException - on error