Class GeneralPurposeBit

  • All Implemented Interfaces:
    java.lang.Cloneable

    public final class GeneralPurposeBit
    extends java.lang.Object
    implements java.lang.Cloneable
    Parser/encoder for the "general purpose bit" field in ZIP's local file and central directory headers.
    Since:
    1.1
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int UFT8_NAMES_FLAG
      Indicates that file names are written in UTF-8.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Object clone()  
      byte[] encode()
      Encodes the set bits in a form suitable for ZIP archives.
      void encode​(byte[] buf, int offset)
      Encodes the set bits in a form suitable for ZIP archives.
      boolean equals​(java.lang.Object o)  
      int hashCode()  
      static GeneralPurposeBit parse​(byte[] data, int offset)
      Parses the supported flags from the given archive data.
      void useDataDescriptor​(boolean b)
      whether the current entry will use the data descriptor to store CRC and size information.
      void useEncryption​(boolean b)
      whether the current entry will be encrypted.
      boolean usesDataDescriptor()
      whether the current entry uses the data descriptor to store CRC and size information.
      boolean usesEncryption()
      whether the current entry is encrypted.
      boolean usesStrongEncryption()
      whether the current entry is encrypted using strong encryption.
      void useStrongEncryption​(boolean b)
      whether the current entry will be encrypted using strong encryption.
      boolean usesUTF8ForNames()
      whether the current entry uses UTF8 for file name and comment.
      void useUTF8ForNames​(boolean b)
      whether the current entry will use UTF8 for file name and comment.
      • Methods inherited from class java.lang.Object

        getClass, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • UFT8_NAMES_FLAG

        public static final int UFT8_NAMES_FLAG
        Indicates that file names are written in UTF-8.

        The only reason this is public is that ZipArchiveOutputStream.EFS_FLAG was public in Apache Commons Compress 1.0 and we needed a substitute for it.

        See Also:
        Constant Field Values
    • Constructor Detail

      • GeneralPurposeBit

        public GeneralPurposeBit()
    • Method Detail

      • usesUTF8ForNames

        public boolean usesUTF8ForNames()
        whether the current entry uses UTF8 for file name and comment.
        Returns:
        whether the current entry uses UTF8 for file name and comment.
      • useUTF8ForNames

        public void useUTF8ForNames​(boolean b)
        whether the current entry will use UTF8 for file name and comment.
        Parameters:
        b - whether the current entry will use UTF8 for file name and comment.
      • usesDataDescriptor

        public boolean usesDataDescriptor()
        whether the current entry uses the data descriptor to store CRC and size information.
        Returns:
        whether the current entry uses the data descriptor to store CRC and size information
      • useDataDescriptor

        public void useDataDescriptor​(boolean b)
        whether the current entry will use the data descriptor to store CRC and size information.
        Parameters:
        b - whether the current entry will use the data descriptor to store CRC and size information
      • usesEncryption

        public boolean usesEncryption()
        whether the current entry is encrypted.
        Returns:
        whether the current entry is encrypted
      • useEncryption

        public void useEncryption​(boolean b)
        whether the current entry will be encrypted.
        Parameters:
        b - whether the current entry will be encrypted
      • usesStrongEncryption

        public boolean usesStrongEncryption()
        whether the current entry is encrypted using strong encryption.
        Returns:
        whether the current entry is encrypted using strong encryption
      • useStrongEncryption

        public void useStrongEncryption​(boolean b)
        whether the current entry will be encrypted using strong encryption.
        Parameters:
        b - whether the current entry will be encrypted using strong encryption
      • encode

        public byte[] encode()
        Encodes the set bits in a form suitable for ZIP archives.
        Returns:
        the encoded general purpose bits
      • encode

        public void encode​(byte[] buf,
                           int offset)
        Encodes the set bits in a form suitable for ZIP archives.
        Parameters:
        buf - the output buffer
        offset - The offset within the output buffer of the first byte to be written. must be non-negative and no larger than buf.length-2
      • parse

        public static GeneralPurposeBit parse​(byte[] data,
                                              int offset)
        Parses the supported flags from the given archive data.
        Parameters:
        data - local file header or a central directory entry.
        offset - offset at which the general purpose bit starts
        Returns:
        parsed flags
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • clone

        public java.lang.Object clone()