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

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 Details

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

### GeneralPurposeBit

public GeneralPurposeBit()

## Method Details

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