Package org.apache.tools.zip
Class ExtraFieldUtils
java.lang.Object
org.apache.tools.zip.ExtraFieldUtils
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic final class
"enum" for the possible actions to take if the extra field cannot be parsed. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic ZipExtraField
createExtraField
(ZipShort headerId) Create an instance of the appropriate ExtraField, falls back toUnrecognizedExtraField
.static byte[]
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 a ZipExtraField implementation.
-
Constructor Details
-
ExtraFieldUtils
public ExtraFieldUtils()
-
-
Method Details
-
register
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 InstantiationException, IllegalAccessException Create an instance of the appropriate ExtraField, falls back toUnrecognizedExtraField
.- Parameters:
headerId
- the header identifier- Returns:
- an instance of the appropriate ExtraField
- Throws:
InstantiationException
- if unable to instantiate the classIllegalAccessException
- if not allowed to instantiate the class- Since:
- 1.1
-
parse
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
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 byteslocal
- 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) throws ZipException Split the array into ExtraFields and populate them with the given data.- Parameters:
data
- an array of byteslocal
- whether data originates from the local file data or the central directoryonUnparseableData
- 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
-
mergeLocalFileDataData
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
Merges the central directory fields of the given ZipExtraFields.- Parameters:
data
- an array of ExtraFields- Returns:
- an array of bytes
- Since:
- 1.1
-