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
Modifier | Constructor | Description
--- | --- | ---
`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

Modifier and Type | Method | Description
--- | --- | ---
`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 Details

### 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 Details

### 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