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