Skip to content

Commit 1d89bf7

Browse files
Add TODOs for builder-based appliers.
1 parent cd88dc9 commit 1d89bf7

File tree

1 file changed

+17
-5
lines changed

1 file changed

+17
-5
lines changed

server/src/main/java/org/spine3/server/aggregate/Aggregate.java

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -312,17 +312,29 @@ public void play(Iterable<Event> events) {
312312
private void apply(Iterable<? extends Message> messages, CommandContext commandContext) throws InvocationTargetException {
313313
final Set<Class<? extends Message>> stateNeutralEventClasses = getStateNeutralEventClasses();
314314

315+
//TODO:2016-03-24:alexander.yevsyukov: Init the builder of the state. Add getBuilder() method.
316+
// Assume that the code of event appliers would call getBuilder() instead of getState().
317+
// Throw IllegalStateException in the getBuilder() method if it's called from other stages of
318+
// the aggregate lifecycle.
319+
315320
for (Message message : messages) {
316321
final boolean isStateNeutral = stateNeutralEventClasses.contains(message.getClass());
317322
if (!isStateNeutral) {
318323
apply(message);
319324
}
325+
//TODO:2016-03-24:alexander.yevsyukov: increment version
326+
320327
final int currentVersion = getVersion();
321328
final M state = getState();
322329
final EventContext eventContext = createEventContext(commandContext, state, whenModified(), currentVersion, message);
323330
final Event event = Events.createEvent(message, eventContext);
324331
putUncommitted(event);
325332
}
333+
334+
//TODO:2016-03-24:alexander.yevsyukov: set new date/time
335+
336+
//TODO:2016-03-24:alexander.yevsyukov: set new state
337+
//TODO:2016-03-24:alexander.yevsyukov: Clean builder.
326338
}
327339

328340
/**
@@ -331,16 +343,16 @@ private void apply(Iterable<? extends Message> messages, CommandContext commandC
331343
* <p>If the event is {@link Snapshot} its state is copied. Otherwise, the event
332344
* is dispatched to corresponding applier method.
333345
*
334-
* @param event the event to apply
346+
* @param eventMessage the event to apply
335347
* @throws MissingEventApplierException if there is no applier method defined for this type of event
336348
* @throws InvocationTargetException if an exception occurred when calling event applier
337349
*/
338-
private void apply(Message event) throws InvocationTargetException {
339-
if (event instanceof Snapshot) {
340-
restore((Snapshot) event);
350+
private void apply(Message eventMessage) throws InvocationTargetException {
351+
if (eventMessage instanceof Snapshot) {
352+
restore((Snapshot) eventMessage);
341353
return;
342354
}
343-
invokeApplier(event);
355+
invokeApplier(eventMessage);
344356
}
345357

346358
/**

0 commit comments

Comments
 (0)