Package org.mariadb.jdbc.plugin.codec

## Class ReaderCodec

- java.lang.Object
- - org.mariadb.jdbc.plugin.codec.ReaderCodec

All Implemented Interfaces:
  `Codec<Reader>`

    public class ReaderCodec
    extends Object
    implements Codec<Reader>

Reader codec

### Field Summary

Fields
`static ReaderCodec` `INSTANCE` default instance

### Constructor Summary

Constructors
`ReaderCodec()`

### Method Summary

All Methods Instance Methods Concrete Methods
`boolean` `canDecode​(org.mariadb.jdbc.client.ColumnDecoder column, Class<?> type)` If codec can decode this a server datatype to a java class type
`boolean` `canEncode​(Object value)` Can Codec encode the java object type
`boolean` `canEncodeLongData()` Indicate if can encode long data
`String` `className()` Codec native type
`Reader` `decodeBinary​(org.mariadb.jdbc.client.ReadableByteBuf buf, int length, org.mariadb.jdbc.client.ColumnDecoder column, Calendar cal)` Decode from a mysql packet binary encoded a value to codec java type
`Reader` `decodeText​(org.mariadb.jdbc.client.ReadableByteBuf buf, int length, org.mariadb.jdbc.client.ColumnDecoder column, Calendar cal)` Decode from a mysql packet text encoded a value to codec java type
`void` `encodeBinary​(Writer encoder, Object val, Calendar cal, Long maxLength)` Binary encode value to writer
`byte[]` `encodeData​(Reader reader, Long maxLength)` binary encoding value to a byte[]
`void` `encodeLongData​(Writer encoder, Reader reader, Long maxLength)` binary encoding value to a long data packet
`void` `encodeText​(Writer encoder, org.mariadb.jdbc.client.Context context, Object val, Calendar cal, Long maxLen)` Text encode value to writer
`int` `getBinaryEncodeType()` Return server encoding data type

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

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

### Field Detail

#### INSTANCE

    public static final ReaderCodec INSTANCE

default instance

### Constructor Detail

#### ReaderCodec

    public ReaderCodec()

### Method Detail

#### canDecode

    public boolean canDecode​(org.mariadb.jdbc.client.ColumnDecoder column,
                             Class<?> type)

Description copied from interface: `Codec`
If codec can decode this a server datatype to a java class type

Specified by:
  `canDecode` in interface `Codec<Reader>`
Parameters:
  `column` - server datatype
  `type` - java return class
Returns:
  true if codec can decode it

#### className

    public String className()

Description copied from interface: `Codec`
Codec native type

Specified by:
  `className` in interface `Codec<Reader>`
Returns:
  code native return type

#### decodeText

    public Reader decodeText​(org.mariadb.jdbc.client.ReadableByteBuf buf,
                             int length,
                             org.mariadb.jdbc.client.ColumnDecoder column,
                             Calendar cal)
                      throws SQLDataException

Description copied from interface: `Codec`
Decode from a mysql packet text encoded a value to codec java type

Specified by:
  `decodeText` in interface `Codec<Reader>`
Parameters:
  `buf` - mysql packet buffer
  `length` - encoded value length
  `column` - server column metadata
  `cal` - calendar
Returns:
  decoded value
Throws:
  `SQLDataException` - if unexpected error occurs during decoding

#### decodeBinary

    public Reader decodeBinary​(org.mariadb.jdbc.client.ReadableByteBuf buf,
                               int length,
                               org.mariadb.jdbc.client.ColumnDecoder column,
                               Calendar cal)
                        throws SQLDataException

Description copied from interface: `Codec`
Decode from a mysql packet binary encoded a value to codec java type

Specified by:
  `decodeBinary` in interface `Codec<Reader>`
Parameters:
  `buf` - mysql packet buffer
  `length` - encoded value length
  `column` - server column metadata
  `cal` - calendar
Returns:
  decoded value
Throws:
  `SQLDataException` - if unexpected error occurs during decoding

#### canEncode

    public boolean canEncode​(Object value)

Description copied from interface: `Codec`
Can Codec encode the java object type

Specified by:
  `canEncode` in interface `Codec<Reader>`
Parameters:
  `value` - java object type
Returns:
  true if codec can encode java type

#### encodeText

    public void encodeText​(Writer encoder,
                           org.mariadb.jdbc.client.Context context,
                           Object val,
                           Calendar cal,
                           Long maxLen)
                    throws IOException

Description copied from interface: `Codec`
Text encode value to writer

Specified by:
  `encodeText` in interface `Codec<Reader>`
Parameters:
  `encoder` - writer
  `context` - connection context
  `val` - value to encode
  `cal` - calendar
  `maxLen` - maximum value length
Throws:
  `IOException` - if any socket error occurs

#### encodeBinary

    public void encodeBinary​(Writer encoder,
                             Object val,
                             Calendar cal,
                             Long maxLength)
                      throws IOException

Description copied from interface: `Codec`
Binary encode value to writer

Specified by:
  `encodeBinary` in interface `Codec<Reader>`
Parameters:
  `encoder` - writer
  `val` - value to encode
  `cal` - calendar
  `maxLength` - maximum value length
Throws:
  `IOException` - if any socket error occurs

#### encodeLongData

    public void encodeLongData​(Writer encoder,
                               Reader reader,
                               Long maxLength)
                        throws IOException

Description copied from interface: `Codec`
binary encoding value to a long data packet

Specified by:
  `encodeLongData` in interface `Codec<Reader>`
Parameters:
  `encoder` - writer
  `reader` - value to encode
  `maxLength` - maximum length value
Throws:
  `IOException` - if any socket error occurs

#### encodeData

    public byte[] encodeData​(Reader reader,
                             Long maxLength)
                      throws IOException

Description copied from interface: `Codec`
binary encoding value to a byte[]

Specified by:
  `encodeData` in interface `Codec<Reader>`
Parameters:
  `reader` - value to encode
  `maxLength` - maximum length value
Returns:
  encoded value
Throws:
  `IOException` - if any socket error occurs

#### getBinaryEncodeType

    public int getBinaryEncodeType()

Description copied from interface: `Codec`
Return server encoding data type

Specified by:
  `getBinaryEncodeType` in interface `Codec<Reader>`
Returns:
  server encoding data type

#### canEncodeLongData

    public boolean canEncodeLongData()

Description copied from interface: `Codec`
Indicate if can encode long data

Specified by:
  `canEncodeLongData` in interface `Codec<Reader>`
Returns:
  true if possible