Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.emf.compare/src/org/eclipse/emf')
-rw-r--r--plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/EMFCompare.java4
-rw-r--r--plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/extension/IPostProcessor.java17
-rw-r--r--plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/internal/spec/MatchSpec.java2
-rw-r--r--plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/match/DefaultEqualityHelperFactory.java4
-rw-r--r--plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/match/eobject/ByTypeIndex.java4
-rw-r--r--plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/match/eobject/EditionDistance.java4
-rw-r--r--plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/match/eobject/URIDistance.java6
-rw-r--r--plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/utils/EqualityHelper.java7
8 files changed, 35 insertions, 13 deletions
diff --git a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/EMFCompare.java b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/EMFCompare.java
index 67eff7801..db03a30b1 100644
--- a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/EMFCompare.java
+++ b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/EMFCompare.java
@@ -207,6 +207,10 @@ public class EMFCompare {
}
}
+ for (IPostProcessor iPostProcessor : postProcessors) {
+ iPostProcessor.postComparison(comparison, monitor);
+ }
+
return comparison;
}
diff --git a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/extension/IPostProcessor.java b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/extension/IPostProcessor.java
index 0d0309966..9ef25d788 100644
--- a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/extension/IPostProcessor.java
+++ b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/extension/IPostProcessor.java
@@ -29,6 +29,7 @@ public interface IPostProcessor {
* The comparison after the match step.
* @param monitor
* The monitor to report progress or to check for cancellation
+ * @since 3.0
*/
void postMatch(Comparison comparison, Monitor monitor);
@@ -40,6 +41,7 @@ public interface IPostProcessor {
* The comparison after the difference step.
* @param monitor
* The monitor to report progress or to check for cancellation
+ * @since 3.0
*/
void postDiff(Comparison comparison, Monitor monitor);
@@ -51,6 +53,7 @@ public interface IPostProcessor {
* The comparison after the requirements step.
* @param monitor
* The monitor to report progress or to check for cancellation
+ * @since 3.0
*/
void postRequirements(Comparison comparison, Monitor monitor);
@@ -62,6 +65,7 @@ public interface IPostProcessor {
* The comparison after the equivalences step.
* @param monitor
* The monitor to report progress or to check for cancellation
+ * @since 3.0
*/
void postEquivalences(Comparison comparison, Monitor monitor);
@@ -73,7 +77,20 @@ public interface IPostProcessor {
* The comparison after the conflicts step.
* @param monitor
* The monitor to report progress or to check for cancellation
+ * @since 3.0
*/
void postConflicts(Comparison comparison, Monitor monitor);
+ /**
+ * This will be called by EMF Compare in order to execute the specified behavior after a comparison, from
+ * a <code>comparison</code>.
+ *
+ * @param comparison
+ * The comparison after the all steps.
+ * @param monitor
+ * The monitor to report progress or to check for cancellation
+ * @since 3.0
+ */
+ void postComparison(Comparison comparison, Monitor monitor);
+
}
diff --git a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/internal/spec/MatchSpec.java b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/internal/spec/MatchSpec.java
index de955baea..9fcde8d5b 100644
--- a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/internal/spec/MatchSpec.java
+++ b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/internal/spec/MatchSpec.java
@@ -105,7 +105,7 @@ public class MatchSpec extends MatchImpl {
*
* @see org.eclipse.emf.ecore.impl.BasicEObjectImpl#toString()
*/
- @SuppressWarnings({"boxing", "nls" })
+ @SuppressWarnings("nls")
@Override
public String toString() {
// @formatter:off
diff --git a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/match/DefaultEqualityHelperFactory.java b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/match/DefaultEqualityHelperFactory.java
index bdf897c5b..1d86178d6 100644
--- a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/match/DefaultEqualityHelperFactory.java
+++ b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/match/DefaultEqualityHelperFactory.java
@@ -10,8 +10,8 @@
*******************************************************************************/
package org.eclipse.emf.compare.match;
-import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
+import com.google.common.cache.LoadingCache;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.compare.utils.EqualityHelper;
@@ -50,7 +50,7 @@ public class DefaultEqualityHelperFactory implements IEqualityHelperFactory {
* @see org.eclipse.emf.compare.match.IEqualityHelperFactory#createEqualityHelper()
*/
public IEqualityHelper createEqualityHelper() {
- Cache<EObject, URI> cache = EqualityHelper.createDefaultCache(getCacheBuilder());
+ LoadingCache<EObject, URI> cache = EqualityHelper.createDefaultCache(getCacheBuilder());
IEqualityHelper equalityHelper = new EqualityHelper(cache);
return equalityHelper;
}
diff --git a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/match/eobject/ByTypeIndex.java b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/match/eobject/ByTypeIndex.java
index a9114072d..32237ea77 100644
--- a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/match/eobject/ByTypeIndex.java
+++ b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/match/eobject/ByTypeIndex.java
@@ -11,9 +11,9 @@
package org.eclipse.emf.compare.match.eobject;
import com.google.common.base.Function;
-import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
+import com.google.common.cache.LoadingCache;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
@@ -37,7 +37,7 @@ class ByTypeIndex implements EObjectIndex {
/**
* All the type specific indexes, created on demand.
*/
- private Cache<String, EObjectIndex> allIndexes;
+ private LoadingCache<String, EObjectIndex> allIndexes;
/**
* The distance function to use to create the delegates indexes.
diff --git a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/match/eobject/EditionDistance.java b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/match/eobject/EditionDistance.java
index 8587631e5..4aa9fdcc2 100644
--- a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/match/eobject/EditionDistance.java
+++ b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/match/eobject/EditionDistance.java
@@ -11,7 +11,7 @@
package org.eclipse.emf.compare.match.eobject;
import com.google.common.base.Predicate;
-import com.google.common.cache.Cache;
+import com.google.common.cache.LoadingCache;
import com.google.common.collect.Iterables;
import com.google.common.collect.Iterators;
import com.google.common.collect.Sets;
@@ -96,7 +96,7 @@ public class EditionDistance implements DistanceFunction {
IEqualityHelperFactory fakeEqualityHelperFactory = new DefaultEqualityHelperFactory() {
@Override
public IEqualityHelper createEqualityHelper() {
- final Cache<EObject, URI> cache = EqualityHelper.createDefaultCache(getCacheBuilder());
+ final LoadingCache<EObject, URI> cache = EqualityHelper.createDefaultCache(getCacheBuilder());
return new EqualityHelper(cache) {
@Override
protected boolean matchingURIs(EObject object1, EObject object2) {
diff --git a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/match/eobject/URIDistance.java b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/match/eobject/URIDistance.java
index d5c4c0ef4..30f6c6b59 100644
--- a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/match/eobject/URIDistance.java
+++ b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/match/eobject/URIDistance.java
@@ -12,9 +12,9 @@ package org.eclipse.emf.compare.match.eobject;
import com.google.common.base.Function;
import com.google.common.base.Optional;
-import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
+import com.google.common.cache.LoadingCache;
import com.google.common.collect.Iterables;
import com.google.common.collect.Iterators;
import com.google.common.collect.Lists;
@@ -40,12 +40,12 @@ public class URIDistance implements Function<EObject, Iterable<String>> {
/**
* A computing cache for the locations.
*/
- private Cache<EObject, Iterable<String>> locationCache;
+ private LoadingCache<EObject, Iterable<String>> locationCache;
/**
* A computing cache for the uri fragments.
*/
- private Cache<EObject, String> fragmentsCache;
+ private LoadingCache<EObject, String> fragmentsCache;
/**
* An optional comparison to retrieve matches already computed. This will impact the way the uri is
diff --git a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/utils/EqualityHelper.java b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/utils/EqualityHelper.java
index fa3b67675..5efeb2ef4 100644
--- a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/utils/EqualityHelper.java
+++ b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/utils/EqualityHelper.java
@@ -14,6 +14,7 @@ import com.google.common.base.Function;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
+import com.google.common.cache.LoadingCache;
import java.lang.reflect.Array;
import java.util.concurrent.ExecutionException;
@@ -35,7 +36,7 @@ import org.eclipse.emf.ecore.util.FeatureMap;
*/
public class EqualityHelper extends AdapterImpl implements IEqualityHelper {
/** A cache keeping track of the URIs for EObjects. */
- private final Cache<EObject, URI> uriCache;
+ private final LoadingCache<EObject, URI> uriCache;
/**
* Creates a new EqualityHelper.
@@ -54,7 +55,7 @@ public class EqualityHelper extends AdapterImpl implements IEqualityHelper {
* @param uriCache
* the cache to be used for {@link EcoreUtil#getURI(EObject)} calls.
*/
- public EqualityHelper(Cache<EObject, URI> uriCache) {
+ public EqualityHelper(LoadingCache<EObject, URI> uriCache) {
this.uriCache = uriCache;
}
@@ -285,7 +286,7 @@ public class EqualityHelper extends AdapterImpl implements IEqualityHelper {
* The builder to use to instantiate the cache.
* @return the new cache.
*/
- public static Cache<EObject, URI> createDefaultCache(CacheBuilder<Object, Object> cacheBuilder) {
+ public static LoadingCache<EObject, URI> createDefaultCache(CacheBuilder<Object, Object> cacheBuilder) {
return cacheBuilder.build(CacheLoader.from(new URICacheFunction()));
}

Back to the top