Module org.firebirdsql.jaybird
Package org.firebirdsql.encodings

# Class DefaultEncodingDefinition

java.lang.Object
org.firebirdsql.encodings.DefaultEncodingDefinition

All Implemented Interfaces:
  `EncodingDefinition`

public final class DefaultEncodingDefinition extends Object implements EncodingDefinition
Definition of a Firebird encoding. This is the default implementation of `EncodingDefinition`.

Since:
  3.0
Author:
  Mark Rotteveel

## Constructor Summary

Constructors
Constructor
Description
`DefaultEncodingDefinition(String firebirdEncodingName, String charsetName, int maxBytesPerChar, int firebirdCharacterSetId, boolean firebirdOnly)`
Initializes an instance of DefaultEncodingDefinition.
`DefaultEncodingDefinition(String firebirdEncodingName, Charset charset, int maxBytesPerChar, int firebirdCharacterSetId, boolean firebirdOnly)`
Initializes an instance of DefaultEncodingDefinition.

## Method Summary

Modifier and Type
Method
Description
`boolean`
`equals(Object o)`
`Encoding`
`getEncoding()`
Returns the `Encoding` instance for this definition.
`int`
`getFirebirdCharacterSetId()`
`String`
`getFirebirdEncodingName()`
`Charset`
`getJavaCharset()`
`String`
`getJavaEncodingName()`
`int`
`getMaxBytesPerChar()`
`int`
`hashCode()`
`boolean`
`isFirebirdOnly()`
Can (or should) this encoding be used for reverse mapping from Java to Firebird.
`boolean`
`isInformationOnly()`
Can this implementation create an `Encoding` instance, or does it provide information only (e.g.
`String`
`toString()`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

## Constructor Details

### DefaultEncodingDefinition

public DefaultEncodingDefinition(String firebirdEncodingName, Charset charset, int maxBytesPerChar, int firebirdCharacterSetId, boolean firebirdOnly)
Initializes an instance of DefaultEncodingDefinition.

Parameters:
  `firebirdEncodingName` - Name of the Firebird encoding
  `charset` - Java `Charset` instance (`null` for information-only instances)
  `maxBytesPerChar` - Maximum number of bytes per character (eg 1 for ISO8859_1, 4 for UTF8, 3 for UNICODE-FSS)
  `firebirdCharacterSetId` - Firebird character set id
  `firebirdOnly` - Mapping only applies from Firebird to Java, but not from Java to Firebird (e.g. Firebird UNICODE-FSS maps to Java UTF-8, but Java UTF-8 does not map to Firebird UNICODE-FSS (but to Firebird UTF8)

### DefaultEncodingDefinition

public DefaultEncodingDefinition(String firebirdEncodingName, String charsetName, int maxBytesPerChar, int firebirdCharacterSetId, boolean firebirdOnly)
Initializes an instance of DefaultEncodingDefinition.

The actual Java character set is loaded on-demand. If the provided name cannot be resolved to a `Charset` at on-demand load time, it will be handled as information-only.

Parameters:
  `firebirdEncodingName` - Name of the Firebird encoding
  `charsetName` - Java character set name, or `null` for information-only instances
  `maxBytesPerChar` - Maximum number of bytes per character (eg 1 for ISO8859_1, 4 for UTF8, 3 for UNICODE-FSS)
  `firebirdCharacterSetId` - Firebird character set id
  `firebirdOnly` - Mapping only applies from Firebird to Java, but not from Java to Firebird (e.g. Firebird UNICODE-FSS maps to Java UTF-8, but Java UTF-8 does not map to Firebird UNICODE-FSS (but to Firebird UTF8)

## Method Details

### getMaxBytesPerChar

public int getMaxBytesPerChar()

Specified by:
  `getMaxBytesPerChar` in interface `EncodingDefinition`
Returns:
  Maximum number of bytes per character.

### getJavaEncodingName

public String getJavaEncodingName()

Specified by:
  `getJavaEncodingName` in interface `EncodingDefinition`
Returns:
  Java name of the encoding

### getJavaCharset

public Charset getJavaCharset()

Specified by:
  `getJavaCharset` in interface `EncodingDefinition`
Returns:
  Java `Charset` for this encoding

### getFirebirdEncodingName

public String getFirebirdEncodingName()

Specified by:
  `getFirebirdEncodingName` in interface `EncodingDefinition`
Returns:
  Firebird name of the encoding

### getFirebirdCharacterSetId

public int getFirebirdCharacterSetId()

Specified by:
  `getFirebirdCharacterSetId` in interface `EncodingDefinition`
Returns:
  Firebird id of the encoding

### isFirebirdOnly

public boolean isFirebirdOnly()
Description copied from interface: `EncodingDefinition`
Can (or should) this encoding be used for reverse mapping from Java to Firebird.

The best example of this is the Firebird character set `UNICODE-FSS` which maps to the Java character set `UTF-8`, but when Java character set`UTF-8` is requested, Jaybird should (in general) map to Firebird character set `UTF8`.

Specified by:
  `isFirebirdOnly` in interface `EncodingDefinition`
Returns:
  `true` when this encoding maps from Java to Firebird, `false` otherwise

### isInformationOnly

public boolean isInformationOnly()
Description copied from interface: `EncodingDefinition`
Can this implementation create an `Encoding` instance, or does it provide information only (e.g. about unsupported character sets)

Specified by:
  `isInformationOnly` in interface `EncodingDefinition`
Returns:
  `true` if this EncodingDefinition only provides information, and is not capable of building a concrete implementation.

### getEncoding

public Encoding getEncoding()
Returns the `Encoding` instance for this definition. The same object is returned each time this method is called.

Specified by:
  `getEncoding` in interface `EncodingDefinition`
Returns:
  Encoding object or `null` if this is an information only EncodingDefinition
See Also:
  - `EncodingDefinition.isInformationOnly()`

### toString

public String toString()

Overrides:
  `toString` in class `Object`

### equals

public boolean equals(Object o)

Overrides:
  `equals` in class `Object`

### hashCode

public int hashCode()

Overrides:
  `hashCode` in class `Object`