Class StateRepositorySnapshotProvider<E>

java.lang.Object
de.otto.synapse.subscription.StateRepositorySnapshotProvider<E>
Type Parameters:
E -
All Implemented Interfaces:
SnapshotProvider

public class StateRepositorySnapshotProvider<E>
extends java.lang.Object
implements SnapshotProvider
A SnapshotProvider that is relying on a StateRepository to generate the snapshot messages for a given entity-id.

Using an EntityToMessageListTransformer, the entities stored in the StateRepository can be transformed into a sequence of messages. This is especially required, if the representation of the entity does not match the payload of the snapshot messages.

  • Constructor Summary

    Constructors
    Constructor Description
    StateRepositorySnapshotProvider​(java.lang.String channelName, StateRepository<E> stateRepository)  
    StateRepositorySnapshotProvider​(java.lang.String channelName, StateRepository<E> stateRepository, EntityToMessageListTransformer<E> entityToMessagesTransformer)  
  • Method Summary

    Modifier and Type Method Description
    java.lang.String channelName()
    The name of the subscribable messaging channel.
    java.util.stream.Stream<? extends Message<?>> snapshot​(java.lang.String entityId)
    Returns a stream containing all Messages required to get the most current snapshot for the entity that is identified by the given entityId

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • StateRepositorySnapshotProvider

      public StateRepositorySnapshotProvider​(java.lang.String channelName, StateRepository<E> stateRepository)
    • StateRepositorySnapshotProvider

      public StateRepositorySnapshotProvider​(java.lang.String channelName, StateRepository<E> stateRepository, EntityToMessageListTransformer<E> entityToMessagesTransformer)
  • Method Details

    • channelName

      public java.lang.String channelName()
      Description copied from interface: SnapshotProvider
      The name of the subscribable messaging channel.
      Specified by:
      channelName in interface SnapshotProvider
      Returns:
      channel name
    • snapshot

      public java.util.stream.Stream<? extends Message<?>> snapshot​(java.lang.String entityId)
      Description copied from interface: SnapshotProvider
      Returns a stream containing all Messages required to get the most current snapshot for the entity that is identified by the given entityId
      Specified by:
      snapshot in interface SnapshotProvider
      Parameters:
      entityId - the identifier used to select a single entity.
      Returns:
      Stream of messages