Class DiffMergeModelContextImpl
- java.lang.Object
-
- org.eclipse.emf.ecp.view.internal.context.ViewModelContextImpl
-
- org.eclipse.emf.ecp.diffmerge.internal.context.DiffMergeModelContextImpl
-
- All Implemented Interfaces:
DiffMergeModelContext
,ViewModelContext
,EMFFormsViewContext
public class DiffMergeModelContextImpl extends ViewModelContextImpl implements DiffMergeModelContext
Implementation of the DiffMergeModelContext based on theViewModelContextImpl
. As theViewModelContextImpl
is internal we suppress the restriction.- Author:
- Eugen Neufeld
-
-
Constructor Summary
Constructors Constructor Description DiffMergeModelContextImpl(VElement view, org.eclipse.emf.ecore.EObject domainObject, org.eclipse.emf.ecore.EObject left, org.eclipse.emf.ecore.EObject right)
Constructor for theDiffMergeModelContextImpl
.DiffMergeModelContextImpl(VElement view, org.eclipse.emf.ecore.EObject domainObject, org.eclipse.emf.ecore.EObject left, org.eclipse.emf.ecore.EObject right, java.util.Set<VDomainModelReference> mergedReferences)
Constructor for theDiffMergeModelContextImpl
.DiffMergeModelContextImpl(VElement view, org.eclipse.emf.ecore.EObject domainObject, org.eclipse.emf.ecore.EObject origin1, org.eclipse.emf.ecore.EObject origin2, java.util.Set<VDomainModelReference> mergedReferences, ViewModelService... modelServices)
Constructor for theDiffMergeModelContextImpl
.DiffMergeModelContextImpl(VElement view, org.eclipse.emf.ecore.EObject domainObject, org.eclipse.emf.ecore.EObject origin1, org.eclipse.emf.ecore.EObject origin2, ViewModelService... modelServices)
Constructor for theDiffMergeModelContextImpl
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description VControl
getControl(int diffIndex)
Returns the control based on the diff index.int
getIndexOf(VControl control)
Returns the diff index of a control.org.eclipse.emf.ecore.EObject
getLeftModel()
Gets the left model.java.util.Set<VDomainModelReference>
getMergedDomainObjects()
Returns the set of domainModelReferences which are merged.ControlPair
getPairWithDiff(VControl control)
Returns a pair containing the left and right control for the diff.org.eclipse.emf.ecore.EObject
getRightModel()
Gets the right model.int
getTotalNumberOfDiffs()
Returns the total number of differences.protected java.util.Set<VControl>
getValidMergeControls(java.util.Set<VControl> controls)
Filter for valid controls.boolean
hasDiff(VControl control)
Checks whether a control has a diff.protected boolean
hasDiff(VControl leftControl, org.eclipse.emf.ecore.EObject leftDomainModel, VControl rightControl, org.eclipse.emf.ecore.EObject rightDomainModel, VControl targetControl)
Checks whether the controls have a diff.boolean
isControlMerged(VControl vControl)
Returns true if the control already was merged or doesn't have a difference at all.void
markControl(VControl vControl, boolean merged)
Mark a control as merged.-
Methods inherited from class org.eclipse.emf.ecp.view.internal.context.ViewModelContextImpl
addContextUser, changeDomainModel, dispose, getChildContext, getChildContext, getContextValue, getControlsFor, getControlsFor, getDomainModel, getParentContext, getParentVElement, getService, getServiceWithoutLog, getViewModel, getViewModelServiceProvider, hasService, pause, putContextValue, reactivate, registerDisposeListener, registerDomainChangeListener, registerEMFFormsContextListener, registerRootDomainModelChangeListener, registerViewChangeListener, removeContextUser, unregisterDomainChangeListener, unregisterEMFFormsContextListener, unregisterRootDomainModelChangeListener, unregisterViewChangeListener
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.eclipse.emfforms.spi.core.services.view.EMFFormsViewContext
changeDomainModel, registerEMFFormsContextListener, registerRootDomainModelChangeListener, unregisterEMFFormsContextListener, unregisterRootDomainModelChangeListener
-
Methods inherited from interface org.eclipse.emf.ecp.view.spi.context.ViewModelContext
addContextUser, dispose, getChildContext, getChildContext, getContextValue, getControlsFor, getControlsFor, getDomainModel, getParentContext, getParentVElement, getService, getViewModel, hasService, pause, putContextValue, reactivate, registerDisposeListener, registerDomainChangeListener, registerViewChangeListener, removeContextUser, unregisterDomainChangeListener, unregisterViewChangeListener
-
-
-
-
Constructor Detail
-
DiffMergeModelContextImpl
public DiffMergeModelContextImpl(VElement view, org.eclipse.emf.ecore.EObject domainObject, org.eclipse.emf.ecore.EObject left, org.eclipse.emf.ecore.EObject right)
Constructor for theDiffMergeModelContextImpl
.- Parameters:
view
- theVElement
domainObject
- theEObject
which is editableleft
- the first objectright
- the second object- See Also:
ViewModelContextImpl(VElement, EObject)
-
DiffMergeModelContextImpl
public DiffMergeModelContextImpl(VElement view, org.eclipse.emf.ecore.EObject domainObject, org.eclipse.emf.ecore.EObject left, org.eclipse.emf.ecore.EObject right, java.util.Set<VDomainModelReference> mergedReferences)
Constructor for theDiffMergeModelContextImpl
.- Parameters:
view
- theVElement
domainObject
- theEObject
which is editableleft
- the first objectright
- the second objectmergedReferences
- the set of already merged domain references- See Also:
ViewModelContextImpl(VElement, EObject)
-
DiffMergeModelContextImpl
public DiffMergeModelContextImpl(VElement view, org.eclipse.emf.ecore.EObject domainObject, org.eclipse.emf.ecore.EObject origin1, org.eclipse.emf.ecore.EObject origin2, ViewModelService... modelServices)
Constructor for theDiffMergeModelContextImpl
.- Parameters:
view
- theVElement
domainObject
- theEObject
which is editableorigin1
- the first objectorigin2
- the second objectmodelServices
- theViewModelServices
to register- See Also:
ViewModelContextImpl(VElement, EObject, ViewModelService...)
-
DiffMergeModelContextImpl
public DiffMergeModelContextImpl(VElement view, org.eclipse.emf.ecore.EObject domainObject, org.eclipse.emf.ecore.EObject origin1, org.eclipse.emf.ecore.EObject origin2, java.util.Set<VDomainModelReference> mergedReferences, ViewModelService... modelServices)
Constructor for theDiffMergeModelContextImpl
.- Parameters:
view
- theVElement
domainObject
- theEObject
which is editableorigin1
- the first objectorigin2
- the second objectmergedReferences
- the set of already merged domain referencesmodelServices
- theViewModelServices
to register- See Also:
ViewModelContextImpl(VElement, EObject, ViewModelService...)
-
-
Method Detail
-
getValidMergeControls
protected java.util.Set<VControl> getValidMergeControls(java.util.Set<VControl> controls)
Filter for valid controls. E.g. filter out controls which should not be mergable.- Parameters:
controls
- the controls to validate- Returns:
- the controls which should get a merge marker
-
hasDiff
protected boolean hasDiff(VControl leftControl, org.eclipse.emf.ecore.EObject leftDomainModel, VControl rightControl, org.eclipse.emf.ecore.EObject rightDomainModel, VControl targetControl)
Checks whether the controls have a diff.- Parameters:
leftControl
- the left control to checkleftDomainModel
- The domain model of the left controlrightControl
- the right control to checkrightDomainModel
- The domain model of the right controltargetControl
- the target control to check- Returns:
- true if there is a diff, false otherwise
-
getLeftModel
public org.eclipse.emf.ecore.EObject getLeftModel()
Gets the left model.- Specified by:
getLeftModel
in interfaceDiffMergeModelContext
- Returns:
- the left model
-
getRightModel
public org.eclipse.emf.ecore.EObject getRightModel()
Gets the right model.- Specified by:
getRightModel
in interfaceDiffMergeModelContext
- Returns:
- the right model
-
hasDiff
public boolean hasDiff(VControl control)
Checks whether a control has a diff.- Specified by:
hasDiff
in interfaceDiffMergeModelContext
- Parameters:
control
- theVControl
to check- Returns:
- true if there is a difference
- See Also:
DiffMergeModelContext.hasDiff(org.eclipse.emf.ecp.view.spi.model.VControl)
-
getPairWithDiff
public ControlPair getPairWithDiff(VControl control)
Returns a pair containing the left and right control for the diff.- Specified by:
getPairWithDiff
in interfaceDiffMergeModelContext
- Parameters:
control
- the control to get the pair for- Returns:
- a pair or null if no diff exists for the provided control
- See Also:
DiffMergeModelContext.getPairWithDiff(org.eclipse.emf.ecp.view.spi.model.VControl)
-
getTotalNumberOfDiffs
public int getTotalNumberOfDiffs()
Returns the total number of differences.- Specified by:
getTotalNumberOfDiffs
in interfaceDiffMergeModelContext
- Returns:
- the total number of differences
- See Also:
DiffMergeModelContext.getTotalNumberOfDiffs()
-
getIndexOf
public int getIndexOf(VControl control)
Returns the diff index of a control. If the control does not have a diff the index will be -1.- Specified by:
getIndexOf
in interfaceDiffMergeModelContext
- Parameters:
control
- theVControl
to get the index for- Returns:
- the index of the control
- See Also:
DiffMergeModelContext.getIndexOf(org.eclipse.emf.ecp.view.spi.model.VControl)
-
getControl
public VControl getControl(int diffIndex) throws java.lang.IllegalArgumentException
Returns the control based on the diff index. If the index is less then 0 and greater or equals the total number of diff, then aIllegalArgumentException
will be thrown.- Specified by:
getControl
in interfaceDiffMergeModelContext
- Parameters:
diffIndex
- the diff index to get the control for- Returns:
- the
VControl
- Throws:
java.lang.IllegalArgumentException
- thrown if the index is invalid- See Also:
DiffMergeModelContext.getControl(int)
-
isControlMerged
public boolean isControlMerged(VControl vControl)
Returns true if the control already was merged or doesn't have a difference at all.- Specified by:
isControlMerged
in interfaceDiffMergeModelContext
- Parameters:
vControl
- theVControl
to check- Returns:
- true if is merged
- See Also:
DiffMergeModelContext.isControlMerged(org.eclipse.emf.ecp.view.spi.model.VControl)
-
markControl
public void markControl(VControl vControl, boolean merged)
Mark a control as merged.- Specified by:
markControl
in interfaceDiffMergeModelContext
- Parameters:
vControl
- theVControl
to be mergedmerged
- true if control is merged, false otherwise- See Also:
DiffMergeModelContext.markControl(org.eclipse.emf.ecp.view.spi.model.VControl, boolean)
-
getMergedDomainObjects
public java.util.Set<VDomainModelReference> getMergedDomainObjects()
Returns the set of domainModelReferences which are merged.- Specified by:
getMergedDomainObjects
in interfaceDiffMergeModelContext
- Returns:
- the set of merged
VDomainModelReferences
- See Also:
DiffMergeModelContext.getMergedDomainObjects()
-
-