Interface IDiffProcessor

All Known Implementing Classes:
DiffBuilder

public interface IDiffProcessor
An IDiffProcessor is meant to be used in order to react to the detection of differences by the diff engine.

The default implementation of a Diff engine only detects the changes and sends them over to its IDiffProcessor. It will then be up to the diff processor to create a Diff and attach it to the provided Match, simply react to the notification... or ignore it altogether.

DiffBuilder, a default implementation of this interface, can be subclassed instead.

See Also:
  • Method Details

    • referenceChange

      void referenceChange(Match match, EReference reference, EObject value, DifferenceKind kind, DifferenceSource source)
      This will be called whenever the Diff engine detected a difference for a given reference value.
      Parameters:
      match - The match to which this difference should be attached.
      reference - The reference on which we detected a difference.
      value - The actual value for which we detected a difference.
      kind - Kind of the detected difference.
      source - Source of the detected difference. For two way comparisons, this will always be DifferenceSource.LEFT. Otherwise, this will indicate the side on which this difference has been detected.
    • attributeChange

      void attributeChange(Match match, EAttribute attribute, Object value, DifferenceKind kind, DifferenceSource source)
      This will be called whenever the diff engine detected a difference for a given attribute value.
      Parameters:
      match - The match to which this difference should be attached.
      attribute - The attribute on which we detected a difference.
      value - The actual value for which we detected a difference.
      kind - Kind of the difference.
      source - Source of the difference. For two way comparisons, this will always be DifferenceSource.LEFT. Otherwise, this will indicate the side on which this difference has been detected.
    • featureMapChange

      void featureMapChange(Match match, EAttribute attribute, Object value, DifferenceKind kind, DifferenceSource source)
      This will be called whenever the diff engine detected a difference for a given attribute value.
      Parameters:
      match - The match to which this difference should be attached.
      attribute - The EFeatureMapEntry attribute on which we detected a difference.
      value - The actual FeatureMap.Entry value for which we detected a difference.
      kind - Kind of the difference.
      source - Source of the difference. For two way comparisons, this will always be DifferenceSource.LEFT. Otherwise, this will indicate the side on which this difference has been detected.
      Since:
      3.2
    • resourceAttachmentChange

      void resourceAttachmentChange(Match match, String uri, DifferenceKind kind, DifferenceSource source)
      This will be called whenever the diff engine detected the addition (or removal) of a root in a given Resource.
      Parameters:
      match - The match to which this difference should be attached.
      uri - The uri of the resource we attached this element to in case of an DifferenceKind.ADD , or the uri of the resource it was attached to in case of a DifferenceKind.DELETE difference.
      kind - Kind of this difference.
      source - Source of the difference. For two way comparisons, this will always be DifferenceSource.LEFT. Otherwise, this will indicate the side on which this difference has been detected.
    • resourceLocationChange

      void resourceLocationChange(MatchResource matchResource, String baseLocation, String changedLocation, DifferenceKind kind, DifferenceSource source)
      This will be called whenever the diff engine detects the change of a Resource location.
      Parameters:
      matchResource - The matchResource to which this difference should be attached.
      baseLocation - The base location (left side in case of a two way comparison, origin or left side in case of a three way comparison).
      changedLocation - The change location (right side in case of a two way comparison, left or right side in case of a three way comparison).
      kind - Kind of this difference.
      source - Source of the difference. For two way comparisons, this will always be DifferenceSource.LEFT. Otherwise, this will indicate the side on which this difference has been detected.