org.eclipse.gmt.umlx.editor.regime
Class AbstractNodeRegimeCo2<M extends org.eclipse.emf.ecore.EModelElement,P extends GModelElement,CM extends org.eclipse.emf.ecore.EModelElement,CP>

java.lang.Object
  extended by org.eclipse.gmt.umlx.utils.ClassExtension<M>
      extended by org.eclipse.gmt.umlx.editor.regime.AbstractRegime<M,P>
          extended by org.eclipse.gmt.umlx.editor.regime.AbstractNodeRegimeCo0<M,P>
              extended by org.eclipse.gmt.umlx.editor.regime.AbstractNodeRegimeCo1<M,P,CM,CP>
                  extended by org.eclipse.gmt.umlx.editor.regime.AbstractNodeRegimeCo2<M,P,CM,CP>
All Implemented Interfaces:
INodeRegimeCo0<M,P>, INodeRegimeCo1<M,P,CM,CP>, INodeRegimeCo2<M,P,CM,CP>, IRegime, IRegimeCo0<M,P>, IRegimeCo1<M,P,CM,CP>, IRegimeCo2<M,P,CM,CP>, IClassExtension
Direct Known Subclasses:
GSheetNodeRegimeCo2, TxClassAttributeVariableRegime

public abstract class AbstractNodeRegimeCo2<M extends org.eclipse.emf.ecore.EModelElement,P extends GModelElement,CM extends org.eclipse.emf.ecore.EModelElement,CP>
extends AbstractNodeRegimeCo1<M,P,CM,CP>
implements INodeRegimeCo2<M,P,CM,CP>


Method Summary
 IRegimeCo2<?,?,?,?> canCoCoChange(IActiveEditDomain editDomain, java.lang.Object coModel, java.lang.Object parent)
           
 IErrorMessage cannotCoCoCreate(IActiveEditDomain editDomain, java.lang.Object coCoModel, java.lang.Object context, org.eclipse.draw2d.geometry.Point loc)
           
 java.lang.Object getCoCoModelFor(java.lang.Object coCoModel)
          Return the co-Model to be instantiated when coModel is being instantiated.
abstract  INodeRegimeCo1<CM,CP,?,?> getCoRegime()
          Return the co-regime if it has one.
 java.lang.Object getParentCoModel(IActiveEditDomain editDomain, java.lang.Object parent)
          Return the object to be coModel of the parent of a model created by this regime in editDomain.
 M getThisChangeContext(java.lang.Object context)
           
 P getThisCreateContext(java.lang.Object context)
           
 ILinkRegimeCo2<?,M,?,P,CM,CP> isLink()
           
 INodeRegimeCo2<M,P,CM,CP> isNode()
           
 INodeRegimeCo2<M,P,CM,CP> isRegimeCo2()
          Return this non-null regime if it is suitable for use with two or more levels of co-model.
 boolean loadCoCoModelClass()
           
 
Methods inherited from class org.eclipse.gmt.umlx.editor.regime.AbstractNodeRegimeCo1
canCoChange, coModelIsOptional, createChangeCoModelCommand, getCoModel, getCoModelClass, getCoModelFor, getCoModelFor, getCoModelParentClass, getLabel, isRegimeCo1, loadCoModelClass, setCoModel
 
Methods inherited from class org.eclipse.gmt.umlx.editor.regime.AbstractNodeRegimeCo0
cannotCreate, createFigure
 
Methods inherited from class org.eclipse.gmt.umlx.editor.regime.AbstractRegime
canCopy, canDelete, computeProblemMessage, createCreateChildLinkCommand, createCreateCommand, createDeleteCommand, createFacets, createLinkEnd, createModelObject, createOutline, createPropertySource, createView, getBackElement, getBasicClass, getFacets, getModelClass, getNewNamePrefix, getParentModelClass, getSheetClass, getSource, getSourceModelClass, getTarget, getTargetModelClass, initialise, isRegimeCo0, load, refreshProblemMessage, toString
 
Methods inherited from class org.eclipse.gmt.umlx.utils.ClassExtension
toDebugString, toUserString
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.eclipse.gmt.umlx.editor.regime.IRegimeCo2
getCoModelFor
 
Methods inherited from interface org.eclipse.gmt.umlx.editor.regime.IRegimeCo1
canCoChange, coModelIsOptional, createChangeCoModelCommand, getCoModel, getCoModelClass, getCoModelFor, loadCoModelClass
 
Methods inherited from interface org.eclipse.gmt.umlx.editor.regime.IRegimeCo0
canCopy, canDelete, computeProblemMessage, createDeleteCommand, createModelObject, createOutline, createPropertySource, createView, getFacets, getModelClass, getParentModelClass, isRegimeCo0, refreshProblemMessage, setCoModel
 
