Package io.deephaven.enterprise.acl.impl
Class EdgeAclTableImpl
java.lang.Object
io.deephaven.util.referencecounting.ReferenceCounted
io.deephaven.engine.liveness.ReferenceCountedLivenessReferent
io.deephaven.engine.liveness.ReferenceCountedLivenessNode
io.deephaven.engine.liveness.LivenessArtifact
io.deephaven.engine.table.impl.LiveAttributeMap<IFACE_TYPE,IMPL_TYPE>
io.deephaven.engine.table.impl.BaseGridAttributes<Table,IMPL_TYPE>
io.deephaven.engine.table.impl.BaseTable<IMPL_TYPE>
io.deephaven.engine.table.impl.UncoalescedTable<EdgeAclTableImpl>
io.deephaven.enterprise.acl.impl.EdgeAclTableImpl
- All Implemented Interfaces:
TableOperations<Table,,Table> TableOperationsDefaults<Table,,Table> LogOutputAppendable,LivenessManager,LivenessNode,LivenessReferent,AttributeMap<Table>,GridAttributes<Table>,HasParentPerformanceIds,NotificationStepReceiver,NotificationStepSource,TableDefaults,Table,DynamicNode,NotificationQueue.Dependency,SystemicObject<Table>,EdgeAclTable,LongSizedDataStructure,Serializable
An
UncoalescedTable that defers application of an EdgeAclProvider to coalesce time, so that ACLs can
be applied for the user that is actually requesting the table.
The coalesced result is cached per effective user via a MemoizedResult, which holds the result in a
WeakReference, since different effective users may see different rows and columns. Each
per-user MemoizedResult synchronizes only the computations for that user; computations for distinct users may
proceed concurrently.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class io.deephaven.engine.table.impl.BaseTable
BaseTable.CopyAttributeOperation, BaseTable.ListenerImpl, BaseTable.ShiftObliviousListenerImpl, BaseTable.SnapshotControlFactory<T extends ConstructSnapshot.SnapshotControl> -
Field Summary
Fields inherited from class io.deephaven.engine.table.impl.BaseTable
definition, PRINT_SERIALIZED_UPDATE_OVERLAPS, updateGraph, VALIDATE_UPDATE_OVERLAPSFields 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.impl.NotificationStepReceiver
NULL_NOTIFICATION_STEPFields 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 -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionWhen exporting the EdgeAclTable for a regular user, ACLs must be applied; but if the underlying table is not coalesced we need not coalesce it.voidA testing only call that invalidates our cached results.coalesce()protected EdgeAclTableImplcopy()rawTable()When exporting the EdgeAclTable for an administrator, no ACLs are applied.Methods inherited from class io.deephaven.engine.table.impl.UncoalescedTable
addUpdateListener, addUpdateListener, addUpdateListener, addUpdateListenerUncoalesced, addUpdateListenerUncoalesced, aggAllBy, aggBy, apply, asOfJoin, awaitUpdate, awaitUpdate, byteColumnIterator, characterColumnIterator, columnIterator, doubleColumnIterator, dropColumns, exactJoin, flatten, floatColumnIterator, getColumnSource, getColumnSourceMap, getColumnSources, getRowSet, getSubTable, head, headBy, headPct, integerColumnIterator, isFlat, join, lazyUpdate, longColumnIterator, moveColumns, naturalJoin, objectColumnIterator, objectColumnIterator, partitionBy, partitionedAggBy, rangeJoin, removeUpdateListener, removeUpdateListener, removeUpdateListenerUncoalesced, renameColumns, reverse, rollup, select, selectDistinct, shortColumnIterator, size, sizeForInstrumentation, slice, slicePct, snapshot, snapshotWhen, sort, tail, tailBy, tailPct, tree, ungroup, update, updateBy, updateView, view, whereIn, whereNotIn, wouldMatchMethods inherited from class io.deephaven.engine.table.impl.BaseTable
addParentReference, append, assertAddOnly, assertAppendOnly, assertBlink, checkAvailableColumns, copyAttributes, copyAttributes, copySortableColumns, createSnapshotControlIfRefreshing, destroy, getDefinition, getDescription, getLastNotificationStep, getNotificationQueue, getUpdateGraph, hasListeners, initializeWithSnapshot, isAddOnly, isAppendOnly, isBlink, isFailed, isRefreshing, isSystemicObject, markSystemic, notifyListeners, notifyListeners, notifyListenersOnError, parentPerformanceEntryIds, removeBlink, satisfied, setLastNotificationStep, setRefreshing, setTotalsTable, shouldCopyAttribute, toString, withKeys, withUniqueKeysMethods inherited from class io.deephaven.engine.table.impl.BaseGridAttributes
clearSortingRestrictions, getSortableColumns, restrictSortTo, setColumnDescriptions, setLayoutHints, setSortableColumns, withColumnDescription, withColumnDescriptions, withDescriptionMethods inherited from class io.deephaven.engine.table.impl.LiveAttributeMap
copyAttributes, getAttribute, getAttributeKeys, getAttributes, getAttributes, hasAttribute, prepareReturnCopy, prepareReturnThis, published, retainingAttributes, setAttribute, setAttribute, withAttributes, withAttributes, withoutAttributesMethods inherited from class io.deephaven.engine.liveness.LivenessArtifact
manageWithCurrentScopeMethods inherited from class io.deephaven.engine.liveness.ReferenceCountedLivenessNode
ensureCleanupOnGC, findAnyManagedReferent, forEachManagedReference, getWeakReference, initializeTransientFieldsForLiveness, onReferenceCountAtZero, tryManage, tryUnmanage, tryUnmanageMethods inherited from class io.deephaven.engine.liveness.ReferenceCountedLivenessReferent
dropReference, tryRetainReferenceMethods inherited from class io.deephaven.util.referencecounting.ReferenceCounted
decrementReferenceCount, forceReferenceCountToZero, getReferenceCountDebug, incrementReferenceCount, resetReferenceCount, tryDecrementReferenceCount, tryIncrementReferenceCountMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface io.deephaven.engine.table.AttributeMap
getAttribute, getAttributeKeys, getAttributes, getAttributes, hasAttribute, retainingAttributes, withAttributes, withAttributes, withoutAttributesMethods inherited from interface io.deephaven.engine.updategraph.DynamicNode
addParentReference, setRefreshingMethods inherited from interface io.deephaven.engine.table.GridAttributes
clearSortingRestrictions, restrictSortTo, setLayoutHints, withColumnDescription, withColumnDescriptions, withDescriptionMethods inherited from interface io.deephaven.engine.liveness.LivenessManager
manage, tryManage, tryUnmanage, tryUnmanage, unmanage, unmanageMethods inherited from interface io.deephaven.engine.liveness.LivenessReferent
dropReference, getReferentDescription, getWeakReference, retainReference, tryRetainReferenceMethods inherited from interface io.deephaven.base.log.LogOutputAppendable
appendMethods inherited from interface io.deephaven.util.datastructures.LongSizedDataStructure
intSize, intSize, sizeMethods inherited from interface io.deephaven.engine.updategraph.NotificationQueue.Dependency
getUpdateGraph, getUpdateGraph, satisfiedMethods inherited from interface io.deephaven.engine.table.impl.NotificationStepReceiver
initializeLastNotificationStepMethods inherited from interface io.deephaven.engine.util.systemicmarking.SystemicObject
isSystemicObject, markSystemicMethods inherited from interface io.deephaven.engine.table.Table
addUpdateListener, addUpdateListener, addUpdateListener, apply, assertAddOnly, assertAppendOnly, assertBlink, awaitUpdate, awaitUpdate, byteColumnIterator, characterColumnIterator, columnIterator, doubleColumnIterator, flatten, floatColumnIterator, getColumnSource, getColumnSourceMap, getColumnSources, getDefinition, getDescription, getRowSet, getSubTable, headBy, headPct, integerColumnIterator, isFailed, isFlat, isRefreshing, longColumnIterator, moveColumns, objectColumnIterator, objectColumnIterator, partitionBy, partitionedAggBy, removeBlink, removeUpdateListener, removeUpdateListener, renameColumns, rollup, setTotalsTable, shortColumnIterator, slicePct, tailBy, tailPct, tree, withKeys, withUniqueKeys, wouldMatchMethods inherited from interface io.deephaven.engine.table.impl.TableDefaults
addUpdateListener, applyToAllBy, applyToAllBy, applyToAllBy, close, dropColumnFormats, formatColumns, formatColumnWhere, formatRowWhere, getColumnSource, getColumnSource, getColumnSource, hasColumns, hasColumns, headBy, isEmpty, join, meta, moveColumnsDown, moveColumnsUp, numColumns, partitionBy, releaseCachedResources, renameAllColumns, renameColumns, rollup, rollup, rollup, rollup, rollup, selectDistinct, snapshotWhen, snapshotWhen, tailBy, wouldMatchMethods inherited from interface io.deephaven.api.TableOperations
aggAllBy, aggBy, asOfJoin, dropColumns, exactJoin, head, join, lazyUpdate, naturalJoin, rangeJoin, reverse, select, selectDistinct, slice, snapshot, snapshotWhen, sort, tail, ungroup, update, updateBy, updateView, view, whereIn, whereNotInMethods 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
-
Constructor Details
-
EdgeAclTableImpl
-
-
Method Details
-
coalesce
- Specified by:
coalescein interfaceTable- Specified by:
coalescein interfaceTableDefaults- Specified by:
coalescein classUncoalescedTable<EdgeAclTableImpl>
-
copy
- Specified by:
copyin classLiveAttributeMap<Table,EdgeAclTableImpl>
-
rawTable
Description copied from interface:EdgeAclTableWhen exporting the EdgeAclTable for an administrator, no ACLs are applied. This returns the raw table that we wrap.- Specified by:
rawTablein interfaceEdgeAclTable- Returns:
- the wrapped table, with no ACLs applied
-
applyAcls
Description copied from interface:EdgeAclTableWhen exporting the EdgeAclTable for a regular user, ACLs must be applied; but if the underlying table is not coalesced we need not coalesce it. This returns the table with ACLs applied; but it is not necessarily coalesced.- Specified by:
applyAclsin interfaceEdgeAclTable- Returns:
- the table, with ACLs applied
-
where
- Specified by:
wherein interfaceTableOperations<Table,Table> - Overrides:
wherein classUncoalescedTable<EdgeAclTableImpl>
-
clearCache
A testing only call that invalidates our cached results.
-