private void initActiveIfRequired() { if (actual == null && !historic.hasNext()) { actual = domainEventStream.apply(aggregateIdentifier, nextSequenceNumber()); } }
@Override public boolean hasNext() { initActiveIfRequired(); if (actual == null) { return historic.hasNext(); } return actual.hasNext(); }
@Override public DomainEventStream readEvents(String aggregateIdentifier, long firstSequenceNumber) { DomainEventStream historic = historicStorage.readEvents(aggregateIdentifier, firstSequenceNumber); return new ConcatenatingDomainEventStream(historic, aggregateIdentifier, (id, seq) -> activeStorage.readEvents(aggregateIdentifier, seq)); }
@Override public Long getLastSequenceNumber() { initActiveIfRequired(); if (actual == null) { return historic.getLastSequenceNumber(); } else { return actual.getLastSequenceNumber(); } } }
@Override public boolean hasNext() { initActiveIfRequired(); if (actual == null) { return historic.hasNext(); } return actual.hasNext(); }
@Override public Long getLastSequenceNumber() { initActiveIfRequired(); if (actual == null) { return historic.getLastSequenceNumber(); } else { return actual.getLastSequenceNumber(); } } }
@Override public DomainEventStream readEvents(String aggregateIdentifier, long firstSequenceNumber) { DomainEventStream historic = historicStorage.readEvents(aggregateIdentifier, firstSequenceNumber); return new ConcatenatingDomainEventStream(historic, aggregateIdentifier, (id, seq) -> activeStorage.readEvents(aggregateIdentifier, seq)); }
@Override public DomainEventMessage<?> peek() { initActiveIfRequired(); if (actual == null) { return historic.peek(); } else { return actual.peek(); } }
@Override public DomainEventMessage<?> peek() { initActiveIfRequired(); if (actual == null) { return historic.peek(); } else { return actual.peek(); } }
@Override public DomainEventMessage<?> next() { initActiveIfRequired(); if (actual == null) { return historic.next(); } else { return actual.next(); } }
private void initActiveIfRequired() { if (actual == null && !historic.hasNext()) { actual = domainEventStream.apply(aggregateIdentifier, nextSequenceNumber()); } }
private void initActiveIfRequired() { if (actual == null && !historic.hasNext()) { actual = domainEventStream.apply(aggregateIdentifier, nextSequenceNumber()); } }
@Override public DomainEventMessage<?> next() { initActiveIfRequired(); if (actual == null) { return historic.next(); } else { return actual.next(); } }
@Override public DomainEventMessage<?> next() { initActiveIfRequired(); if (actual == null) { return historic.next(); } else { return actual.next(); } }
@Override public DomainEventStream readEvents(String aggregateIdentifier, long firstSequenceNumber) { DomainEventStream historic = historicStorage.readEvents(aggregateIdentifier, firstSequenceNumber); return new ConcatenatingDomainEventStream(historic, aggregateIdentifier, (id, seq) -> activeStorage.readEvents(aggregateIdentifier, seq)); }
@Override public Long getLastSequenceNumber() { initActiveIfRequired(); if (actual == null) { return historic.getLastSequenceNumber(); } else { return actual.getLastSequenceNumber(); } } }
@Override public boolean hasNext() { initActiveIfRequired(); if (actual == null) { return historic.hasNext(); } return actual.hasNext(); }
@Override public DomainEventMessage<?> peek() { initActiveIfRequired(); if (actual == null) { return historic.peek(); } else { return actual.peek(); } }