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 ResourceSet
s and their
Resource
s 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 ResourceSet
s. EMFCompare installs such an adapter on the comparison
to make it easy to retrieve.-
Nested Class Summary
Modifier and TypeClassDescriptionstatic interface
A 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
ConstructorDescriptionResourceChangeAdapter
(Comparison comparison, IComparisonScope scope) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Register the given participant.protected org.eclipse.emf.compare.merge.ResourceChangeAdapter.ResourceMatch
getResourceMatch
(Resource resource) Returns the MatchResource corresponding to the givenresource
.protected ResourceSet
Get the resource set on the other side of the given resource.boolean
isAdapterForType
(Object type) boolean
isEmptyAndMissingOnOtherSide
(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).boolean
Indicate whether a given Resource needs to be deleted.void
void
Unregister the given participant, has no action if the participant was not previously registered.protected void
resourceAdded
(Resource resource) Callback invoked when a resource has just been added to a resource set.protected void
resourceContentsChanged
(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 beResourceSet
s.
-
-
Method Details
-
notifyChanged
- Specified by:
notifyChanged
in interfaceAdapter
- Overrides:
notifyChanged
in classAdapterImpl
-
isAdapterForType
- Specified by:
isAdapterForType
in interfaceAdapter
- Overrides:
isAdapterForType
in 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:
true
if 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
null
or 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:
true
if 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
,null
if the resource is not in any side of this comparison (package, profiles, ...).
-