in src/org/pushingpixels/lightbeam/DynamicPerformanceSuite.java [533:557]
private void scan(String title, Component comp) {
Class<?> compClass = comp.getClass();
List<PerformanceScenario> scenarioList = new LinkedList<PerformanceScenario>();
ComponentInfo componentInfo = new ComponentInfo(comp, scenarioList);
scenarios.put(title, componentInfo);
for (Method m : compClass.getDeclaredMethods()) {
// check annotation
if (m.getAnnotation(PerformanceScenarioParticipant.class) != null) {
// check return type and parameters
if ((m.getReturnType() == PerformanceScenario.class)
&& (m.getParameterTypes().length == 0)) {
try {
PerformanceScenario scenario = (PerformanceScenario) m.invoke(comp);
componentInfo.scenarios.add(scenario);
} catch (Exception exc) {
}
}
}
}
componentInfo.scenarios.sort(new Comparator<PerformanceScenario>() {
public int compare(PerformanceScenario o1, PerformanceScenario o2) {
return o1.getName().compareTo(o2.getName());
}
});
}