in base/src/main/java/org/apache/commons/chain2/base/DispatchLookupCommand.java [142:170]
public Processing execute(C context) {
if (this.getMethod() == null && this.getMethodKey() == null) {
throw new IllegalStateException("Neither 'method' nor 'methodKey' properties are defined");
}
Command<K, V, C> command = getCommand(context);
if (command != null) {
try {
Method methodObject = extractMethod(command, context);
Object obj = methodObject.invoke(command, getArguments(context));
if(obj instanceof Processing) {
Processing result = (Processing) obj;
return result;
} else {
return Processing.CONTINUE;
}
} catch (NoSuchMethodException e) {
throw new DispatchException("Error extracting method from context", e, context, this);
} catch (IllegalAccessException e) {
throw new DispatchException("Error accessing method", e, context, this);
} catch (InvocationTargetException e) {
Throwable cause = e.getTargetException();
throw new DispatchException("Error in reflected dispatched command", cause, context, this);
}
}
return Processing.CONTINUE;
}