package com.sequenceiq.cloudbreak.core.flow2.service;
import javax.inject.Inject;
import org.springframework.stereotype.Service;
import reactor.bus.Event;
/**
* Event factory that registers an error handler into the event.
*/
@Service
public class ErrorHandlerAwareFlowEventFactory implements FlowEventFactory<Object> {
@Inject
private CloudbreakErrorHandler errorHandler;
@Override
public Event<Object> createEvent(Object payLoad, String eventKey) {
return createEvent(null, payLoad);
}
public Event<Object> createEvent(Event.Headers headers, Object payLoad) {
return new Event<>(headers, payLoad, errorHandler);
}
@Override
public <P> Event<P> createEvent(P payLoad) {
return new Event<>(null, payLoad, errorHandler);
}
}