private void checkCondition(AbstractDispatchEvent event) {
Activity<?> condition = getCondition();
if (condition == null) {
super.receiveError(new DispatchErrorEvent(event.getOwningProcess(),
event.getIndex(), event.getContext(),
"Can't invoke condition service: null", null,
DispatchErrorType.INVOCATION, condition));
return;
}
if (!(condition instanceof AbstractAsynchronousActivity)) {
DispatchErrorEvent errorEvent = new DispatchErrorEvent(
event.getOwningProcess(),
event.getIndex(),
event.getContext(),
"Can't invoke condition service "
+ condition
+ " is not an instance of AbstractAsynchronousActivity",
null, DispatchErrorType.INVOCATION, condition);
super.receiveError(errorEvent);
return;
}
AbstractAsynchronousActivity asyncCondition = (AbstractAsynchronousActivity) condition;
String jobIdentifier = jobIdentifier(event);
Map<String, T2Reference> inputs = prepareInputs(asyncCondition,
jobIdentifier);
AsynchronousActivityCallback callback = new ConditionCallBack(
jobIdentifier);
asyncCondition.executeAsynch(inputs, callback);
}