Package io.deephaven.engine.table
Interface AttributeMap<TYPE extends AttributeMap<TYPE>>
- All Known Subinterfaces:
GridAttributes<TYPE>,HierarchicalTable<IFACE_TYPE>,IcebergTable,LazySnapshotTable,RollupTable,Table,TableAdapter,TableDefaults,TreeTable
- All Known Implementing Classes:
AppendOnlyArrayBackedInputTable,BarrageBlinkTable,BarrageRedirectedTable,BarrageTable,BaseGridAttributes,BaseTable,DeferredViewTable,HierarchicalTableImpl,IcebergTableImpl,InMemoryTable,KeyedArrayBackedInputTable,LiveAttributeMap,PartitionAwareSourceTable,QueryReplayGroupedTable,QueryTable,QueryTable.FilteredTable,RedefinableTable,ReplayGroupedFullTable,ReplayLastByGroupedTable,ReplayTable,ReplayTableBase,RollupTableImpl,SimpleSourceTable,SourceTable,TimeTable,TreeTableImpl,UncoalescedTable,UpdatableTable,UpdateSourceQueryTable
public interface AttributeMap<TYPE extends AttributeMap<TYPE>>
Interface for objects (mostly
tables and similar) that act as an immutable map of key-value attribute
pairs.-
Method Summary
Modifier and TypeMethodDescription@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(@NotNull Predicate<String> included) Get all attributes from this AttributeMap whose keys are accepted byincluded.booleanhasAttribute(@NotNull String key) Check if the specified attribute exists in this AttributeMap.retainingAttributes(@NotNull Collection<String> toRetain) Get an AttributeMap that is the same asthis, but with only the specified attributes retained.withAttributes(@NotNull Map<String, Object> toAdd) Get an AttributeMap that is the same asthis, but with the specified attributes added/replaced.withAttributes(@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.withoutAttributes(@NotNull Collection<String> toRemove) Get an AttributeMap that is the same asthis, but with the specified attributes removed.
-
Method Details
-
withAttributes
@ConcurrentMethod TYPE withAttributes(@NotNull @NotNull Map<String, Object> toAdd, @NotNull @NotNull Collection<String> toRemove) Get 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.- 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
- ApiNote:
- If
thisis aTable, the result will be a childTablethat is identical but for its attributes, and if((Table)this).isRefreshing(), the result will deliver identicalupdatestothison each cycle., If the result is aLivenessReferent, it will always be appropriatelymanagedby the enclosingliveness scope.
-
withAttributes
Get 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.- Parameters:
toAdd- Attribute key-value pairs to add or replace (if the key already exists onthis)- Returns:
- The result AttributeMap
- ApiNote:
- If
thisis aTable, the result will be a childTablethat is identical but for its attributes, and if((Table)this).isRefreshing(), the result will deliver identicalupdatestothison each cycle., If the result is aLivenessReferent, it will always be appropriatelymanagedby the enclosingliveness scope.
-
withoutAttributes
Get 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.- Parameters:
toRemove- Attribute keys to remove- Returns:
- The result AttributeMap
- ApiNote:
- If
thisis aTable, the result will be a childTablethat is identical but for its attributes, and if((Table)this).isRefreshing(), the result will deliver identicalupdatestothison each cycle., If the result is aLivenessReferent, it will always be appropriatelymanagedby the enclosingliveness scope.
-
retainingAttributes
Get 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.- Parameters:
toRetain- Attribute keys to retain- Returns:
- The result AttributeMap
- ApiNote:
- If
thisis aTable, the result will be a childTablethat is identical but for its attributes, and if((Table)this).isRefreshing(), the result will deliver identicalupdatestothison each cycle., If the result is aLivenessReferent, it will always be appropriatelymanagedby the enclosingliveness scope.
-
getAttribute
Get the value for the specified attribute key.- Parameters:
key- The name of the attribute- Returns:
- The value, or
nullif there was none.
-
getAttributeKeys
Get an immutable set of all the attributes that have values in this AttributeMap.- Returns:
- An immutable set of attribute keys (names)
-
hasAttribute
Check if the specified attribute exists in this AttributeMap.- Parameters:
key- The key (name) of the attribute- Returns:
trueif the attribute exists
-
getAttributes
Get all attributes in this AttributeMap.- Returns:
- An immutable map containing all attributes from this AttributeMap
-
getAttributes
@ConcurrentMethod @NotNull @NotNull Map<String,Object> getAttributes(@NotNull @NotNull Predicate<String> included) Get all attributes from this AttributeMap whose keys are accepted byincluded.- 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
-