Methods inherited from interface org.eclipse.gmt.umlx.editor.regime.IRegime
createCreateChildLinkCommand, createCreateCommand, createLinkEnd, getBackElement, getCoModelParentClass, getIcon, getLabel, getNewNamePrefix, getSheetClass, getSource, getSourceModelClass, getTarget, getTargetModelClass
 
Methods inherited from interface org.eclipse.gmt.umlx.utils.IClassExtension
getBasicClass, toDebugString, toUserString
 
Methods inherited from interface org.eclipse.gmt.umlx.editor.regime.INodeRegimeCo1
isRegimeCo1
 
Methods inherited from interface org.eclipse.gmt.umlx.editor.regime.IRegimeCo1
canCoChange, coModelIsOptional, createChangeCoModelCommand, getCoModel, getCoModelClass, getCoModelFor, loadCoModelClass
 
Methods inherited from interface org.eclipse.gmt.umlx.editor.regime.IRegimeCo0
canCopy, canDelete, computeProblemMessage, createDeleteCommand, createModelObject, createOutline, createPropertySource, createView, getFacets, getModelClass, getParentModelClass, isRegimeCo0, refreshProblemMessage, setCoModel
 
Methods inherited from interface org.eclipse.gmt.umlx.editor.regime.IRegime
createCreateChildLinkCommand, createCreateCommand, createLinkEnd, getBackElement, getCoModelParentClass, getIcon, getLabel, getNewNamePrefix, getSheetClass, getSource, getSourceModelClass, getTarget, getTargetModelClass
 
Methods inherited from interface org.eclipse.gmt.umlx.utils.IClassExtension
getBasicClass, toDebugString, toUserString
 
Methods inherited from interface org.eclipse.gmt.umlx.editor.regime.INodeRegimeCo0
cannotCreate, createFigure
 
Methods inherited from interface org.eclipse.gmt.umlx.editor.regime.IRegimeCo0
canCopy, canDelete, computeProblemMessage, createDeleteCommand, createModelObject, createOutline, createPropertySource, createView, getFacets, getModelClass, getParentModelClass, isRegimeCo0, refreshProblemMessage, setCoModel
 
Methods inherited from interface org.eclipse.gmt.umlx.editor.regime.IRegime
createCreateChildLinkCommand, createCreateCommand, createLinkEnd, getBackElement, getCoModelParentClass, getIcon, getLabel, getNewNamePrefix, getSheetClass, getSource, getSourceModelClass, getTarget, getTargetModelClass
 
Methods inherited from interface org.eclipse.gmt.umlx.utils.IClassExtension
getBasicClass, toDebugString, toUserString
 

Method Detail

canCoCoChange

public IRegimeCo2<?,?,?,?> canCoCoChange(IActiveEditDomain editDomain,
                                         java.lang.Object coModel,
                                         java.lang.Object parent)
Specified by:
canCoCoChange in interface IRegimeCo2<M extends org.eclipse.emf.ecore.EModelElement,P extends GModelElement,CM extends org.eclipse.emf.ecore.EModelElement,CP>

cannotCoCoCreate

public IErrorMessage cannotCoCoCreate(IActiveEditDomain editDomain,
                                      java.lang.Object coCoModel,
                                      java.lang.Object context,
                                      org.eclipse.draw2d.geometry.Point loc)
Specified by:
cannotCoCoCreate in interface INodeRegimeCo2<M extends org.eclipse.emf.ecore.EModelElement,P extends GModelElement,CM extends org.eclipse.emf.ecore.EModelElement,CP>

getCoCoModelFor

public java.lang.Object getCoCoModelFor(java.lang.Object coCoModel)
Description copied from interface: IRegimeCo2
Return the co-Model to be instantiated when coModel is being instantiated. Normally returns coModel, but derivations such as GREgime may map from an EReference to an E2Association.

Specified by:
getCoCoModelFor in interface IRegimeCo2<M extends org.eclipse.emf.ecore.EModelElement,P extends GModelElement,CM extends org.eclipse.emf.ecore.EModelElement,CP>
Parameters:
coCoModel - the co-co-model
Returns:
the co-co-model

getCoRegime

public abstract INodeRegimeCo1<CM,CP,?,?> getCoRegime()
Description copied from interface: IRegime
Return the co-regime if it has one.

Specified by:
getCoRegime in interface INodeRegimeCo1<M extends org.eclipse.emf.ecore.EModelElement,P extends GModelElement,CM extends org.eclipse.emf.ecore.EModelElement,CP>
Specified by:
getCoRegime in interface INodeRegimeCo2<M extends org.eclipse.emf.ecore.EModelElement,P extends GModelElement,CM extends org.eclipse.emf.ecore.EModelElement,CP>
Specified by:
getCoRegime in interface IRegime
Specified by:
getCoRegime in interface IRegimeCo0<M extends org.eclipse.emf.ecore.EModelElement,P extends GModelElement>
Specified by:
getCoRegime in interface IRegimeCo1<M extends org.eclipse.emf.ecore.EModelElement,P extends GModelElement,CM extends org.eclipse.emf.ecore.EModelElement,CP>
Specified by:
getCoRegime in interface IRegimeCo2<M extends org.eclipse.emf.ecore.EModelElement,P extends GModelElement,CM extends org.eclipse.emf.ecore.EModelElement,CP>
Specified by:
getCoRegime in class AbstractNodeRegimeCo1<M extends org.eclipse.emf.ecore.EModelElement,P extends GModelElement,CM extends org.eclipse.emf.ecore.EModelElement,CP>
Returns:
co-regime class or null

