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
`static class` `ExtraFieldUtils.UnparseableExtraField` "enum" for the possible actions to take if the extra field cannot be parsed.

### Constructor Summary

Constructors
Constructor and Description
`ExtraFieldUtils()`

### Method Summary

All Methods Static Methods Concrete Methods
`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 Detail

#### ExtraFieldUtils

    public ExtraFieldUtils()

### Method Detail

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