public static class QueryCompletedTransition implements MultipleArcTransition<Query, QueryEvent, QueryState> {
@Override
public QueryState transition(Query query, QueryEvent queryEvent) {
QueryCompletedEvent subQueryEvent = (QueryCompletedEvent) queryEvent;
QueryState finalState;
if (subQueryEvent.getState() == SubQueryState.SUCCEEDED) {
finalizeQuery(query, subQueryEvent);
finalState = QueryState.QUERY_SUCCEEDED;
} else if (subQueryEvent.getState() == SubQueryState.FAILED) {
finalState = QueryState.QUERY_FAILED;