70 lines
1.8 KiB
Java
70 lines
1.8 KiB
Java
package org.gcube.event.publisher;
|
|
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
public abstract class AbstractEventPublisher implements EventPublisher {
|
|
|
|
protected static final Logger logger = LoggerFactory.getLogger(AbstractEventPublisher.class);
|
|
|
|
private EventSender eventSender;
|
|
private ResultsParser resultsParser;
|
|
|
|
public AbstractEventPublisher() {
|
|
this.eventSender = createEventSender();
|
|
this.resultsParser = createResultsParser();
|
|
}
|
|
|
|
@Override
|
|
public void publish(Event event) {
|
|
publish(event, false);
|
|
}
|
|
|
|
@Override
|
|
public String publish(Event event, boolean waitForResult) {
|
|
if (event != null) {
|
|
if (waitForResult) {
|
|
return getEventSender().sendAndGetResult(event);
|
|
} else {
|
|
getEventSender().send(event);
|
|
}
|
|
} else {
|
|
logger.warn("Cannot publish a null event");
|
|
}
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public EventStatus check(String instanceId) {
|
|
if (instanceId != null) {
|
|
return getResultsParser().parseResults(eventSender.retrive(instanceId));
|
|
} else {
|
|
logger.warn("Cannot check with a null instance ID");
|
|
return EventStatus.NOT_FOUND();
|
|
}
|
|
}
|
|
|
|
protected abstract EventSender createEventSender();
|
|
|
|
protected ResultsParser createResultsParser() {
|
|
return new ConductorResultsParser();
|
|
}
|
|
|
|
public EventSender getEventSender() {
|
|
return eventSender;
|
|
}
|
|
|
|
public void setEventSender(EventSender eventSender) {
|
|
this.eventSender = eventSender;
|
|
}
|
|
|
|
public ResultsParser getResultsParser() {
|
|
return resultsParser;
|
|
}
|
|
|
|
public void setResultsParser(ResultsParser resultsParser) {
|
|
this.resultsParser = resultsParser;
|
|
}
|
|
|
|
}
|