## org.apache.tools.zip
Class AbstractUnicodeExtraField

    java.lang.Object
      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 orginal 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 orginal 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 orginal 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 orginal 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()

  Description copied from interface: `ZipExtraField`
  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()

  Description copied from interface: `ZipExtraField`
  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()

  Description copied from interface: `ZipExtraField`
  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()

  Description copied from interface: `ZipExtraField`
  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

  Description copied from interface: `ZipExtraField`
  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