public class ExtraFieldUtils
extends java.lang.Object
| Modifier and Type | Class and Description | 
|---|---|
static class  | 
ExtraFieldUtils.UnparseableExtraField
"enum" for the possible actions to take if the extra field
 cannot be parsed. 
 | 
| Constructor and Description | 
|---|
ExtraFieldUtils()  | 
| Modifier and Type | Method and Description | 
|---|---|
static ZipExtraField | 
createExtraField(ZipShort headerId)
Create an instance of the appropriate ExtraField, falls back to
  
UnrecognizedExtraField. | 
static ZipExtraField | 
createExtraFieldNoDefault(ZipShort headerId)
Create an instance of the appropriate ExtraField. 
 | 
static ZipExtraField | 
fillExtraField(ZipExtraField ze,
              byte[] data,
              int off,
              int len,
              boolean local)
Fills in the extra field data into the given instance. 
 | 
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,
     ExtraFieldParsingBehavior parsingBehavior)
Split the array into ExtraFields and populate them with the
 given data. 
 | 
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. 
 | 
public static void register(java.lang.Class<?> c)
The given class must have a no-arg constructor and implement
 the ZipExtraField interface.
c - the class to registerpublic static ZipExtraField createExtraField(ZipShort headerId) throws java.lang.InstantiationException, java.lang.IllegalAccessException
UnrecognizedExtraField.headerId - the header identifierjava.lang.InstantiationException - if unable to instantiate the classjava.lang.IllegalAccessException - if not allowed to instantiate the classpublic static ZipExtraField createExtraFieldNoDefault(ZipShort headerId) throws java.lang.InstantiationException, java.lang.IllegalAccessException
headerId - the header identifierjava.lang.InstantiationException - if unable to instantiate the classjava.lang.IllegalAccessException - if not allowed to instantiate the classpublic static ZipExtraField[] parse(byte[] data) throws java.util.zip.ZipException
data - an array of bytes as it appears in local file datajava.util.zip.ZipException - on errorpublic static ZipExtraField[] parse(byte[] data, boolean local) throws java.util.zip.ZipException
data - an array of byteslocal - whether data originates from the local file data
 or the central directoryjava.util.zip.ZipException - on errorpublic static ZipExtraField[] parse(byte[] data, boolean local, ExtraFieldUtils.UnparseableExtraField onUnparseableData) throws java.util.zip.ZipException
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.java.util.zip.ZipException - on errorpublic static ZipExtraField[] parse(byte[] data, boolean local, ExtraFieldParsingBehavior parsingBehavior) throws java.util.zip.ZipException
data - an array of bytesparsingBehavior - controls parsing of extra fields.local - whether data originates from the local file data
 or the central directoryjava.util.zip.ZipException - on errorpublic static byte[] mergeLocalFileDataData(ZipExtraField[] data)
data - an array of ExtraFilespublic static byte[] mergeCentralDirectoryData(ZipExtraField[] data)
data - an array of ExtraFieldspublic static ZipExtraField fillExtraField(ZipExtraField ze, byte[] data, int off, int len, boolean local) throws java.util.zip.ZipException
Calls ZipExtraField.parseFromCentralDirectoryData(byte[], int, int) or ZipExtraField.parseFromLocalFileData(byte[], int, int) internally and wraps any ArrayIndexOutOfBoundsException thrown into a ZipException.
ze - the extra field instance to filldata - the array of extra field dataoff - offset into data where this field's data startslen - the length of this field's datalocal - whether the extra field data stems from the local
 file header. If this is false then the data is part if the
 central directory header extra data.nulljava.util.zip.ZipException - if an error occursCopyright © 2010 - 2023 Adobe. All Rights Reserved