Class AbstractUnicodeExtraField

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

public abstract class AbstractUnicodeExtraField
extends java.lang.Object
implements ZipExtraField
A common base class for Unicode extra information extra fields.
  • Constructor Summary

    Constructors 
    Modifier Constructor Description
    protected AbstractUnicodeExtraField()  
    protected AbstractUnicodeExtraField​(java.lang.String text, byte[] bytes)
    Assemble as unicode extension from the name/comment and encoding of the original zip entry.
    protected AbstractUnicodeExtraField​(java.lang.String text, byte[] bytes, int off, int len)
    Assemble as unicode extension from the name/comment and encoding of the original zip entry.
  • Method Summary

    Modifier and Type Method Description
    byte[] getCentralDirectoryData()
    The actual data to put into central directory - without Header-ID or length specifier.
    ZipShort getCentralDirectoryLength()
    Length of the extra field in the central directory - without Header-ID or length specifier.
    byte[] getLocalFileDataData()
    The actual data to put into local file data - without Header-ID or length specifier.
    ZipShort getLocalFileDataLength()
    Length of the extra field in the local file data - without Header-ID or length specifier.
    long getNameCRC32()  
    byte[] getUnicodeName()  
    void parseFromLocalFileData​(byte[] buffer, int offset, int length)
    Populate data from this array as if it was in local file data.
    void setNameCRC32​(long nameCRC32)  
    void setUnicodeName​(byte[] unicodeName)  

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.apache.tools.zip.ZipExtraField

    getHeaderId
  • Constructor Details

    • AbstractUnicodeExtraField

      protected AbstractUnicodeExtraField()
    • AbstractUnicodeExtraField

      protected AbstractUnicodeExtraField​(java.lang.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 filename or comment in the zip file.
      off - The offset of the encoded filename or comment in bytes.
      len - The length of the encoded filename or comment in bytes.
    • AbstractUnicodeExtraField

      protected AbstractUnicodeExtraField​(java.lang.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 filename or comment in the zip file.
  • Method Details

    • getNameCRC32

      public long getNameCRC32()
      Returns:
      The CRC32 checksum of the filename 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 filename 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()
      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()
      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()
      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()
      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 java.util.zip.ZipException
      Populate data from this array as if it was in local file data.
      Specified by:
      parseFromLocalFileData in interface ZipExtraField
      Parameters:
      buffer - an array of bytes
      offset - the start offset
      length - the number of bytes in the array from offset
      Throws:
      java.util.zip.ZipException - on error