Altibase.jdbc.driver.datatype

## Class ListBufferHandle

- java.lang.Object
- - Altibase.jdbc.driver.cm.CmBufferWriter
  - - Altibase.jdbc.driver.datatype.ListBufferHandle

All Implemented Interfaces:
  BatchRowHandle

    public class ListBufferHandle
    extends CmBufferWriter
    implements BatchRowHandle

Author:
  pss4you Batch Operation - List Protocol 사용시에 전송할 Data 를 담아둘 ByteBuffer Handler

### Field Summary

Fields
`static int` `BUFFER_ALLOC_UNIT_4_SIMPLE`
`static int` `BUFFER_INIT_SIZE_4_SIMPLE`

### Fields inherited from class Altibase.jdbc.driver.cm.CmBufferWriter

`mBuffer, mCharVarcharColumnBuffer, mDBEncoder, mNCharEncoder, mNLiteralEncoder`

### Constructor Summary

Constructors
Constructor and Description
`ListBufferHandle()`
`ListBufferHandle(int aBufferInitSize, int aBufferAllocUnitSize)`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `changeBindColumnType(int aIndex, Column aColumn, ColumnInfo aColumnInfo, byte aInOutType)` 기존 Bind Column에 새로운 Type으로 바인딩이 된 경우 해당하는 값의 type으로 bind column type을 변경한다.
`void` `checkWritable(int aNeedToWrite)` Buffer 에 쓸 데이터 공간이 충분한지 여부를 확인하여, 충분하지 않으면 필요한 공간을 만드는 함수 CmChannel 과 ListBufferHandle 에서 각자에 맞게 구현한다.
`void` `flipBuffer()`
`java.nio.ByteBuffer` `getBuffer()`
`int` `getBufferPosition()`
`void` `initToStore()` DataHandle 을 초기화 한다.
`void` `setColumns(java.util.List<Column> aColumns)` DataHandle 에 Binding 할 Column 들을 setting 한다.
`int` `size()` DataHandle 에 저장된 작업 숫자를 반환 한다.
`void` `store()` DataHandle 에 Binding 된 작업을 저장한다.
`void` `writeBytes(java.nio.ByteBuffer aValue)` ByteBuffer 객체를 Buffer 에 삽입하는 함수 CmChannel 과 ListBufferHandle 에서 각자에 맞게 구현한다.

### Methods inherited from class Altibase.jdbc.driver.cm.CmBufferWriter

`encodeString, prepareToWriteString, setCharset, writeByte, writeBytes, writeDouble, writeFloat, writeInt, writeLong, writePreparedString, writeShort, writeUnsignedInt`

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

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

### Field Detail

#### BUFFER_INIT_SIZE_4_SIMPLE

    public static final int BUFFER_INIT_SIZE_4_SIMPLE

See Also:
  Constant Field Values

#### BUFFER_ALLOC_UNIT_4_SIMPLE

    public static final int BUFFER_ALLOC_UNIT_4_SIMPLE

See Also:
  Constant Field Values

### Constructor Detail

#### ListBufferHandle

    public ListBufferHandle()

#### ListBufferHandle

    public ListBufferHandle(int aBufferInitSize,
                            int aBufferAllocUnitSize)

### Method Detail

#### setColumns

    public void setColumns(java.util.List<Column> aColumns)

Description copied from interface: `BatchRowHandle`
DataHandle 에 Binding 할 Column 들을 setting 한다.

Specified by:
  `setColumns` in interface `BatchRowHandle`

#### size

    public int size()

Description copied from interface: `BatchRowHandle`
DataHandle 에 저장된 작업 숫자를 반환 한다.

Specified by:
  `size` in interface `BatchRowHandle`
Returns:
  현재 까지 저장된 작업 숫자

#### flipBuffer

    public void flipBuffer()

#### getBuffer

    public java.nio.ByteBuffer getBuffer()

#### getBufferPosition

    public int getBufferPosition()

#### initToStore

    public void initToStore()

Description copied from interface: `BatchRowHandle`
DataHandle 을 초기화 한다.

Specified by:
  `initToStore` in interface `BatchRowHandle`

#### store

    public void store()
               throws java.sql.SQLException

Description copied from interface: `BatchRowHandle`
DataHandle 에 Binding 된 작업을 저장한다.

Specified by:
  `store` in interface `BatchRowHandle`
Throws:
  `java.sql.SQLException`

#### checkWritable

    public void checkWritable(int aNeedToWrite)

Description copied from class: `CmBufferWriter`
Buffer 에 쓸 데이터 공간이 충분한지 여부를 확인하여, 충분하지 않으면 필요한 공간을 만드는 함수 CmChannel 과 ListBufferHandle 에서 각자에 맞게 구현한다.

Specified by:
  `checkWritable` in class `CmBufferWriter`
Parameters:
  `aNeedToWrite` - 데이타를 쓰기 위해 필요한 bytes 숫자

#### writeBytes

    public void writeBytes(java.nio.ByteBuffer aValue)

Description copied from class: `CmBufferWriter`
ByteBuffer 객체를 Buffer 에 삽입하는 함수 CmChannel 과 ListBufferHandle 에서 각자에 맞게 구현한다.

Specified by:
  `writeBytes` in class `CmBufferWriter`
Parameters:
  `aValue` - Buffer 에 저장할 ByteBuffer 객체

#### changeBindColumnType

    public void changeBindColumnType(int aIndex,
                                     Column aColumn,
                                     ColumnInfo aColumnInfo,
                                     byte aInOutType)

Description copied from interface: `BatchRowHandle`
기존 Bind Column에 새로운 Type으로 바인딩이 된 경우 해당하는 값의 type으로 bind column type을 변경한다.

Specified by:
  `changeBindColumnType` in interface `BatchRowHandle`
Parameters:
  `aIndex` - 컬럼인덱스 (base 0)
  `aColumn` - Column 정보
  `aColumnInfo` - Column 메타정보
  `aInOutType` - InOutType 정보