Class ExtraFieldUtils

java.lang.Object
org.apache.tools.zip.ExtraFieldUtils

public class ExtraFieldUtils
extends java.lang.Object
ZipExtraField related methods
  • Nested Class Summary

    Nested Classes 
    Modifier and Type Class Description
    static class  ExtraFieldUtils.UnparseableExtraField
    "enum" for the possible actions to take if the extra field cannot be parsed.
  • Constructor Summary

    Constructors 
    Constructor Description
    ExtraFieldUtils()  
  • Method Summary

    Modifier and Type Method Description
    static ZipExtraField createExtraField​(ZipShort headerId)
    Create an instance of the appropriate 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​(java.lang.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 Details

  • Method Details

    • register

      public static void register​(java.lang.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
    • createExtraField

      public static ZipExtraField createExtraField​(ZipShort headerId) throws java.lang.InstantiationException, java.lang.IllegalAccessException
      Create an instance of the appropriate ExtraField, falls back to UnrecognizedExtraField.
      Parameters:
      headerId - the header identifier
      Returns:
      an instance of the appropriate ExtraField
      Throws:
      java.lang.InstantiationException - if unable to instantiate the class
      java.lang.IllegalAccessException - if not allowed to instantiate the class
      Since:
      1.1
    • parse

      public static ZipExtraField[] parse​(byte[] data) throws java.util.zip.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:
      java.util.zip.ZipException - on error
    • parse

      public static ZipExtraField[] parse​(byte[] data, boolean local) throws java.util.zip.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:
      java.util.zip.ZipException - on error
      Since:
      1.1
    • parse

      public static ZipExtraField[] parse​(byte[] data, boolean local, ExtraFieldUtils.UnparseableExtraField onUnparseableData) throws java.util.zip.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:
      java.util.zip.ZipException - on error
      Since:
      Ant 1.8.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
    • 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