Package org.eclipse.emf.compare.merge
Class ResourceChangeAdapter
java.lang.Object
org.eclipse.emf.common.notify.impl.AdapterImpl
org.eclipse.emf.compare.merge.ResourceChangeAdapter
- All Implemented Interfaces:
Adapter,Adapter.Internal
This adapter is supposed to be installed on a
Comparison's ResourceSets and their
Resources to react to content changes. Participants can then react to such changes to jointly
decide whether a resource must be marked for deletion. The same instance of adapter should be used for all
the resources of a comparison's ResourceSets. EMFCompare installs such an adapter on the comparison
to make it easy to retrieve.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfaceA participant in a Resource content change, useful to indicate whether an empty resource must actually be deleted or not, and which other resources need to be deleted/undeleted along.Nested classes/interfaces inherited from interface org.eclipse.emf.common.notify.Adapter
Adapter.Internal -
Field Summary
Fields inherited from class org.eclipse.emf.common.notify.impl.AdapterImpl
target -
Constructor Summary
ConstructorsConstructorDescriptionResourceChangeAdapter(Comparison comparison, IComparisonScope scope) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionvoidRegister the given participant.protected org.eclipse.emf.compare.merge.ResourceChangeAdapter.ResourceMatchgetResourceMatch(Resource resource) Returns the MatchResource corresponding to the givenresource.protected ResourceSetGet the resource set on the other side of the given resource.booleanisAdapterForType(Object type) booleanisEmptyAndMissingOnOtherSide(Resource resource) Indicate whether a resource is empty and is only on its side of the comparison (i.e. if it should be deleted unless a special restriction prevents it).booleanIndicate whether a given Resource needs to be deleted.voidvoidUnregister the given participant, has no action if the participant was not previously registered.protected voidresourceAdded(Resource resource) Callback invoked when a resource has just been added to a resource set.protected voidresourceContentsChanged(Resource resource, Notification msg) React to a Resource contents change to determine if this change involves the deletion of one or several resources.Methods inherited from class org.eclipse.emf.common.notify.impl.AdapterImpl
getTarget, setTarget, unsetTarget
-
Constructor Details
-
ResourceChangeAdapter
Constructor.- Parameters:
comparison- The comparison, cannot benull.scope- The scope, cannot benull. Moreover, the left and right notifiers of the scope must beResourceSets.
-
-
Method Details
-
notifyChanged
- Specified by:
notifyChangedin interfaceAdapter- Overrides:
notifyChangedin classAdapterImpl
-
isAdapterForType
- Specified by:
isAdapterForTypein interfaceAdapter- Overrides:
isAdapterForTypein classAdapterImpl
-
addParticipant
Register the given participant.- Parameters:
participant- The participant, must not benull
-
removeParticipant
Unregister the given participant, has no action if the participant was not previously registered.- Parameters:
participant- The participant to unregister
-
mustDelete
Indicate whether a given Resource needs to be deleted.- Parameters:
r- The resource- Returns:
trueif the given resource has been marked for deletion.
-
resourceAdded
Callback invoked when a resource has just been added to a resource set. By default, it walks over the interested participants and creates all the associated resources that these participants declare as associated to the given resource.- Parameters:
resource- The newly added resource
-
getResourceSetOnOtherSide
Get the resource set on the other side of the given resource.- Parameters:
r- The resource, which must be either on the left or on the right of the comparison.- Returns:
- The ResourceSet on the other side, never
null. - Throws:
IllegalArgumentException- If the given resource is neither on the left nor on the right.
-
resourceContentsChanged
React to a Resource contents change to determine if this change involves the deletion of one or several resources. A Resource must be deleted if:- Their contents is
nullor empty; - It is not matched on the other side of the comparison;
- Every participant is OK to delete it.
- Parameters:
resource- The resource the contents of which have changedmsg- The notification of the change
- Their contents is
-
isEmptyAndMissingOnOtherSide
Indicate whether a resource is empty and is only on its side of the comparison (i.e. if it should be deleted unless a special restriction prevents it).- Parameters:
resource- The resource- Returns:
trueif the resource is empty and is not matched on the other side of the comparison.
-
getResourceMatch
protected org.eclipse.emf.compare.merge.ResourceChangeAdapter.ResourceMatch getResourceMatch(Resource resource) Returns the MatchResource corresponding to the givenresource.- Parameters:
resource- Resource for which we need a MatchResource.- Returns:
- The MatchResource corresponding to the given
resource,nullif the resource is not in any side of this comparison (package, profiles, ...).
-