Class DelayedAddAndDeleteAggregateSnapshotDelegate

    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      <ID,​AGGREGATE_IMPL_TYPE>
      void
      aggregateUpdated​(AGGREGATE_IMPL_TYPE aggregate, dk.cloudcreate.essentials.components.eventsourced.eventstore.postgresql.eventstream.AggregateEventStream<ID> persistedEvents)
      Callback from an Aggregate Repository to notify that the aggregate has been updated
      static AggregateSnapshotRepository delegateTo​(AggregateSnapshotRepository delegateRepository)  
      <AGGREGATE_IMPL_TYPE>
      void
      deleteAllSnapshots​(Class<AGGREGATE_IMPL_TYPE> ofAggregateImplementationType)
      Delete all snapshots for the given aggregate implementation type
      <ID,​AGGREGATE_IMPL_TYPE>
      void
      deleteSnapshots​(dk.cloudcreate.essentials.components.eventsourced.eventstore.postgresql.eventstream.AggregateType aggregateType, ID aggregateId, Class<AGGREGATE_IMPL_TYPE> withAggregateImplementationType)
      Delete all snapshots for the given aggregate instance with the given aggregate implementation type
      <ID,​AGGREGATE_IMPL_TYPE>
      void
      deleteSnapshots​(dk.cloudcreate.essentials.components.eventsourced.eventstore.postgresql.eventstream.AggregateType aggregateType, ID aggregateId, Class<AGGREGATE_IMPL_TYPE> withAggregateImplementationType, List<dk.cloudcreate.essentials.components.eventsourced.eventstore.postgresql.types.EventOrder> snapshotEventOrdersToDelete)
      Delete all snapshots with a given AggregateSnapshot.eventOrderOfLastIncludedEvent for the given aggregate instance, with the given aggregate implementation type
      <ID,​AGGREGATE_IMPL_TYPE>
      List<AggregateSnapshot<ID,​AGGREGATE_IMPL_TYPE>>
      loadAllSnapshots​(dk.cloudcreate.essentials.components.eventsourced.eventstore.postgresql.eventstream.AggregateType aggregateType, ID aggregateId, Class<AGGREGATE_IMPL_TYPE> aggregateImplType, boolean includeSnapshotPayload)
      Load all AggregateSnapshot's related to the given aggregate instance
      <ID,​AGGREGATE_IMPL_TYPE>
      Optional<AggregateSnapshot<ID,​AGGREGATE_IMPL_TYPE>>
      loadSnapshot​(dk.cloudcreate.essentials.components.eventsourced.eventstore.postgresql.eventstream.AggregateType aggregateType, ID aggregateId, dk.cloudcreate.essentials.components.eventsourced.eventstore.postgresql.types.EventOrder withLastIncludedEventOrderLessThanOrEqualTo, Class<AGGREGATE_IMPL_TYPE> aggregateImplType)  
      <ID,​AGGREGATE_IMPL_TYPE>
      Optional<AggregateSnapshot<ID,​AGGREGATE_IMPL_TYPE>>
      loadSnapshot​(dk.cloudcreate.essentials.components.eventsourced.eventstore.postgresql.eventstream.AggregateType aggregateType, ID aggregateId, Class<AGGREGATE_IMPL_TYPE> aggregateImplType)  
    • Constructor Detail

      • DelayedAddAndDeleteAggregateSnapshotDelegate

        public DelayedAddAndDeleteAggregateSnapshotDelegate​(AggregateSnapshotRepository delegateRepository)
    • Method Detail

      • loadSnapshot

        public <ID,​AGGREGATE_IMPL_TYPE> Optional<AggregateSnapshot<ID,​AGGREGATE_IMPL_TYPE>> loadSnapshot​(dk.cloudcreate.essentials.components.eventsourced.eventstore.postgresql.eventstream.AggregateType aggregateType,
                                                                                                                     ID aggregateId,
                                                                                                                     Class<AGGREGATE_IMPL_TYPE> aggregateImplType)
        Specified by:
        loadSnapshot in interface AggregateSnapshotRepository
        Type Parameters:
        ID - the aggregate ID type
        AGGREGATE_IMPL_TYPE - the concrete aggregate implementation type
        Parameters:
        aggregateType - the aggregate type (determining the aggregate's event stream name)
        aggregateId - the identifier for the aggregate instance
        aggregateImplType - the concrete aggregate implementation type
        Returns:
        the aggregate snapshot wrapped in an Optional if a snapshot was found, otherwise Optional.empty()
      • loadSnapshot

        public <ID,​AGGREGATE_IMPL_TYPE> Optional<AggregateSnapshot<ID,​AGGREGATE_IMPL_TYPE>> loadSnapshot​(dk.cloudcreate.essentials.components.eventsourced.eventstore.postgresql.eventstream.AggregateType aggregateType,
                                                                                                                     ID aggregateId,
                                                                                                                     dk.cloudcreate.essentials.components.eventsourced.eventstore.postgresql.types.EventOrder withLastIncludedEventOrderLessThanOrEqualTo,
                                                                                                                     Class<AGGREGATE_IMPL_TYPE> aggregateImplType)
        Specified by:
        loadSnapshot in interface AggregateSnapshotRepository
        Type Parameters:
        ID - the aggregate ID type
        AGGREGATE_IMPL_TYPE - the concrete aggregate implementation type
        Parameters:
        aggregateType - the aggregate type (determining the aggregate's event stream name)
        aggregateId - the identifier for the aggregate instance
        withLastIncludedEventOrderLessThanOrEqualTo - the snapshot returned must have AggregateSnapshot.eventOrderOfLastIncludedEvent that is less than or equal to this value
        aggregateImplType - the concrete aggregate implementation type
        Returns:
        the aggregate snapshot wrapped in an Optional if a snapshot was found, otherwise Optional.empty()
      • loadAllSnapshots

        public <ID,​AGGREGATE_IMPL_TYPE> List<AggregateSnapshot<ID,​AGGREGATE_IMPL_TYPE>> loadAllSnapshots​(dk.cloudcreate.essentials.components.eventsourced.eventstore.postgresql.eventstream.AggregateType aggregateType,
                                                                                                                     ID aggregateId,
                                                                                                                     Class<AGGREGATE_IMPL_TYPE> aggregateImplType,
                                                                                                                     boolean includeSnapshotPayload)
        Description copied from interface: AggregateSnapshotRepository
        Load all AggregateSnapshot's related to the given aggregate instance
        Specified by:
        loadAllSnapshots in interface AggregateSnapshotRepository
        Type Parameters:
        ID - the aggregate ID type
        AGGREGATE_IMPL_TYPE - the concrete aggregate implementation type
        Parameters:
        aggregateType - the aggregate type (determining the aggregate's event stream name)
        aggregateId - the identifier for the aggregate instance
        aggregateImplType - the concrete aggregate implementation type
        includeSnapshotPayload - should the AggregateSnapshot.aggregateSnapshot be loaded?
        Returns:
        list of all AggregateSnapshot's in ascending AggregateSnapshot.eventOrderOfLastIncludedEvent order (the oldest snapshot first) related to the given aggregate instance
      • aggregateUpdated

        public <ID,​AGGREGATE_IMPL_TYPE> void aggregateUpdated​(AGGREGATE_IMPL_TYPE aggregate,
                                                                    dk.cloudcreate.essentials.components.eventsourced.eventstore.postgresql.eventstream.AggregateEventStream<ID> persistedEvents)
        Description copied from interface: AggregateSnapshotRepository
        Callback from an Aggregate Repository to notify that the aggregate has been updated
        Specified by:
        aggregateUpdated in interface AggregateSnapshotRepository
        Type Parameters:
        ID - the aggregate ID type
        AGGREGATE_IMPL_TYPE - the concrete aggregate implementation type
        Parameters:
        aggregate - the aggregate instance after the changes (in the form of events) has been marked as committed within the aggregate
        persistedEvents - the aggregate changes (in the form of events) after they've been persisted
      • deleteAllSnapshots

        public <AGGREGATE_IMPL_TYPE> void deleteAllSnapshots​(Class<AGGREGATE_IMPL_TYPE> ofAggregateImplementationType)
        Description copied from interface: AggregateSnapshotRepository
        Delete all snapshots for the given aggregate implementation type
        Specified by:
        deleteAllSnapshots in interface AggregateSnapshotRepository
        Type Parameters:
        AGGREGATE_IMPL_TYPE - the concrete aggregate implementation type
        Parameters:
        ofAggregateImplementationType - the concrete aggregate implementation type that we want to delete all snapshots for
      • deleteSnapshots

        public <ID,​AGGREGATE_IMPL_TYPE> void deleteSnapshots​(dk.cloudcreate.essentials.components.eventsourced.eventstore.postgresql.eventstream.AggregateType aggregateType,
                                                                   ID aggregateId,
                                                                   Class<AGGREGATE_IMPL_TYPE> withAggregateImplementationType)
        Description copied from interface: AggregateSnapshotRepository
        Delete all snapshots for the given aggregate instance with the given aggregate implementation type
        Specified by:
        deleteSnapshots in interface AggregateSnapshotRepository
        Type Parameters:
        ID - the aggregate ID type
        AGGREGATE_IMPL_TYPE - the concrete aggregate implementation type
        Parameters:
        aggregateType - the aggregate type (determining the aggregate's event stream name)
        aggregateId - the id of the aggregate that we want to delete all snapshots for
        withAggregateImplementationType - the concrete aggregate implementation type that we want to delete all snapshots for
      • deleteSnapshots

        public <ID,​AGGREGATE_IMPL_TYPE> void deleteSnapshots​(dk.cloudcreate.essentials.components.eventsourced.eventstore.postgresql.eventstream.AggregateType aggregateType,
                                                                   ID aggregateId,
                                                                   Class<AGGREGATE_IMPL_TYPE> withAggregateImplementationType,
                                                                   List<dk.cloudcreate.essentials.components.eventsourced.eventstore.postgresql.types.EventOrder> snapshotEventOrdersToDelete)
        Description copied from interface: AggregateSnapshotRepository
        Delete all snapshots with a given AggregateSnapshot.eventOrderOfLastIncludedEvent for the given aggregate instance, with the given aggregate implementation type
        Specified by:
        deleteSnapshots in interface AggregateSnapshotRepository
        Type Parameters:
        ID - the aggregate ID type
        AGGREGATE_IMPL_TYPE - the concrete aggregate implementation type
        Parameters:
        aggregateType - the aggregate type (determining the aggregate's event stream name)
        aggregateId - the id of the aggregate that we want to delete all snapshots for
        withAggregateImplementationType - the concrete aggregate implementation type that we want to delete all snapshots for
        snapshotEventOrdersToDelete - The list of AggregateSnapshot.eventOrderOfLastIncludedEvent 's that should be deleted