protected ProcessTraceEvent getEvent(List<ProcessTraceEvent> aEvents, String aComponentName, String aType) { Iterator<ProcessTraceEvent> it = aEvents.iterator(); while (it.hasNext()) { ProcessTraceEvent event = it.next(); if (aComponentName.equals(event.getComponentName()) && aType.equals(event.getType())) { return event; } else { ProcessTraceEvent matchingSubEvt = getEvent(event.getSubEvents(), aComponentName, aType); if (matchingSubEvt != null) { return matchingSubEvt; } } } return null; }
/** * Utility method used by getEventsByComponentName(String) * * @param aEvent - * @param aComponentName - * @param aRecurseAfterMatch - * @param aResultList - */ protected void getEventsByComponentName(ProcessTraceEvent aEvent, String aComponentName, boolean aRecurseAfterMatch, List<ProcessTraceEvent> aResultList) { if (aComponentName.equals(aEvent.getComponentName())) { aResultList.add(aEvent); if (!aRecurseAfterMatch) { return; } } // recurse into child events for (ProcessTraceEvent event : aEvent.getSubEvents()) { getEventsByComponentName(event, aComponentName, aRecurseAfterMatch, aResultList); } }
/** * Utility method used by getEventsByType(String) * * @param aEvent - * @param aType - * @param aRecurseAfterMatch - * @param aResultList - */ protected void getEventsByType(ProcessTraceEvent aEvent, String aType, boolean aRecurseAfterMatch, List<ProcessTraceEvent> aResultList) { if (aType.equals(aEvent.getType())) { aResultList.add(aEvent); if (!aRecurseAfterMatch) { return; } } // recurse into child events for (ProcessTraceEvent event : aEvent.getSubEvents()) { getEventsByType(event, aType, aRecurseAfterMatch, aResultList); } }
/** * Returns the total duration of a given event. * * @param aPT - * Event container * @param eventName - * name of the event for which the time is needed * @return - total duration of an event */ public synchronized static long extractTime(ProcessTrace aPT, String eventName) { List aList = aPT.getEvents(); int counter = 0; while (aList != null && aList.size() > 0 && counter < aList.size()) { ProcessTraceEvent pte = (ProcessTraceEvent) aList.get(counter++); if (pte == null) { return 0; } else if (eventName == null || eventName.equals(pte.getDescription())) { return pte.getDurationExcludingSubEvents(); } else { List subEvents = pte.getSubEvents(); for (int i = 0; subEvents != null && i < subEvents.size(); i++) { if (eventName.equals(((ProcessTraceEvent) subEvents.get(i)).getType())) { return ((ProcessTraceEvent) subEvents.get(i)).getDurationExcludingSubEvents(); } } } } return 0; }
List<ProcessTraceEvent> subEvents = aEvent.getSubEvents(); Iterator<ProcessTraceEvent> it = subEvents.iterator(); whileLoop: while (it.hasNext()) {
+ aEvent.getComponentName() + " (" + type + ")"); aParentNode.add(node); Iterator it = aEvent.getSubEvents().iterator(); while (it.hasNext()) { ProcessTraceEvent event = (ProcessTraceEvent) it.next();
/** * Helper method to help build the CPM report. * * @param aEvent the a event * @param aTotalTime the a total time */ public void buildEventTree(ProcessTraceEvent aEvent, int aTotalTime) { // Skip reporting the CPM time.This time has already been acquired by summing up // times from all individual components if ("CPM".equals(aEvent.getComponentName())) { return; } int duration = aEvent.getDuration(); float pct = (float) ((duration * 100 * 10) / aTotalTime) / 10; String type = (String) mEventTypeMap.get(aEvent.getType()); if (type == null) { type = aEvent.getType(); } if (System.getProperty("DEBUG") != null) UIMAFramework.getLogger(this.getClass()).log( Level.FINEST, "" + pct + "% (" + duration + "ms) - " + aEvent.getComponentName() + " (" + type + ")"); Iterator it = aEvent.getSubEvents().iterator(); while (it.hasNext()) { ProcessTraceEvent event = (ProcessTraceEvent) it.next(); buildEventTree(event, aTotalTime); } }
for (ProcessTraceEvent subEvt : aEvent.getSubEvents()) { addEventData(subEvt);
dur = prEvent.getDurationExcludingSubEvents(); totDur = prEvent.getDuration(); subEveList = prEvent.getSubEvents(); if (UIMAFramework.getLogger().isLoggable(Level.FINEST)) { UIMAFramework.getLogger(Checkpoint.class).log(