org.axonframework.eventsourcing
Class CompositeEventStreamDecorator

java.lang.Object
  extended by org.axonframework.eventsourcing.CompositeEventStreamDecorator
All Implemented Interfaces:
EventStreamDecorator

public class CompositeEventStreamDecorator
extends Object
implements EventStreamDecorator

EventStreamDecorator implementation that delegates to several other decorator instances.

Since:
2.2.1
Author:
Allard Buijze

Constructor Summary
CompositeEventStreamDecorator(Collection<EventStreamDecorator> eventStreamDecorators)
          Initialize the decorator, delegating to the given eventStreamDecorators.
 
Method Summary
 DomainEventStream decorateForAppend(String aggregateType, EventSourcedAggregateRoot aggregate, DomainEventStream eventStream)
          Called when an event stream is appended to the event store.
 DomainEventStream decorateForRead(String aggregateType, Object aggregateIdentifier, DomainEventStream eventStream)
          Called when an event stream is read from the event store.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CompositeEventStreamDecorator

public CompositeEventStreamDecorator(Collection<EventStreamDecorator> eventStreamDecorators)
Initialize the decorator, delegating to the given eventStreamDecorators. The decorators are invoked in the iterator's order on decorateForRead(String, Object, org.axonframework.domain.DomainEventStream), and in revese order on decorateForAppend(String, EventSourcedAggregateRoot, org.axonframework.domain.DomainEventStream).

Parameters:
eventStreamDecorators - The decorators to decorate Event Streams with
Method Detail

decorateForRead

public DomainEventStream decorateForRead(String aggregateType,
                                         Object aggregateIdentifier,
                                         DomainEventStream eventStream)
Description copied from interface: EventStreamDecorator
Called when an event stream is read from the event store.

Note that a stream is read-once, similar to InputStream. If you read from the stream, make sure to store the read events and pass them to the chain. Usually, it is best to decorate the given eventStream and pass that to the chain.

Specified by:
decorateForRead in interface EventStreamDecorator
Parameters:
aggregateType - The type of aggregate events are being read for
aggregateIdentifier - The identifier of the aggregate events are loaded for
eventStream - The eventStream containing the events to append to the event store
Returns:
the decorated event stream

decorateForAppend

public DomainEventStream decorateForAppend(String aggregateType,
                                           EventSourcedAggregateRoot aggregate,
                                           DomainEventStream eventStream)
Description copied from interface: EventStreamDecorator
Called when an event stream is appended to the event store.

Note that a stream is read-once, similar to InputStream. If you read from the stream, make sure to store the read events and pass them to the chain. Usually, it is best to decorate the given eventStream and pass that to the chain.

Specified by:
decorateForAppend in interface EventStreamDecorator
Parameters:
aggregateType - The type of aggregate events are being appended for
aggregate - The aggregate for which the events are being stored
eventStream - The eventStream containing the events to append to the event store
Returns:
the decorated event stream


Copyright © 2010-2016. All Rights Reserved.