org.axonframework.eventstore.supporting
Class TimestampCutoffReadonlyEventStore

java.lang.Object
  extended by org.axonframework.eventstore.supporting.TimestampCutoffReadonlyEventStore
All Implemented Interfaces:
EventStore, EventStoreManagement

public class TimestampCutoffReadonlyEventStore
extends Object
implements EventStore, EventStoreManagement

Takes a backend, both EventStore and EventStoreManagement, and functions as a filter based on a DateTime.

Only events that are older than the provided cut-off datetime are returned to caller or handed to an EventVisitor.

This is a read-only implementation. Appending events is not allowed.

Author:
Knut-Olav Hoven

Constructor Summary
TimestampCutoffReadonlyEventStore(EventStore backend, EventStoreManagement backendManagement, org.joda.time.DateTime snapshotTimestamp)
           
 
Method Summary
 void appendEvents(String type, DomainEventStream events)
          Append the events in the given stream to the event store.
 CriteriaBuilder newCriteriaBuilder()
          Returns a CriteriaBuilder that allows the construction of criteria for this EventStore implementation
 DomainEventStream readEvents(String type, Object identifier)
          Read the events of the aggregate identified by the given type and identifier that allow the current aggregate state to be rebuilt.
 void visitEvents(Criteria criteria, EventVisitor visitor)
          Loads all events available in the event store that match the given criteria and calls EventVisitor.doWithEvent(org.axonframework.domain.DomainEventMessage) for each event found.
 void visitEvents(EventVisitor visitor)
          Loads all events available in the event store and calls EventVisitor.doWithEvent(org.axonframework.domain.DomainEventMessage) for each event found.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TimestampCutoffReadonlyEventStore

public TimestampCutoffReadonlyEventStore(EventStore backend,
                                         EventStoreManagement backendManagement,
                                         org.joda.time.DateTime snapshotTimestamp)
Method Detail

visitEvents

public void visitEvents(EventVisitor visitor)
Description copied from interface: EventStoreManagement
Loads all events available in the event store and calls EventVisitor.doWithEvent(org.axonframework.domain.DomainEventMessage) for each event found. Events of a single aggregate are guaranteed to be ordered by their sequence number.

Implementations are encouraged, though not required, to supply events in the absolute chronological order.

Processing stops when the visitor throws an exception.

Specified by:
visitEvents in interface EventStoreManagement
Parameters:
visitor - The visitor the receives each loaded event

visitEvents

public void visitEvents(Criteria criteria,
                        EventVisitor visitor)
Description copied from interface: EventStoreManagement
Loads all events available in the event store that match the given criteria and calls EventVisitor.doWithEvent(org.axonframework.domain.DomainEventMessage) for each event found. Events of a single aggregate are guaranteed to be ordered by their sequence number.

Implementations are encouraged, though not required, to supply events in the absolute chronological order.

Processing stops when the visitor throws an exception.

Specified by:
visitEvents in interface EventStoreManagement
Parameters:
criteria - The criteria describing the events to select
visitor - The visitor the receives each loaded event
See Also:
EventStoreManagement.newCriteriaBuilder()

newCriteriaBuilder

public CriteriaBuilder newCriteriaBuilder()
Description copied from interface: EventStoreManagement
Returns a CriteriaBuilder that allows the construction of criteria for this EventStore implementation

Specified by:
newCriteriaBuilder in interface EventStoreManagement
Returns:
a builder to create Criteria for this Event Store.
See Also:
EventStoreManagement.visitEvents(Criteria, org.axonframework.eventstore.EventVisitor)

appendEvents

public void appendEvents(String type,
                         DomainEventStream events)
Description copied from interface: EventStore
Append the events in the given stream to the event store.

Specified by:
appendEvents in interface EventStore
Parameters:
type - The type descriptor of the object to store
events - The event stream containing the events to store

readEvents

public DomainEventStream readEvents(String type,
                                    Object identifier)
Description copied from interface: EventStore
Read the events of the aggregate identified by the given type and identifier that allow the current aggregate state to be rebuilt. Implementations may omit or replace events (e.g. by using snapshot events) from the stream for performance purposes.

Specified by:
readEvents in interface EventStore
Parameters:
type - The type descriptor of the object to retrieve
identifier - The unique aggregate identifier of the events to load
Returns:
an event stream containing the events of the aggregate


Copyright © 2010-2016. All Rights Reserved.