/** * Aggregate by adding a new InvocationSequenceData. * * @param invocationSequenceData * InvocationSequenceData to be added to the aggregation */ public void aggregate(InvocationSequenceData invocationSequenceData) { TimerData timerData = null; switch (sourceType) { case DATABASE: timerData = invocationSequenceData.getSqlStatementData(); break; case HTTP: case TIMERDATA: timerData = invocationSequenceData.getTimerData(); break; default: throw new IllegalStateException("Source type unknown."); } // aggregate the timer data if (aggregatedDiagnosisTimerData == null) { aggregatedDiagnosisTimerData = new AggregatedDiagnosisTimerData(timerData); } else { aggregatedDiagnosisTimerData.aggregate(timerData); } // save involved invocation rawInvocationsSequenceElements.add(invocationSequenceData); }