Class SimpleSnapshotEventGenerator
- java.lang.Object
-
- org.zalando.nakadiproducer.snapshots.SimpleSnapshotEventGenerator
-
- All Implemented Interfaces:
SnapshotEventGenerator
public final class SimpleSnapshotEventGenerator extends Object implements SnapshotEventGenerator
This is a simple implementation of theSnapshotEventGenerator. It is meant to be used in a functional style.- See Also:
SnapshotEventGenerator
-
-
Constructor Summary
Constructors Constructor Description SimpleSnapshotEventGenerator(String supportedEventType, BiFunction<Object,String,List<Snapshot>> snapshotEventFactory)Creates a SnapshotEventGenerator for an event type, with filtering support.SimpleSnapshotEventGenerator(String supportedEventType, Function<Object,List<Snapshot>> snapshotEventFactory)Creates a SnapshotEventGenerator for an event type, which doesn't support filtering.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description List<Snapshot>generateSnapshots(Object withIdGreaterThan, String filter)Returns a batch of snapshots of given type (event type is an event channel topic name).StringgetSupportedEventType()The name of the event type supported by this snapshot generator.
-
-
-
Constructor Detail
-
SimpleSnapshotEventGenerator
public SimpleSnapshotEventGenerator(String supportedEventType, Function<Object,List<Snapshot>> snapshotEventFactory)
Creates a SnapshotEventGenerator for an event type, which doesn't support filtering.- Parameters:
supportedEventType- the eventType that this SnapShotEventProvider will support.snapshotEventFactory- a snapshot event factory function conforming to the specification ofSnapshotEventGenerator.generateSnapshots(Object, String)(but without the filter parameter). Any filter provided by the caller will be thrown away.
-
SimpleSnapshotEventGenerator
public SimpleSnapshotEventGenerator(String supportedEventType, BiFunction<Object,String,List<Snapshot>> snapshotEventFactory)
Creates a SnapshotEventGenerator for an event type, with filtering support.- Parameters:
supportedEventType- the eventType that this SnapShotEventProvider will support.snapshotEventFactory- a snapshot event factory function conforming to the specification ofSnapshotEventGenerator.generateSnapshots(Object, String).
-
-
Method Detail
-
generateSnapshots
public List<Snapshot> generateSnapshots(Object withIdGreaterThan, String filter)
Description copied from interface:SnapshotEventGeneratorReturns a batch of snapshots of given type (event type is an event channel topic name). The implementation may return an arbitrary amount of results, but it must return at least one element if there are entities matching the parameters.
Calling this method must have no side effects.
The library will call your implementation like this:- Request: generateSnapshots(null, filter), Response: 1,2,3
- Request: generateSnapshots(3, filter), Response: 4,5
- Request: generateSnapshots(5, filter), Response: emptyList
It is your responsibility to make sure that the returned events are ordered by their ID ascending and that, given you return a list of events for entities with IDs {id1, ..., idN}, there exists no entity with an ID between id1 and idN, that is not part of the result.
- Specified by:
generateSnapshotsin interfaceSnapshotEventGenerator- Parameters:
withIdGreaterThan- if not null, only events for entities with an ID greater than the given one must be returnedfilter- a filter for the snapshot generation mechanism. This value is simply passed through from the request body of the REST endpoint (or from any other triggering mechanism). If there was no request body, this will benull. Implementors can interpret it in whatever way they want (even ignore it). All calls for one snapshot generation will receive the same string.- Returns:
- list of elements (wrapped in Snapshot objects) ordered by their ID.
-
getSupportedEventType
public String getSupportedEventType()
Description copied from interface:SnapshotEventGeneratorThe name of the event type supported by this snapshot generator.- Specified by:
getSupportedEventTypein interfaceSnapshotEventGenerator
-
-