public void taskFinished()

in src/org/jetbrains/ether/dependencyView/AntListener.java [140:222]


    public void taskFinished(BuildEvent event) {
        if (event.getTask().getTaskName().equals("javac")) {
            for (Map.Entry<String, List<ClassFileInfo>> e : writtenFiles.entrySet()) {
                final String className = e.getKey();

                final List<ClassFileInfo> infos = e.getValue();
                final List<String> read = readFiles.get(className);

                if (infos.size() == 1 && read != null && read.size() == 1) {
                    infos.get(0).associate(Callbacks.getDefaultLookup(read.get(0)));
                    continue;
                }

                process:
                for (ClassFileInfo c : infos) {
                    final String packageName = c.getPackageName();

                    final Callbacks.SourceFileNameLookup sourceNameLookup = new Callbacks.SourceFileNameLookup() {
                        public String get(final String sourceAttribute) {

                            assert (sourceAttribute != null);

                            final String className = basename(sourceAttribute, ".java");
                            final List<String> candidates = readFiles.get(className);

                            assert (candidates != null);

                            if (candidates.size() == 1) {
                                return candidates.get(0);
                            }

                            for (String r : candidates) {
                                if (new PackageNameSelector().get(r).equals(packageName)) {
                                    return r;
                                }
                            }

                            assert (false);

                            return null;
                        }
                    };

                    c.associate(sourceNameLookup);
                }
            }

            /*
            System.out.println("Written files info:");

            for (Map.Entry<String, List<ClassFileInfo>> e : writtenFiles.entrySet()) {
                final String className = e.getKey();
                final List<ClassFileInfo> infos = e.getValue();

                System.out.println("  Class name: " + className);
                System.out.println("  Class file info(s): ");

                for (ClassFileInfo c : infos) {
                    System.out.println(c.toString());
                }
            }

            System.out.println("End.");

            System.out.println("Read files info:");

            for (Map.Entry<String, List<String>> e : readFiles.entrySet()) {
                final String className = e.getKey();
                final List<String> files = e.getValue();

                System.out.println("  Class name: " + className);
                System.out.print("  Files:");

                for (String file : files) {
                    System.out.print(" " + file);
                }

                System.out.println(".");
            }
            System.out.println("End.");
            */
        }
    }