public class SegmentWithData extends Segment
Segment
with a data set.Segment.ExcludedRegion
Modifier and Type | Field and Description |
---|---|
(package private) SegmentAxis[] |
axes
An array of axes, one for each constraining column, containing the values
returned for that constraining column.
|
columns, compoundPredicateList, constrainedColumnsBitKey, excludedRegions, id, measure, predicates, star
Constructor and Description |
---|
SegmentWithData(Segment segment,
SegmentDataset data,
SegmentAxis[] axes)
Creates a SegmentWithData from an existing Segment.
|
Modifier and Type | Method and Description |
---|---|
(package private) SegmentWithData |
createSubSegment(BitSet[] axisKeepBitSets,
int bestColumn,
StarColumnPredicate bestPredicate,
List<Segment.ExcludedRegion> excludedRegions)
Creates a Segment which has the same dimensionality as this Segment and a
subset of the values.
|
protected void |
describeAxes(StringBuilder buf,
int i,
boolean values) |
int |
getCellCount()
Returns the number of cells in this Segment, deducting cells in
excluded regions.
|
Object |
getCellValue(Object[] keys)
Retrieves the value at the location identified by
keys . |
SegmentDataset |
getData()
Returns the data set.
|
(package private) boolean |
wouldContain(Object[] keys)
Returns whether the given set of key values will be in this segment
when it finishes loading.
|
createDataset, getColumns, getCompoundPredicateList, getConstrainedColumnsBitKey, getExcludedRegions, getHeader, getStar, isExcluded, matches, print, toString
final SegmentAxis[] axes
public SegmentWithData(Segment segment, SegmentDataset data, SegmentAxis[] axes)
segment
- Segment (without data)data
- Data setprotected void describeAxes(StringBuilder buf, int i, boolean values)
describeAxes
in class Segment
public Object getCellValue(Object[] keys)
keys
.
Returns
Util.nullValue
if the cell value
is null (because no fact table rows met those criteria);null
if the value is not supposed to be in this segment
(because one or more of the keys do not pass the axis criteria);make package-private?
boolean wouldContain(Object[] keys)
public int getCellCount()
This method may return a value which is slightly too low, or occasionally even negative. This occurs when a Segment has more than one excluded region, and those regions overlap. Cells which are in both regions will be counted twice.
SegmentWithData createSubSegment(BitSet[] axisKeepBitSets, int bestColumn, StarColumnPredicate bestPredicate, List<Segment.ExcludedRegion> excludedRegions)
If bestColumn
is not -1, the bestColumn
th
column's predicate should be replaced by bestPredicate
.
axisKeepBitSets
- For each axis, a bitmap of the axis values to
keep; each axis must have at least one bit setbestColumn
- The column that retains most of its valuesbestPredicate
- excludedRegions
- List of regions to exclude from segmentpublic final SegmentDataset getData()
Returns the data set.
WARNING: the returned SegmentDataset reference should not be modified; it is assumed to be invariant.
data
reference