private void scan()

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());
            }
        });
    }