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 Object implements ZipExtraField
A common base class for Unicode extra information extra fields.

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`AbstractUnicodeExtraField()`
`protected`
`AbstractUnicodeExtraField(String text, byte[] bytes)`
Assemble as unicode extension from the name/comment and encoding of the original zip entry.
`protected`
`AbstractUnicodeExtraField(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(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(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 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:
  `ZipException` - on error