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
`static int` `UFT8_NAMES_FLAG` Indicates that filenames are written in utf-8.

### Constructor Summary

Constructors
Constructor and Description
`GeneralPurposeBit()`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`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.

#### useUTF8ForNames

    public void useUTF8ForNames(boolean 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

#### useDataDescriptor

    public void useDataDescriptor(boolean 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

#### useEncryption

    public void useEncryption(boolean b)

whether the current entry will be encrypted

#### usesStrongEncryption

    public boolean usesStrongEncryption()

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

#### encode

    public byte[] encode()

Encodes the set bits in a form suitable for ZIP archives.

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

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