diff options
Diffstat (limited to 'plugins/org.eclipse.emf.compare/src/org/eclipse/emf')
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()));
}
|