public class ExtraFieldUtils
extends java.lang.Object
ZipExtraField related methods.| 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)
Creates an instance of the appropriate ExtraField, falls back to
UnrecognizedExtraField. |
static ZipExtraField |
createExtraFieldNoDefault(ZipShort headerId)
Creates an instance of the appropriate
ZipExtraField. |
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)
Parses 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)
Parses 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)
Parses the array into ExtraFields and populate them with the given data.
|
static ZipExtraField[] |
parse(byte[] data,
boolean local,
ExtraFieldUtils.UnparseableExtraField onUnparseableData)
Parses the array into ExtraFields and populate them with the given data.
|
static void |
register(java.lang.Class<?> clazz)
Deprecated.
Use
ZipArchiveInputStream.setExtraFieldSupport(java.util.function.Function<org.apache.commons.compress.archivers.zip.ZipShort, org.apache.commons.compress.archivers.zip.ZipExtraField>) instead
to not leak instances between archives and applications. |
public static ZipExtraField createExtraField(ZipShort headerId)
UnrecognizedExtraField.headerId - the header identifierpublic static ZipExtraField createExtraFieldNoDefault(ZipShort headerId)
ZipExtraField.headerId - the header identifierZipExtraField or null if the id is not supportedpublic 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 occurspublic static byte[] mergeCentralDirectoryData(ZipExtraField[] data)
data - an array of ExtraFieldspublic static byte[] mergeLocalFileDataData(ZipExtraField[] data)
data - an array of ExtraFilespublic 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, 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 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 error@Deprecated public static void register(java.lang.Class<?> clazz)
ZipArchiveInputStream.setExtraFieldSupport(java.util.function.Function<org.apache.commons.compress.archivers.zip.ZipShort, org.apache.commons.compress.archivers.zip.ZipExtraField>) instead
to not leak instances between archives and applications.
The given class must have a no-arg constructor and implement the ZipExtraField interface.
clazz - the class to register.Copyright © 2010 - 2024 Adobe. All Rights Reserved