Class ExtraFieldUtils


  • public class ExtraFieldUtils
    extends java.lang.Object
    This is a class that has been made significantly smaller (deleted a bunch of methods) and originally is from the Apache Ant Project (http://ant.apache.org), org.apache.tools.zip package. All license and other documentation is intact. ZipExtraField related methods
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static java.util.Map<ZipShort,​java.lang.Class<?>> implementations
      Static registry of known extra fields.
      private static int WORD  
    • Constructor Summary

      Constructors 
      Constructor Description
      ExtraFieldUtils()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static ZipExtraField createExtraField​(ZipShort headerId)
      Create an instance of the appropriate ExtraField, falls back to UnrecognizedExtraField.
      static byte[] mergeLocalFileDataData​(java.util.List<ZipExtraField> data)
      Merges the local file data fields of the given ZipExtraFields.
      static java.util.List<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[] parseA​(byte[] 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
    • Field Detail

      • implementations

        private static final java.util.Map<ZipShort,​java.lang.Class<?>> implementations
        Static registry of known extra fields.
        Since:
        1.1
    • Constructor Detail

      • ExtraFieldUtils

        public ExtraFieldUtils()
    • Method Detail

      • 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
      • parseA

        public static ZipExtraField[] parseA​(byte[] data)
                                      throws java.util.zip.ZipException
        Throws:
        java.util.zip.ZipException
      • parse

        public static java.util.List<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
      • mergeLocalFileDataData

        public static byte[] mergeLocalFileDataData​(java.util.List<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