diff tool on uml diff

This commit is contained in:
Konstantin Bulenkov
2010-02-11 23:06:59 +03:00
parent 363ba85347
commit 7bfa5536f9
2 changed files with 8 additions and 4 deletions
@@ -37,4 +37,8 @@ public class PsiFilter<T extends PsiElement> {
public final Class<T> getParentClass() {
return filter;
}
public boolean areEquivalent(T e1, T e2) {
return e1.isEquivalentTo(e2);
}
}
@@ -65,7 +65,7 @@ public class PsiChangeTracker {
if (file == null) {
oldFile.accept(new MyVisitor<T>(filter, oldElements));
calculateStatuses(elements, oldElements, result);
calculateStatuses(elements, oldElements, result, filter);
return result;
}
@@ -89,18 +89,18 @@ public class PsiChangeTracker {
if (oldFile == null) return result;
oldFile.accept(new MyVisitor<T>(filter, oldElements));
calculateStatuses(elements, oldElements, result);
calculateStatuses(elements, oldElements, result, filter);
return result;
}
private static <T extends PsiElement> Map<T, FileStatus> calculateStatuses(List<T> elements,
List<T> oldElements,
Map<T, FileStatus> result) {
Map<T, FileStatus> result, PsiFilter<T> filter) {
for (T element : elements) {
T e = null;
for (T oldElement : oldElements) {
if (element.isEquivalentTo(oldElement)) {
if (filter.areEquivalent(element, oldElement)) {
e = oldElement;
break;
}