public boolean mediate(MessageContext synCtx, ContinuationState contState) { SynapseLog synLog = getLog(synCtx); if (synLog.isTraceOrDebugEnabled()) { synLog.traceOrDebug("Aggregate mediator : Mediating from ContinuationState"); } boolean result; SequenceMediator onCompleteSequence = getOnCompleteSequence(); RuntimeStatisticCollector.openLogForContinuation( synCtx, onCompleteSequence.getSequenceNameForStatistics(synCtx)); if (!contState.hasChild()) { result = onCompleteSequence.mediate(synCtx, contState.getPosition() + 1); } else { FlowContinuableMediator mediator = (FlowContinuableMediator) onCompleteSequence.getChild(contState.getPosition()); RuntimeStatisticCollector.openLogForContinuation( synCtx, ((Mediator) mediator).getMediatorName()); result = mediator.mediate(synCtx, contState.getChildContState()); ((Mediator) mediator).reportStatistic(synCtx, null, false); } onCompleteSequence.reportStatistic(synCtx, null, false); return result; }