Interface DynamicBackingStore<I,T>

Type Parameters:
I - the identifier type
T - the type of object stored, referenced by the key.
All Superinterfaces:
BackingStore<I,T>
All Known Implementing Classes:
DefaultDynamicBackingStore

public interface DynamicBackingStore<I,T> extends BackingStore<I,T>
A dynamic version of a BackingStore.
  • Method Details

    • computeManagementDataIfAbsent

      @Nonnull MetadataManagementData<I> computeManagementDataIfAbsent(@Nonnull I identifier, @Nonnull Function<I,MetadataManagementData<I>> mappingFunction)
      Get the management data for the specified identifier. If the management data does not exist it should be created using the supplied mapping function.

      Management data facilitates per-entity metadata locking and cache primitives e.g. next refresh time.

      Should do so in a thread-safe way e.g. if two threads enter this method, only one should be allowed to create management data for the same identifier.

      Parameters:
      identifier - the identifier of the entity to find management data about
      mappingFunction - the function used to create a new MetadataManagementData instance if none exist.
      Returns:
      a new or previously cache metadata management data.
    • getManagementData

      @Nullable MetadataManagementData<I> getManagementData(@Nonnull I identifier)
      Get the management data for the specified identifier. If the management data does not exist, null is returned.
      Parameters:
      identifier - the identifier of the entity to find management data about
      Returns:
      the corresponding management data, or null if not found.
    • removeManagementData

      void removeManagementData(@Nonnull I identifier)
      Remove the management data for the specified entityID.
      Parameters:
      identifier - the input identifier
    • getManagementDataIdentifiers

      @Nonnull @NonnullElements @Unmodifiable @NotLive Set<I> getManagementDataIdentifiers()
      Get the set of entityIDs which currently have management data.
      Returns:
      set of entityIDs, may be empty