class SparseSegmentDataset extends Object implements SegmentDataset
SparseSegmentDataset is a means of storing segment values
which is suitable when few of the combinations of keys have a value present.
The storage requirements are as follows. Key is 1 word for each dimension. Hashtable entry is 3 words. Value is 1 word. Total space is (4 + d) * v. (May also need hash table to ensure that values are only stored once.)
NOTE: This class is not synchronized.
| Constructor and Description |
|---|
SparseSegmentDataset()
Creates an empty SparseSegmentDataset.
|
SparseSegmentDataset(Map<CellKey,Object> values)
Creates a SparseSegmentDataset with a given value map.
|
| Modifier and Type | Method and Description |
|---|---|
SegmentBody |
createSegmentBody(List<Pair<SortedSet<Comparable>,Boolean>> axes)
Return an immutable, final and serializable implementation
of a SegmentBody in order to cache this dataset.
|
boolean |
exists(CellKey pos)
Returns whether there is a value at a given coordinate.
|
double |
getBytes()
Returns the number of bytes occupied by this dataset.
|
double |
getDouble(CellKey pos)
Returns the value at a given coordinate, as a
double. |
int |
getInt(CellKey pos)
Returns the value at a given coordinate, as an
int. |
Object |
getObject(CellKey pos)
Returns the value at a given coordinate, as an
Object. |
SqlStatement.Type |
getType()
Returns the SQL type of the data contained in this dataset.
|
boolean |
isNull(CellKey pos)
Returns whether the cell at a given coordinate is null.
|
Iterator<Map.Entry<CellKey,Object>> |
iterator() |
void |
populateFrom(int[] pos,
SegmentDataset data,
CellKey key) |
void |
populateFrom(int[] pos,
SegmentLoader.RowList rowList,
int column)
Sets the value a given ordinal.
|
void |
put(CellKey key,
Object value) |
SparseSegmentDataset()
SparseSegmentDataset(Map<CellKey,Object> values)
values - Value mappublic Object getObject(CellKey pos)
SegmentDatasetObject.getObject in interface SegmentDatasetpos - Coordinate positionpublic boolean isNull(CellKey pos)
SegmentDatasetisNull in interface SegmentDatasetpos - Coordinate positionpublic int getInt(CellKey pos)
SegmentDatasetint.getInt in interface SegmentDatasetpos - Coordinate positionpublic double getDouble(CellKey pos)
SegmentDatasetdouble.getDouble in interface SegmentDatasetpos - Coordinate positionpublic boolean exists(CellKey pos)
SegmentDatasetexists in interface SegmentDatasetpos - Coordinate positionpublic double getBytes()
SegmentDatasetgetBytes in interface SegmentDatasetpublic void populateFrom(int[] pos,
SegmentDataset data,
CellKey key)
populateFrom in interface SegmentDatasetpublic void populateFrom(int[] pos,
SegmentLoader.RowList rowList,
int column)
SegmentDatasetpopulateFrom in interface SegmentDatasetpos - OrdinalrowList - Row listcolumn - Column of row listpublic SqlStatement.Type getType()
SegmentDatasetgetType in interface SegmentDatasetpublic SegmentBody createSegmentBody(List<Pair<SortedSet<Comparable>,Boolean>> axes)
SegmentDatasetcreateSegmentBody in interface SegmentDatasetaxes - An array with, for each axis, the set of axis values, sorted
in natural order, and a flag saying whether the null value is also
present.
This is supplied by the SegmentLoader.SegmentBody.