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.");
*/
}
}