xbean-blueprint/src/main/java/org/apache/xbean/blueprint/generator/QdoxMappingLoader.java [495:565]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    private static String toMethodLocator(JavaMethod method) {
        StringBuffer buf = new StringBuffer();
        buf.append(method.getParentClass().getFullyQualifiedName());
        if (!method.isConstructor()) {
            buf.append(".").append(method.getName());
        }
        buf.append("(");
        JavaParameter[] parameters = method.getParameters();
        for (int i = 0; i < parameters.length; i++) {
            JavaParameter parameter = parameters[i];
            if (i > 0) {
                buf.append(", ");
            }
            buf.append(parameter.getName());
        }
        buf.append(") : ").append(method.getLineNumber());
        return buf.toString();
    }

    private static void getSourceFiles(File base, String[] excludedClasses, JavaDocBuilder builder) throws IOException {
        if (base.isDirectory()) {
            listAllFileNames(base, "", excludedClasses, builder);
        } else {
            listAllJarEntries(base, excludedClasses, builder);
        }
    }

    private static void listAllFileNames(File base, String prefix, String[] excludedClasses, JavaDocBuilder builder) throws IOException {
        if (!base.canRead() || !base.isDirectory()) {
            throw new IllegalArgumentException(base.getAbsolutePath());
        }
        File[] hits = base.listFiles();
        for (File hit : hits) {
            String name = prefix.equals("") ? hit.getName() : prefix + "/" + hit.getName();
            if (hit.canRead() && !isExcluded(name, excludedClasses)) {
                if (hit.isDirectory()) {
                    listAllFileNames(hit, name, excludedClasses, builder);
                } else if (name.endsWith(".java")) {
                    builder.addSource(hit);
                }
            }
        }
    }

    private static void listAllJarEntries(File base, String[] excludedClasses, JavaDocBuilder builder) throws IOException {
        JarFile jarFile = new JarFile(base);
        for (Enumeration entries = jarFile.entries(); entries.hasMoreElements(); ) {
            JarEntry entry = (JarEntry) entries.nextElement();
            String name = entry.getName();
            if (name.endsWith(".java") && !isExcluded(name, excludedClasses) && !name.endsWith("/package-info.java")) {
                builder.addSource(new URL("jar:" + base.toURI().toURL().toString() + "!/" + name));
            }
        }
    }

    private static boolean isExcluded(String sourceName, String[] excludedClasses) {
        if (excludedClasses == null) {
            return false;
        }

        String className = sourceName;
        if (sourceName.endsWith(".java")) {
            className = className.substring(0, className.length() - ".java".length());
        }
        className = className.replace('/', '.');
        for (String excludedClass : excludedClasses) {
            if (className.equals(excludedClass)) {
                return true;
            }
        }
        return false;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



xbean-spring/src/main/java/org/apache/xbean/spring/generator/QdoxMappingLoader.java [495:565]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    private static String toMethodLocator(JavaMethod method) {
        StringBuffer buf = new StringBuffer();
        buf.append(method.getParentClass().getFullyQualifiedName());
        if (!method.isConstructor()) {
            buf.append(".").append(method.getName());
        }
        buf.append("(");
        JavaParameter[] parameters = method.getParameters();
        for (int i = 0; i < parameters.length; i++) {
            JavaParameter parameter = parameters[i];
            if (i > 0) {
                buf.append(", ");
            }
            buf.append(parameter.getName());
        }
        buf.append(") : ").append(method.getLineNumber());
        return buf.toString();
    }

    private static void getSourceFiles(File base, String[] excludedClasses, JavaDocBuilder builder) throws IOException {
        if (base.isDirectory()) {
            listAllFileNames(base, "", excludedClasses, builder);
        } else {
            listAllJarEntries(base, excludedClasses, builder);
        }
    }

    private static void listAllFileNames(File base, String prefix, String[] excludedClasses, JavaDocBuilder builder) throws IOException {
        if (!base.canRead() || !base.isDirectory()) {
            throw new IllegalArgumentException(base.getAbsolutePath());
        }
        File[] hits = base.listFiles();
        for (File hit : hits) {
            String name = prefix.equals("") ? hit.getName() : prefix + "/" + hit.getName();
            if (hit.canRead() && !isExcluded(name, excludedClasses)) {
                if (hit.isDirectory()) {
                    listAllFileNames(hit, name, excludedClasses, builder);
                } else if (name.endsWith(".java")) {
                    builder.addSource(hit);
                }
            }
        }
    }

    private static void listAllJarEntries(File base, String[] excludedClasses, JavaDocBuilder builder) throws IOException {
        JarFile jarFile = new JarFile(base);
        for (Enumeration entries = jarFile.entries(); entries.hasMoreElements(); ) {
            JarEntry entry = (JarEntry) entries.nextElement();
            String name = entry.getName();
            if (name.endsWith(".java") && !isExcluded(name, excludedClasses) && !name.endsWith("/package-info.java")) {
                builder.addSource(new URL("jar:" + base.toURI().toURL().toString() + "!/" + name));
            }
        }
    }

    private static boolean isExcluded(String sourceName, String[] excludedClasses) {
        if (excludedClasses == null) {
            return false;
        }

        String className = sourceName;
        if (sourceName.endsWith(".java")) {
            className = className.substring(0, className.length() - ".java".length());
        }
        className = className.replace('/', '.');
        for (String excludedClass : excludedClasses) {
            if (className.equals(excludedClass)) {
                return true;
            }
        }
        return false;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



