Package org.apache.tools.zip

# Class ExtraFieldUtils

java.lang.Object
org.apache.tools.zip.ExtraFieldUtils

    public class ExtraFieldUtils
    extends java.lang.Object

ZipExtraField related methods

- ## Nested Class Summary

  Nested Classes
  Modifier and Type | Class | Description
  --- | --- | ---
  `static class` | `ExtraFieldUtils.UnparseableExtraField` | "enum" for the possible actions to take if the extra field cannot be parsed.

- ## Constructor Summary

  Constructors
  Constructor | Description
  --- | ---
  `ExtraFieldUtils()` |

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `static ZipExtraField` | `createExtraField​(ZipShort headerId)` | Create an instance of the appropriate ExtraField, falls back to `UnrecognizedExtraField`.
  `static byte[]` | `mergeCentralDirectoryData​(ZipExtraField[] data)` | Merges the central directory fields of the given ZipExtraFields.
  `static byte[]` | `mergeLocalFileDataData​(ZipExtraField[] data)` | Merges the local file data fields of the given ZipExtraFields.
  `static ZipExtraField[]` | `parse​(byte[] data)` | Split the array into ExtraFields and populate them with the given data as local file data, throwing an exception if the data cannot be parsed.
  `static ZipExtraField[]` | `parse​(byte[] data, boolean local)` | Split the array into ExtraFields and populate them with the given data, throwing an exception if the data cannot be parsed.
  `static ZipExtraField[]` | `parse​(byte[] data, boolean local, ExtraFieldUtils.UnparseableExtraField onUnparseableData)` | Split the array into ExtraFields and populate them with the given data.
  `static void` | `register​(java.lang.Class<?> c)` | Register a ZipExtraField implementation.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### ExtraFieldUtils

    public ExtraFieldUtils()

- ## Method Details

  - ### register

    public static void register​(java.lang.Class<?> c)
    Register a ZipExtraField implementation.

    The given class must have a no-arg constructor and implement the `ZipExtraField interface`.

    Parameters:
      `c` - the class to register
    Since:
      1.1

  - ### createExtraField

    public static ZipExtraField createExtraField​(ZipShort headerId) throws java.lang.InstantiationException, java.lang.IllegalAccessException
    Create an instance of the appropriate ExtraField, falls back to `UnrecognizedExtraField`.
    Parameters:
      `headerId` - the header identifier
    Returns:
      an instance of the appropriate ExtraField
    Throws:
      `java.lang.InstantiationException` - if unable to instantiate the class
      `java.lang.IllegalAccessException` - if not allowed to instantiate the class
    Since:
      1.1

  - ### parse

    public static ZipExtraField[] parse​(byte[] data) throws java.util.zip.ZipException
    Split the array into ExtraFields and populate them with the given data as local file data, throwing an exception if the data cannot be parsed.
    Parameters:
      `data` - an array of bytes as it appears in local file data
    Returns:
      an array of ExtraFields
    Throws:
      `java.util.zip.ZipException` - on error

  - ### parse

    public static ZipExtraField[] parse​(byte[] data, boolean local) throws java.util.zip.ZipException
    Split the array into ExtraFields and populate them with the given data, throwing an exception if the data cannot be parsed.
    Parameters:
      `data` - an array of bytes
      `local` - whether data originates from the local file data or the central directory
    Returns:
      an array of ExtraFields
    Throws:
      `java.util.zip.ZipException` - on error
    Since:
      1.1

  - ### parse

    public static ZipExtraField[] parse​(byte[] data, boolean local, ExtraFieldUtils.UnparseableExtraField onUnparseableData) throws java.util.zip.ZipException
    Split the array into ExtraFields and populate them with the given data.
    Parameters:
      `data` - an array of bytes
      `local` - whether data originates from the local file data or the central directory
      `onUnparseableData` - what to do if the extra field data cannot be parsed.
    Returns:
      an array of ExtraFields
    Throws:
      `java.util.zip.ZipException` - on error
    Since:
      Ant 1.8.1

  - ### mergeLocalFileDataData

    public static byte[] mergeLocalFileDataData​(ZipExtraField[] data)
    Merges the local file data fields of the given ZipExtraFields.
    Parameters:
      `data` - an array of ExtraFiles
    Returns:
      an array of bytes
    Since:
      1.1

  - ### mergeCentralDirectoryData

    public static byte[] mergeCentralDirectoryData​(ZipExtraField[] data)
    Merges the central directory fields of the given ZipExtraFields.
    Parameters:
      `data` - an array of ExtraFields
    Returns:
      an array of bytes
    Since:
      1.1