Package mondrian.rolap.agg
Class SegmentBuilder
java.lang.Object
mondrian.rolap.agg.SegmentBuilder
Helper class that contains methods to convert between
Segment and SegmentHeader, and also
SegmentWithData and SegmentBody.- Author:
- LBoudreau
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfaceFunctor to convert a segment header and body into aSegmentWithData.static classImplementation ofSegmentBuilder.SegmentConverterthat uses anAggregationKeyandCellRequestas context to convert aSegmentHeader.static classImplementation ofSegmentBuilder.SegmentConverterthat uses a star measure and a list ofStarPredicate. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic SegmentWithDataaddData(Segment segment, SegmentBody sb) Converts a segment plus aSegmentBodyinto aSegmentWithData.static booleanisSubset(SegmentHeader header, Segment segment) Tells if the passed segment is a subset of this segment and could be used for a rollup in cache operation.static Pair<SegmentHeader,SegmentBody> rollup(Map<SegmentHeader, SegmentBody> map, Set<String> keepColumns, BitKey targetBitkey, Aggregator rollupAggregator, Dialect.Datatype datatype) Given a collection of segments, all of the same dimensionality, rolls up to create a segment with reduced dimensionality.static List<SegmentColumn>toConstrainedColumns(Collection<StarColumnPredicate> predicates) static List<SegmentColumn>toConstrainedColumns(StarColumnPredicate[] predicates) static SegmentHeaderCreates a SegmentHeader object describing the supplied Segment object.static SegmenttoSegment(SegmentHeader header, RolapStar star, BitKey constrainedColumnsBitKey, RolapStar.Column[] constrainedColumns, RolapStar.Measure measure, List<StarPredicate> compoundPredicates) Creates a segment from a SegmentHeader.
-
Constructor Details
-
SegmentBuilder
public SegmentBuilder()
-
-
Method Details
-
addData
Converts a segment plus aSegmentBodyinto aSegmentWithData.- Parameters:
segment- Segmentsb- Segment body- Returns:
- SegmentWithData
-
toSegment
public static Segment toSegment(SegmentHeader header, RolapStar star, BitKey constrainedColumnsBitKey, RolapStar.Column[] constrainedColumns, RolapStar.Measure measure, List<StarPredicate> compoundPredicates) Creates a segment from a SegmentHeader. The star, constrainedColsBitKey, constrainedColumns and measure arguments are a helping hand, because we know what we were looking for.- Parameters:
header- The header to convert.star- StarconstrainedColumnsBitKey- Constrained columnsconstrainedColumns- Constrained columnsmeasure- Measure- Returns:
- Segment
-
rollup
public static Pair<SegmentHeader,SegmentBody> rollup(Map<SegmentHeader, SegmentBody> map, Set<String> keepColumns, BitKey targetBitkey, Aggregator rollupAggregator, Dialect.Datatype datatype) Given a collection of segments, all of the same dimensionality, rolls up to create a segment with reduced dimensionality.- Parameters:
map- Source segment headers and bodieskeepColumns- A list of column names to keep as part of the rolled up segment.targetBitkey- The column bit key to match with the resulting segment.rollupAggregator- The aggregator to use to rollup.datatype- The data type to use.- Returns:
- Segment header and body of requested dimensionality
-
isSubset
Tells if the passed segment is a subset of this segment and could be used for a rollup in cache operation.- Parameters:
segment- A segment which might be a subset of the current segment.- Returns:
- True or false.
-
toConstrainedColumns
-
toConstrainedColumns
-
toHeader
Creates a SegmentHeader object describing the supplied Segment object.- Parameters:
segment- A segment object for which we want to generate a SegmentHeader.- Returns:
- A SegmentHeader describing the supplied Segment object.
-