Class EqualityHelper

java.lang.Object
org.eclipse.emf.common.notify.impl.AdapterImpl
org.eclipse.emf.compare.utils.EqualityHelper
All Implemented Interfaces:
Adapter, Adapter.Internal, IEqualityHelper

public class EqualityHelper extends AdapterImpl implements IEqualityHelper
EMF Compare needs its own rules for "equality", which are based on similarity instead of strict equality. These will be used throughout the process.
  • Constructor Details

    • EqualityHelper

      @Deprecated public EqualityHelper()
      Deprecated.
      use the EqualityHelper(Cache) constructor instead.
      Creates a new EqualityHelper.
    • EqualityHelper

      public EqualityHelper(com.google.common.cache.LoadingCache<EObject,URI> uriCache)
      Creates a new EqualityHelper with the given cache.
      Parameters:
      uriCache - the cache to be used for EcoreUtil.getURI(EObject) calls.
    • EqualityHelper

      public EqualityHelper(com.google.common.cache.LoadingCache<EObject,URI> uriCache, EqualityHelperExtensionProvider.Descriptor.Registry equalityHelperExtensionProviderRegistry)
      Creates a new EqualityHelper with the given cache and registry.
      Parameters:
      uriCache - the cache to be used for EcoreUtil.getURI(EObject) calls.
      equalityHelperExtensionProviderRegistry - Registry ofequality helper extension provider
  • Method Details

    • getTarget

      public Comparison getTarget()
      Specified by:
      getTarget in interface Adapter
      Specified by:
      getTarget in interface IEqualityHelper
      Overrides:
      getTarget in class AdapterImpl
      See Also:
    • setTarget

      public void setTarget(Notifier newTarget)
      Specified by:
      setTarget in interface Adapter
      Overrides:
      setTarget in class AdapterImpl
      See Also:
    • isAdapterForType

      public boolean isAdapterForType(Object type)
      Specified by:
      isAdapterForType in interface Adapter
      Overrides:
      isAdapterForType in class AdapterImpl
      See Also:
    • matchingValues

      @Deprecated public boolean matchingValues(Comparison comparison, Object object1, Object object2)
      Deprecated.
      Check that the two given values are "equal", considering the specifics of EMF.
      Parameters:
      comparison - Provides us with the Match necessary for EObject comparison.
      object1 - First of the two objects to compare here.
      object2 - Second of the two objects to compare here.
      Returns:
      true if both objects are to be considered equal, false otherwise.
      See Also:
    • matchingValues

      public boolean matchingValues(Object object1, Object object2)
      Check that the two given values are "equal", considering the specifics of EMF.
      Specified by:
      matchingValues in interface IEqualityHelper
      Parameters:
      object1 - First of the two objects to compare here.
      object2 - Second of the two objects to compare here.
      Returns:
      true if both objects are to be considered equal, false otherwise.
      See Also:
    • matchingEObjects

      protected boolean matchingEObjects(EObject object1, EObject object2)
      Compares two values as EObjects, using their Match if it can be found, comparing through their URIs otherwise.
      Parameters:
      object1 - First of the two objects to compare here.
      object2 - Second of the two objects to compare here.
      Returns:
      true if these two EObjects are to be considered equal, false otherwise.
    • getMatch

      protected Match getMatch(EObject o)
      Returns the match of this EObject if any, null otherwise.
      Parameters:
      o - The object for which we need the associated Match.
      Returns:
      Match of this EObject if any, null otherwise.
    • matchingURIs

      protected boolean matchingURIs(EObject object1, EObject object2)
      Compare the URIs (of similar concept) of EObjects.
      Parameters:
      object1 - First of the two objects to compare here.
      object2 - Second of the two objects to compare here.
      Returns:
      true if these two EObjects have the same URIs, false otherwise.
    • matchingAttributeValues

      public boolean matchingAttributeValues(Object object1, Object object2)
      This should only be used if the two given Objects are known not to be instances of EObjects. EObjects passed for comparison through here will be compared through their Object.equals(Object) implementation.
      Specified by:
      matchingAttributeValues in interface IEqualityHelper
      Parameters:
      object1 - First of the two objects to compare here.
      object2 - Second of the two objects to compare here.
      Returns:
      true if both objects are to be considered equal, false otherwise.
      See Also:
    • getURI

      @Deprecated public URI getURI(EObject object)
      Deprecated.
      The EqualityHelper often needs to get an EObject uri. As such it has an internal cache that clients might leverage through this method.
      Parameters:
      object - any EObject.
      Returns:
      the URI of the given EObject, or null if we somehow could not compute it.
    • getCache

      @Deprecated public com.google.common.cache.Cache<EObject,URI> getCache()
      Deprecated.
      Returns the cache used by this object.
      Returns:
      the cache used by this object.
    • createDefaultCache

      public static com.google.common.cache.LoadingCache<EObject,URI> createDefaultCache(com.google.common.cache.CacheBuilder<Object,Object> cacheBuilder)
      Create a cache as required by EqualityHelper.
      Parameters:
      cacheBuilder - The builder to use to instantiate the cache.
      Returns:
      the new cache.