From 7bfa5536f911f08c53e289eb7d06475319f002ea Mon Sep 17 00:00:00 2001 From: Konstantin Bulenkov Date: Thu, 11 Feb 2010 23:06:59 +0300 Subject: [PATCH] diff tool on uml diff --- .../lang-api/src/com/intellij/psi/util/PsiFilter.java | 4 ++++ .../intellij/openapi/vcs/changes/PsiChangeTracker.java | 8 ++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/platform/lang-api/src/com/intellij/psi/util/PsiFilter.java b/platform/lang-api/src/com/intellij/psi/util/PsiFilter.java index 0d0bd3f9d379..3a8d5034f50d 100644 --- a/platform/lang-api/src/com/intellij/psi/util/PsiFilter.java +++ b/platform/lang-api/src/com/intellij/psi/util/PsiFilter.java @@ -37,4 +37,8 @@ public class PsiFilter { public final Class getParentClass() { return filter; } + + public boolean areEquivalent(T e1, T e2) { + return e1.isEquivalentTo(e2); + } } diff --git a/platform/lang-impl/src/com/intellij/openapi/vcs/changes/PsiChangeTracker.java b/platform/lang-impl/src/com/intellij/openapi/vcs/changes/PsiChangeTracker.java index 58a53577d841..016c27062dbb 100644 --- a/platform/lang-impl/src/com/intellij/openapi/vcs/changes/PsiChangeTracker.java +++ b/platform/lang-impl/src/com/intellij/openapi/vcs/changes/PsiChangeTracker.java @@ -65,7 +65,7 @@ public class PsiChangeTracker { if (file == null) { oldFile.accept(new MyVisitor(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(filter, oldElements)); - calculateStatuses(elements, oldElements, result); + calculateStatuses(elements, oldElements, result, filter); return result; } private static Map calculateStatuses(List elements, List oldElements, - Map result) { + Map result, PsiFilter filter) { for (T element : elements) { T e = null; for (T oldElement : oldElements) { - if (element.isEquivalentTo(oldElement)) { + if (filter.areEquivalent(element, oldElement)) { e = oldElement; break; }