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