Class AbstractUnicodeExtraField

java.lang.Object
org.apache.commons.compress.archivers.zip.AbstractUnicodeExtraField
All Implemented Interfaces:
ZipExtraField
Direct Known Subclasses:
UnicodeCommentExtraField, UnicodePathExtraField

public abstract class AbstractUnicodeExtraField extends Object implements ZipExtraField
A common base class for Unicode extra information extra fields.
  • Field Details

    • nameCRC32

      private long nameCRC32
    • unicodeName

      private byte[] unicodeName
    • data

      private byte[] data
  • Constructor Details

    • AbstractUnicodeExtraField

      protected AbstractUnicodeExtraField()
    • AbstractUnicodeExtraField

      protected AbstractUnicodeExtraField(String text, byte[] bytes, int off, int len)
      Assemble as unicode extension from the name/comment and encoding of the original zip entry.
      Parameters:
      text - The file name or comment.
      bytes - The encoded of the file name or comment in the zip file.
      off - The offset of the encoded file name or comment in bytes.
      len - The length of the encoded file name or comment in bytes.
    • AbstractUnicodeExtraField

      protected AbstractUnicodeExtraField(String text, byte[] bytes)
      Assemble as unicode extension from the name/comment and encoding of the original zip entry.
      Parameters:
      text - The file name or comment.
      bytes - The encoded of the file name or comment in the zip file.
  • Method Details

    • assembleData

      private void assembleData()
    • getNameCRC32

      public long getNameCRC32()
      Returns:
      The CRC32 checksum of the file name or comment as encoded in the central directory of the zip file.
    • setNameCRC32

      public void setNameCRC32(long nameCRC32)
      Parameters:
      nameCRC32 - The CRC32 checksum of the file name as encoded in the central directory of the zip file to set.
    • getUnicodeName

      public byte[] getUnicodeName()
      Returns:
      The UTF-8 encoded name.
    • setUnicodeName

      public void setUnicodeName(byte[] unicodeName)
      Parameters:
      unicodeName - The UTF-8 encoded name to set.
    • getCentralDirectoryData

      public byte[] getCentralDirectoryData()
      Description copied from interface: ZipExtraField
      The actual data to put into central directory - without Header-ID or length specifier.
      Specified by:
      getCentralDirectoryData in interface ZipExtraField
      Returns:
      the data
    • getCentralDirectoryLength

      public ZipShort getCentralDirectoryLength()
      Description copied from interface: ZipExtraField
      Length of the extra field in the central directory - without Header-ID or length specifier.
      Specified by:
      getCentralDirectoryLength in interface ZipExtraField
      Returns:
      the length of the field in the central directory
    • getLocalFileDataData

      public byte[] getLocalFileDataData()
      Description copied from interface: ZipExtraField
      The actual data to put into local file data - without Header-ID or length specifier.
      Specified by:
      getLocalFileDataData in interface ZipExtraField
      Returns:
      the data
    • getLocalFileDataLength

      public ZipShort getLocalFileDataLength()
      Description copied from interface: ZipExtraField
      Length of the extra field in the local file data - without Header-ID or length specifier.
      Specified by:
      getLocalFileDataLength in interface ZipExtraField
      Returns:
      the length of the field in the local file data
    • parseFromLocalFileData

      public void parseFromLocalFileData(byte[] buffer, int offset, int length) throws ZipException
      Description copied from interface: ZipExtraField
      Populate data from this array as if it was in local file data.
      Specified by:
      parseFromLocalFileData in interface ZipExtraField
      Parameters:
      buffer - the buffer to read data from
      offset - offset into buffer to read data
      length - the length of data
      Throws:
      ZipException - on error
    • parseFromCentralDirectoryData

      public void parseFromCentralDirectoryData(byte[] buffer, int offset, int length) throws ZipException
      Doesn't do anything special since this class always uses the same data in central directory and local file data.
      Specified by:
      parseFromCentralDirectoryData in interface ZipExtraField
      Parameters:
      buffer - the buffer to read data from
      offset - offset into buffer to read data
      length - the length of data
      Throws:
      ZipException - on error