com.amazon.redshift.core

## Class Encoding

- java.lang.Object
- - com.amazon.redshift.core.Encoding

    public class Encoding
    extends Object

Representation of a particular character encoding.

### Field Summary

Fields
`protected RedshiftLogger` `logger`

### Constructor Summary

Constructors
`protected` `Encoding(Charset encoding, boolean fastASCIINumbers, RedshiftLogger logger)` Subclasses may use this constructor if they know in advance of their ASCII number compatibility.
`protected` `Encoding(Charset encoding, RedshiftLogger logger)` Use the charset passed as parameter and tests at creation time whether the specified encoding is compatible with ASCII numbers.

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`String` `decode(byte[] encodedString)` Decode an array of bytes into a string.
`String` `decode(byte[] encodedString, int offset, int length)` Decode an array of bytes into a string.
`static Encoding` `defaultEncoding()` Get an Encoding using the default encoding for the JVM.
`byte[]` `encode(String s)` Encode a string to an array of bytes.
`static Encoding` `getDatabaseEncoding(String databaseEncoding, RedshiftLogger logger)` Construct an Encoding for a given database encoding.
`Reader` `getDecodingReader(InputStream in)` Get a Reader that decodes the given InputStream using this encoding.
`Writer` `getEncodingWriter(OutputStream out)` Get a Writer that encodes to the given OutputStream using this encoding.
`static Encoding` `getJVMEncoding(String jvmEncoding, RedshiftLogger logger)` Construct an Encoding for a given JVM encoding.
`boolean` `hasAsciiNumbers()` Returns true if this encoding has characters '-' and '0'..'9' in exactly same posision as ascii.
`String` `name()` Get the name of the (JVM) encoding used.
`String` `toString()`

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

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

### Field Detail

#### logger

    protected RedshiftLogger logger

### Constructor Detail

#### Encoding

    protected Encoding(Charset encoding,
                       boolean fastASCIINumbers,
                       RedshiftLogger logger)

Subclasses may use this constructor if they know in advance of their ASCII number compatibility.

Parameters:
  `encoding` - charset to use
  `logger` - the logger to log the entry for debugging.
  `fastASCIINumbers` - whether this encoding is compatible with ASCII numbers.

#### Encoding

    protected Encoding(Charset encoding,
                       RedshiftLogger logger)

Use the charset passed as parameter and tests at creation time whether the specified encoding is compatible with ASCII numbers.

Parameters:
  `encoding` - charset to use
  `logger` - the logger to log the entry for debugging.

### Method Detail

#### hasAsciiNumbers

    public boolean hasAsciiNumbers()

Returns true if this encoding has characters '-' and '0'..'9' in exactly same posision as ascii.

Returns:
  true if the bytes can be scanned directly for ascii numbers.

#### getJVMEncoding

    public static Encoding getJVMEncoding(String jvmEncoding,
                                          RedshiftLogger logger)

Construct an Encoding for a given JVM encoding.

Parameters:
  `jvmEncoding` - the name of the JVM encoding
  `logger` - the logger to log the entry for debugging.
Returns:
  an Encoding instance for the specified encoding, or an Encoding instance for the default JVM encoding if the specified encoding is unavailable.

#### getDatabaseEncoding

    public static Encoding getDatabaseEncoding(String databaseEncoding,
                                               RedshiftLogger logger)

Construct an Encoding for a given database encoding.

Parameters:
  `databaseEncoding` - the name of the database encoding
  `logger` - the logger to log the entry for debugging.
Returns:
  an Encoding instance for the specified encoding, or an Encoding instance for the default JVM encoding if the specified encoding is unavailable.

#### name

    public String name()

Get the name of the (JVM) encoding used.

Returns:
  the JVM encoding name used by this instance.

#### encode

    public byte[] encode(String s)
                  throws IOException

Encode a string to an array of bytes.

Parameters:
  `s` - the string to encode
Returns:
  a bytearray containing the encoded string
Throws:
  `IOException` - if something goes wrong

#### decode

    public String decode(byte[] encodedString,
                         int offset,
                         int length)
                  throws IOException

Decode an array of bytes into a string.

Parameters:
  `encodedString` - a byte array containing the string to decode
  `offset` - the offset in `encodedString` of the first byte of the encoded representation
  `length` - the length, in bytes, of the encoded representation
Returns:
  the decoded string
Throws:
  `IOException` - if something goes wrong

#### decode

    public String decode(byte[] encodedString)
                  throws IOException

Decode an array of bytes into a string.

Parameters:
  `encodedString` - a byte array containing the string to decode
Returns:
  the decoded string
Throws:
  `IOException` - if something goes wrong

#### getDecodingReader

    public Reader getDecodingReader(InputStream in)
                             throws IOException

Get a Reader that decodes the given InputStream using this encoding.

Parameters:
  `in` - the underlying stream to decode from
Returns:
  a non-null Reader implementation.
Throws:
  `IOException` - if something goes wrong

#### getEncodingWriter

    public Writer getEncodingWriter(OutputStream out)
                             throws IOException

Get a Writer that encodes to the given OutputStream using this encoding.

Parameters:
  `out` - the underlying stream to encode to
Returns:
  a non-null Writer implementation.
Throws:
  `IOException` - if something goes wrong

#### defaultEncoding

    public static Encoding defaultEncoding()

Get an Encoding using the default encoding for the JVM.

Returns:
  an Encoding instance

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`