@Override public void receive( DomainEventValue item ) throws T { for( Map.Entry<Specification<DomainEventValue>, Receiver<DomainEventValue, T>> specificationReceiverEntry : routeEvent.entrySet() ) { if( specificationReceiverEntry.getKey().satisfiedBy( item ) ) { specificationReceiverEntry.getValue().receive( item ); return; } } // No match, use default defaultReceiver.receive( item ); } } );
@Override public void receive( UnitOfWorkDomainEventsValue item ) throws T { for( Map.Entry<Specification<UnitOfWorkDomainEventsValue>, Receiver<UnitOfWorkDomainEventsValue, T>> specificationReceiverEntry : routes.entrySet() ) { if (specificationReceiverEntry.getKey().satisfiedBy( item )) { specificationReceiverEntry.getValue().receive( item ); return; } } // No match, use default defaultReceiver.receive( item ); } });
@Override public <ReceiverThrowableType extends Throwable> void sendTo( Receiver<? super DomainEventValue, ReceiverThrowableType> receiver ) throws ReceiverThrowableType, T { for( DomainEventValue domainEventValue : item.events().get() ) { receiver.receive( domainEventValue ); } } } );