Class ReaderCodec

  • All Implemented Interfaces:
    Codec<java.io.Reader>

    public class ReaderCodec
    extends java.lang.Object
    implements Codec<java.io.Reader>
    Reader codec
    • Constructor Summary

      Constructors 
      Constructor Description
      ReaderCodec()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean canDecode​(ColumnDecoder column, java.lang.Class<?> type)
      If codec can decode this a server datatype to a java class type
      boolean canEncode​(java.lang.Object value)
      Can Codec encode the java object type
      boolean canEncodeLongData()
      Indicate if can encode long data
      java.lang.String className()
      Codec native type
      java.io.Reader decodeBinary​(ReadableByteBuf buf, MutableInt length, ColumnDecoder column, java.util.Calendar cal, Context context)
      Decode from a mysql packet binary encoded a value to codec java type
      java.io.Reader decodeText​(ReadableByteBuf buf, MutableInt length, ColumnDecoder column, java.util.Calendar cal, Context context)
      Decode from a mysql packet text encoded a value to codec java type
      void encodeBinary​(Writer encoder, Context context, java.lang.Object val, java.util.Calendar cal, java.lang.Long maxLength)
      Binary encode value to writer
      byte[] encodeData​(java.io.Reader reader, java.lang.Long maxLength)
      binary encoding value to a byte[]
      void encodeLongData​(Writer encoder, java.io.Reader reader, java.lang.Long maxLength)
      binary encoding value to a long data packet
      void encodeText​(Writer encoder, Context context, java.lang.Object val, java.util.Calendar cal, java.lang.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
      • COMPATIBLE_TYPES

        private static final java.util.EnumSet<DataType> COMPATIBLE_TYPES
    • Constructor Detail

      • ReaderCodec

        public ReaderCodec()
    • Method Detail

      • canDecode

        public boolean canDecode​(ColumnDecoder column,
                                 java.lang.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<java.io.Reader>
        Parameters:
        column - server datatype
        type - java return class
        Returns:
        true if codec can decode it
      • className

        public java.lang.String className()
        Description copied from interface: Codec
        Codec native type
        Specified by:
        className in interface Codec<java.io.Reader>
        Returns:
        code native return type
      • decodeText

        public java.io.Reader decodeText​(ReadableByteBuf buf,
                                         MutableInt length,
                                         ColumnDecoder column,
                                         java.util.Calendar cal,
                                         Context context)
                                  throws java.sql.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<java.io.Reader>
        Parameters:
        buf - mysql packet buffer
        length - encoded value length
        column - server column metadata
        cal - calendar
        context - connection context
        Returns:
        decoded value
        Throws:
        java.sql.SQLDataException - if unexpected error occurs during decoding
      • decodeBinary

        public java.io.Reader decodeBinary​(ReadableByteBuf buf,
                                           MutableInt length,
                                           ColumnDecoder column,
                                           java.util.Calendar cal,
                                           Context context)
                                    throws java.sql.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<java.io.Reader>
        Parameters:
        buf - mysql packet buffer
        length - encoded value length
        column - server column metadata
        cal - calendar
        context - connection context
        Returns:
        decoded value
        Throws:
        java.sql.SQLDataException - if unexpected error occurs during decoding
      • canEncode

        public boolean canEncode​(java.lang.Object value)
        Description copied from interface: Codec
        Can Codec encode the java object type
        Specified by:
        canEncode in interface Codec<java.io.Reader>
        Parameters:
        value - java object type
        Returns:
        true if codec can encode java type
      • encodeText

        public void encodeText​(Writer encoder,
                               Context context,
                               java.lang.Object val,
                               java.util.Calendar cal,
                               java.lang.Long maxLen)
                        throws java.io.IOException
        Description copied from interface: Codec
        Text encode value to writer
        Specified by:
        encodeText in interface Codec<java.io.Reader>
        Parameters:
        encoder - writer
        context - connection context
        val - value to encode
        cal - calendar
        maxLen - maximum value length
        Throws:
        java.io.IOException - if any socket error occurs
      • encodeBinary

        public void encodeBinary​(Writer encoder,
                                 Context context,
                                 java.lang.Object val,
                                 java.util.Calendar cal,
                                 java.lang.Long maxLength)
                          throws java.io.IOException
        Description copied from interface: Codec
        Binary encode value to writer
        Specified by:
        encodeBinary in interface Codec<java.io.Reader>
        Parameters:
        encoder - writer
        context - connection context
        val - value to encode
        cal - calendar
        maxLength - maximum value length
        Throws:
        java.io.IOException - if any socket error occurs
      • encodeLongData

        public void encodeLongData​(Writer encoder,
                                   java.io.Reader reader,
                                   java.lang.Long maxLength)
                            throws java.io.IOException
        Description copied from interface: Codec
        binary encoding value to a long data packet
        Specified by:
        encodeLongData in interface Codec<java.io.Reader>
        Parameters:
        encoder - writer
        reader - value to encode
        maxLength - maximum length value
        Throws:
        java.io.IOException - if any socket error occurs
      • encodeData

        public byte[] encodeData​(java.io.Reader reader,
                                 java.lang.Long maxLength)
                          throws java.io.IOException
        Description copied from interface: Codec
        binary encoding value to a byte[]
        Specified by:
        encodeData in interface Codec<java.io.Reader>
        Parameters:
        reader - value to encode
        maxLength - maximum length value
        Returns:
        encoded value
        Throws:
        java.io.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<java.io.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<java.io.Reader>
        Returns:
        true if possible