blob: e8dd227385192e794502835e3bbef19ac90350dd [file] [log] [blame]
@Ecore(settingDelegates="org.eclipse.gmf.tooling.simplemap.model.setting", invocationDelegates="org.msl.simple.gmfmap.simplemapping.invocation")
@namespace(uri="http://org.msl.simple.gmfmap/simplemappings_1.1", prefix="simplemap")
package simplemappings;
import "platform:/plugin/org.eclipse.gmf.map/models/gmfmap.ecore";
import "platform:/plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore";
import "platform:/plugin/org.eclipse.gmf.tooldef/models/tooldef.ecore";
class SimpleMapping extends SimpleParentNode {
ref gmfgraph.Canvas canvas;
ref tooldef.Palette palette;
ref mappings.Mapping mapping;
@org.eclipse.gmf.tooling.simplemap.model.setting
ref ecore.EPackage domainModel;
@org.eclipse.gmf.tooling.simplemap.model.setting
ref EClass domainMetaElement;
}
class SimpleTopNode extends SimpleNode, SimpleParentNode {
val SimpleLinkMapping[*] links;
}
class SimpleCompartment extends SimpleParentNode, SimpleChildNode, SimpleMappingElementWithFigure {
derived ref mappings.CompartmentMapping compartmentMapping;
@org.eclipse.gmf.tooling.simplemap.model.setting
attr String name;
@org.eclipse.gmf.tooling.simplemap.model.setting
readonly unsettable derived ref gmfgraph.Compartment compartment;
@org.eclipse.gmf.tooling.simplemap.model.setting
readonly unsettable derived ref gmfgraph.Label compartmentLabel;
attr boolean needsTitle = true;
}
class SimpleLabelNode extends SimpleNode {
}
class SimpleLinkMapping extends SimpleChildNode, SimpleParentNode, SimpleMappingElementWithFigure {
attr String name;
derived ref mappings.LinkMapping linkMapping;
@org.eclipse.gmf.tooling.simplemap.model.setting
ref gmfgraph.Connection diagramLink;
@org.eclipse.gmf.tooling.simplemap.model.setting
readonly unsettable derived ref gmfgraph.DiagramLabel diagramLabel;
@org.eclipse.gmf.tooling.simplemap.model.setting
readonly unsettable derived ref tooldef.AbstractTool tool;
}
class SimpleNode extends SimpleChildNode, SimpleMappingElementWithFigure, SimpleNodeReference {
@org.eclipse.gmf.tooling.simplemap.model.setting
readonly unsettable derived ref tooldef.AbstractTool tool;
@org.eclipse.gmf.tooling.simplemap.model.setting
transient ref ecore.EAttribute[*] labelAttributes;
@org.eclipse.gmf.tooling.simplemap.model.setting
readonly unsettable derived ref gmfgraph.Node diagramNode;
@org.eclipse.gmf.tooling.simplemap.model.setting
readonly unsettable derived ref gmfgraph.DiagramLabel diagramLabel;
@org.eclipse.gmf.tooling.simplemap.model.setting
transient derived ref EClass domainMetaElement;
}
abstract interface SimpleParentNode {
val SimpleChildNode[*]#parentNode children;
}
abstract interface SimpleChildNode {
unsettable ref SimpleParentNode#children parentNode;
@org.eclipse.gmf.tooling.simplemap.model.setting
transient ref SimpleMapping parentMapping;
@org.eclipse.gmf.tooling.simplemap.model.setting
ref SimpleNode parent;
@org.eclipse.gmf.tooling.simplemap.model.setting
transient ref EClass parentMetaElement;
}
class SimpleSubNode extends SimpleNode, SimpleParentNode {
}
class SimpleMappingElementWithFigure {
@org.eclipse.gmf.tooling.simplemap.model.setting
ref gmfgraph.Figure nodeFigure;
@org.eclipse.gmf.tooling.simplemap.model.setting
ref gmfgraph.Figure labelFigure;
}
class SimpleChildReference extends SimpleNodeReference, SimpleChildNode {
@org.eclipse.gmf.tooling.simplemap.model.setting
transient derived ref mappings.NodeMapping referencedChild;
ref SimpleNode referencedSimpleNode;
}
class SimpleNodeReference {
derived ref mappings.NodeReference nodeReference;
@org.eclipse.gmf.tooling.simplemap.model.setting
transient derived ref ecore.EReference containmentFeature;
@org.eclipse.gmf.tooling.simplemap.model.setting
attr String name;
}