# Interface ColumnStore

All Known Implementing Classes:
  `IndexedStreamColumnStore, StreamColumnStore`

public interface ColumnStore
Defines an object which can store the data of a column, that is, an array of homogeneous objects. The store is populated sequentially, and when ready provides random access.

The sequence of calls must be as follows:

1. Zero or more calls of `acceptCell(Object)`
2. A call of `endCells()`
3. Zero or more calls of `createReader()`

Behaviour will be undefined if you violate this sequence.

Since:
  21 Jun 2006
Author:
  Mark Taylor

## Method Summary

Modifier and Type
Method
Description
`void`
`acceptCell(Object value)`
Writes a datum to this store.
`ColumnReader`
`createReader()`
Returns an object that can provide random access to the cells written to this store.
`void`
`endCells()`
Signals that no more calls to `acceptCell` will be made, and that calls to `createReader` may be made.

## Method Details

### acceptCell

void acceptCell(Object value) throws IOException
Writes a datum to this store.

Parameters:
  `value` - the value to add
Throws:
  `IOException`

### endCells

void endCells() throws IOException
Signals that no more calls to `acceptCell` will be made, and that calls to `createReader` may be made.

Throws:
  `IOException`

### createReader

ColumnReader createReader()
Returns an object that can provide random access to the cells written to this store.

Returns:
  column cell reader