Package org.apache.tools.zip

## Class GeneralPurposeBit

- java.lang.Object
- - org.apache.tools.zip.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:
    Ant 1.9.0

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static int` | `UFT8_NAMES_FLAG` | Indicates that filenames are written in utf-8.

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `GeneralPurposeBit()` |

  - ### 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

      `finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### UFT8_NAMES_FLAG

          public static final int UFT8_NAMES_FLAG

      Indicates that filenames are written in utf-8.

      The only reason this is public is that `ZipOutputStream.EFS_FLAG` was public in several versions of Apache Ant 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:
        boolean

    - #### useUTF8ForNames

          public void useUTF8ForNames​(boolean b)

      whether the current entry will use UTF8 for file name and comment.
      Parameters:
        `b` - boolean

    - #### usesDataDescriptor

          public boolean usesDataDescriptor()

      whether the current entry uses the data descriptor to store CRC and size information
      Returns:
        boolean

    - #### useDataDescriptor

          public void useDataDescriptor​(boolean b)

      whether the current entry will use the data descriptor to store CRC and size information
      Parameters:
        `b` - boolean

    - #### usesEncryption

          public boolean usesEncryption()

      whether the current entry is encrypted
      Returns:
        boolean

    - #### useEncryption

          public void useEncryption​(boolean b)

      whether the current entry will be encrypted
      Parameters:
        `b` - boolean

    - #### usesStrongEncryption

          public boolean usesStrongEncryption()

      whether the current entry is encrypted using strong encryption
      Returns:
        boolean

    - #### useStrongEncryption

          public void useStrongEncryption​(boolean b)

      whether the current entry will be encrypted using strong encryption
      Parameters:
        `b` - boolean

    - #### encode

          public byte[] encode()

      Encodes the set bits in a form suitable for ZIP archives.
      Returns:
        byte[]

    - #### 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:
        GeneralPurposeBit

    - #### 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()

      Overrides:
        `clone` in class `java.lang.Object`