Class TreeTableImpl
- All Implemented Interfaces:
LogOutputAppendable
,LivenessManager
,LivenessNode
,LivenessReferent
,AttributeMap<TreeTable>
,GridAttributes<TreeTable>
,HierarchicalTable<TreeTable>
,TreeTable
,Serializable
RollupTable
implementation.- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface io.deephaven.engine.table.hierarchical.HierarchicalTable
HierarchicalTable.SnapshotState
Nested classes/interfaces inherited from interface io.deephaven.engine.table.hierarchical.TreeTable
TreeTable.NodeOperationsRecorder
-
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 TypeMethodDescriptionprotected TreeTableImpl
copy()
Create a copy ofthis
with initially-sharedLiveAttributeMap.mutableAttributes
.List<ColumnDefinition<?>>
Get thedefinitions
for all available columns that may be requested in a snapshot.Get a description of this HierarchicalTable.Get a re-usable, static keyTable
with zero rows that will cause a snapshot to expand only the default nodes.Get the identifier column from thetree
operation.Get theTableDefinition
that should be exposed to node table consumers, e.g.Get the parent identifier column from the {tree
operation.Get arecorder
for per-node operations to apply during snapshots.static TreeTable
makeTree
(@NotNull QueryTable source, @NotNull ColumnName identifierColumn, @NotNull ColumnName parentIdentifierColumn) Create a new TreeTable based onnewSource
, inheriting this TreeTable'sidentifier column
,parent column
,node filter columns
, andnode operations
.withFilter
(@NotNull Filter filter) Apply a filter to the columns of this TreeTable in order to produce a new TreeTable.withNodeFilterColumns
(@NotNull Collection<? extends ColumnName> columns) Get a new TreeTable withcolumns
designated for node-level filtering, in addition to any columns already so-designated onthis
TreeTable.withNodeOperations
(@NotNull TreeTable.NodeOperationsRecorder nodeOperations) Get a new TreeTable that will apply therecorded
operations to nodes when gathering snapshots.Methods inherited from class io.deephaven.engine.table.impl.hierarchical.HierarchicalTableImpl
checkAvailableColumns, checkRebaseDefinition, getRoot, getRowDepthColumn, getRowExpandedColumn, getSource, getStructuralColumnDefinitions, makeSnapshotState, snapshot
Methods inherited from class io.deephaven.engine.table.impl.BaseGridAttributes
clearSortingRestrictions, getSortableColumns, restrictSortTo, setColumnDescriptions, setLayoutHints, setSortableColumns, withColumnDescription, withColumnDescriptions, withDescription
Methods inherited from class io.deephaven.engine.table.impl.LiveAttributeMap
copyAttributes, getAttribute, getAttributeKeys, getAttributes, getAttributes, hasAttribute, prepareReturnCopy, prepareReturnThis, published, retainingAttributes, setAttribute, setAttribute, withAttributes, withAttributes, withoutAttributes
Methods inherited from class io.deephaven.engine.liveness.LivenessArtifact
manageWithCurrentScope
Methods inherited from class io.deephaven.engine.liveness.ReferenceCountedLivenessNode
getWeakReference, initializeTransientFieldsForLiveness, onReferenceCountAtZero, tryManage, tryUnmanage, tryUnmanage
Methods inherited from class io.deephaven.engine.liveness.ReferenceCountedLivenessReferent
destroy, dropReference, tryRetainReference
Methods inherited from class io.deephaven.util.referencecounting.ReferenceCounted
append, decrementReferenceCount, forceReferenceCountToZero, getReferenceCountDebug, incrementReferenceCount, resetReferenceCount, toString, tryDecrementReferenceCount, tryIncrementReferenceCount
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
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
getRoot, getRowDepthColumn, getRowExpandedColumn, getSource, getStructuralColumnDefinitions, makeSnapshotState, snapshot
Methods inherited from interface io.deephaven.engine.liveness.LivenessManager
manage, unmanage, unmanage
Methods inherited from interface io.deephaven.engine.liveness.LivenessReferent
dropReference, getReferentDescription, getWeakReference, retainReference, tryRetainReference
-
Method Details
-
getDescription
Description copied from interface:HierarchicalTable
Get a description of this HierarchicalTable.- Specified by:
getDescription
in interfaceHierarchicalTable<TreeTable>
- Returns:
- The description
-
getEmptyExpansionsTable
Description copied from interface:HierarchicalTable
Get a re-usable, static keyTable
with zero rows that will cause a snapshot to expand only the default nodes.- Specified by:
getEmptyExpansionsTable
in interfaceHierarchicalTable<TreeTable>
- Returns:
- An empty key
Table
for default expansions
-
getIdentifierColumn
Description copied from interface:TreeTable
Get the identifier column from thetree
operation.- Specified by:
getIdentifierColumn
in interfaceTreeTable
- Returns:
- The identifier column
-
getParentIdentifierColumn
Description copied from interface:TreeTable
Get the parent identifier column from the {tree
operation.- Specified by:
getParentIdentifierColumn
in interfaceTreeTable
- Returns:
- The parent identifier column
-
getNodeDefinition
Description copied from interface:TreeTable
Get theTableDefinition
that should be exposed to node table consumers, e.g. UI-driven snapshots. This excludes "internal" columns used to organize the tree or support operations, as well as therow-depth column
androw-expanded column
, but includes formatting columns.- Specified by:
getNodeDefinition
in interfaceTreeTable
- Returns:
- The externally-visible node
TableDefinition
-
getAvailableColumnDefinitions
Description copied from interface:HierarchicalTable
Get thedefinitions
for all available columns that may be requested in a snapshot.The result will always begin with the
structural columns
, which are then followed by type-specific node-level columns.- Specified by:
getAvailableColumnDefinitions
in interfaceHierarchicalTable<TreeTable>
- Returns:
- A list of
definitions
for all available columns that may be requested in a snapshot
-
withNodeFilterColumns
Description copied from interface:TreeTable
Get a new TreeTable withcolumns
designated for node-level filtering, in addition to any columns already so-designated onthis
TreeTable.Filters specified via
TreeTable.withFilter(Filter)
, typically from the UI, that only use the designated node-level filtering columns will be applied to the nodes during snapshots. If no node-filter columns are designated, no filters will be handled at node level.Filters that include other columns are handled by filtering the source table in a ancestor-preserving manner and re-applying the tree operation to the result to produce a new TreeTable. Users of orphan promotion or other strategies to govern the structure of the tree should carefully consider the structure of their data before specifying node-filter columns.
Specifying node-filter columns represents a trade-off between performance (which is expected to be much better for node-level filtering) and tree structural integrity (which may be lost since node-level filters are not ancestor-preserving).
- Specified by:
withNodeFilterColumns
in interfaceTreeTable
- Parameters:
columns
- The columns to designate- Returns:
- The new TreeTable
-
withFilter
Description copied from interface:TreeTable
Apply a filter to the columns of this TreeTable in order to produce a new TreeTable.- Specified by:
withFilter
in interfaceTreeTable
- Parameters:
filter
- The filter to apply- Returns:
- The new TreeTable
-
makeNodeOperationsRecorder
Description copied from interface:TreeTable
Get arecorder
for per-node operations to apply during snapshots.- Specified by:
makeNodeOperationsRecorder
in interfaceTreeTable
- Returns:
- The new recorder
-
withNodeOperations
public TreeTable withNodeOperations(@NotNull @NotNull TreeTable.NodeOperationsRecorder nodeOperations) Description copied from interface:TreeTable
Get a new TreeTable that will apply therecorded
operations to nodes when gathering snapshots.- Specified by:
withNodeOperations
in interfaceTreeTable
- Parameters:
nodeOperations
- The node-level operations to apply. Must have been initially supplied byTreeTable.makeNodeOperationsRecorder()
fromthis
TreeTable.- Returns:
- The new TreeTable
-
copy
Description copied from class:LiveAttributeMap
Create a copy ofthis
with initially-sharedLiveAttributeMap.mutableAttributes
.- Specified by:
copy
in classLiveAttributeMap<TreeTable,
TreeTableImpl>
-
rebase
Description copied from interface:TreeTable
Create a new TreeTable based onnewSource
, inheriting this TreeTable'sidentifier column
,parent column
,node filter columns
, andnode operations
. -
makeTree
public static TreeTable makeTree(@NotNull @NotNull QueryTable source, @NotNull @NotNull ColumnName identifierColumn, @NotNull @NotNull ColumnName parentIdentifierColumn)
-