org.apache.tools.zip

Class ExtraFieldUtils

public class ExtraFieldUtils extends Object

ZipExtraField related methods
Nested Class Summary
static classExtraFieldUtils.UnparseableExtraField
"enum" for the possible actions to take if the extra field cannot be parsed.
Method Summary
static ZipExtraFieldcreateExtraField(ZipShort headerId)
Create an instance of the approriate 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 voidregister(Class c)
Register a ZipExtraField implementation.

Method Detail

createExtraField

public static ZipExtraField createExtraField(ZipShort headerId)
Create an instance of the approriate ExtraField, falls back to UnrecognizedExtraField.

Parameters: headerId the header identifier

Returns: an instance of the appropiate ExtraField

Throws: InstantiationException if unable to instantiate the class IllegalAccessException if not allowed to instatiate the class

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

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

parse

public 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.

Parameters: data an array of bytes as it appears in local file data

Returns: an array of ExtraFields

Throws: ZipException on error

parse

public 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.

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: ZipException on error

Since: 1.1

parse

public static ZipExtraField[] parse(byte[] data, boolean local, ExtraFieldUtils.UnparseableExtraField onUnparseableData)
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: ZipException on error

Since: Ant 1.8.1

register

public static void register(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