Interface TableAdapter
- All Superinterfaces:
AttributeMap<Table>,DynamicNode,GridAttributes<Table>,LivenessManager,LivenessNode,LivenessReferent,LogOutputAppendable,LongSizedDataStructure,NotificationQueue.Dependency,SystemicObject<Table>,Table,TableDefaults,TableOperations<Table,,Table> TableOperationsDefaults<Table,Table>
TableDefaults that allows implementors to selectively support an opt-in subset of
the typical concrete methods for a Table implementation.-
Field Summary
Fields inherited from interface io.deephaven.engine.table.GridAttributes
COLUMN_DESCRIPTIONS_ATTRIBUTE, DESCRIPTION_ATTRIBUTE, LAYOUT_HINTS_ATTRIBUTE, SORTABLE_COLUMNS_ATTRIBUTEFields inherited from interface io.deephaven.engine.table.Table
ADD_ONLY_TABLE_ATTRIBUTE, AGGREGATION_ROW_LOOKUP_ATTRIBUTE, APPEND_ONLY_TABLE_ATTRIBUTE, BARRAGE_PERFORMANCE_KEY_ATTRIBUTE, BARRAGE_SCHEMA_ATTRIBUTE, BLINK_TABLE_ATTRIBUTE, FILTERABLE_COLUMNS_ATTRIBUTE, INITIALLY_EMPTY_COALESCED_SOURCE_TABLE_ATTRIBUTE, INPUT_TABLE_ATTRIBUTE, KEY_COLUMNS_ATTRIBUTE, MERGED_TABLE_ATTRIBUTE, NON_DISPLAY_TABLE, PLUGIN_NAME, PREVIEW_PARENT_TABLE, SNAPSHOT_VIEWPORT_TYPE, SORT_REVERSE_LOOKUP_ATTRIBUTE, SORT_ROW_REDIRECTION_ATTRIBUTE, SORTED_COLUMNS_ATTRIBUTE, SYSTEMIC_TABLE_ATTRIBUTE, TEST_SOURCE_TABLE_ATTRIBUTE, TOTALS_TABLE_ATTRIBUTE, UNIQUE_KEYS_ATTRIBUTEFields inherited from interface io.deephaven.engine.table.impl.TableDefaults
ZERO_LENGTH_TABLE_ARRAYFields inherited from interface io.deephaven.api.TableOperations
AGG_BY_PRESERVE_EMPTY_DEFAULTFields inherited from interface io.deephaven.api.TableOperationsDefaults
ZERO_LENGTH_COLUMNNAME_ARRAY, ZERO_LENGTH_FILTER_ARRAY -
Method Summary
Modifier and TypeMethodDescriptiondefault voidaddParentReference(Object parent) Called on a dependent node to ensure that a strong reference is maintained to any parent object that is required for the proper maintenance and functioning of the dependent.default voidaddUpdateListener(ShiftObliviousListener listener, boolean replayInitialImage) Subscribe for updates to this table.default voidaddUpdateListener(TableUpdateListener listener) Subscribe for updates to this table.default booleanaddUpdateListener(TableUpdateListener listener, long requiredLastNotificationStep) Subscribe for updates to this table if its last notification step matchesrequiredLastNotificationStep.default TableaggAllBy(AggSpec spec, ColumnName... groupByColumns) default TableaggBy(Collection<? extends Aggregation> aggregations, boolean preserveEmpty, Table initialGroups, Collection<? extends ColumnName> groupByColumns) Produce an aggregated result by groupingthisaccording to thegroupByColumnsand applyingaggregationsto each resulting group of rows.default LogOutputdefault <R> RApplies a function to this table.default TableasOfJoin(Table rightTable, Collection<? extends JoinMatch> exactMatches, AsOfJoinMatch asOfMatch, Collection<? extends JoinAddition> columnsToAdd) default Tabledefault Tabledefault Tabledefault voidWait for updates to this Table.default booleanawaitUpdate(long timeout) Wait for updates to this Table.default CloseablePrimitiveIteratorOfBytebyteColumnIterator(@NotNull String columnName) default CloseablePrimitiveIteratorOfCharcharacterColumnIterator(@NotNull String columnName) default TableClear all sorting restrictions that were applied to the grid.default <DATA_TYPE>
CloseableIterator<DATA_TYPE>columnIterator(@NotNull String columnName) doubleColumnIterator(@NotNull String columnName) default TabledropColumns(String... columnNames) Creates a new table without thecolumnNamesfromthis.default voidDrop a previously-retained reference to this referent.default TableexactJoin(Table rightTable, Collection<? extends JoinMatch> columnsToMatch, Collection<? extends JoinAddition> columnsToAdd) Perform an exact-join with therightTable.default Tableflatten()Creates a version of this table with a flat RowSet.floatColumnIterator(@NotNull String columnName) default @Nullable ObjectgetAttribute(@NotNull String key) Get the value for the specified attribute key.Get an immutable set of all the attributes that have values in this AttributeMap.Get all attributes in this AttributeMap.getAttributes(@Nullable Predicate<String> included) Get all attributes from this AttributeMap whose keys are accepted byincluded.default <T> ColumnSource<T>getColumnSource(String sourceName) Retrieves aColumnSource.default Map<String,? extends ColumnSource<?>> default Collection<? extends ColumnSource<?>>default TableDefinitiondefault Stringdefault TrackingRowSetdefault TablegetSubTable(TrackingRowSet rowSet) Get aTablethat contains a sub-set of the rows fromthis.default UpdateGraphdefault WeakReference<? extends LivenessReferent>Get aWeakReferenceto this referent.default booleanhasAttribute(@NotNull String name) Check if the specified attribute exists in this AttributeMap.default Tablehead(long size) default Tabledefault TableheadPct(double percent) Provides a head that selects a dynamic number of rows based on a percent.default CloseablePrimitiveIteratorOfIntintegerColumnIterator(@NotNull String columnName) default booleanisFailed()default booleanisFlat()Return true if this table is guaranteed to be flat.default booleanIs the node updating?default Tablejoin(Table rightTable, Collection<? extends JoinMatch> columnsToMatch, Collection<? extends JoinAddition> columnsToAdd, int reserveBits) Perform a cross join with therightTable.default TablelazyUpdate(Collection<? extends Selectable> columns) Compute column formulas on demand.default CloseablePrimitiveIteratorOfLonglongColumnIterator(@NotNull String columnName) default TablemoveColumns(int index, String... columnsToMove) Produce a new table with the specified columns moved to the specifiedindex.default TablenaturalJoin(Table rightTable, Collection<? extends JoinMatch> columnsToMatch, Collection<? extends JoinAddition> columnsToAdd, NaturalJoinType joinType) Perform a natural-join with therightTable.default <DATA_TYPE>
CloseableIterator<DATA_TYPE>objectColumnIterator(@NotNull String columnName) default <DATA_TYPE>
CloseableIterator<DATA_TYPE>objectColumnIterator(@NotNull String columnName, @NotNull Class<? extends DATA_TYPE> clazz) default PartitionedTablepartitionBy(boolean dropKeys, String... keyColumnNames) Create aPartitionedTablefrom this table, partitioned according to the specified key columns.default PartitionedTablepartitionedAggBy(Collection<? extends Aggregation> aggregations, boolean preserveEmpty, Table initialGroups, String... keyColumnNames) Convenience method that performs anTableOperations.aggBy(io.deephaven.api.agg.Aggregation)and wraps the result in aPartitionedTable.default TablerangeJoin(@NotNull Table rightTable, @NotNull Collection<? extends JoinMatch> exactMatches, @NotNull RangeJoinMatch rangeMatch, @NotNull Collection<? extends Aggregation> aggregations) Perform a range join withrightTable.default TableIf this table is a blink table, i.e.default voidremoveUpdateListener(ShiftObliviousListener listener) Unsubscribe the supplied listener.default voidremoveUpdateListener(TableUpdateListener listener) Unsubscribe the supplied listener.default TablerenameColumns(Collection<Pair> pairs) Produce a new table with the specified columns renamed using the specifiedpairs.default TablerestrictSortTo(@NotNull String... allowedSortingColumns) Disallow sorting on all but the specified columns.default TableretainingAttributes(@NotNull Collection<String> toRetain) Get an AttributeMap that is the same asthis, but with only the specified attributes retained.default Tablereverse()default RollupTablerollup(Collection<? extends Aggregation> aggregations, boolean includeConstituents, Collection<? extends ColumnName> groupByColumns) Create a rollup table.default booleansatisfied(long step) Is this ancestor satisfied? Note that this method must be safe to call on any thread.default Tableselect(Collection<? extends Selectable> columns) default TableselectDistinct(Collection<? extends Selectable> columns) default TablesetLayoutHints(@NotNull String hints) Set layout hints for this grid.default booleansetRefreshing(boolean refreshing) Change the node's run mode.default TablesetTotalsTable(String directive) Set a totals table for this Table.shortColumnIterator(@NotNull String columnName) default longsize()The size of this data structure.default Tableslice(long firstPositionInclusive, long lastPositionExclusive) Extracts a subset of a table by row position.default TableslicePct(double startPercentInclusive, double endPercentExclusive) Extracts a subset of a table by row percentages.default Tablesnapshot()Creates a table with a single static snapshot ofthis.default TablesnapshotWhen(Table trigger, SnapshotWhenOptions options) Creates a table that captures a snapshot ofthiswhenevertriggerupdates.default Tablesort(Collection<SortColumn> columnsToSortBy) default Tabletail(long size) default Tabledefault TabletailPct(double percent) Provides a tail that selects a dynamic number of rows based on a percent.default TreeTableCreate a hierarchical tree table.default booleantryManage(@NotNull LivenessReferent referent) Attempt to addreferentto this manager.default booleanIf this referent is "live", behave asLivenessReferent.retainReference()and return true.default booleantryUnmanage(@NotNull LivenessReferent referent) If this manager manages referent one or more times, drop one such reference.default booleantryUnmanage(@NotNull Stream<? extends LivenessReferent> referents) For each referent in referents, if this manager manages referent one or more times, drop one such reference.default Tableungroup(boolean nullFill, Collection<? extends ColumnName> columnsToUngroup) Ungroups a table by expanding columns of arrays or vectors into columns of singular values, creating one row in the output table for each value in the columns to be ungrouped.default Tableupdate(Collection<? extends Selectable> columns) default TableupdateBy(UpdateByControl control, Collection<? extends UpdateByOperation> operations, Collection<? extends ColumnName> byColumns) Creates a table with additional columns calculated from window-based aggregations of columns in its parent.default TableupdateView(Collection<? extends Selectable> columns) default Tableview(Collection<? extends Selectable> columns) default Tabledefault TablewhereIn(Table rightTable, Collection<? extends JoinMatch> columnsToMatch) Filtersthistable based on the set of values in therightTable.default TablewhereNotIn(Table rightTable, Collection<? extends JoinMatch> columnsToMatch) Filtersthistable based on the set of values not in therightTable.default TablewithAttributes(@NotNull Map<String, Object> toAdd) Get an AttributeMap that is the same asthis, but with the specified attributes added/replaced.default TablewithAttributes(@NotNull Map<String, Object> toAdd, @NotNull Collection<String> toRemove) Get an AttributeMap that is the same asthis, but with the specified attributes added/replaced or removed.default TablewithColumnDescription(@NotNull String column, @NotNull String description) Add a description for a specific column.default TablewithColumnDescriptions(@NotNull Map<String, String> descriptions) Add a set of column descriptions to the grid.default TablewithDescription(@NotNull String description) Apply a description to this grid.default TableSet the table's key columns.default TablewithoutAttributes(@NotNull Collection<String> toRemove) Get an AttributeMap that is the same asthis, but with the specified attributes removed.default TablewithUniqueKeys(String... columns) Set the table's key columns and indicate that each key set will be unique.default TablewouldMatch(WouldMatchPair... matchers) A table operation that applies the supplied predicate to each row in the table and produces columns containing the pass/fail result of the predicate application.Methods inherited from interface io.deephaven.engine.liveness.LivenessManager
manage, unmanage, unmanageMethods inherited from interface io.deephaven.engine.liveness.LivenessReferent
getReferentDescription, retainReferenceMethods inherited from interface io.deephaven.util.datastructures.LongSizedDataStructure
intSize, intSizeMethods inherited from interface io.deephaven.engine.updategraph.NotificationQueue.Dependency
getUpdateGraphMethods inherited from interface io.deephaven.engine.util.systemicmarking.SystemicObject
isSystemicObject, markSystemicMethods inherited from interface io.deephaven.engine.table.impl.TableDefaults
addUpdateListener, applyToAllBy, applyToAllBy, applyToAllBy, close, coalesce, dropColumnFormats, formatColumns, formatColumnWhere, formatRowWhere, getColumnSource, getColumnSource, hasColumns, hasColumns, headBy, isEmpty, join, meta, moveColumnsDown, moveColumnsUp, numColumns, partitionBy, releaseCachedResources, renameAllColumns, renameColumns, rollup, rollup, rollup, rollup, rollup, selectDistinct, sizeForInstrumentation, snapshotWhen, snapshotWhen, tailBy, wouldMatchMethods inherited from interface io.deephaven.api.TableOperationsDefaults
absSumBy, absSumBy, absSumBy, absSumBy, aggAllBy, aggAllBy, aggAllBy, aggBy, aggBy, aggBy, aggBy, aggBy, aggBy, aggBy, aj, aj, avgBy, avgBy, avgBy, avgBy, countBy, countBy, countBy, countBy, dropColumns, dropColumns, exactJoin, exactJoin, firstBy, firstBy, firstBy, firstBy, groupBy, groupBy, groupBy, join, join, join, lastBy, lastBy, lastBy, lastBy, lazyUpdate, maxBy, maxBy, maxBy, maxBy, medianBy, medianBy, medianBy, medianBy, minBy, minBy, minBy, minBy, naturalJoin, naturalJoin, naturalJoin, naturalJoin, naturalJoin, raj, raj, rangeJoin, select, select, selectDistinct, sort, sortDescending, stdBy, stdBy, stdBy, stdBy, sumBy, sumBy, sumBy, sumBy, ungroup, ungroup, ungroup, ungroup, update, updateBy, updateBy, updateBy, updateBy, updateBy, updateBy, updateBy, updateBy, updateView, varBy, varBy, varBy, varBy, view, wavgBy, wavgBy, wavgBy, wavgBy, where, whereIn, whereNotIn, wsumBy, wsumBy, wsumBy, wsumBy
-
Method Details
-
append
- Specified by:
appendin interfaceLogOutputAppendable
-
size
default long size()Description copied from interface:LongSizedDataStructureThe size of this data structure.- Specified by:
sizein interfaceLongSizedDataStructure- Returns:
- The size
-
getDefinition
- Specified by:
getDefinitionin interfaceTable
-
getDescription
- Specified by:
getDescriptionin interfaceTable
-
getUpdateGraph
- Specified by:
getUpdateGraphin interfaceNotificationQueue.Dependency- Returns:
- the update graph that this dependency is a part of
-
isRefreshing
default boolean isRefreshing()Description copied from interface:DynamicNodeIs the node updating?- Specified by:
isRefreshingin interfaceDynamicNode- Specified by:
isRefreshingin interfaceTable- Returns:
- true if the node is updating; false otherwise.
-
setRefreshing
default boolean setRefreshing(boolean refreshing) Description copied from interface:DynamicNodeChange the node's run mode.- Specified by:
setRefreshingin interfaceDynamicNode- Parameters:
refreshing- true to cause the node to update; false otherwise.- Returns:
- new refreshing state
-
addParentReference
Description copied from interface:DynamicNodeCalled on a dependent node to ensure that a strong reference is maintained to any parent object that is required for the proper maintenance and functioning of the dependent. In the most common case, the parent object is a child listener to a parent node. The parent node only keeps a weak reference to its child listener, but the listener maintains a strong reference to the parent node. In this scenario, the only strong reference to the listener (and thus indirectly to the parent node itself) is the reference kept by the dependent node.- Specified by:
addParentReferencein interfaceDynamicNode- Parameters:
parent- A parent of this node
-
getRowSet
- Specified by:
getRowSetin interfaceTable- Returns:
- The
TrackingRowSetthat exposes the row keys present in this Table
-
isFlat
default boolean isFlat()Description copied from interface:TableReturn true if this table is guaranteed to be flat. The RowSet of a flat table will be from 0...numRows-1. -
withAttributes
default Table withAttributes(@NotNull @NotNull Map<String, Object> toAdd, @NotNull @NotNull Collection<String> toRemove) Description copied from interface:AttributeMapGet an AttributeMap that is the same asthis, but with the specified attributes added/replaced or removed. If the supplied attributestoAddandtoRemovewould not result in any changes tothis, implementations may returnthis.- Specified by:
withAttributesin interfaceAttributeMap<Table>- Parameters:
toAdd- Attribute key-value pairs to add or replace (if the key already exists onthis). Neither keys nor values may benull.toRemove- Attribute keys to remove- Returns:
- The result AttributeMap
-
withAttributes
Description copied from interface:AttributeMapGet an AttributeMap that is the same asthis, but with the specified attributes added/replaced. If the supplied attributestoAddwould not result in any changes tothis, implementations may returnthis.- Specified by:
withAttributesin interfaceAttributeMap<Table>- Parameters:
toAdd- Attribute key-value pairs to add or replace (if the key already exists onthis)- Returns:
- The result AttributeMap
-
withoutAttributes
Description copied from interface:AttributeMapGet an AttributeMap that is the same asthis, but with the specified attributes removed. If the supplied attributestoRemovewould not result in any changes tothis, implementations may returnthis.- Specified by:
withoutAttributesin interfaceAttributeMap<Table>- Parameters:
toRemove- Attribute keys to remove- Returns:
- The result AttributeMap
-
retainingAttributes
Description copied from interface:AttributeMapGet an AttributeMap that is the same asthis, but with only the specified attributes retained. If the supplied attributestoAddwould not result in any changes tothis, implementations may returnthis.- Specified by:
retainingAttributesin interfaceAttributeMap<Table>- Parameters:
toRetain- Attribute keys to retain- Returns:
- The result AttributeMap
-
getAttribute
Description copied from interface:AttributeMapGet the value for the specified attribute key.- Specified by:
getAttributein interfaceAttributeMap<Table>- Parameters:
key- The name of the attribute- Returns:
- The value, or
nullif there was none.
-
getAttributeKeys
Description copied from interface:AttributeMapGet an immutable set of all the attributes that have values in this AttributeMap.- Specified by:
getAttributeKeysin interfaceAttributeMap<Table>- Returns:
- An immutable set of attribute keys (names)
-
hasAttribute
Description copied from interface:AttributeMapCheck if the specified attribute exists in this AttributeMap.- Specified by:
hasAttributein interfaceAttributeMap<Table>- Parameters:
name- The key (name) of the attribute- Returns:
trueif the attribute exists
-
getAttributes
Description copied from interface:AttributeMapGet all attributes in this AttributeMap.- Specified by:
getAttributesin interfaceAttributeMap<Table>- Returns:
- An immutable map containing all attributes from this AttributeMap
-
getAttributes
@NotNull default @NotNull Map<String,Object> getAttributes(@Nullable @Nullable Predicate<String> included) Description copied from interface:AttributeMapGet all attributes from this AttributeMap whose keys are accepted byincluded.- Specified by:
getAttributesin interfaceAttributeMap<Table>- Parameters:
included- A predicate to determine which attribute keys to include- Returns:
- An immutable map containing AttributeMap's attributes whose keys are accepted by
included
-
getColumnSource
Description copied from interface:TableRetrieves aColumnSource. It is conveniently cast toColumnSource<Object>using the type that caller expects. This differs fromTable.getColumnSource(String, Class)which uses the providedClassobject to verify that the data type is a subclass of the expected class.The success of this call is equivalent to
getDefinition().checkColumn(sourceName), which is the preferred way to check for compatibility in scenarios where the caller does not want the implementation to potentially invokeTable.coalesce().- Specified by:
getColumnSourcein interfaceTable- Type Parameters:
T- The target type, as a type parameter. Inferred from context.- Parameters:
sourceName- The name of the column- Returns:
- The column source for
sourceName, parameterized byT - See Also:
-
getColumnSourceMap
- Specified by:
getColumnSourceMapin interfaceTable
-
getColumnSources
- Specified by:
getColumnSourcesin interfaceTable
-
columnIterator
default <DATA_TYPE> CloseableIterator<DATA_TYPE> columnIterator(@NotNull @NotNull String columnName) - Specified by:
columnIteratorin interfaceTable
-
characterColumnIterator
default CloseablePrimitiveIteratorOfChar characterColumnIterator(@NotNull @NotNull String columnName) - Specified by:
characterColumnIteratorin interfaceTable
-
byteColumnIterator
- Specified by:
byteColumnIteratorin interfaceTable
-
shortColumnIterator
- Specified by:
shortColumnIteratorin interfaceTable
-
integerColumnIterator
- Specified by:
integerColumnIteratorin interfaceTable
-
longColumnIterator
- Specified by:
longColumnIteratorin interfaceTable
-
floatColumnIterator
- Specified by:
floatColumnIteratorin interfaceTable
-
doubleColumnIterator
default CloseablePrimitiveIteratorOfDouble doubleColumnIterator(@NotNull @NotNull String columnName) - Specified by:
doubleColumnIteratorin interfaceTable
-
objectColumnIterator
default <DATA_TYPE> CloseableIterator<DATA_TYPE> objectColumnIterator(@NotNull @NotNull String columnName) - Specified by:
objectColumnIteratorin interfaceTable
-
objectColumnIterator
default <DATA_TYPE> CloseableIterator<DATA_TYPE> objectColumnIterator(@NotNull @NotNull String columnName, @NotNull @NotNull Class<? extends DATA_TYPE> clazz) - Specified by:
objectColumnIteratorin interfaceTable
-
wouldMatch
Description copied from interface:TableA table operation that applies the supplied predicate to each row in the table and produces columns containing the pass/fail result of the predicate application. This is similar toTableOperations.where(String...)except that instead of selecting only rows that meet the criteria, new columns are added with the result of the comparison.- Specified by:
wouldMatchin interfaceTable- Returns:
- a table with new columns containing the filter result for each row.
-
dropColumns
Description copied from interface:TableOperationsCreates a new table without thecolumnNamesfromthis.- Specified by:
dropColumnsin interfaceTableOperations<Table,Table> - Parameters:
columnNames- the columns to drop- Returns:
- the table
-
renameColumns
Description copied from interface:TableProduce a new table with the specified columns renamed using the specifiedpairs. The renames are simultaneous and unordered, enabling direct swaps between column names. The resulting table retains the original column ordering after applying the specified renames.NOTE: If a new column name conflicts with an existing column name in the table, the existing column will be silently replaced.
IllegalArgumentExceptionwill be thrown:- if a source column does not exist
- if a source column is used more than once
- if a destination column is used more than once
- Specified by:
renameColumnsin interfaceTable- Parameters:
pairs- The columns to rename- Returns:
- The new table, with the columns renamed
-
moveColumns
Description copied from interface:TableProduce a new table with the specified columns moved to the specifiedindex. Column indices begin at 0. Columns can be renamed with the usual syntax, i.e."NewColumnName=OldColumnName"). The renames are simultaneous and unordered, enabling direct swaps between column names. The resulting table retains the original column ordering except for the specified columns, which are inserted at the specified index, in the order ofcolumnsToMove, after the effects of applying any renames.IllegalArgumentExceptionwill be thrown:- if a source column does not exist
- if a source column is used more than once
- if a destination column is used more than once
Values of
indexoutside the range of 0 to the number of columns in the table (exclusive) will be clamped to the nearest valid index.- Specified by:
moveColumnsin interfaceTable- Parameters:
index- The index to which the specified columns should be movedcolumnsToMove- The columns to move to the specified index (and, optionally, to rename)- Returns:
- The new table, with the columns rearranged as explained above
-
slice
Description copied from interface:TableOperationsExtracts a subset of a table by row position.If both firstPosition and lastPosition are positive, then the rows are counted from the beginning of the table. The firstPosition is inclusive, and the lastPosition is exclusive. The
TableOperations.head(long)(N) call is equivalent to slice(0, N). The firstPosition must be less than or equal to the lastPosition.If firstPosition is positive and lastPosition is negative, then the firstRow is counted from the beginning of the table, inclusively. The lastPosition is counted from the end of the table. For example, slice(1, -1) includes all rows but the first and last. If the lastPosition would be before the firstRow, the result is an emptyTable.
If firstPosition is negative, and lastPosition is zero, then the firstRow is counted from the end of the table, and the end of the slice is the size of the table. slice(-N, 0) is equivalent to
TableOperations.tail(long)(N).If the firstPosition is negative and the lastPosition is negative, they are both counted from the end of the table. For example, slice(-2, -1) returns the second to last row of the table.
If firstPosition is negative and lastPosition is positive, then firstPosition is counted from the end of the table, inclusively. The lastPosition is counted from the beginning of the table, exclusively. For example, slice(-3, 5) returns all rows starting from the third-last row to the fifth row of the table. If there are no rows between these positions, the function will return an empty table.
- Specified by:
slicein interfaceTableOperations<Table,Table> - Parameters:
firstPositionInclusive- the first position to include in the resultlastPositionExclusive- the last position to include in the result- Returns:
- a new Table, which is the request subset of rows from the original table
-
slicePct
Description copied from interface:TableExtracts a subset of a table by row percentages.Returns a subset of table in the range [floor(startPercentInclusive * sizeOfTable), floor(endPercentExclusive * sizeOfTable)). For example, for a table of size 10, slicePct(0.1, 0.7) will return a subset from the second row to the seventh row. Similarly, slicePct(0, 1) would return the entire table (because row positions run from 0 to size-1). The percentage arguments must be in range [0,1], otherwise the function returns an error.
- Specified by:
slicePctin interfaceTable- Parameters:
startPercentInclusive- the starting percentage point for rows to include in the result, range [0, 1]endPercentExclusive- the ending percentage point for rows to include in the result, range [0, 1]- Returns:
- a new Table, which is the requested subset of rows from the original table
-
headPct
Description copied from interface:TableProvides a head that selects a dynamic number of rows based on a percent. -
tailPct
Description copied from interface:TableProvides a tail that selects a dynamic number of rows based on a percent. -
exactJoin
default Table exactJoin(Table rightTable, Collection<? extends JoinMatch> columnsToMatch, Collection<? extends JoinAddition> columnsToAdd) Description copied from interface:TableOperationsPerform an exact-join with therightTable.Similar to
TableOperations.naturalJoin(Object, Collection, Collection), but requires that exactly one match from therightTable.- Specified by:
exactJoinin interfaceTableOperations<Table,Table> - Parameters:
rightTable- The right side table on the join.columnsToMatch- The match pair conditions.columnsToAdd- The columns from the right side that need to be added to the left side as a result of the match.- Returns:
- the exact-joined table
-
asOfJoin
default Table asOfJoin(Table rightTable, Collection<? extends JoinMatch> exactMatches, AsOfJoinMatch asOfMatch, Collection<? extends JoinAddition> columnsToAdd) - Specified by:
asOfJoinin interfaceTableOperations<Table,Table>
-
naturalJoin
default Table naturalJoin(Table rightTable, Collection<? extends JoinMatch> columnsToMatch, Collection<? extends JoinAddition> columnsToAdd, NaturalJoinType joinType) Description copied from interface:TableOperationsPerform a natural-join with therightTable.- Specified by:
naturalJoinin interfaceTableOperations<Table,Table> - Parameters:
rightTable- The right side table on the join.columnsToMatch- The match pair conditions.columnsToAdd- The columns from the right side that need to be added to the left side as a result of the match.joinType- Thetypeof join to perform- Returns:
- the natural-joined table
-
join
default Table join(Table rightTable, Collection<? extends JoinMatch> columnsToMatch, Collection<? extends JoinAddition> columnsToAdd, int reserveBits) Description copied from interface:TableOperationsPerform a cross join with therightTable.Returns a table that is the cartesian product of left rows X right rows, with one column for each of
thistable's columns, and one column corresponding to each of therightTable's columns that are included in thecolumnsToAddargument. The rows are ordered first by thethistable then by therightTable. IfcolumnsToMatchis non-empty then the product is filtered by the supplied match conditions.To efficiently produce updates, the bits that represent a key for a given row are split into two. Unless specified, join reserves 16 bits to represent a right row. When there are too few bits to represent all of the right rows for a given aggregation group the table will shift a bit from the left side to the right side. The default of 16 bits was carefully chosen because it results in an efficient implementation to process live updates.
An io.deephaven.engine.table.impl.util.OutOfKeySpaceException is thrown when the total number of bits needed to express the result table exceeds that needed to represent Long.MAX_VALUE. There are a few work arounds:
- If the left table is sparse, consider flattening the left table.
- If there are no key-columns and the right table is sparse, consider flattening the right table.
- If the maximum size of a right table's group is small, you can reserve fewer bits by setting
reserveBitson initialization.Note: If you know that a given group has at most one right-row then you should prefer using
TableOperations.naturalJoin(Object, Collection, Collection).- Specified by:
joinin interfaceTableOperations<Table,Table> - Parameters:
rightTable- The right side table on the join.columnsToMatch- The match pair conditions.columnsToAdd- The columns from the right side that need to be added to the left side as a result of the match.reserveBits- The number of bits to reserve for rightTable groups.- Returns:
- a new table joined according to the specification in columnsToMatch and columnsToAdd
-
rangeJoin
default Table rangeJoin(@NotNull @NotNull Table rightTable, @NotNull @NotNull Collection<? extends JoinMatch> exactMatches, @NotNull @NotNull RangeJoinMatch rangeMatch, @NotNull @NotNull Collection<? extends Aggregation> aggregations) Description copied from interface:TableOperationsPerform a range join withrightTable. For each row inthisTable, this operation joinsaggregationsover a range of responsive rows fromrightTableaccording to zero-or-more exact join matches and one range join match.Matching Rules
The exact join matches identify possibly-responsive rows according to exactly matching values between the left exact match columns and the right exact match columns, similar to other join operations. The range join match bounds the beginning of the responsive range for a given output row by the relationship between a left start column and a right range column, governed by the rangeStartRule, and bounds the end of the responsive range for a given output row by the relationship between a left end column and the same right range column, governed by the rangeEndRule.
Right Table Row-Inclusion Criteria and Relative Ordering Requirements
Rows from
rightTablewithnullorNaNvalues for the right range column are discarded; that is, they are never included in the responsive range for any output row. Within a group sharing the same values for the right exact match columns,rightTablemust be relatively ordered (as ifsorted) according to the right range column for all rows that are not discarded.Special Cases
In order to produce aggregated output, it is required that the two relative match expressions define a range of values to determine the responsive rows to aggregate. There are a few noteworthy special cases of ranges.
- empty range
- An empty range occurs for any left row with no responsive right rows. That is, no non-
null, non-NaNright rows were found using the exact join matches, or none were in range according to the range join match. - single-value ranges
- A single-value range is a range where the left row’s values for the left start column and left end
column are equal and both relative matches are inclusive (
<=and>=, respectively). For a single-value range, only rows within the bucket where the right range column matches the single value are included in the output aggregations. - invalid ranges
- An invalid range occurs in two scenarios: First, when the range is inverted, i.e. when the value of
the left start column is greater than the value of the left end column. Second, when either relative-match is
exclusive (
<or>) and the value in the left start column is equal to the value in the left end column (becausevalue < value == false). Specifying "allow preceding" or "allow following" for either rule will not constitute an exception to either of these defined scenarios. For invalid ranges, the result row will benullfor all aggregation output columns. - undefined ranges
- An undefined range occurs when either the left start column or the left end column is
NaN. For rows with an undefined range, the corresponding output values will benull(as with invalid ranges). - Unbounded Ranges
- A partially or fully unbounded range occurs when either the left start column or the left end column
is
null. If the left start column value isnullthe range is unbounded at the beginning, and all matched right rows will be included if they respect the match rule for the left end column. If the left end column value isnullthe range is unbounded at the end, and all matched right rows will be included if they respect the match rule for the left start column. If both the left start column and left end column values arenullthe range is unbounded in both directions, and all matched right rows will be included.
- Specified by:
rangeJoinin interfaceTableOperations<Table,Table> - Parameters:
rightTable- The Table to join withexactMatches- Possibly-empty collection ofjoin matchesthat dictate exact-match criteria. That is, rows fromrightTablethat might be responsive to rows fromthisTable will have identical values for the column pairs expressed by these matches.rangeMatch- Specifies the range match criteria for determining the responsive rows fromrightTablefor each row fromthisTable, within the buckets created by matching on theexactMatchesaggregations- Theaggregationsto perform over the responsive ranges fromrightTablefor each row fromthisTable- Returns:
- The result Table
-
headBy
-
tailBy
-
apply
Description copied from interface:TableApplies a function to this table.This is useful if you have a reference to a table or a proxy and want to run a series of operations against the table without each individual operation resulting in an RMI.
-
removeBlink
Description copied from interface:TableIf this table is a blink table, i.e. it hasTable.BLINK_TABLE_ATTRIBUTEset totrue, return a child without the attribute, restoring standard semantics for aggregation operations.Removing the
blink attributedoes not change the underlying update pattern of the table. On each cycle, all existing rows are removed. When used with an aggregation this has the effect of providing the aggregated values for only this cycle, because aggregating the result table will no longer apply special blink semantics.Some aggregations (in particular
TableOperations.groupBy()andTable.partitionBy(boolean, java.lang.String...)cannot provide the desired blink table aggregation semantics because doing so would require storing the entire stream of blink updates in memory. If that behavior is desired, useblinkToAppendOnly. If on the other hand, you would like to group or partition only values from the current update, remove the blink attribute with this method.To add the blink attribute to a table that generates updates consistent with blink semantics, use
Table.assertBlink().- Specified by:
removeBlinkin interfaceTable- Returns:
- A non-blink child table, or this table if it is not a blink table
-
assertBlink
Description copied from interface:TableReturnsthisor a child Table withTable.BLINK_TABLE_ATTRIBUTEset totrue.This table must already produce an update pattern that conforms to blink semantics. If it produces an update that does not conform to blink semantics, then the returned table will notify of an error and cease updating.
- Specified by:
assertBlinkin interfaceTable- Returns:
- A child table with the blink attribute set, or this table if already a blink table.
-
assertAddOnly
Description copied from interface:TableReturnsthisor a child Table withTable.ADD_ONLY_TABLE_ATTRIBUTEset totrue.This table must already produce an update pattern that conforms to add-only semantics. If it produces an update that does not conform to add-only semantics, then the returned table will notify of an error and cease updating.
If the engine can identify a table as add only, then some query operations may be optimized (for example, a lastBy operation need only track the current last row per-group rather than all of the rows in a group). In formulas, the
kvariable (for the current row key) can be used safely.- Specified by:
assertAddOnlyin interfaceTable- Returns:
- A child table with the add-only attribute set, or this table if the attribute is already set.
-
assertAppendOnly
Description copied from interface:TableReturnsthisor a child Table withTable.APPEND_ONLY_TABLE_ATTRIBUTEset totrue.This table must already produce an update pattern that conforms to append-only semantics. If it produces an update that does not conform to append-only semantics, then the returned table will notify of an error and cease updating.
If the engine can identify a table as append only, then some query operations may be optimized (for example, a lastBy operation need only track the current last row per-group rather than all of the rows in a group). In formulas, the
i(for the current row position),ii(for the current row position), andk(for the current row key) variables can be used safely.- Specified by:
assertAppendOnlyin interfaceTable- Returns:
- A child table with the append-only attribute set, or this table if the attribute is already set.
-
partitionBy
Description copied from interface:TableCreate aPartitionedTablefrom this table, partitioned according to the specified key columns.The underlying partitioned table backing the result contains each row in
thistable in exactly one of the result's constituent tables.- Specified by:
partitionByin interfaceTable- Parameters:
dropKeys- Whether to drop key columns in the output constituent tableskeyColumnNames- The names of the key columns to partition by- Returns:
- A
PartitionedTablekeyed bykeyColumnNames
-
partitionedAggBy
default PartitionedTable partitionedAggBy(Collection<? extends Aggregation> aggregations, boolean preserveEmpty, Table initialGroups, String... keyColumnNames) Description copied from interface:TableConvenience method that performs anTableOperations.aggBy(io.deephaven.api.agg.Aggregation)and wraps the result in aPartitionedTable. Ifaggregationsdoes not include apartition, one will be added automatically with the default constituent column name and behavior used inTable.partitionBy(String...).- Specified by:
partitionedAggByin interfaceTable- Parameters:
aggregations- Theaggregationsto applypreserveEmpty- Whether to keep result rows for groups that are initially empty or become empty as a result of updates. Each aggregation operator defines its own value for empty groups.initialGroups- A table whose distinct combinations of values for thegroupByColumnsshould be used to create an initial set of aggregation groups. All other columns are ignored. This is useful in combination withpreserveEmpty == trueto ensure that particular groups appear in the result table, or withpreserveEmpty == falseto control the encounter order for a collection of groups and thus their relative order in the result. Changes toinitialGroupsare not expected or handled; ifinitialGroupsis a refreshing table, only its contents at instantiation time will be used. IfinitialGroups == null, the result will be the same as if a table with no rows was supplied.keyColumnNames- The names of the key columns to aggregate by- Returns:
- A
PartitionedTablekeyed bykeyColumnNames
-
rollup
default RollupTable rollup(Collection<? extends Aggregation> aggregations, boolean includeConstituents, Collection<? extends ColumnName> groupByColumns) Description copied from interface:TableCreate a rollup table.A rollup table aggregates by the specified columns, and then creates a hierarchical table which re-aggregates using one less aggregation column on each level. The column that is no longer part of the aggregation key is replaced with null on each level.
-
tree
Description copied from interface:TableCreate a hierarchical tree table.The structure of the table is encoded by an "id" and a "parent" column. The id column should represent a unique identifier for a given row, and the parent column indicates which row is the parent for a given row. Rows that have a
nullparent are part of the "root" table.It is possible for rows to be "orphaned" if their parent is non-
nulland does not exist in the table. SeeTreeTable.promoteOrphans(Table, String, String).- Specified by:
treein interfaceTable- Parameters:
idColumn- The name of a column containing a unique identifier for a particular row in the tableparentColumn- The name of a column containing the parent's identifier,nullfor rows that are part of the root table- Returns:
- A
TreeTableorganized according to the parent-child relationships expressed byidColumnandparentColumn
-
getSubTable
Description copied from interface:TableGet aTablethat contains a sub-set of the rows fromthis. The result will share the samecolumn sourcesanddefinitionas this table.The result will not update on its own. The caller must also establish an appropriate listener to update
rowSetand propagateupdates.- Specified by:
getSubTablein interfaceTable- Parameters:
rowSet- Therow setfor the result- Returns:
- A new sub-table
-
flatten
Description copied from interface:TableCreates a version of this table with a flat RowSet. -
withKeys
Description copied from interface:TableSet the table's key columns. -
withUniqueKeys
Description copied from interface:TableSet the table's key columns and indicate that each key set will be unique.- Specified by:
withUniqueKeysin interfaceTable- Returns:
- A copy of this table with the unique key columns specified, or this if no change was needed
-
setTotalsTable
Description copied from interface:TableSet a totals table for this Table.- Specified by:
setTotalsTablein interfaceTable- Parameters:
directive- A packed string of totals table instructions- Returns:
- A copy of this Table with the
totals table attributeset
-
awaitUpdate
Description copied from interface:TableWait for updates to this Table. Should not be invoked from a
TableListeneror othernotificationon this Table'supdate graph. It may be suitable to wait from another update graph if doing so does not introduce any cycles.In some implementations, this call may also terminate in case of interrupt or spurious wakeup.
- Specified by:
awaitUpdatein interfaceTable- Throws:
InterruptedException- In the event this thread is interrupted- See Also:
-
awaitUpdate
Description copied from interface:TableWait for updates to this Table. Should not be invoked from a
TableListeneror othernotificationon this Table'supdate graph. It may be suitable to wait from another update graph if doing so does not introduce any cycles.In some implementations, this call may also terminate in case of interrupt or spurious wakeup.
- Specified by:
awaitUpdatein interfaceTable- Parameters:
timeout- The maximum time to wait in milliseconds.- Returns:
- false if the timeout elapses without notification, true otherwise.
- Throws:
InterruptedException- In the event this thread is interrupted- See Also:
-
addUpdateListener
Description copied from interface:TableSubscribe for updates to this table. After the optional initial image,listenerwill be invoked via theNotificationQueueassociated with this Table.- Specified by:
addUpdateListenerin interfaceTable- Parameters:
listener- listener for updatesreplayInitialImage- true to process updates for all initial rows in the table plus all changes; false to only process changes
-
addUpdateListener
Description copied from interface:TableSubscribe for updates to this table.listenerwill be invoked via theNotificationQueueassociated with this Table.- Specified by:
addUpdateListenerin interfaceTable- Parameters:
listener- listener for updates
-
addUpdateListener
Description copied from interface:TableSubscribe for updates to this table if its last notification step matchesrequiredLastNotificationStep.listenerwill be invoked via theNotificationQueueassociated with this Table.- Specified by:
addUpdateListenerin interfaceTable- Parameters:
listener- listener for updatesrequiredLastNotificationStep- the expected last notification step to match- Returns:
- true if the listener was added, false if the last notification step requirement was not met
-
removeUpdateListener
Description copied from interface:TableUnsubscribe the supplied listener.- Specified by:
removeUpdateListenerin interfaceTable- Parameters:
listener- listener for updates
-
removeUpdateListener
Description copied from interface:TableUnsubscribe the supplied listener.- Specified by:
removeUpdateListenerin interfaceTable- Parameters:
listener- listener for updates
-
isFailed
default boolean isFailed() -
tryManage
Description copied from interface:LivenessManagerAttempt to addreferentto this manager. Will succeed ifreferentis live and if this manager is not aLivenessReferentor is live.- Specified by:
tryManagein interfaceLivenessManager- Parameters:
referent- The referent to add- Returns:
- Whether the referent was in fact added
-
tryUnmanage
Description copied from interface:LivenessManagerIf this manager manages referent one or more times, drop one such reference. If this manager is also aLivenessReferent, then this method is a no-op ifthisis not live.Strongly prefer using
LivenessManager.tryUnmanage(Stream)} when multiple referents should be unmanaged.- Specified by:
tryUnmanagein interfaceLivenessManager- Parameters:
referent- The referent to drop- Returns:
- If this node is also a
LivenessReferent, whether this node was live and thus in fact tried to drop a reference. Else always returnstrueif dropping a reference via this method is supported by the implementation.
-
tryUnmanage
Description copied from interface:LivenessManagerFor each referent in referents, if this manager manages referent one or more times, drop one such reference. If this manager is also aLivenessReferent, then this method is a no-op ifthisis not live.- Specified by:
tryUnmanagein interfaceLivenessManager- Parameters:
referents- The referents to drop- Returns:
- If this node is also a
LivenessReferent, whether this node was live and thus in fact tried to drop the references. Else always returnstrueif dropping a reference via this method is supported by the implementation.
-
tryRetainReference
default boolean tryRetainReference()Description copied from interface:LivenessReferentIf this referent is "live", behave asLivenessReferent.retainReference()and return true. Otherwise, returns false rather than throwing an exception.- Specified by:
tryRetainReferencein interfaceLivenessReferent- Returns:
- True if this referent was retained, false otherwise
-
dropReference
default void dropReference()Description copied from interface:LivenessReferentDrop a previously-retained reference to this referent.- Specified by:
dropReferencein interfaceLivenessReferent
-
getWeakReference
Description copied from interface:LivenessReferentGet aWeakReferenceto this referent. This may be cached, or newly created.- Specified by:
getWeakReferencein interfaceLivenessReferent- Returns:
- A new or cached reference to this referent
-
satisfied
default boolean satisfied(long step) Description copied from interface:NotificationQueue.DependencyIs this ancestor satisfied? Note that this method must be safe to call on any thread.- Specified by:
satisfiedin interfaceNotificationQueue.Dependency- Parameters:
step- The step for which we are testing satisfaction- Returns:
- Whether the dependency is satisfied on
step(and will not fire subsequent notifications)
-
head
- Specified by:
headin interfaceTableOperations<Table,Table>
-
tail
- Specified by:
tailin interfaceTableOperations<Table,Table>
-
reverse
- Specified by:
reversein interfaceTableOperations<Table,Table>
-
snapshot
Description copied from interface:TableOperationsCreates a table with a single static snapshot ofthis.- Specified by:
snapshotin interfaceTableOperations<Table,Table> - Returns:
- the snapshot
-
snapshotWhen
Description copied from interface:TableOperationsCreates a table that captures a snapshot ofthiswhenevertriggerupdates.- Specified by:
snapshotWhenin interfaceTableOperations<Table,Table> - Parameters:
trigger- the trigger tableoptions- the snapshot options- Returns:
- the snapshotting table
- See Also:
-
sort
- Specified by:
sortin interfaceTableOperations<Table,Table>
-
where
- Specified by:
wherein interfaceTableOperations<Table,Table>
-
whereIn
Description copied from interface:TableOperationsFiltersthistable based on the set of values in therightTable.Note that when the
rightTableticks, all of the rows inthistable are going to be re-evaluated, thus the intention is that therightTableis fairly slow moving compared withthistable.- Specified by:
whereInin interfaceTableOperations<Table,Table> - Parameters:
rightTable- the filtering table.columnsToMatch- the columns to match between the two tables- Returns:
- a new table filtered on right table
-
whereNotIn
Description copied from interface:TableOperationsFiltersthistable based on the set of values not in therightTable.Note that when the
rightTableticks, all of the rows inthistable are going to be re-evaluated, thus the intention is that therightTableis fairly slow moving compared withthistable.- Specified by:
whereNotInin interfaceTableOperations<Table,Table> - Parameters:
rightTable- the filtering table.columnsToMatch- the columns to match between the two tables- Returns:
- a new table filtered on right table
-
view
- Specified by:
viewin interfaceTableOperations<Table,Table>
-
updateView
- Specified by:
updateViewin interfaceTableOperations<Table,Table>
-
update
- Specified by:
updatein interfaceTableOperations<Table,Table>
-
lazyUpdate
Description copied from interface:TableOperationsCompute column formulas on demand.Lazy update defers computation until required for a set of values, and caches the results for a set of input values. This uses less RAM than an update statement when you have a smaller set of unique values. Less computation than an updateView is needed, because the results are saved in a cache.
If you have many unique values, you should instead use an update statement, which will have more memory efficient structures. Values are never removed from the lazyUpdate cache, so it should be used judiciously on a ticking table.
- Specified by:
lazyUpdatein interfaceTableOperations<Table,Table> - Parameters:
columns- the columns to add- Returns:
- a new Table with the columns added; to be computed on demand
-
select
- Specified by:
selectin interfaceTableOperations<Table,Table>
-
aggAllBy
- Specified by:
aggAllByin interfaceTableOperations<Table,Table>
-
aggBy
default Table aggBy(Collection<? extends Aggregation> aggregations, boolean preserveEmpty, Table initialGroups, Collection<? extends ColumnName> groupByColumns) Description copied from interface:TableOperationsProduce an aggregated result by groupingthisaccording to thegroupByColumnsand applyingaggregationsto each resulting group of rows. The result table will have one row per group, ordered by the encounter order withinthis, thereby ensuring that the row key for a given group never changes.- Specified by:
aggByin interfaceTableOperations<Table,Table> - Parameters:
aggregations- Theaggregationsto applypreserveEmpty- Whether to keep result rows for groups that are initially empty or become empty as a result of updates. Each aggregation operator defines its own value for empty groups.initialGroups- A table whose distinct combinations of values for thegroupByColumnsshould be used to create an initial set of aggregation groups. All other columns are ignored. This is useful in combination withpreserveEmpty == trueto ensure that particular groups appear in the result table, or withpreserveEmpty == falseto control the encounter order for a collection of groups and thus their relative order in the result. Changes toinitialGroupsare not expected or handled; ifinitialGroupsis a refreshing table, only its contents at instantiation time will be used. IfinitialGroups == null, the result will be the same as if a table with no rows was supplied.groupByColumns- Thecolumnsto group by- Returns:
- A new table aggregating the rows of
this
-
updateBy
default Table updateBy(UpdateByControl control, Collection<? extends UpdateByOperation> operations, Collection<? extends ColumnName> byColumns) Description copied from interface:TableOperationsCreates a table with additional columns calculated from window-based aggregations of columns in its parent. The aggregations are defined by theoperations, which support incremental aggregation over the corresponding rows in the parent table. The aggregations will apply position or time-based windowing and compute the results for the row group (as determined by thebyColumns).- Specified by:
updateByin interfaceTableOperations<Table,Table> - Parameters:
control- thecontrolto use when updating the table.operations- the operations to apply to the table.byColumns- the columns to group by before applying.- Returns:
- a table with the same rowSet, with the specified operations applied to each group defined by the
byColumns
-
selectDistinct
- Specified by:
selectDistinctin interfaceTableOperations<Table,Table>
-
ungroup
Description copied from interface:TableOperationsUngroups a table by expanding columns of arrays or vectors into columns of singular values, creating one row in the output table for each value in the columns to be ungrouped. Columns that are not ungrouped have their values duplicated in each output row corresponding to a given input row.- Specified by:
ungroupin interfaceTableOperations<Table,Table> - Parameters:
nullFill- indicates if the ungrouped table should allow disparate sized arrays filling shorter columns with null values. If set to false, then all arrays should be the same length.columnsToUngroup- the columns to ungroup- Returns:
- the ungrouped table
-
restrictSortTo
Description copied from interface:GridAttributesDisallow sorting on all but the specified columns.- Specified by:
restrictSortToin interfaceGridAttributes<Table>- Parameters:
allowedSortingColumns- The columns for which sorting is to be allowed- Returns:
- A copy of this grid with the sort restrictions applied, or this if no change was needed
-
clearSortingRestrictions
Description copied from interface:GridAttributesClear all sorting restrictions that were applied to the grid.- Specified by:
clearSortingRestrictionsin interfaceGridAttributes<Table>- Returns:
- A copy of this grid with the sort restrictions removed, or this if no change was needed
-
withDescription
Description copied from interface:GridAttributesApply a description to this grid.- Specified by:
withDescriptionin interfaceGridAttributes<Table>- Parameters:
description- The description to apply- Returns:
- A copy of this grid with the description applied, or this if no change was needed
-
withColumnDescription
default Table withColumnDescription(@NotNull @NotNull String column, @NotNull @NotNull String description) Description copied from interface:GridAttributesAdd a description for a specific column. Users should useGridAttributes.withColumnDescriptions(Map)to set several descriptions at once.- Specified by:
withColumnDescriptionin interfaceGridAttributes<Table>- Parameters:
column- The name of the columndescription- The column description- Returns:
- A copy of this grid with the description applied, or this if no change was needed
-
withColumnDescriptions
Description copied from interface:GridAttributesAdd a set of column descriptions to the grid.- Specified by:
withColumnDescriptionsin interfaceGridAttributes<Table>- Parameters:
descriptions- A map of column name to column description- Returns:
- A copy of this grid with the descriptions applied, or this if no change was needed
-
setLayoutHints
Description copied from interface:GridAttributesSet layout hints for this grid.- Specified by:
setLayoutHintsin interfaceGridAttributes<Table>- Parameters:
hints- A packed string of layout hints- Returns:
- A copy of this grid with the layout hints applied, or this if no change was needed
-