org.apache.commons.compress.archivers.zip
Class ExtraFieldUtils

java.lang.Object
  extended by org.apache.commons.compress.archivers.zip.ExtraFieldUtils

public class ExtraFieldUtils
extends Object

ZipExtraField related methods


Nested Class Summary
static class ExtraFieldUtils.UnparseableExtraField
          "enum" for the possible actions to take if the extra field cannot be parsed.
 
Constructor Summary
ExtraFieldUtils()
           
 
Method Summary
static ZipExtraField createExtraField(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 void register(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(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

createExtraField

public static ZipExtraField createExtraField(ZipShort headerId)
                                      throws InstantiationException,
                                             IllegalAccessException
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

parse

public static ZipExtraField[] parse(byte[] data)
                             throws 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:
ZipException - on error

parse

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

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

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


Copyright © 2012 Apache Software Foundation. All Rights Reserved.