getParentCoModel

public java.lang.Object getParentCoModel(IActiveEditDomain editDomain,
                                         java.lang.Object parent)
Description copied from interface: IRegimeCo1
Return the object to be coModel of the parent of a model created by this regime in editDomain. The return is nominally just parent.coModel() after type validation, but derived implementations may add policies to provide defaults parents for orphans.

Specified by:
getParentCoModel in interface IRegimeCo1<M extends org.eclipse.emf.ecore.EModelElement,P extends GModelElement,CM extends org.eclipse.emf.ecore.EModelElement,CP>
Specified by:
getParentCoModel in class AbstractNodeRegimeCo1<M extends org.eclipse.emf.ecore.EModelElement,P extends GModelElement,CM extends org.eclipse.emf.ecore.EModelElement,CP>
Parameters:
editDomain - edit domain containing objects
parent - parent of graphical model
Returns:
co-model of parent

getThisChangeContext

public final M getThisChangeContext(java.lang.Object context)

getThisCreateContext

public final P getThisCreateContext(java.lang.Object context)

isLink

public ILinkRegimeCo2<?,M,?,P,CM,CP> isLink()
Specified by:
isLink in interface IRegimeCo0<M extends org.eclipse.emf.ecore.EModelElement,P extends GModelElement>
Specified by:
isLink in interface IRegimeCo1<M extends org.eclipse.emf.ecore.EModelElement,P extends GModelElement,CM extends org.eclipse.emf.ecore.EModelElement,CP>
Specified by:
isLink in interface IRegimeCo2<M extends org.eclipse.emf.ecore.EModelElement,P extends GModelElement,CM extends org.eclipse.emf.ecore.EModelElement,CP>
Overrides:
isLink in class AbstractNodeRegimeCo1<M extends org.eclipse.emf.ecore.EModelElement,P extends GModelElement,CM extends org.eclipse.emf.ecore.EModelElement,CP>

isNode

public INodeRegimeCo2<M,P,CM,CP> isNode()
Specified by:
isNode in interface IRegimeCo0<M extends org.eclipse.emf.ecore.EModelElement,P extends GModelElement>
Specified by:
isNode in interface IRegimeCo1<M extends org.eclipse.emf.ecore.EModelElement,P extends GModelElement,CM extends org.eclipse.emf.ecore.EModelElement,CP>
Specified by:
isNode in interface IRegimeCo2<M extends org.eclipse.emf.ecore.EModelElement,P extends GModelElement,CM extends org.eclipse.emf.ecore.EModelElement,CP>
Overrides:
isNode in class AbstractNodeRegimeCo1<M extends org.eclipse.emf.ecore.EModelElement,P extends GModelElement,CM extends org.eclipse.emf.ecore.EModelElement,CP>

isRegimeCo2

public INodeRegimeCo2<M,P,CM,CP> isRegimeCo2()
Description copied from interface: IRegime
Return this non-null regime if it is suitable for use with two or more levels of co-model.

Specified by:
isRegimeCo2 in interface INodeRegimeCo0<M extends org.eclipse.emf.ecore.EModelElement,P extends GModelElement>
Specified by:
isRegimeCo2 in interface INodeRegimeCo1<M extends org.eclipse.emf.ecore.EModelElement,P extends GModelElement,CM extends org.eclipse.emf.ecore.EModelElement,CP>
Specified by:
isRegimeCo2 in interface INodeRegimeCo2<M extends org.eclipse.emf.ecore.EModelElement,P extends GModelElement,CM extends org.eclipse.emf.ecore.EModelElement,CP>
Specified by:
isRegimeCo2 in interface IRegime
Specified by:
isRegimeCo2 in interface IRegimeCo0<M extends org.eclipse.emf.ecore.EModelElement,P extends GModelElement>
Overrides:
isRegimeCo2 in class AbstractNodeRegimeCo1<M extends org.eclipse.emf.ecore.EModelElement,P extends GModelElement,CM extends org.eclipse.emf.ecore.EModelElement,CP>
Returns:
this or null

loadCoCoModelClass

public boolean loadCoCoModelClass()
Specified by:
loadCoCoModelClass in interface IRegimeCo2<M extends org.eclipse.emf.ecore.EModelElement,P extends GModelElement,CM extends org.eclipse.emf.ecore.EModelElement,CP>