public void messageLogged()

in src/org/jetbrains/ether/dependencyView/AntListener.java [231:303]


    public void messageLogged(BuildEvent event) {
        final String m = event.getMessage();
        final Matcher writtenMatcher = written.matcher(m);
        final Matcher readMatcher = read.matcher(m);

        if (writtenMatcher.matches()) {
            final String fullName = writtenMatcher.group(1);
            final File file = new File(fullName);

            final String classFileName = file.getName();
            final String packageName = extractPackage(fullName.substring(0, fullName.length() - classFileName.length() - 1));

            String className = basename(classFileName, ".class");
            boolean subClass = false;

            final int i = className.indexOf('$');

            if (i >= 0) {
                className = className.substring(0, i);
                subClass = true;
            }

            List<ClassFileInfo> info = writtenFiles.get(className);


            if (info == null) {
                info = new LinkedList<ClassFileInfo>();
                writtenFiles.put(className, info);
            }

            boolean updated = false;

            for (ClassFileInfo ci : info) {
                if (subClass) {
                    if (ci.getPackageName().equals(packageName)) {
                        ci.attachSubClass(fullName);
                        updated = true;
                    }
                } else {
                    if (ci.getFullName().equals(fullName)) {
                        updated = true;
                        break;
                    }
                }
            }

            if (!updated) {
                if (subClass) {
                    final ClassFileInfo c = new ClassFileInfo(targetFolder + File.separator + packageName + File.separator + className + ".class", packageName);
                    c.attachSubClass(fullName);
                    info.add(c);
                } else {
                    info.add(new ClassFileInfo(fullName, packageName));
                }
            }
        }

        if (readMatcher.matches()) {
            final String fullName = readMatcher.group(1);
            final File file = new File(fullName);
            final String sourceFileName = file.getName();
            final String className = basename(sourceFileName, ".java");

            List<String> files = readFiles.get(className);

            if (files == null) {
                files = new LinkedList<String>();
                readFiles.put(className, files);
            }

            files.add(fullName);
        }
    }