Package 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

Constructors
`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

All Methods Instance Methods Concrete Methods
`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 comment in `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