Interface RollupTable
- All Superinterfaces:
AttributeMap<RollupTable>
,GridAttributes<RollupTable>
,HierarchicalTable<RollupTable>
,LivenessReferent
- All Known Implementing Classes:
RollupTableImpl
Interface for the result of
rollup
operations.-
Nested Class Summary
Modifier and TypeInterfaceDescriptionstatic interface
Recorder for node-level operations to be applied when gathering snapshots.static enum
Node types for a rollup.Nested classes/interfaces inherited from interface io.deephaven.engine.table.hierarchical.HierarchicalTable
HierarchicalTable.SnapshotState
-
Field Summary
Fields inherited from interface io.deephaven.engine.table.GridAttributes
COLUMN_DESCRIPTIONS_ATTRIBUTE, DESCRIPTION_ATTRIBUTE, LAYOUT_HINTS_ATTRIBUTE, SORTABLE_COLUMNS_ATTRIBUTE
Fields inherited from interface io.deephaven.engine.table.hierarchical.HierarchicalTable
KEY_TABLE_ACTION_CONTRACT, KEY_TABLE_ACTION_EXPAND, KEY_TABLE_ACTION_EXPAND_ALL
-
Method Summary
Modifier and TypeMethodDescriptionCollection<? extends Aggregation>
Get the aggregations for therollup
operation.Collection<? extends ColumnName>
Get the group-by columns for therollup
operation.default RollupTable.NodeType
Get theRollupTable.NodeType
at this RollupTable's leaf level.getNodeDefinition
(@NotNull RollupTable.NodeType nodeType) Get theTableDefinition
that should be exposed to node table consumers, e.g.boolean
Are the source table's constituent rows included at the lowest level of the rollup?makeNodeOperationsRecorder
(@NotNull RollupTable.NodeType nodeType) Get arecorder
for per-node operations to apply during snapshots of the requestedRollupTable.NodeType
.translateAggregatedNodeOperationsForConstituentNodes
(@NotNull RollupTable.NodeOperationsRecorder aggregatedNodeOperationsToTranslate) Translate node operations for aggregated nodes to the closest equivalent for a constituent node.withFilter
(Filter filter) Apply a filter to the group-by columns of this RollupTable in order to produce a new RollupTable.withNodeOperations
(@NotNull RollupTable.NodeOperationsRecorder... nodeOperations) Get a new RollupTable that will apply therecorded
operations to nodes when gathering snapshots.Methods inherited from interface io.deephaven.engine.table.AttributeMap
getAttribute, getAttributeKeys, getAttributes, getAttributes, hasAttribute, retainingAttributes, withAttributes, withAttributes, withoutAttributes
Methods inherited from interface io.deephaven.engine.table.GridAttributes
clearSortingRestrictions, restrictSortTo, setLayoutHints, withColumnDescription, withColumnDescriptions, withDescription
Methods inherited from interface io.deephaven.engine.table.hierarchical.HierarchicalTable
getAvailableColumnDefinitions, getDescription, getEmptyExpansionsTable, getRoot, getRowDepthColumn, getRowExpandedColumn, getSource, getStructuralColumnDefinitions, makeSnapshotState, snapshot
Methods inherited from interface io.deephaven.engine.liveness.LivenessReferent
dropReference, getReferentDescription, getWeakReference, retainReference, tryRetainReference
-
Method Details
-
getAggregations
Collection<? extends Aggregation> getAggregations()Get the aggregations for therollup
operation.- Returns:
- The rollup aggregations
-
includesConstituents
boolean includesConstituents()Are the source table's constituent rows included at the lowest level of the rollup?- Returns:
- Whether constituents are included
-
getLeafNodeType
Get theRollupTable.NodeType
at this RollupTable's leaf level.- Returns:
- The leaf node type
-
getGroupByColumns
Collection<? extends ColumnName> getGroupByColumns()Get the group-by columns for therollup
operation.- Returns:
- The group-by columns
-
getNodeDefinition
Get theTableDefinition
that should be exposed to node table consumers, e.g. UI-driven snapshots. This excludes "internal" columns used to organize the rollup or support operations, as well as therow-depth column
androw-expanded column
, but includes formatting columns.- Parameters:
nodeType
- Thenode type
to get theTableDefinition
for- Returns:
- The externally-visible node
TableDefinition
for the requestednodeType
- Throws:
IllegalArgumentException
- IfConstituent
is specified whenincludesConstituents() == false
-
withFilter
Apply a filter to the group-by columns of this RollupTable in order to produce a new RollupTable.- Parameters:
filter
- The filter to apply; must only reference the group-by columns and must not use column arrays- Returns:
- The new RollupTable
-
makeNodeOperationsRecorder
RollupTable.NodeOperationsRecorder makeNodeOperationsRecorder(@NotNull @NotNull RollupTable.NodeType nodeType) Get arecorder
for per-node operations to apply during snapshots of the requestedRollupTable.NodeType
.- Parameters:
nodeType
- Thenode type
that operations will be applied to- Returns:
- The new recorder
- Throws:
IllegalArgumentException
- IfConstituent
is specified whenincludesConstituents() == false
-
withNodeOperations
RollupTable withNodeOperations(@NotNull @NotNull RollupTable.NodeOperationsRecorder... nodeOperations) Get a new RollupTable that will apply therecorded
operations to nodes when gathering snapshots. Operations will be applied only to thenode type
supplied when the elements ofnodeOperations
were initiallycreated
.- Parameters:
nodeOperations
- The node-level operations to apply. Elements must have been initially supplied bymakeNodeOperationsRecorder(NodeType)
fromthis
RollupTable.- Returns:
- The new RollupTable
-
translateAggregatedNodeOperationsForConstituentNodes
RollupTable.NodeOperationsRecorder translateAggregatedNodeOperationsForConstituentNodes(@NotNull @NotNull RollupTable.NodeOperationsRecorder aggregatedNodeOperationsToTranslate) Translate node operations for aggregated nodes to the closest equivalent for a constituent node. May only be invoked ifincludesConstituents() == true
.- Parameters:
aggregatedNodeOperationsToTranslate
- Node-level operations for aggregated nodes, initially supplied bymakeNodeOperationsRecorder(NodeType.Aggregated)
.- Returns:
- Node-level operations for constituent nodes
-