Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src')
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Activator.java65
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Assembly.java66
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/AutoIndex.java60
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/AutoIndexPerNode.java27
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/BindTemplate.java78
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/BindingHelper.java63
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CodeGenOptions.java115
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CompImplTemplate.java85
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CompToOOmapping.java63
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CompilerChain.java59
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ConfigOption.java59
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ConfigurableElementInstance.java60
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Configuration.java102
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ConfigurationProperty.java64
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Connector.java115
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ConnectorConfiguration.java86
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ContainerRule.java109
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ContainerRuleKind.java225
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CopyAttributeValue.java86
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/DeploymentPlan.java86
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/DerivedElement.java86
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/FCMFactory.java376
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/FCMPackage.java3911
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Flatten.java63
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Fragment.java59
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ImplementationGroup.java63
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ImplementationProperties.java170
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InitPrecedence.java92
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InstanceConfigurator.java85
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InteractionComponent.java117
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InterceptionKind.java310
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InterceptionRule.java134
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/OperatingSystem.java59
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Port.java117
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/PortKind.java138
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ProgLanguage.java63
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/RuleApplication.java106
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Singleton.java63
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Target.java207
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/TargetArchitecture.java59
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Template.java90
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/TemplatePort.java90
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/UseInstanceConfigurator.java89
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/AssemblyImpl.java165
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/AutoIndexImpl.java166
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/AutoIndexPerNodeImpl.java46
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/BindTemplateImpl.java207
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/BindingHelperImpl.java165
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CodeGenOptionsImpl.java291
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CompImplTemplateImpl.java235
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CompToOOmappingImpl.java165
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CompilerChainImpl.java165
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConfigOptionImpl.java165
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConfigurableElementInstanceImpl.java166
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConfigurationImpl.java269
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConfigurationPropertyImpl.java166
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConnectorConfigurationImpl.java229
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConnectorImpl.java290
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ContainerRuleImpl.java277
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CopyAttributeValueImpl.java228
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/DeploymentPlanImpl.java228
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/DerivedElementImpl.java228
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FCMFactoryImpl.java652
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FCMPackageImpl.java2002
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FlattenImpl.java165
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FragmentImpl.java165
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ImplementationGroupImpl.java165
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ImplementationPropertiesImpl.java430
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/InitPrecedenceImpl.java240
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/InstanceConfiguratorImpl.java234
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/InteractionComponentImpl.java298
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/InterceptionRuleImpl.java341
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/OperatingSystemImpl.java165
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/PortImpl.java334
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/PortKindImpl.java351
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ProgLanguageImpl.java165
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/RuleApplicationImpl.java268
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/SingletonImpl.java165
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/TargetArchitectureImpl.java165
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/TargetImpl.java522
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/TemplateImpl.java229
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/TemplatePortImpl.java181
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/UseInstanceConfiguratorImpl.java228
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/ConnectorTypeUtil.java41
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMAdapterFactory.java832
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMResourceFactoryImpl.java50
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMResourceImpl.java37
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMSwitch.java938
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMUtil.java240
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMXMLProcessor.java57
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/IBindingHelper.java26
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/IEmbeddingRule.java31
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/IMappingRule.java41
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/ITemplateMappingRule.java40
-rw-r--r--extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/MapUtil.java530
95 files changed, 22399 insertions, 0 deletions
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Activator.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Activator.java
new file mode 100644
index 00000000000..2d60ac344ee
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Activator.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.fcm.profile"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Assembly.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Assembly.java
new file mode 100644
index 00000000000..1d4189e3920
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Assembly.java
@@ -0,0 +1,66 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Assembly</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * An assembly is a collection of (interconnected) parts. During distribution, a variant of the assembly is created for each node, that contains only a subset of the parts. This requires that
+ * (1) no inheritance
+ * (2) all instances of the assembly on a node must be split in an identical way
+ * The system component is also an assembly
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.Assembly#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getAssembly()
+ * @model
+ * @generated
+ */
+public interface Assembly extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getAssembly_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Assembly#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+} // Assembly
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/AutoIndex.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/AutoIndex.java
new file mode 100644
index 00000000000..40a23903437
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/AutoIndex.java
@@ -0,0 +1,60 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Auto Index</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.AutoIndex#getBase_Property <em>Base Property</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getAutoIndex()
+ * @model
+ * @generated
+ */
+public interface AutoIndex extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Property</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Property</em>' reference.
+ * @see #setBase_Property(Property)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getAutoIndex_Base_Property()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Property getBase_Property();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.AutoIndex#getBase_Property <em>Base Property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Property</em>' reference.
+ * @see #getBase_Property()
+ * @generated
+ */
+ void setBase_Property(Property value);
+
+} // AutoIndex
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/AutoIndexPerNode.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/AutoIndexPerNode.java
new file mode 100644
index 00000000000..d986de382f4
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/AutoIndexPerNode.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Auto Index Per Node</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getAutoIndexPerNode()
+ * @model
+ * @generated
+ */
+public interface AutoIndexPerNode extends AutoIndex {
+} // AutoIndexPerNode
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/BindTemplate.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/BindTemplate.java
new file mode 100644
index 00000000000..94380f0d970
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/BindTemplate.java
@@ -0,0 +1,78 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Type;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Bind Template</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.BindTemplate#getActual <em>Actual</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.BindTemplate#getBase_Property <em>Base Property</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getBindTemplate()
+ * @model
+ * @generated
+ */
+public interface BindTemplate extends EObject {
+ /**
+ * Returns the value of the '<em><b>Actual</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.uml2.uml.Type}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Actual</em>' reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Actual</em>' reference list.
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getBindTemplate_Actual()
+ * @model ordered="false"
+ * @generated
+ */
+ EList<Type> getActual();
+
+ /**
+ * Returns the value of the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Property</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Property</em>' reference.
+ * @see #setBase_Property(Property)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getBindTemplate_Base_Property()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Property getBase_Property();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.BindTemplate#getBase_Property <em>Base Property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Property</em>' reference.
+ * @see #getBase_Property()
+ * @generated
+ */
+ void setBase_Property(Property value);
+
+} // BindTemplate
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/BindingHelper.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/BindingHelper.java
new file mode 100644
index 00000000000..901e429efb1
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/BindingHelper.java
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Binding Helper</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * A binding helper is responsible for creating sub-elements. For instance, if the formal parameter of a template is an interface, it might be required to instantiate an operation for each operation of the interface.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.BindingHelper#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getBindingHelper()
+ * @model
+ * @generated
+ */
+public interface BindingHelper extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getBindingHelper_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.BindingHelper#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+} // BindingHelper
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CodeGenOptions.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CodeGenOptions.java
new file mode 100644
index 00000000000..a0554816e52
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CodeGenOptions.java
@@ -0,0 +1,115 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Code Gen Options</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * This information on a package tells the code generators which programming language and which component-to-OO mapping should be used
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.CodeGenOptions#getBase_Package <em>Base Package</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.CodeGenOptions#getCompToOOmapping <em>Comp To OOmapping</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.CodeGenOptions#getProgLanguage <em>Prog Language</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getCodeGenOptions()
+ * @model
+ * @generated
+ */
+public interface CodeGenOptions extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Package</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Package</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Package</em>' reference.
+ * @see #setBase_Package(org.eclipse.uml2.uml.Package)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getCodeGenOptions_Base_Package()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Package getBase_Package();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.CodeGenOptions#getBase_Package <em>Base Package</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Package</em>' reference.
+ * @see #getBase_Package()
+ * @generated
+ */
+ void setBase_Package(org.eclipse.uml2.uml.Package value);
+
+ /**
+ * Returns the value of the '<em><b>Comp To OOmapping</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Comp To OOmapping</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Comp To OOmapping</em>' reference.
+ * @see #setCompToOOmapping(CompToOOmapping)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getCodeGenOptions_CompToOOmapping()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ CompToOOmapping getCompToOOmapping();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.CodeGenOptions#getCompToOOmapping <em>Comp To OOmapping</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Comp To OOmapping</em>' reference.
+ * @see #getCompToOOmapping()
+ * @generated
+ */
+ void setCompToOOmapping(CompToOOmapping value);
+
+ /**
+ * Returns the value of the '<em><b>Prog Language</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Prog Language</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Prog Language</em>' reference.
+ * @see #setProgLanguage(ProgLanguage)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getCodeGenOptions_ProgLanguage()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ ProgLanguage getProgLanguage();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.CodeGenOptions#getProgLanguage <em>Prog Language</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Prog Language</em>' reference.
+ * @see #getProgLanguage()
+ * @generated
+ */
+ void setProgLanguage(ProgLanguage value);
+
+} // CodeGenOptions
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CompImplTemplate.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CompImplTemplate.java
new file mode 100644
index 00000000000..25ff298bda8
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CompImplTemplate.java
@@ -0,0 +1,85 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Comp Impl Template</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.CompImplTemplate#getTemplateDefs <em>Template Defs</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.CompImplTemplate#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getCompImplTemplate()
+ * @model
+ * @generated
+ */
+public interface CompImplTemplate extends EObject {
+ /**
+ * Returns the value of the '<em><b>Template Defs</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Template Defs</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Template Defs</em>' attribute.
+ * @see #setTemplateDefs(String)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getCompImplTemplate_TemplateDefs()
+ * @model unique="false" dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ String getTemplateDefs();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.CompImplTemplate#getTemplateDefs <em>Template Defs</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Template Defs</em>' attribute.
+ * @see #getTemplateDefs()
+ * @generated
+ */
+ void setTemplateDefs(String value);
+
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getCompImplTemplate_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.CompImplTemplate#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+} // CompImplTemplate
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CompToOOmapping.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CompToOOmapping.java
new file mode 100644
index 00000000000..45a6ac2a439
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CompToOOmapping.java
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Comp To OOmapping</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * We assume that a model library defines a set of supported programming languages as well as a set of provided component to mappings. We do not use a fixed enumeration defined in the profile to assure extensibility
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.CompToOOmapping#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getCompToOOmapping()
+ * @model
+ * @generated
+ */
+public interface CompToOOmapping extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getCompToOOmapping_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.CompToOOmapping#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+} // CompToOOmapping
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CompilerChain.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CompilerChain.java
new file mode 100644
index 00000000000..c788bf107d5
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CompilerChain.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Compiler Chain</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.CompilerChain#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getCompilerChain()
+ * @model
+ * @generated
+ */
+public interface CompilerChain extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getCompilerChain_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.CompilerChain#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+} // CompilerChain
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ConfigOption.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ConfigOption.java
new file mode 100644
index 00000000000..18537c5d33b
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ConfigOption.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Config Option</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.ConfigOption#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getConfigOption()
+ * @model
+ * @generated
+ */
+public interface ConfigOption extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getConfigOption_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.ConfigOption#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+} // ConfigOption
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ConfigurableElementInstance.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ConfigurableElementInstance.java
new file mode 100644
index 00000000000..480e38b98fb
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ConfigurableElementInstance.java
@@ -0,0 +1,60 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.InstanceSpecification;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Configurable Element Instance</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.ConfigurableElementInstance#getConfiguration <em>Configuration</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getConfigurableElementInstance()
+ * @model abstract="true"
+ * @generated
+ */
+public interface ConfigurableElementInstance extends EObject {
+ /**
+ * Returns the value of the '<em><b>Configuration</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Configuration</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Configuration</em>' reference.
+ * @see #setConfiguration(InstanceSpecification)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getConfigurableElementInstance_Configuration()
+ * @model ordered="false"
+ * @generated
+ */
+ InstanceSpecification getConfiguration();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.ConfigurableElementInstance#getConfiguration <em>Configuration</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Configuration</em>' reference.
+ * @see #getConfiguration()
+ * @generated
+ */
+ void setConfiguration(InstanceSpecification value);
+
+} // ConfigurableElementInstance
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Configuration.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Configuration.java
new file mode 100644
index 00000000000..af652b2f3de
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Configuration.java
@@ -0,0 +1,102 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Configuration</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.Configuration#getBase_Class <em>Base Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.Configuration#getConfigOptions <em>Config Options</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.Configuration#getDeploymentPlan <em>Deployment Plan</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getConfiguration()
+ * @model
+ * @generated
+ */
+public interface Configuration extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getConfiguration_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Configuration#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+ /**
+ * Returns the value of the '<em><b>Config Options</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.FCM.ConfigOption}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Config Options</em>' reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Config Options</em>' reference list.
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getConfiguration_ConfigOptions()
+ * @model ordered="false"
+ * @generated
+ */
+ EList<ConfigOption> getConfigOptions();
+
+ /**
+ * Returns the value of the '<em><b>Deployment Plan</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Deployment Plan</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Deployment Plan</em>' reference.
+ * @see #setDeploymentPlan(DeploymentPlan)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getConfiguration_DeploymentPlan()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ DeploymentPlan getDeploymentPlan();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Configuration#getDeploymentPlan <em>Deployment Plan</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Deployment Plan</em>' reference.
+ * @see #getDeploymentPlan()
+ * @generated
+ */
+ void setDeploymentPlan(DeploymentPlan value);
+
+} // Configuration
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ConfigurationProperty.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ConfigurationProperty.java
new file mode 100644
index 00000000000..505e9ad4b84
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ConfigurationProperty.java
@@ -0,0 +1,64 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Configuration Property</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * This stereotype indicuates that the attribute does not only store values but needs to be configured initially be the user. It corresponds to the automatic creation of an entry (slot+nstance specification) in the deployment plan
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.ConfigurationProperty#getBase_Property <em>Base Property</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getConfigurationProperty()
+ * @model
+ * @generated
+ */
+public interface ConfigurationProperty extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Property</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Property</em>' reference.
+ * @see #setBase_Property(Property)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getConfigurationProperty_Base_Property()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Property getBase_Property();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.ConfigurationProperty#getBase_Property <em>Base Property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Property</em>' reference.
+ * @see #getBase_Property()
+ * @generated
+ */
+ void setBase_Property(Property value);
+
+} // ConfigurationProperty
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Connector.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Connector.java
new file mode 100644
index 00000000000..e8ad70be248
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Connector.java
@@ -0,0 +1,115 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Connector</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * This stereotype references the interaction component that should realize the communication. It can be applied to UML connectors as well as to properties. The former is used, if there are two communication partners, the latter is more flexible. For instance, in case of a DDS interaction, a publisher does not know the consumers, it therefore communicates with a part (property) representing the publisher part of the interaction component
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.Connector#getBase_Connector <em>Base Connector</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.Connector#getIc <em>Ic</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.Connector#getBase_Property <em>Base Property</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getConnector()
+ * @model
+ * @generated
+ */
+public interface Connector extends ConfigurableElementInstance {
+ /**
+ * Returns the value of the '<em><b>Base Connector</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Connector</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Connector</em>' reference.
+ * @see #setBase_Connector(org.eclipse.uml2.uml.Connector)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getConnector_Base_Connector()
+ * @model ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Connector getBase_Connector();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Connector#getBase_Connector <em>Base Connector</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Connector</em>' reference.
+ * @see #getBase_Connector()
+ * @generated
+ */
+ void setBase_Connector(org.eclipse.uml2.uml.Connector value);
+
+ /**
+ * Returns the value of the '<em><b>Ic</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Ic</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Ic</em>' reference.
+ * @see #setIc(InteractionComponent)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getConnector_Ic()
+ * @model ordered="false"
+ * @generated
+ */
+ InteractionComponent getIc();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Connector#getIc <em>Ic</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Ic</em>' reference.
+ * @see #getIc()
+ * @generated
+ */
+ void setIc(InteractionComponent value);
+
+ /**
+ * Returns the value of the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Property</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Property</em>' reference.
+ * @see #setBase_Property(Property)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getConnector_Base_Property()
+ * @model ordered="false"
+ * @generated
+ */
+ Property getBase_Property();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Connector#getBase_Property <em>Base Property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Property</em>' reference.
+ * @see #getBase_Property()
+ * @generated
+ */
+ void setBase_Property(Property value);
+
+} // Connector
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ConnectorConfiguration.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ConnectorConfiguration.java
new file mode 100644
index 00000000000..cd7bb6bcd19
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ConnectorConfiguration.java
@@ -0,0 +1,86 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Slot;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Connector Configuration</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.ConnectorConfiguration#getBase_Slot <em>Base Slot</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.ConnectorConfiguration#getConnector <em>Connector</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getConnectorConfiguration()
+ * @model
+ * @generated
+ */
+public interface ConnectorConfiguration extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Slot</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Slot</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Slot</em>' reference.
+ * @see #setBase_Slot(Slot)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getConnectorConfiguration_Base_Slot()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Slot getBase_Slot();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.ConnectorConfiguration#getBase_Slot <em>Base Slot</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Slot</em>' reference.
+ * @see #getBase_Slot()
+ * @generated
+ */
+ void setBase_Slot(Slot value);
+
+ /**
+ * Returns the value of the '<em><b>Connector</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Connector</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Connector</em>' reference.
+ * @see #setConnector(Connector)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getConnectorConfiguration_Connector()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Connector getConnector();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.ConnectorConfiguration#getConnector <em>Connector</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Connector</em>' reference.
+ * @see #getConnector()
+ * @generated
+ */
+ void setConnector(Connector value);
+
+} // ConnectorConfiguration
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ContainerRule.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ContainerRule.java
new file mode 100644
index 00000000000..4b4ad0161f8
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ContainerRule.java
@@ -0,0 +1,109 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Container Rule</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * A container rule, i.e. a specification of extension or interception within a container. Beside the two options, a container rule is basically a composite class whose parts are added to the container.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.ContainerRule#getBase_Class <em>Base Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.ContainerRule#getForConfig <em>For Config</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.ContainerRule#getKind <em>Kind</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getContainerRule()
+ * @model
+ * @generated
+ */
+public interface ContainerRule extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getContainerRule_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.ContainerRule#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+ /**
+ * Returns the value of the '<em><b>For Config</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.FCM.ConfigOption}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>For Config</em>' reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>For Config</em>' reference list.
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getContainerRule_ForConfig()
+ * @model ordered="false"
+ * @generated
+ */
+ EList<ConfigOption> getForConfig();
+
+ /**
+ * Returns the value of the '<em><b>Kind</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.papyrus.FCM.ContainerRuleKind}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Kind</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Kind</em>' attribute.
+ * @see org.eclipse.papyrus.FCM.ContainerRuleKind
+ * @see #setKind(ContainerRuleKind)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getContainerRule_Kind()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ ContainerRuleKind getKind();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.ContainerRule#getKind <em>Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Kind</em>' attribute.
+ * @see org.eclipse.papyrus.FCM.ContainerRuleKind
+ * @see #getKind()
+ * @generated
+ */
+ void setKind(ContainerRuleKind value);
+
+} // ContainerRule
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ContainerRuleKind.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ContainerRuleKind.java
new file mode 100644
index 00000000000..6366f1cc62a
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ContainerRuleKind.java
@@ -0,0 +1,225 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Container Rule Kind</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getContainerRuleKind()
+ * @model
+ * @generated
+ */
+public enum ContainerRuleKind implements Enumerator {
+ /**
+ * The '<em><b>Component Rule</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #COMPONENT_RULE_VALUE
+ * @generated
+ * @ordered
+ */
+ COMPONENT_RULE(0, "ComponentRule", "ComponentRule"), //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Light Weight OO Rule</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LIGHT_WEIGHT_OO_RULE_VALUE
+ * @generated
+ * @ordered
+ */
+ LIGHT_WEIGHT_OO_RULE(1, "LightWeightOORule", "LightWeightOORule"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Component Rule</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Component Rule</b></em>' literal object isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #COMPONENT_RULE
+ * @model name="ComponentRule"
+ * @generated
+ * @ordered
+ */
+ public static final int COMPONENT_RULE_VALUE = 0;
+
+ /**
+ * The '<em><b>Light Weight OO Rule</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Light Weight OO Rule</b></em>' literal object isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LIGHT_WEIGHT_OO_RULE
+ * @model name="LightWeightOORule"
+ * @generated
+ * @ordered
+ */
+ public static final int LIGHT_WEIGHT_OO_RULE_VALUE = 1;
+
+ /**
+ * An array of all the '<em><b>Container Rule Kind</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final ContainerRuleKind[] VALUES_ARRAY =
+ new ContainerRuleKind[] {
+ COMPONENT_RULE,
+ LIGHT_WEIGHT_OO_RULE,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Container Rule Kind</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<ContainerRuleKind> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Container Rule Kind</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param literal the literal.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static ContainerRuleKind get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ContainerRuleKind result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Container Rule Kind</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param name the name.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static ContainerRuleKind getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ContainerRuleKind result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Container Rule Kind</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the integer value.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static ContainerRuleKind get(int value) {
+ switch (value) {
+ case COMPONENT_RULE_VALUE: return COMPONENT_RULE;
+ case LIGHT_WEIGHT_OO_RULE_VALUE: return LIGHT_WEIGHT_OO_RULE;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private ContainerRuleKind(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} // ContainerRuleKind
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CopyAttributeValue.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CopyAttributeValue.java
new file mode 100644
index 00000000000..414ccb88e3d
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/CopyAttributeValue.java
@@ -0,0 +1,86 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Copy Attribute Value</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.CopyAttributeValue#getSource <em>Source</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.CopyAttributeValue#getBase_Property <em>Base Property</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getCopyAttributeValue()
+ * @model
+ * @generated
+ */
+public interface CopyAttributeValue extends EObject {
+ /**
+ * Returns the value of the '<em><b>Source</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Source</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Source</em>' reference.
+ * @see #setSource(Property)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getCopyAttributeValue_Source()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Property getSource();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.CopyAttributeValue#getSource <em>Source</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Source</em>' reference.
+ * @see #getSource()
+ * @generated
+ */
+ void setSource(Property value);
+
+ /**
+ * Returns the value of the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Property</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Property</em>' reference.
+ * @see #setBase_Property(Property)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getCopyAttributeValue_Base_Property()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Property getBase_Property();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.CopyAttributeValue#getBase_Property <em>Base Property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Property</em>' reference.
+ * @see #getBase_Property()
+ * @generated
+ */
+ void setBase_Property(Property value);
+
+} // CopyAttributeValue
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/DeploymentPlan.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/DeploymentPlan.java
new file mode 100644
index 00000000000..7a0d9dc3d44
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/DeploymentPlan.java
@@ -0,0 +1,86 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.InstanceSpecification;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Deployment Plan</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.DeploymentPlan#getMainInstance <em>Main Instance</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.DeploymentPlan#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getDeploymentPlan()
+ * @model
+ * @generated
+ */
+public interface DeploymentPlan extends EObject {
+ /**
+ * Returns the value of the '<em><b>Main Instance</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Main Instance</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Main Instance</em>' reference.
+ * @see #setMainInstance(InstanceSpecification)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getDeploymentPlan_MainInstance()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ InstanceSpecification getMainInstance();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.DeploymentPlan#getMainInstance <em>Main Instance</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Main Instance</em>' reference.
+ * @see #getMainInstance()
+ * @generated
+ */
+ void setMainInstance(InstanceSpecification value);
+
+ /**
+ * Returns the value of the '<em><b>Base Package</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Package</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Package</em>' reference.
+ * @see #setBase_Package(org.eclipse.uml2.uml.Package)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getDeploymentPlan_Base_Package()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Package getBase_Package();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.DeploymentPlan#getBase_Package <em>Base Package</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Package</em>' reference.
+ * @see #getBase_Package()
+ * @generated
+ */
+ void setBase_Package(org.eclipse.uml2.uml.Package value);
+
+} // DeploymentPlan
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/DerivedElement.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/DerivedElement.java
new file mode 100644
index 00000000000..58ff9aee3ba
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/DerivedElement.java
@@ -0,0 +1,86 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Element;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Derived Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.DerivedElement#getBase_Element <em>Base Element</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.DerivedElement#getSource <em>Source</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getDerivedElement()
+ * @model
+ * @generated
+ */
+public interface DerivedElement extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Element</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Element</em>' reference.
+ * @see #setBase_Element(Element)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getDerivedElement_Base_Element()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Element getBase_Element();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.DerivedElement#getBase_Element <em>Base Element</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Element</em>' reference.
+ * @see #getBase_Element()
+ * @generated
+ */
+ void setBase_Element(Element value);
+
+ /**
+ * Returns the value of the '<em><b>Source</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Source</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Source</em>' reference.
+ * @see #setSource(Element)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getDerivedElement_Source()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Element getSource();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.DerivedElement#getSource <em>Source</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Source</em>' reference.
+ * @see #getSource()
+ * @generated
+ */
+ void setSource(Element value);
+
+} // DerivedElement
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/FCMFactory.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/FCMFactory.java
new file mode 100644
index 00000000000..907c2d5b4e3
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/FCMFactory.java
@@ -0,0 +1,376 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.FCMPackage
+ * @generated
+ */
+public interface FCMFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ FCMFactory eINSTANCE = org.eclipse.papyrus.FCM.impl.FCMFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Template</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Template</em>'.
+ * @generated
+ */
+ Template createTemplate();
+
+ /**
+ * Returns a new object of class '<em>Binding Helper</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Binding Helper</em>'.
+ * @generated
+ */
+ BindingHelper createBindingHelper();
+
+ /**
+ * Returns a new object of class '<em>Configuration Property</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Configuration Property</em>'.
+ * @generated
+ */
+ ConfigurationProperty createConfigurationProperty();
+
+ /**
+ * Returns a new object of class '<em>Implementation Group</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Implementation Group</em>'.
+ * @generated
+ */
+ ImplementationGroup createImplementationGroup();
+
+ /**
+ * Returns a new object of class '<em>Assembly</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Assembly</em>'.
+ * @generated
+ */
+ Assembly createAssembly();
+
+ /**
+ * Returns a new object of class '<em>Flatten</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Flatten</em>'.
+ * @generated
+ */
+ Flatten createFlatten();
+
+ /**
+ * Returns a new object of class '<em>Comp To OOmapping</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Comp To OOmapping</em>'.
+ * @generated
+ */
+ CompToOOmapping createCompToOOmapping();
+
+ /**
+ * Returns a new object of class '<em>Prog Language</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Prog Language</em>'.
+ * @generated
+ */
+ ProgLanguage createProgLanguage();
+
+ /**
+ * Returns a new object of class '<em>Code Gen Options</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Code Gen Options</em>'.
+ * @generated
+ */
+ CodeGenOptions createCodeGenOptions();
+
+ /**
+ * Returns a new object of class '<em>Interaction Component</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Interaction Component</em>'.
+ * @generated
+ */
+ InteractionComponent createInteractionComponent();
+
+ /**
+ * Returns a new object of class '<em>Singleton</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Singleton</em>'.
+ * @generated
+ */
+ Singleton createSingleton();
+
+ /**
+ * Returns a new object of class '<em>Connector</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Connector</em>'.
+ * @generated
+ */
+ Connector createConnector();
+
+ /**
+ * Returns a new object of class '<em>Use Instance Configurator</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Use Instance Configurator</em>'.
+ * @generated
+ */
+ UseInstanceConfigurator createUseInstanceConfigurator();
+
+ /**
+ * Returns a new object of class '<em>Instance Configurator</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Instance Configurator</em>'.
+ * @generated
+ */
+ InstanceConfigurator createInstanceConfigurator();
+
+ /**
+ * Returns a new object of class '<em>Rule Application</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Rule Application</em>'.
+ * @generated
+ */
+ RuleApplication createRuleApplication();
+
+ /**
+ * Returns a new object of class '<em>Container Rule</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Container Rule</em>'.
+ * @generated
+ */
+ ContainerRule createContainerRule();
+
+ /**
+ * Returns a new object of class '<em>Config Option</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Config Option</em>'.
+ * @generated
+ */
+ ConfigOption createConfigOption();
+
+ /**
+ * Returns a new object of class '<em>Template Port</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Template Port</em>'.
+ * @generated
+ */
+ TemplatePort createTemplatePort();
+
+ /**
+ * Returns a new object of class '<em>Port</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Port</em>'.
+ * @generated
+ */
+ Port createPort();
+
+ /**
+ * Returns a new object of class '<em>Port Kind</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Port Kind</em>'.
+ * @generated
+ */
+ PortKind createPortKind();
+
+ /**
+ * Returns a new object of class '<em>Deployment Plan</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Deployment Plan</em>'.
+ * @generated
+ */
+ DeploymentPlan createDeploymentPlan();
+
+ /**
+ * Returns a new object of class '<em>Derived Element</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Derived Element</em>'.
+ * @generated
+ */
+ DerivedElement createDerivedElement();
+
+ /**
+ * Returns a new object of class '<em>Comp Impl Template</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Comp Impl Template</em>'.
+ * @generated
+ */
+ CompImplTemplate createCompImplTemplate();
+
+ /**
+ * Returns a new object of class '<em>Implementation Properties</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Implementation Properties</em>'.
+ * @generated
+ */
+ ImplementationProperties createImplementationProperties();
+
+ /**
+ * Returns a new object of class '<em>Operating System</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Operating System</em>'.
+ * @generated
+ */
+ OperatingSystem createOperatingSystem();
+
+ /**
+ * Returns a new object of class '<em>Target Architecture</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Target Architecture</em>'.
+ * @generated
+ */
+ TargetArchitecture createTargetArchitecture();
+
+ /**
+ * Returns a new object of class '<em>Configuration</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Configuration</em>'.
+ * @generated
+ */
+ Configuration createConfiguration();
+
+ /**
+ * Returns a new object of class '<em>Interception Rule</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Interception Rule</em>'.
+ * @generated
+ */
+ InterceptionRule createInterceptionRule();
+
+ /**
+ * Returns a new object of class '<em>Target</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Target</em>'.
+ * @generated
+ */
+ Target createTarget();
+
+ /**
+ * Returns a new object of class '<em>Compiler Chain</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Compiler Chain</em>'.
+ * @generated
+ */
+ CompilerChain createCompilerChain();
+
+ /**
+ * Returns a new object of class '<em>Fragment</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Fragment</em>'.
+ * @generated
+ */
+ Fragment createFragment();
+
+ /**
+ * Returns a new object of class '<em>Copy Attribute Value</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Copy Attribute Value</em>'.
+ * @generated
+ */
+ CopyAttributeValue createCopyAttributeValue();
+
+ /**
+ * Returns a new object of class '<em>Auto Index</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Auto Index</em>'.
+ * @generated
+ */
+ AutoIndex createAutoIndex();
+
+ /**
+ * Returns a new object of class '<em>Auto Index Per Node</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Auto Index Per Node</em>'.
+ * @generated
+ */
+ AutoIndexPerNode createAutoIndexPerNode();
+
+ /**
+ * Returns a new object of class '<em>Init Precedence</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Init Precedence</em>'.
+ * @generated
+ */
+ InitPrecedence createInitPrecedence();
+
+ /**
+ * Returns a new object of class '<em>Connector Configuration</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Connector Configuration</em>'.
+ * @generated
+ */
+ ConnectorConfiguration createConnectorConfiguration();
+
+ /**
+ * Returns a new object of class '<em>Bind Template</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Bind Template</em>'.
+ * @generated
+ */
+ BindTemplate createBindTemplate();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ FCMPackage getFCMPackage();
+
+} // FCMFactory
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/FCMPackage.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/FCMPackage.java
new file mode 100644
index 00000000000..1dc5cea5fed
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/FCMPackage.java
@@ -0,0 +1,3911 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.FCMFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface FCMPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "FCM"; //$NON-NLS-1$
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/papyrus/FCM/1"; //$NON-NLS-1$
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "FCM"; //$NON-NLS-1$
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ FCMPackage eINSTANCE = org.eclipse.papyrus.FCM.impl.FCMPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.TemplateImpl <em>Template</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.TemplateImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getTemplate()
+ * @generated
+ */
+ int TEMPLATE = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPLATE__BASE_ELEMENT = 0;
+
+ /**
+ * The feature id for the '<em><b>Helper</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPLATE__HELPER = 1;
+
+ /**
+ * The number of structural features of the '<em>Template</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPLATE_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.BindingHelperImpl <em>Binding Helper</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.BindingHelperImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getBindingHelper()
+ * @generated
+ */
+ int BINDING_HELPER = 1;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BINDING_HELPER__BASE_CLASS = 0;
+
+ /**
+ * The number of structural features of the '<em>Binding Helper</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BINDING_HELPER_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.ConfigurationPropertyImpl <em>Configuration Property</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ConfigurationPropertyImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getConfigurationProperty()
+ * @generated
+ */
+ int CONFIGURATION_PROPERTY = 2;
+
+ /**
+ * The feature id for the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONFIGURATION_PROPERTY__BASE_PROPERTY = 0;
+
+ /**
+ * The number of structural features of the '<em>Configuration Property</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONFIGURATION_PROPERTY_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.ImplementationGroupImpl <em>Implementation Group</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ImplementationGroupImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getImplementationGroup()
+ * @generated
+ */
+ int IMPLEMENTATION_GROUP = 3;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPLEMENTATION_GROUP__BASE_CLASS = 0;
+
+ /**
+ * The number of structural features of the '<em>Implementation Group</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPLEMENTATION_GROUP_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.AssemblyImpl <em>Assembly</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.AssemblyImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getAssembly()
+ * @generated
+ */
+ int ASSEMBLY = 4;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ASSEMBLY__BASE_CLASS = 0;
+
+ /**
+ * The number of structural features of the '<em>Assembly</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ASSEMBLY_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.FlattenImpl <em>Flatten</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.FlattenImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getFlatten()
+ * @generated
+ */
+ int FLATTEN = 5;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FLATTEN__BASE_CLASS = 0;
+
+ /**
+ * The number of structural features of the '<em>Flatten</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FLATTEN_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.CompToOOmappingImpl <em>Comp To OOmapping</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.CompToOOmappingImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getCompToOOmapping()
+ * @generated
+ */
+ int COMP_TO_OOMAPPING = 6;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMP_TO_OOMAPPING__BASE_CLASS = 0;
+
+ /**
+ * The number of structural features of the '<em>Comp To OOmapping</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMP_TO_OOMAPPING_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.ProgLanguageImpl <em>Prog Language</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ProgLanguageImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getProgLanguage()
+ * @generated
+ */
+ int PROG_LANGUAGE = 7;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROG_LANGUAGE__BASE_CLASS = 0;
+
+ /**
+ * The number of structural features of the '<em>Prog Language</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROG_LANGUAGE_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.CodeGenOptionsImpl <em>Code Gen Options</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.CodeGenOptionsImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getCodeGenOptions()
+ * @generated
+ */
+ int CODE_GEN_OPTIONS = 8;
+
+ /**
+ * The feature id for the '<em><b>Base Package</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CODE_GEN_OPTIONS__BASE_PACKAGE = 0;
+
+ /**
+ * The feature id for the '<em><b>Comp To OOmapping</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CODE_GEN_OPTIONS__COMP_TO_OOMAPPING = 1;
+
+ /**
+ * The feature id for the '<em><b>Prog Language</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CODE_GEN_OPTIONS__PROG_LANGUAGE = 2;
+
+ /**
+ * The number of structural features of the '<em>Code Gen Options</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CODE_GEN_OPTIONS_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.InteractionComponentImpl <em>Interaction Component</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.InteractionComponentImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getInteractionComponent()
+ * @generated
+ */
+ int INTERACTION_COMPONENT = 9;
+
+ /**
+ * The feature id for the '<em><b>For Distribution</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTERACTION_COMPONENT__FOR_DISTRIBUTION = 0;
+
+ /**
+ * The feature id for the '<em><b>Connection Pattern</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTERACTION_COMPONENT__CONNECTION_PATTERN = 1;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTERACTION_COMPONENT__BASE_CLASS = 2;
+
+ /**
+ * The number of structural features of the '<em>Interaction Component</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTERACTION_COMPONENT_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.SingletonImpl <em>Singleton</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.SingletonImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getSingleton()
+ * @generated
+ */
+ int SINGLETON = 10;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLETON__BASE_CLASS = 0;
+
+ /**
+ * The number of structural features of the '<em>Singleton</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLETON_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.ConfigurableElementInstanceImpl <em>Configurable Element Instance</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ConfigurableElementInstanceImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getConfigurableElementInstance()
+ * @generated
+ */
+ int CONFIGURABLE_ELEMENT_INSTANCE = 12;
+
+ /**
+ * The feature id for the '<em><b>Configuration</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONFIGURABLE_ELEMENT_INSTANCE__CONFIGURATION = 0;
+
+ /**
+ * The number of structural features of the '<em>Configurable Element Instance</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONFIGURABLE_ELEMENT_INSTANCE_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.ConnectorImpl <em>Connector</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ConnectorImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getConnector()
+ * @generated
+ */
+ int CONNECTOR = 11;
+
+ /**
+ * The feature id for the '<em><b>Configuration</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONNECTOR__CONFIGURATION = CONFIGURABLE_ELEMENT_INSTANCE__CONFIGURATION;
+
+ /**
+ * The feature id for the '<em><b>Base Connector</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONNECTOR__BASE_CONNECTOR = CONFIGURABLE_ELEMENT_INSTANCE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Ic</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONNECTOR__IC = CONFIGURABLE_ELEMENT_INSTANCE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONNECTOR__BASE_PROPERTY = CONFIGURABLE_ELEMENT_INSTANCE_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Connector</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONNECTOR_FEATURE_COUNT = CONFIGURABLE_ELEMENT_INSTANCE_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.UseInstanceConfiguratorImpl <em>Use Instance Configurator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.UseInstanceConfiguratorImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getUseInstanceConfigurator()
+ * @generated
+ */
+ int USE_INSTANCE_CONFIGURATOR = 13;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int USE_INSTANCE_CONFIGURATOR__BASE_CLASS = 0;
+
+ /**
+ * The feature id for the '<em><b>Configurator</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int USE_INSTANCE_CONFIGURATOR__CONFIGURATOR = 1;
+
+ /**
+ * The number of structural features of the '<em>Use Instance Configurator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int USE_INSTANCE_CONFIGURATOR_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.InstanceConfiguratorImpl <em>Instance Configurator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.InstanceConfiguratorImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getInstanceConfigurator()
+ * @generated
+ */
+ int INSTANCE_CONFIGURATOR = 14;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_CONFIGURATOR__BASE_CLASS = 0;
+
+ /**
+ * The feature id for the '<em><b>On Node Model</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_CONFIGURATOR__ON_NODE_MODEL = 1;
+
+ /**
+ * The number of structural features of the '<em>Instance Configurator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_CONFIGURATOR_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.RuleApplicationImpl <em>Rule Application</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.RuleApplicationImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getRuleApplication()
+ * @generated
+ */
+ int RULE_APPLICATION = 15;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RULE_APPLICATION__BASE_CLASS = 0;
+
+ /**
+ * The feature id for the '<em><b>Container Rule</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RULE_APPLICATION__CONTAINER_RULE = 1;
+
+ /**
+ * The feature id for the '<em><b>Base Package</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RULE_APPLICATION__BASE_PACKAGE = 2;
+
+ /**
+ * The number of structural features of the '<em>Rule Application</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RULE_APPLICATION_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.ContainerRuleImpl <em>Container Rule</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ContainerRuleImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getContainerRule()
+ * @generated
+ */
+ int CONTAINER_RULE = 16;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTAINER_RULE__BASE_CLASS = 0;
+
+ /**
+ * The feature id for the '<em><b>For Config</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTAINER_RULE__FOR_CONFIG = 1;
+
+ /**
+ * The feature id for the '<em><b>Kind</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTAINER_RULE__KIND = 2;
+
+ /**
+ * The number of structural features of the '<em>Container Rule</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONTAINER_RULE_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.ConfigOptionImpl <em>Config Option</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ConfigOptionImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getConfigOption()
+ * @generated
+ */
+ int CONFIG_OPTION = 17;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONFIG_OPTION__BASE_CLASS = 0;
+
+ /**
+ * The number of structural features of the '<em>Config Option</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONFIG_OPTION_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.PortImpl <em>Port</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.PortImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getPort()
+ * @generated
+ */
+ int PORT = 19;
+
+ /**
+ * The feature id for the '<em><b>Configuration</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PORT__CONFIGURATION = CONFIGURABLE_ELEMENT_INSTANCE__CONFIGURATION;
+
+ /**
+ * The feature id for the '<em><b>Base Port</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PORT__BASE_PORT = CONFIGURABLE_ELEMENT_INSTANCE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Kind</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PORT__KIND = CONFIGURABLE_ELEMENT_INSTANCE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PORT__TYPE = CONFIGURABLE_ELEMENT_INSTANCE_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Port</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PORT_FEATURE_COUNT = CONFIGURABLE_ELEMENT_INSTANCE_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.TemplatePortImpl <em>Template Port</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.TemplatePortImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getTemplatePort()
+ * @generated
+ */
+ int TEMPLATE_PORT = 18;
+
+ /**
+ * The feature id for the '<em><b>Configuration</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPLATE_PORT__CONFIGURATION = PORT__CONFIGURATION;
+
+ /**
+ * The feature id for the '<em><b>Base Port</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPLATE_PORT__BASE_PORT = PORT__BASE_PORT;
+
+ /**
+ * The feature id for the '<em><b>Kind</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPLATE_PORT__KIND = PORT__KIND;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPLATE_PORT__TYPE = PORT__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Bound Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPLATE_PORT__BOUND_TYPE = PORT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Template Port</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPLATE_PORT_FEATURE_COUNT = PORT_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.PortKindImpl <em>Port Kind</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.PortKindImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getPortKind()
+ * @generated
+ */
+ int PORT_KIND = 20;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PORT_KIND__BASE_CLASS = 0;
+
+ /**
+ * The feature id for the '<em><b>Provided Interface</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PORT_KIND__PROVIDED_INTERFACE = 1;
+
+ /**
+ * The feature id for the '<em><b>Required Interface</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PORT_KIND__REQUIRED_INTERFACE = 2;
+
+ /**
+ * The feature id for the '<em><b>Extended Port</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PORT_KIND__EXTENDED_PORT = 3;
+
+ /**
+ * The number of structural features of the '<em>Port Kind</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PORT_KIND_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.DeploymentPlanImpl <em>Deployment Plan</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.DeploymentPlanImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getDeploymentPlan()
+ * @generated
+ */
+ int DEPLOYMENT_PLAN = 21;
+
+ /**
+ * The feature id for the '<em><b>Main Instance</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DEPLOYMENT_PLAN__MAIN_INSTANCE = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Package</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DEPLOYMENT_PLAN__BASE_PACKAGE = 1;
+
+ /**
+ * The number of structural features of the '<em>Deployment Plan</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DEPLOYMENT_PLAN_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.DerivedElementImpl <em>Derived Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.DerivedElementImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getDerivedElement()
+ * @generated
+ */
+ int DERIVED_ELEMENT = 22;
+
+ /**
+ * The feature id for the '<em><b>Base Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DERIVED_ELEMENT__BASE_ELEMENT = 0;
+
+ /**
+ * The feature id for the '<em><b>Source</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DERIVED_ELEMENT__SOURCE = 1;
+
+ /**
+ * The number of structural features of the '<em>Derived Element</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DERIVED_ELEMENT_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.CompImplTemplateImpl <em>Comp Impl Template</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.CompImplTemplateImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getCompImplTemplate()
+ * @generated
+ */
+ int COMP_IMPL_TEMPLATE = 23;
+
+ /**
+ * The feature id for the '<em><b>Template Defs</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMP_IMPL_TEMPLATE__TEMPLATE_DEFS = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMP_IMPL_TEMPLATE__BASE_CLASS = 1;
+
+ /**
+ * The number of structural features of the '<em>Comp Impl Template</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMP_IMPL_TEMPLATE_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.ImplementationPropertiesImpl <em>Implementation Properties</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ImplementationPropertiesImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getImplementationProperties()
+ * @generated
+ */
+ int IMPLEMENTATION_PROPERTIES = 24;
+
+ /**
+ * The feature id for the '<em><b>Size RAM</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPLEMENTATION_PROPERTIES__SIZE_RAM = 0;
+
+ /**
+ * The feature id for the '<em><b>Supported OS</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPLEMENTATION_PROPERTIES__SUPPORTED_OS = 1;
+
+ /**
+ * The feature id for the '<em><b>Arch</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPLEMENTATION_PROPERTIES__ARCH = 2;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPLEMENTATION_PROPERTIES__BASE_CLASS = 3;
+
+ /**
+ * The feature id for the '<em><b>Size ROM</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPLEMENTATION_PROPERTIES__SIZE_ROM = 4;
+
+ /**
+ * The feature id for the '<em><b>Supported Target Arch</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPLEMENTATION_PROPERTIES__SUPPORTED_TARGET_ARCH = 5;
+
+ /**
+ * The number of structural features of the '<em>Implementation Properties</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPLEMENTATION_PROPERTIES_FEATURE_COUNT = 6;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.OperatingSystemImpl <em>Operating System</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.OperatingSystemImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getOperatingSystem()
+ * @generated
+ */
+ int OPERATING_SYSTEM = 25;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OPERATING_SYSTEM__BASE_CLASS = 0;
+
+ /**
+ * The number of structural features of the '<em>Operating System</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OPERATING_SYSTEM_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.TargetArchitectureImpl <em>Target Architecture</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.TargetArchitectureImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getTargetArchitecture()
+ * @generated
+ */
+ int TARGET_ARCHITECTURE = 26;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TARGET_ARCHITECTURE__BASE_CLASS = 0;
+
+ /**
+ * The number of structural features of the '<em>Target Architecture</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TARGET_ARCHITECTURE_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.ConfigurationImpl <em>Configuration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ConfigurationImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getConfiguration()
+ * @generated
+ */
+ int CONFIGURATION = 27;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONFIGURATION__BASE_CLASS = 0;
+
+ /**
+ * The feature id for the '<em><b>Config Options</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONFIGURATION__CONFIG_OPTIONS = 1;
+
+ /**
+ * The feature id for the '<em><b>Deployment Plan</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONFIGURATION__DEPLOYMENT_PLAN = 2;
+
+ /**
+ * The number of structural features of the '<em>Configuration</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONFIGURATION_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.InterceptionRuleImpl <em>Interception Rule</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.InterceptionRuleImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getInterceptionRule()
+ * @generated
+ */
+ int INTERCEPTION_RULE = 28;
+
+ /**
+ * The feature id for the '<em><b>Interception Kind</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTERCEPTION_RULE__INTERCEPTION_KIND = 0;
+
+ /**
+ * The feature id for the '<em><b>Interception Set</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTERCEPTION_RULE__INTERCEPTION_SET = 1;
+
+ /**
+ * The feature id for the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTERCEPTION_RULE__BASE_PROPERTY = 2;
+
+ /**
+ * The feature id for the '<em><b>Base Operation</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTERCEPTION_RULE__BASE_OPERATION = 3;
+
+ /**
+ * The number of structural features of the '<em>Interception Rule</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTERCEPTION_RULE_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.TargetImpl <em>Target</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.TargetImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getTarget()
+ * @generated
+ */
+ int TARGET = 29;
+
+ /**
+ * The feature id for the '<em><b>Target Arch</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TARGET__TARGET_ARCH = 0;
+
+ /**
+ * The feature id for the '<em><b>Options</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TARGET__OPTIONS = 1;
+
+ /**
+ * The feature id for the '<em><b>Base Node</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TARGET__BASE_NODE = 2;
+
+ /**
+ * The feature id for the '<em><b>Used OS</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TARGET__USED_OS = 3;
+
+ /**
+ * The feature id for the '<em><b>Avail RAM</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TARGET__AVAIL_RAM = 4;
+
+ /**
+ * The feature id for the '<em><b>Avail ROM</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TARGET__AVAIL_ROM = 5;
+
+ /**
+ * The feature id for the '<em><b>Compiler</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TARGET__COMPILER = 6;
+
+ /**
+ * The number of structural features of the '<em>Target</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TARGET_FEATURE_COUNT = 7;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.CompilerChainImpl <em>Compiler Chain</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.CompilerChainImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getCompilerChain()
+ * @generated
+ */
+ int COMPILER_CHAIN = 30;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPILER_CHAIN__BASE_CLASS = 0;
+
+ /**
+ * The number of structural features of the '<em>Compiler Chain</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPILER_CHAIN_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.FragmentImpl <em>Fragment</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.FragmentImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getFragment()
+ * @generated
+ */
+ int FRAGMENT = 31;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FRAGMENT__BASE_CLASS = 0;
+
+ /**
+ * The number of structural features of the '<em>Fragment</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FRAGMENT_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.CopyAttributeValueImpl <em>Copy Attribute Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.CopyAttributeValueImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getCopyAttributeValue()
+ * @generated
+ */
+ int COPY_ATTRIBUTE_VALUE = 32;
+
+ /**
+ * The feature id for the '<em><b>Source</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COPY_ATTRIBUTE_VALUE__SOURCE = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COPY_ATTRIBUTE_VALUE__BASE_PROPERTY = 1;
+
+ /**
+ * The number of structural features of the '<em>Copy Attribute Value</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COPY_ATTRIBUTE_VALUE_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.AutoIndexImpl <em>Auto Index</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.AutoIndexImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getAutoIndex()
+ * @generated
+ */
+ int AUTO_INDEX = 33;
+
+ /**
+ * The feature id for the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AUTO_INDEX__BASE_PROPERTY = 0;
+
+ /**
+ * The number of structural features of the '<em>Auto Index</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AUTO_INDEX_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.AutoIndexPerNodeImpl <em>Auto Index Per Node</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.AutoIndexPerNodeImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getAutoIndexPerNode()
+ * @generated
+ */
+ int AUTO_INDEX_PER_NODE = 34;
+
+ /**
+ * The feature id for the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AUTO_INDEX_PER_NODE__BASE_PROPERTY = AUTO_INDEX__BASE_PROPERTY;
+
+ /**
+ * The number of structural features of the '<em>Auto Index Per Node</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AUTO_INDEX_PER_NODE_FEATURE_COUNT = AUTO_INDEX_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.InitPrecedenceImpl <em>Init Precedence</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.InitPrecedenceImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getInitPrecedence()
+ * @generated
+ */
+ int INIT_PRECEDENCE = 35;
+
+ /**
+ * The feature id for the '<em><b>Invoke After</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INIT_PRECEDENCE__INVOKE_AFTER = 0;
+
+ /**
+ * The feature id for the '<em><b>Invoke Before</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INIT_PRECEDENCE__INVOKE_BEFORE = 1;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INIT_PRECEDENCE__BASE_CLASS = 2;
+
+ /**
+ * The number of structural features of the '<em>Init Precedence</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INIT_PRECEDENCE_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.ConnectorConfigurationImpl <em>Connector Configuration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ConnectorConfigurationImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getConnectorConfiguration()
+ * @generated
+ */
+ int CONNECTOR_CONFIGURATION = 36;
+
+ /**
+ * The feature id for the '<em><b>Base Slot</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONNECTOR_CONFIGURATION__BASE_SLOT = 0;
+
+ /**
+ * The feature id for the '<em><b>Connector</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONNECTOR_CONFIGURATION__CONNECTOR = 1;
+
+ /**
+ * The number of structural features of the '<em>Connector Configuration</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONNECTOR_CONFIGURATION_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.BindTemplateImpl <em>Bind Template</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.BindTemplateImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getBindTemplate()
+ * @generated
+ */
+ int BIND_TEMPLATE = 37;
+
+ /**
+ * The feature id for the '<em><b>Actual</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BIND_TEMPLATE__ACTUAL = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BIND_TEMPLATE__BASE_PROPERTY = 1;
+
+ /**
+ * The number of structural features of the '<em>Bind Template</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BIND_TEMPLATE_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.ContainerRuleKind <em>Container Rule Kind</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.ContainerRuleKind
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getContainerRuleKind()
+ * @generated
+ */
+ int CONTAINER_RULE_KIND = 38;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.InterceptionKind <em>Interception Kind</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.InterceptionKind
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getInterceptionKind()
+ * @generated
+ */
+ int INTERCEPTION_KIND = 39;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.Template <em>Template</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Template</em>'.
+ * @see org.eclipse.papyrus.FCM.Template
+ * @generated
+ */
+ EClass getTemplate();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.Template#getBase_Element <em>Base Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Element</em>'.
+ * @see org.eclipse.papyrus.FCM.Template#getBase_Element()
+ * @see #getTemplate()
+ * @generated
+ */
+ EReference getTemplate_Base_Element();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.Template#getHelper <em>Helper</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Helper</em>'.
+ * @see org.eclipse.papyrus.FCM.Template#getHelper()
+ * @see #getTemplate()
+ * @generated
+ */
+ EReference getTemplate_Helper();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.BindingHelper <em>Binding Helper</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Binding Helper</em>'.
+ * @see org.eclipse.papyrus.FCM.BindingHelper
+ * @generated
+ */
+ EClass getBindingHelper();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.BindingHelper#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.BindingHelper#getBase_Class()
+ * @see #getBindingHelper()
+ * @generated
+ */
+ EReference getBindingHelper_Base_Class();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.ConfigurationProperty <em>Configuration Property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Configuration Property</em>'.
+ * @see org.eclipse.papyrus.FCM.ConfigurationProperty
+ * @generated
+ */
+ EClass getConfigurationProperty();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.ConfigurationProperty#getBase_Property <em>Base Property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Property</em>'.
+ * @see org.eclipse.papyrus.FCM.ConfigurationProperty#getBase_Property()
+ * @see #getConfigurationProperty()
+ * @generated
+ */
+ EReference getConfigurationProperty_Base_Property();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.ImplementationGroup <em>Implementation Group</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Implementation Group</em>'.
+ * @see org.eclipse.papyrus.FCM.ImplementationGroup
+ * @generated
+ */
+ EClass getImplementationGroup();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.ImplementationGroup#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.ImplementationGroup#getBase_Class()
+ * @see #getImplementationGroup()
+ * @generated
+ */
+ EReference getImplementationGroup_Base_Class();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.Assembly <em>Assembly</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Assembly</em>'.
+ * @see org.eclipse.papyrus.FCM.Assembly
+ * @generated
+ */
+ EClass getAssembly();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.Assembly#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.Assembly#getBase_Class()
+ * @see #getAssembly()
+ * @generated
+ */
+ EReference getAssembly_Base_Class();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.Flatten <em>Flatten</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Flatten</em>'.
+ * @see org.eclipse.papyrus.FCM.Flatten
+ * @generated
+ */
+ EClass getFlatten();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.Flatten#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.Flatten#getBase_Class()
+ * @see #getFlatten()
+ * @generated
+ */
+ EReference getFlatten_Base_Class();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.CompToOOmapping <em>Comp To OOmapping</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Comp To OOmapping</em>'.
+ * @see org.eclipse.papyrus.FCM.CompToOOmapping
+ * @generated
+ */
+ EClass getCompToOOmapping();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.CompToOOmapping#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.CompToOOmapping#getBase_Class()
+ * @see #getCompToOOmapping()
+ * @generated
+ */
+ EReference getCompToOOmapping_Base_Class();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.ProgLanguage <em>Prog Language</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Prog Language</em>'.
+ * @see org.eclipse.papyrus.FCM.ProgLanguage
+ * @generated
+ */
+ EClass getProgLanguage();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.ProgLanguage#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.ProgLanguage#getBase_Class()
+ * @see #getProgLanguage()
+ * @generated
+ */
+ EReference getProgLanguage_Base_Class();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.CodeGenOptions <em>Code Gen Options</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Code Gen Options</em>'.
+ * @see org.eclipse.papyrus.FCM.CodeGenOptions
+ * @generated
+ */
+ EClass getCodeGenOptions();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.CodeGenOptions#getBase_Package <em>Base Package</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Package</em>'.
+ * @see org.eclipse.papyrus.FCM.CodeGenOptions#getBase_Package()
+ * @see #getCodeGenOptions()
+ * @generated
+ */
+ EReference getCodeGenOptions_Base_Package();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.CodeGenOptions#getCompToOOmapping <em>Comp To OOmapping</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Comp To OOmapping</em>'.
+ * @see org.eclipse.papyrus.FCM.CodeGenOptions#getCompToOOmapping()
+ * @see #getCodeGenOptions()
+ * @generated
+ */
+ EReference getCodeGenOptions_CompToOOmapping();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.CodeGenOptions#getProgLanguage <em>Prog Language</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Prog Language</em>'.
+ * @see org.eclipse.papyrus.FCM.CodeGenOptions#getProgLanguage()
+ * @see #getCodeGenOptions()
+ * @generated
+ */
+ EReference getCodeGenOptions_ProgLanguage();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.InteractionComponent <em>Interaction Component</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Interaction Component</em>'.
+ * @see org.eclipse.papyrus.FCM.InteractionComponent
+ * @generated
+ */
+ EClass getInteractionComponent();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.FCM.InteractionComponent#isForDistribution <em>For Distribution</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>For Distribution</em>'.
+ * @see org.eclipse.papyrus.FCM.InteractionComponent#isForDistribution()
+ * @see #getInteractionComponent()
+ * @generated
+ */
+ EAttribute getInteractionComponent_ForDistribution();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.InteractionComponent#getConnectionPattern <em>Connection Pattern</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Connection Pattern</em>'.
+ * @see org.eclipse.papyrus.FCM.InteractionComponent#getConnectionPattern()
+ * @see #getInteractionComponent()
+ * @generated
+ */
+ EReference getInteractionComponent_ConnectionPattern();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.InteractionComponent#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.InteractionComponent#getBase_Class()
+ * @see #getInteractionComponent()
+ * @generated
+ */
+ EReference getInteractionComponent_Base_Class();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.Singleton <em>Singleton</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Singleton</em>'.
+ * @see org.eclipse.papyrus.FCM.Singleton
+ * @generated
+ */
+ EClass getSingleton();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.Singleton#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.Singleton#getBase_Class()
+ * @see #getSingleton()
+ * @generated
+ */
+ EReference getSingleton_Base_Class();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.Connector <em>Connector</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Connector</em>'.
+ * @see org.eclipse.papyrus.FCM.Connector
+ * @generated
+ */
+ EClass getConnector();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.Connector#getBase_Connector <em>Base Connector</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Connector</em>'.
+ * @see org.eclipse.papyrus.FCM.Connector#getBase_Connector()
+ * @see #getConnector()
+ * @generated
+ */
+ EReference getConnector_Base_Connector();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.Connector#getIc <em>Ic</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Ic</em>'.
+ * @see org.eclipse.papyrus.FCM.Connector#getIc()
+ * @see #getConnector()
+ * @generated
+ */
+ EReference getConnector_Ic();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.Connector#getBase_Property <em>Base Property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Property</em>'.
+ * @see org.eclipse.papyrus.FCM.Connector#getBase_Property()
+ * @see #getConnector()
+ * @generated
+ */
+ EReference getConnector_Base_Property();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.ConfigurableElementInstance <em>Configurable Element Instance</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Configurable Element Instance</em>'.
+ * @see org.eclipse.papyrus.FCM.ConfigurableElementInstance
+ * @generated
+ */
+ EClass getConfigurableElementInstance();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.ConfigurableElementInstance#getConfiguration <em>Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Configuration</em>'.
+ * @see org.eclipse.papyrus.FCM.ConfigurableElementInstance#getConfiguration()
+ * @see #getConfigurableElementInstance()
+ * @generated
+ */
+ EReference getConfigurableElementInstance_Configuration();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.UseInstanceConfigurator <em>Use Instance Configurator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Use Instance Configurator</em>'.
+ * @see org.eclipse.papyrus.FCM.UseInstanceConfigurator
+ * @generated
+ */
+ EClass getUseInstanceConfigurator();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.UseInstanceConfigurator#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.UseInstanceConfigurator#getBase_Class()
+ * @see #getUseInstanceConfigurator()
+ * @generated
+ */
+ EReference getUseInstanceConfigurator_Base_Class();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.UseInstanceConfigurator#getConfigurator <em>Configurator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Configurator</em>'.
+ * @see org.eclipse.papyrus.FCM.UseInstanceConfigurator#getConfigurator()
+ * @see #getUseInstanceConfigurator()
+ * @generated
+ */
+ EReference getUseInstanceConfigurator_Configurator();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.InstanceConfigurator <em>Instance Configurator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Instance Configurator</em>'.
+ * @see org.eclipse.papyrus.FCM.InstanceConfigurator
+ * @generated
+ */
+ EClass getInstanceConfigurator();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.InstanceConfigurator#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.InstanceConfigurator#getBase_Class()
+ * @see #getInstanceConfigurator()
+ * @generated
+ */
+ EReference getInstanceConfigurator_Base_Class();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.FCM.InstanceConfigurator#isOnNodeModel <em>On Node Model</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>On Node Model</em>'.
+ * @see org.eclipse.papyrus.FCM.InstanceConfigurator#isOnNodeModel()
+ * @see #getInstanceConfigurator()
+ * @generated
+ */
+ EAttribute getInstanceConfigurator_OnNodeModel();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.RuleApplication <em>Rule Application</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Rule Application</em>'.
+ * @see org.eclipse.papyrus.FCM.RuleApplication
+ * @generated
+ */
+ EClass getRuleApplication();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.RuleApplication#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.RuleApplication#getBase_Class()
+ * @see #getRuleApplication()
+ * @generated
+ */
+ EReference getRuleApplication_Base_Class();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.FCM.RuleApplication#getContainerRule <em>Container Rule</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Container Rule</em>'.
+ * @see org.eclipse.papyrus.FCM.RuleApplication#getContainerRule()
+ * @see #getRuleApplication()
+ * @generated
+ */
+ EReference getRuleApplication_ContainerRule();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.RuleApplication#getBase_Package <em>Base Package</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Package</em>'.
+ * @see org.eclipse.papyrus.FCM.RuleApplication#getBase_Package()
+ * @see #getRuleApplication()
+ * @generated
+ */
+ EReference getRuleApplication_Base_Package();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.ContainerRule <em>Container Rule</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Container Rule</em>'.
+ * @see org.eclipse.papyrus.FCM.ContainerRule
+ * @generated
+ */
+ EClass getContainerRule();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.ContainerRule#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.ContainerRule#getBase_Class()
+ * @see #getContainerRule()
+ * @generated
+ */
+ EReference getContainerRule_Base_Class();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.FCM.ContainerRule#getForConfig <em>For Config</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>For Config</em>'.
+ * @see org.eclipse.papyrus.FCM.ContainerRule#getForConfig()
+ * @see #getContainerRule()
+ * @generated
+ */
+ EReference getContainerRule_ForConfig();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.FCM.ContainerRule#getKind <em>Kind</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Kind</em>'.
+ * @see org.eclipse.papyrus.FCM.ContainerRule#getKind()
+ * @see #getContainerRule()
+ * @generated
+ */
+ EAttribute getContainerRule_Kind();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.ConfigOption <em>Config Option</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Config Option</em>'.
+ * @see org.eclipse.papyrus.FCM.ConfigOption
+ * @generated
+ */
+ EClass getConfigOption();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.ConfigOption#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.ConfigOption#getBase_Class()
+ * @see #getConfigOption()
+ * @generated
+ */
+ EReference getConfigOption_Base_Class();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.TemplatePort <em>Template Port</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Template Port</em>'.
+ * @see org.eclipse.papyrus.FCM.TemplatePort
+ * @generated
+ */
+ EClass getTemplatePort();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.TemplatePort#getBoundType <em>Bound Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Bound Type</em>'.
+ * @see org.eclipse.papyrus.FCM.TemplatePort#getBoundType()
+ * @see #getTemplatePort()
+ * @generated
+ */
+ EReference getTemplatePort_BoundType();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.Port <em>Port</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Port</em>'.
+ * @see org.eclipse.papyrus.FCM.Port
+ * @generated
+ */
+ EClass getPort();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.Port#getBase_Port <em>Base Port</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Port</em>'.
+ * @see org.eclipse.papyrus.FCM.Port#getBase_Port()
+ * @see #getPort()
+ * @generated
+ */
+ EReference getPort_Base_Port();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.Port#getKind <em>Kind</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Kind</em>'.
+ * @see org.eclipse.papyrus.FCM.Port#getKind()
+ * @see #getPort()
+ * @generated
+ */
+ EReference getPort_Kind();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.Port#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Type</em>'.
+ * @see org.eclipse.papyrus.FCM.Port#getType()
+ * @see #getPort()
+ * @generated
+ */
+ EReference getPort_Type();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.PortKind <em>Port Kind</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Port Kind</em>'.
+ * @see org.eclipse.papyrus.FCM.PortKind
+ * @generated
+ */
+ EClass getPortKind();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.PortKind#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.PortKind#getBase_Class()
+ * @see #getPortKind()
+ * @generated
+ */
+ EReference getPortKind_Base_Class();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.PortKind#getProvidedInterface <em>Provided Interface</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Provided Interface</em>'.
+ * @see org.eclipse.papyrus.FCM.PortKind#getProvidedInterface()
+ * @see #getPortKind()
+ * @generated
+ */
+ EReference getPortKind_ProvidedInterface();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.PortKind#getRequiredInterface <em>Required Interface</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Required Interface</em>'.
+ * @see org.eclipse.papyrus.FCM.PortKind#getRequiredInterface()
+ * @see #getPortKind()
+ * @generated
+ */
+ EReference getPortKind_RequiredInterface();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.FCM.PortKind#isExtendedPort <em>Extended Port</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Extended Port</em>'.
+ * @see org.eclipse.papyrus.FCM.PortKind#isExtendedPort()
+ * @see #getPortKind()
+ * @generated
+ */
+ EAttribute getPortKind_ExtendedPort();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.DeploymentPlan <em>Deployment Plan</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Deployment Plan</em>'.
+ * @see org.eclipse.papyrus.FCM.DeploymentPlan
+ * @generated
+ */
+ EClass getDeploymentPlan();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.DeploymentPlan#getMainInstance <em>Main Instance</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Main Instance</em>'.
+ * @see org.eclipse.papyrus.FCM.DeploymentPlan#getMainInstance()
+ * @see #getDeploymentPlan()
+ * @generated
+ */
+ EReference getDeploymentPlan_MainInstance();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.DeploymentPlan#getBase_Package <em>Base Package</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Package</em>'.
+ * @see org.eclipse.papyrus.FCM.DeploymentPlan#getBase_Package()
+ * @see #getDeploymentPlan()
+ * @generated
+ */
+ EReference getDeploymentPlan_Base_Package();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.DerivedElement <em>Derived Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Derived Element</em>'.
+ * @see org.eclipse.papyrus.FCM.DerivedElement
+ * @generated
+ */
+ EClass getDerivedElement();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.DerivedElement#getBase_Element <em>Base Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Element</em>'.
+ * @see org.eclipse.papyrus.FCM.DerivedElement#getBase_Element()
+ * @see #getDerivedElement()
+ * @generated
+ */
+ EReference getDerivedElement_Base_Element();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.DerivedElement#getSource <em>Source</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Source</em>'.
+ * @see org.eclipse.papyrus.FCM.DerivedElement#getSource()
+ * @see #getDerivedElement()
+ * @generated
+ */
+ EReference getDerivedElement_Source();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.CompImplTemplate <em>Comp Impl Template</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Comp Impl Template</em>'.
+ * @see org.eclipse.papyrus.FCM.CompImplTemplate
+ * @generated
+ */
+ EClass getCompImplTemplate();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.FCM.CompImplTemplate#getTemplateDefs <em>Template Defs</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Template Defs</em>'.
+ * @see org.eclipse.papyrus.FCM.CompImplTemplate#getTemplateDefs()
+ * @see #getCompImplTemplate()
+ * @generated
+ */
+ EAttribute getCompImplTemplate_TemplateDefs();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.CompImplTemplate#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.CompImplTemplate#getBase_Class()
+ * @see #getCompImplTemplate()
+ * @generated
+ */
+ EReference getCompImplTemplate_Base_Class();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.ImplementationProperties <em>Implementation Properties</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Implementation Properties</em>'.
+ * @see org.eclipse.papyrus.FCM.ImplementationProperties
+ * @generated
+ */
+ EClass getImplementationProperties();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.FCM.ImplementationProperties#getSizeRAM <em>Size RAM</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Size RAM</em>'.
+ * @see org.eclipse.papyrus.FCM.ImplementationProperties#getSizeRAM()
+ * @see #getImplementationProperties()
+ * @generated
+ */
+ EAttribute getImplementationProperties_SizeRAM();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.FCM.ImplementationProperties#getSupportedOS <em>Supported OS</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Supported OS</em>'.
+ * @see org.eclipse.papyrus.FCM.ImplementationProperties#getSupportedOS()
+ * @see #getImplementationProperties()
+ * @generated
+ */
+ EReference getImplementationProperties_SupportedOS();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.FCM.ImplementationProperties#getArch <em>Arch</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Arch</em>'.
+ * @see org.eclipse.papyrus.FCM.ImplementationProperties#getArch()
+ * @see #getImplementationProperties()
+ * @generated
+ */
+ EReference getImplementationProperties_Arch();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.ImplementationProperties#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.ImplementationProperties#getBase_Class()
+ * @see #getImplementationProperties()
+ * @generated
+ */
+ EReference getImplementationProperties_Base_Class();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.FCM.ImplementationProperties#getSizeROM <em>Size ROM</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Size ROM</em>'.
+ * @see org.eclipse.papyrus.FCM.ImplementationProperties#getSizeROM()
+ * @see #getImplementationProperties()
+ * @generated
+ */
+ EAttribute getImplementationProperties_SizeROM();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.ImplementationProperties#getSupportedTargetArch <em>Supported Target Arch</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Supported Target Arch</em>'.
+ * @see org.eclipse.papyrus.FCM.ImplementationProperties#getSupportedTargetArch()
+ * @see #getImplementationProperties()
+ * @generated
+ */
+ EReference getImplementationProperties_SupportedTargetArch();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.OperatingSystem <em>Operating System</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Operating System</em>'.
+ * @see org.eclipse.papyrus.FCM.OperatingSystem
+ * @generated
+ */
+ EClass getOperatingSystem();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.OperatingSystem#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.OperatingSystem#getBase_Class()
+ * @see #getOperatingSystem()
+ * @generated
+ */
+ EReference getOperatingSystem_Base_Class();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.TargetArchitecture <em>Target Architecture</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Target Architecture</em>'.
+ * @see org.eclipse.papyrus.FCM.TargetArchitecture
+ * @generated
+ */
+ EClass getTargetArchitecture();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.TargetArchitecture#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.TargetArchitecture#getBase_Class()
+ * @see #getTargetArchitecture()
+ * @generated
+ */
+ EReference getTargetArchitecture_Base_Class();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.Configuration <em>Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Configuration</em>'.
+ * @see org.eclipse.papyrus.FCM.Configuration
+ * @generated
+ */
+ EClass getConfiguration();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.Configuration#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.Configuration#getBase_Class()
+ * @see #getConfiguration()
+ * @generated
+ */
+ EReference getConfiguration_Base_Class();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.FCM.Configuration#getConfigOptions <em>Config Options</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Config Options</em>'.
+ * @see org.eclipse.papyrus.FCM.Configuration#getConfigOptions()
+ * @see #getConfiguration()
+ * @generated
+ */
+ EReference getConfiguration_ConfigOptions();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.Configuration#getDeploymentPlan <em>Deployment Plan</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Deployment Plan</em>'.
+ * @see org.eclipse.papyrus.FCM.Configuration#getDeploymentPlan()
+ * @see #getConfiguration()
+ * @generated
+ */
+ EReference getConfiguration_DeploymentPlan();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.InterceptionRule <em>Interception Rule</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Interception Rule</em>'.
+ * @see org.eclipse.papyrus.FCM.InterceptionRule
+ * @generated
+ */
+ EClass getInterceptionRule();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.FCM.InterceptionRule#getInterceptionKind <em>Interception Kind</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Interception Kind</em>'.
+ * @see org.eclipse.papyrus.FCM.InterceptionRule#getInterceptionKind()
+ * @see #getInterceptionRule()
+ * @generated
+ */
+ EAttribute getInterceptionRule_InterceptionKind();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.FCM.InterceptionRule#getInterceptionSet <em>Interception Set</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Interception Set</em>'.
+ * @see org.eclipse.papyrus.FCM.InterceptionRule#getInterceptionSet()
+ * @see #getInterceptionRule()
+ * @generated
+ */
+ EReference getInterceptionRule_InterceptionSet();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.InterceptionRule#getBase_Property <em>Base Property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Property</em>'.
+ * @see org.eclipse.papyrus.FCM.InterceptionRule#getBase_Property()
+ * @see #getInterceptionRule()
+ * @generated
+ */
+ EReference getInterceptionRule_Base_Property();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.InterceptionRule#getBase_Operation <em>Base Operation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Operation</em>'.
+ * @see org.eclipse.papyrus.FCM.InterceptionRule#getBase_Operation()
+ * @see #getInterceptionRule()
+ * @generated
+ */
+ EReference getInterceptionRule_Base_Operation();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.Target <em>Target</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Target</em>'.
+ * @see org.eclipse.papyrus.FCM.Target
+ * @generated
+ */
+ EClass getTarget();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.Target#getTargetArch <em>Target Arch</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Target Arch</em>'.
+ * @see org.eclipse.papyrus.FCM.Target#getTargetArch()
+ * @see #getTarget()
+ * @generated
+ */
+ EReference getTarget_TargetArch();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.FCM.Target#getOptions <em>Options</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Options</em>'.
+ * @see org.eclipse.papyrus.FCM.Target#getOptions()
+ * @see #getTarget()
+ * @generated
+ */
+ EReference getTarget_Options();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.Target#getBase_Node <em>Base Node</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Node</em>'.
+ * @see org.eclipse.papyrus.FCM.Target#getBase_Node()
+ * @see #getTarget()
+ * @generated
+ */
+ EReference getTarget_Base_Node();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.Target#getUsedOS <em>Used OS</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Used OS</em>'.
+ * @see org.eclipse.papyrus.FCM.Target#getUsedOS()
+ * @see #getTarget()
+ * @generated
+ */
+ EReference getTarget_UsedOS();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.FCM.Target#getAvailRAM <em>Avail RAM</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Avail RAM</em>'.
+ * @see org.eclipse.papyrus.FCM.Target#getAvailRAM()
+ * @see #getTarget()
+ * @generated
+ */
+ EAttribute getTarget_AvailRAM();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.FCM.Target#getAvailROM <em>Avail ROM</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Avail ROM</em>'.
+ * @see org.eclipse.papyrus.FCM.Target#getAvailROM()
+ * @see #getTarget()
+ * @generated
+ */
+ EAttribute getTarget_AvailROM();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.Target#getCompiler <em>Compiler</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Compiler</em>'.
+ * @see org.eclipse.papyrus.FCM.Target#getCompiler()
+ * @see #getTarget()
+ * @generated
+ */
+ EReference getTarget_Compiler();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.CompilerChain <em>Compiler Chain</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Compiler Chain</em>'.
+ * @see org.eclipse.papyrus.FCM.CompilerChain
+ * @generated
+ */
+ EClass getCompilerChain();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.CompilerChain#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.CompilerChain#getBase_Class()
+ * @see #getCompilerChain()
+ * @generated
+ */
+ EReference getCompilerChain_Base_Class();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.Fragment <em>Fragment</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Fragment</em>'.
+ * @see org.eclipse.papyrus.FCM.Fragment
+ * @generated
+ */
+ EClass getFragment();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.Fragment#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.Fragment#getBase_Class()
+ * @see #getFragment()
+ * @generated
+ */
+ EReference getFragment_Base_Class();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.CopyAttributeValue <em>Copy Attribute Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Copy Attribute Value</em>'.
+ * @see org.eclipse.papyrus.FCM.CopyAttributeValue
+ * @generated
+ */
+ EClass getCopyAttributeValue();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.CopyAttributeValue#getSource <em>Source</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Source</em>'.
+ * @see org.eclipse.papyrus.FCM.CopyAttributeValue#getSource()
+ * @see #getCopyAttributeValue()
+ * @generated
+ */
+ EReference getCopyAttributeValue_Source();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.CopyAttributeValue#getBase_Property <em>Base Property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Property</em>'.
+ * @see org.eclipse.papyrus.FCM.CopyAttributeValue#getBase_Property()
+ * @see #getCopyAttributeValue()
+ * @generated
+ */
+ EReference getCopyAttributeValue_Base_Property();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.AutoIndex <em>Auto Index</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Auto Index</em>'.
+ * @see org.eclipse.papyrus.FCM.AutoIndex
+ * @generated
+ */
+ EClass getAutoIndex();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.AutoIndex#getBase_Property <em>Base Property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Property</em>'.
+ * @see org.eclipse.papyrus.FCM.AutoIndex#getBase_Property()
+ * @see #getAutoIndex()
+ * @generated
+ */
+ EReference getAutoIndex_Base_Property();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.AutoIndexPerNode <em>Auto Index Per Node</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Auto Index Per Node</em>'.
+ * @see org.eclipse.papyrus.FCM.AutoIndexPerNode
+ * @generated
+ */
+ EClass getAutoIndexPerNode();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.InitPrecedence <em>Init Precedence</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Init Precedence</em>'.
+ * @see org.eclipse.papyrus.FCM.InitPrecedence
+ * @generated
+ */
+ EClass getInitPrecedence();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.FCM.InitPrecedence#getInvokeAfter <em>Invoke After</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Invoke After</em>'.
+ * @see org.eclipse.papyrus.FCM.InitPrecedence#getInvokeAfter()
+ * @see #getInitPrecedence()
+ * @generated
+ */
+ EReference getInitPrecedence_InvokeAfter();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.FCM.InitPrecedence#getInvokeBefore <em>Invoke Before</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Invoke Before</em>'.
+ * @see org.eclipse.papyrus.FCM.InitPrecedence#getInvokeBefore()
+ * @see #getInitPrecedence()
+ * @generated
+ */
+ EReference getInitPrecedence_InvokeBefore();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.InitPrecedence#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.FCM.InitPrecedence#getBase_Class()
+ * @see #getInitPrecedence()
+ * @generated
+ */
+ EReference getInitPrecedence_Base_Class();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.ConnectorConfiguration <em>Connector Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Connector Configuration</em>'.
+ * @see org.eclipse.papyrus.FCM.ConnectorConfiguration
+ * @generated
+ */
+ EClass getConnectorConfiguration();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.ConnectorConfiguration#getBase_Slot <em>Base Slot</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Slot</em>'.
+ * @see org.eclipse.papyrus.FCM.ConnectorConfiguration#getBase_Slot()
+ * @see #getConnectorConfiguration()
+ * @generated
+ */
+ EReference getConnectorConfiguration_Base_Slot();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.ConnectorConfiguration#getConnector <em>Connector</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Connector</em>'.
+ * @see org.eclipse.papyrus.FCM.ConnectorConfiguration#getConnector()
+ * @see #getConnectorConfiguration()
+ * @generated
+ */
+ EReference getConnectorConfiguration_Connector();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.BindTemplate <em>Bind Template</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Bind Template</em>'.
+ * @see org.eclipse.papyrus.FCM.BindTemplate
+ * @generated
+ */
+ EClass getBindTemplate();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.FCM.BindTemplate#getActual <em>Actual</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Actual</em>'.
+ * @see org.eclipse.papyrus.FCM.BindTemplate#getActual()
+ * @see #getBindTemplate()
+ * @generated
+ */
+ EReference getBindTemplate_Actual();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.BindTemplate#getBase_Property <em>Base Property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Property</em>'.
+ * @see org.eclipse.papyrus.FCM.BindTemplate#getBase_Property()
+ * @see #getBindTemplate()
+ * @generated
+ */
+ EReference getBindTemplate_Base_Property();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.papyrus.FCM.ContainerRuleKind <em>Container Rule Kind</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Container Rule Kind</em>'.
+ * @see org.eclipse.papyrus.FCM.ContainerRuleKind
+ * @generated
+ */
+ EEnum getContainerRuleKind();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.papyrus.FCM.InterceptionKind <em>Interception Kind</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Interception Kind</em>'.
+ * @see org.eclipse.papyrus.FCM.InterceptionKind
+ * @generated
+ */
+ EEnum getInterceptionKind();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ FCMFactory getFCMFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.TemplateImpl <em>Template</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.TemplateImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getTemplate()
+ * @generated
+ */
+ EClass TEMPLATE = eINSTANCE.getTemplate();
+
+ /**
+ * The meta object literal for the '<em><b>Base Element</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TEMPLATE__BASE_ELEMENT = eINSTANCE.getTemplate_Base_Element();
+
+ /**
+ * The meta object literal for the '<em><b>Helper</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TEMPLATE__HELPER = eINSTANCE.getTemplate_Helper();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.BindingHelperImpl <em>Binding Helper</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.BindingHelperImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getBindingHelper()
+ * @generated
+ */
+ EClass BINDING_HELPER = eINSTANCE.getBindingHelper();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference BINDING_HELPER__BASE_CLASS = eINSTANCE.getBindingHelper_Base_Class();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.ConfigurationPropertyImpl <em>Configuration Property</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ConfigurationPropertyImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getConfigurationProperty()
+ * @generated
+ */
+ EClass CONFIGURATION_PROPERTY = eINSTANCE.getConfigurationProperty();
+
+ /**
+ * The meta object literal for the '<em><b>Base Property</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONFIGURATION_PROPERTY__BASE_PROPERTY = eINSTANCE.getConfigurationProperty_Base_Property();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.ImplementationGroupImpl <em>Implementation Group</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ImplementationGroupImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getImplementationGroup()
+ * @generated
+ */
+ EClass IMPLEMENTATION_GROUP = eINSTANCE.getImplementationGroup();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference IMPLEMENTATION_GROUP__BASE_CLASS = eINSTANCE.getImplementationGroup_Base_Class();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.AssemblyImpl <em>Assembly</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.AssemblyImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getAssembly()
+ * @generated
+ */
+ EClass ASSEMBLY = eINSTANCE.getAssembly();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ASSEMBLY__BASE_CLASS = eINSTANCE.getAssembly_Base_Class();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.FlattenImpl <em>Flatten</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.FlattenImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getFlatten()
+ * @generated
+ */
+ EClass FLATTEN = eINSTANCE.getFlatten();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FLATTEN__BASE_CLASS = eINSTANCE.getFlatten_Base_Class();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.CompToOOmappingImpl <em>Comp To OOmapping</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.CompToOOmappingImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getCompToOOmapping()
+ * @generated
+ */
+ EClass COMP_TO_OOMAPPING = eINSTANCE.getCompToOOmapping();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference COMP_TO_OOMAPPING__BASE_CLASS = eINSTANCE.getCompToOOmapping_Base_Class();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.ProgLanguageImpl <em>Prog Language</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ProgLanguageImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getProgLanguage()
+ * @generated
+ */
+ EClass PROG_LANGUAGE = eINSTANCE.getProgLanguage();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PROG_LANGUAGE__BASE_CLASS = eINSTANCE.getProgLanguage_Base_Class();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.CodeGenOptionsImpl <em>Code Gen Options</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.CodeGenOptionsImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getCodeGenOptions()
+ * @generated
+ */
+ EClass CODE_GEN_OPTIONS = eINSTANCE.getCodeGenOptions();
+
+ /**
+ * The meta object literal for the '<em><b>Base Package</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CODE_GEN_OPTIONS__BASE_PACKAGE = eINSTANCE.getCodeGenOptions_Base_Package();
+
+ /**
+ * The meta object literal for the '<em><b>Comp To OOmapping</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CODE_GEN_OPTIONS__COMP_TO_OOMAPPING = eINSTANCE.getCodeGenOptions_CompToOOmapping();
+
+ /**
+ * The meta object literal for the '<em><b>Prog Language</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CODE_GEN_OPTIONS__PROG_LANGUAGE = eINSTANCE.getCodeGenOptions_ProgLanguage();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.InteractionComponentImpl <em>Interaction Component</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.InteractionComponentImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getInteractionComponent()
+ * @generated
+ */
+ EClass INTERACTION_COMPONENT = eINSTANCE.getInteractionComponent();
+
+ /**
+ * The meta object literal for the '<em><b>For Distribution</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute INTERACTION_COMPONENT__FOR_DISTRIBUTION = eINSTANCE.getInteractionComponent_ForDistribution();
+
+ /**
+ * The meta object literal for the '<em><b>Connection Pattern</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference INTERACTION_COMPONENT__CONNECTION_PATTERN = eINSTANCE.getInteractionComponent_ConnectionPattern();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference INTERACTION_COMPONENT__BASE_CLASS = eINSTANCE.getInteractionComponent_Base_Class();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.SingletonImpl <em>Singleton</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.SingletonImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getSingleton()
+ * @generated
+ */
+ EClass SINGLETON = eINSTANCE.getSingleton();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SINGLETON__BASE_CLASS = eINSTANCE.getSingleton_Base_Class();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.ConnectorImpl <em>Connector</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ConnectorImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getConnector()
+ * @generated
+ */
+ EClass CONNECTOR = eINSTANCE.getConnector();
+
+ /**
+ * The meta object literal for the '<em><b>Base Connector</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONNECTOR__BASE_CONNECTOR = eINSTANCE.getConnector_Base_Connector();
+
+ /**
+ * The meta object literal for the '<em><b>Ic</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONNECTOR__IC = eINSTANCE.getConnector_Ic();
+
+ /**
+ * The meta object literal for the '<em><b>Base Property</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONNECTOR__BASE_PROPERTY = eINSTANCE.getConnector_Base_Property();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.ConfigurableElementInstanceImpl <em>Configurable Element Instance</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ConfigurableElementInstanceImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getConfigurableElementInstance()
+ * @generated
+ */
+ EClass CONFIGURABLE_ELEMENT_INSTANCE = eINSTANCE.getConfigurableElementInstance();
+
+ /**
+ * The meta object literal for the '<em><b>Configuration</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONFIGURABLE_ELEMENT_INSTANCE__CONFIGURATION = eINSTANCE.getConfigurableElementInstance_Configuration();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.UseInstanceConfiguratorImpl <em>Use Instance Configurator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.UseInstanceConfiguratorImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getUseInstanceConfigurator()
+ * @generated
+ */
+ EClass USE_INSTANCE_CONFIGURATOR = eINSTANCE.getUseInstanceConfigurator();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference USE_INSTANCE_CONFIGURATOR__BASE_CLASS = eINSTANCE.getUseInstanceConfigurator_Base_Class();
+
+ /**
+ * The meta object literal for the '<em><b>Configurator</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference USE_INSTANCE_CONFIGURATOR__CONFIGURATOR = eINSTANCE.getUseInstanceConfigurator_Configurator();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.InstanceConfiguratorImpl <em>Instance Configurator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.InstanceConfiguratorImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getInstanceConfigurator()
+ * @generated
+ */
+ EClass INSTANCE_CONFIGURATOR = eINSTANCE.getInstanceConfigurator();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference INSTANCE_CONFIGURATOR__BASE_CLASS = eINSTANCE.getInstanceConfigurator_Base_Class();
+
+ /**
+ * The meta object literal for the '<em><b>On Node Model</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute INSTANCE_CONFIGURATOR__ON_NODE_MODEL = eINSTANCE.getInstanceConfigurator_OnNodeModel();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.RuleApplicationImpl <em>Rule Application</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.RuleApplicationImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getRuleApplication()
+ * @generated
+ */
+ EClass RULE_APPLICATION = eINSTANCE.getRuleApplication();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference RULE_APPLICATION__BASE_CLASS = eINSTANCE.getRuleApplication_Base_Class();
+
+ /**
+ * The meta object literal for the '<em><b>Container Rule</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference RULE_APPLICATION__CONTAINER_RULE = eINSTANCE.getRuleApplication_ContainerRule();
+
+ /**
+ * The meta object literal for the '<em><b>Base Package</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference RULE_APPLICATION__BASE_PACKAGE = eINSTANCE.getRuleApplication_Base_Package();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.ContainerRuleImpl <em>Container Rule</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ContainerRuleImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getContainerRule()
+ * @generated
+ */
+ EClass CONTAINER_RULE = eINSTANCE.getContainerRule();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONTAINER_RULE__BASE_CLASS = eINSTANCE.getContainerRule_Base_Class();
+
+ /**
+ * The meta object literal for the '<em><b>For Config</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONTAINER_RULE__FOR_CONFIG = eINSTANCE.getContainerRule_ForConfig();
+
+ /**
+ * The meta object literal for the '<em><b>Kind</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CONTAINER_RULE__KIND = eINSTANCE.getContainerRule_Kind();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.ConfigOptionImpl <em>Config Option</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ConfigOptionImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getConfigOption()
+ * @generated
+ */
+ EClass CONFIG_OPTION = eINSTANCE.getConfigOption();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONFIG_OPTION__BASE_CLASS = eINSTANCE.getConfigOption_Base_Class();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.TemplatePortImpl <em>Template Port</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.TemplatePortImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getTemplatePort()
+ * @generated
+ */
+ EClass TEMPLATE_PORT = eINSTANCE.getTemplatePort();
+
+ /**
+ * The meta object literal for the '<em><b>Bound Type</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TEMPLATE_PORT__BOUND_TYPE = eINSTANCE.getTemplatePort_BoundType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.PortImpl <em>Port</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.PortImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getPort()
+ * @generated
+ */
+ EClass PORT = eINSTANCE.getPort();
+
+ /**
+ * The meta object literal for the '<em><b>Base Port</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PORT__BASE_PORT = eINSTANCE.getPort_Base_Port();
+
+ /**
+ * The meta object literal for the '<em><b>Kind</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PORT__KIND = eINSTANCE.getPort_Kind();
+
+ /**
+ * The meta object literal for the '<em><b>Type</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PORT__TYPE = eINSTANCE.getPort_Type();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.PortKindImpl <em>Port Kind</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.PortKindImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getPortKind()
+ * @generated
+ */
+ EClass PORT_KIND = eINSTANCE.getPortKind();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PORT_KIND__BASE_CLASS = eINSTANCE.getPortKind_Base_Class();
+
+ /**
+ * The meta object literal for the '<em><b>Provided Interface</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PORT_KIND__PROVIDED_INTERFACE = eINSTANCE.getPortKind_ProvidedInterface();
+
+ /**
+ * The meta object literal for the '<em><b>Required Interface</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PORT_KIND__REQUIRED_INTERFACE = eINSTANCE.getPortKind_RequiredInterface();
+
+ /**
+ * The meta object literal for the '<em><b>Extended Port</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PORT_KIND__EXTENDED_PORT = eINSTANCE.getPortKind_ExtendedPort();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.DeploymentPlanImpl <em>Deployment Plan</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.DeploymentPlanImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getDeploymentPlan()
+ * @generated
+ */
+ EClass DEPLOYMENT_PLAN = eINSTANCE.getDeploymentPlan();
+
+ /**
+ * The meta object literal for the '<em><b>Main Instance</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DEPLOYMENT_PLAN__MAIN_INSTANCE = eINSTANCE.getDeploymentPlan_MainInstance();
+
+ /**
+ * The meta object literal for the '<em><b>Base Package</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DEPLOYMENT_PLAN__BASE_PACKAGE = eINSTANCE.getDeploymentPlan_Base_Package();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.DerivedElementImpl <em>Derived Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.DerivedElementImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getDerivedElement()
+ * @generated
+ */
+ EClass DERIVED_ELEMENT = eINSTANCE.getDerivedElement();
+
+ /**
+ * The meta object literal for the '<em><b>Base Element</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DERIVED_ELEMENT__BASE_ELEMENT = eINSTANCE.getDerivedElement_Base_Element();
+
+ /**
+ * The meta object literal for the '<em><b>Source</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DERIVED_ELEMENT__SOURCE = eINSTANCE.getDerivedElement_Source();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.CompImplTemplateImpl <em>Comp Impl Template</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.CompImplTemplateImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getCompImplTemplate()
+ * @generated
+ */
+ EClass COMP_IMPL_TEMPLATE = eINSTANCE.getCompImplTemplate();
+
+ /**
+ * The meta object literal for the '<em><b>Template Defs</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute COMP_IMPL_TEMPLATE__TEMPLATE_DEFS = eINSTANCE.getCompImplTemplate_TemplateDefs();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference COMP_IMPL_TEMPLATE__BASE_CLASS = eINSTANCE.getCompImplTemplate_Base_Class();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.ImplementationPropertiesImpl <em>Implementation Properties</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ImplementationPropertiesImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getImplementationProperties()
+ * @generated
+ */
+ EClass IMPLEMENTATION_PROPERTIES = eINSTANCE.getImplementationProperties();
+
+ /**
+ * The meta object literal for the '<em><b>Size RAM</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute IMPLEMENTATION_PROPERTIES__SIZE_RAM = eINSTANCE.getImplementationProperties_SizeRAM();
+
+ /**
+ * The meta object literal for the '<em><b>Supported OS</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference IMPLEMENTATION_PROPERTIES__SUPPORTED_OS = eINSTANCE.getImplementationProperties_SupportedOS();
+
+ /**
+ * The meta object literal for the '<em><b>Arch</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference IMPLEMENTATION_PROPERTIES__ARCH = eINSTANCE.getImplementationProperties_Arch();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference IMPLEMENTATION_PROPERTIES__BASE_CLASS = eINSTANCE.getImplementationProperties_Base_Class();
+
+ /**
+ * The meta object literal for the '<em><b>Size ROM</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute IMPLEMENTATION_PROPERTIES__SIZE_ROM = eINSTANCE.getImplementationProperties_SizeROM();
+
+ /**
+ * The meta object literal for the '<em><b>Supported Target Arch</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference IMPLEMENTATION_PROPERTIES__SUPPORTED_TARGET_ARCH = eINSTANCE.getImplementationProperties_SupportedTargetArch();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.OperatingSystemImpl <em>Operating System</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.OperatingSystemImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getOperatingSystem()
+ * @generated
+ */
+ EClass OPERATING_SYSTEM = eINSTANCE.getOperatingSystem();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference OPERATING_SYSTEM__BASE_CLASS = eINSTANCE.getOperatingSystem_Base_Class();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.TargetArchitectureImpl <em>Target Architecture</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.TargetArchitectureImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getTargetArchitecture()
+ * @generated
+ */
+ EClass TARGET_ARCHITECTURE = eINSTANCE.getTargetArchitecture();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TARGET_ARCHITECTURE__BASE_CLASS = eINSTANCE.getTargetArchitecture_Base_Class();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.ConfigurationImpl <em>Configuration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ConfigurationImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getConfiguration()
+ * @generated
+ */
+ EClass CONFIGURATION = eINSTANCE.getConfiguration();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONFIGURATION__BASE_CLASS = eINSTANCE.getConfiguration_Base_Class();
+
+ /**
+ * The meta object literal for the '<em><b>Config Options</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONFIGURATION__CONFIG_OPTIONS = eINSTANCE.getConfiguration_ConfigOptions();
+
+ /**
+ * The meta object literal for the '<em><b>Deployment Plan</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONFIGURATION__DEPLOYMENT_PLAN = eINSTANCE.getConfiguration_DeploymentPlan();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.InterceptionRuleImpl <em>Interception Rule</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.InterceptionRuleImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getInterceptionRule()
+ * @generated
+ */
+ EClass INTERCEPTION_RULE = eINSTANCE.getInterceptionRule();
+
+ /**
+ * The meta object literal for the '<em><b>Interception Kind</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute INTERCEPTION_RULE__INTERCEPTION_KIND = eINSTANCE.getInterceptionRule_InterceptionKind();
+
+ /**
+ * The meta object literal for the '<em><b>Interception Set</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference INTERCEPTION_RULE__INTERCEPTION_SET = eINSTANCE.getInterceptionRule_InterceptionSet();
+
+ /**
+ * The meta object literal for the '<em><b>Base Property</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference INTERCEPTION_RULE__BASE_PROPERTY = eINSTANCE.getInterceptionRule_Base_Property();
+
+ /**
+ * The meta object literal for the '<em><b>Base Operation</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference INTERCEPTION_RULE__BASE_OPERATION = eINSTANCE.getInterceptionRule_Base_Operation();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.TargetImpl <em>Target</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.TargetImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getTarget()
+ * @generated
+ */
+ EClass TARGET = eINSTANCE.getTarget();
+
+ /**
+ * The meta object literal for the '<em><b>Target Arch</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TARGET__TARGET_ARCH = eINSTANCE.getTarget_TargetArch();
+
+ /**
+ * The meta object literal for the '<em><b>Options</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TARGET__OPTIONS = eINSTANCE.getTarget_Options();
+
+ /**
+ * The meta object literal for the '<em><b>Base Node</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TARGET__BASE_NODE = eINSTANCE.getTarget_Base_Node();
+
+ /**
+ * The meta object literal for the '<em><b>Used OS</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TARGET__USED_OS = eINSTANCE.getTarget_UsedOS();
+
+ /**
+ * The meta object literal for the '<em><b>Avail RAM</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TARGET__AVAIL_RAM = eINSTANCE.getTarget_AvailRAM();
+
+ /**
+ * The meta object literal for the '<em><b>Avail ROM</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TARGET__AVAIL_ROM = eINSTANCE.getTarget_AvailROM();
+
+ /**
+ * The meta object literal for the '<em><b>Compiler</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TARGET__COMPILER = eINSTANCE.getTarget_Compiler();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.CompilerChainImpl <em>Compiler Chain</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.CompilerChainImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getCompilerChain()
+ * @generated
+ */
+ EClass COMPILER_CHAIN = eINSTANCE.getCompilerChain();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference COMPILER_CHAIN__BASE_CLASS = eINSTANCE.getCompilerChain_Base_Class();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.FragmentImpl <em>Fragment</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.FragmentImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getFragment()
+ * @generated
+ */
+ EClass FRAGMENT = eINSTANCE.getFragment();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FRAGMENT__BASE_CLASS = eINSTANCE.getFragment_Base_Class();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.CopyAttributeValueImpl <em>Copy Attribute Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.CopyAttributeValueImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getCopyAttributeValue()
+ * @generated
+ */
+ EClass COPY_ATTRIBUTE_VALUE = eINSTANCE.getCopyAttributeValue();
+
+ /**
+ * The meta object literal for the '<em><b>Source</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference COPY_ATTRIBUTE_VALUE__SOURCE = eINSTANCE.getCopyAttributeValue_Source();
+
+ /**
+ * The meta object literal for the '<em><b>Base Property</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference COPY_ATTRIBUTE_VALUE__BASE_PROPERTY = eINSTANCE.getCopyAttributeValue_Base_Property();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.AutoIndexImpl <em>Auto Index</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.AutoIndexImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getAutoIndex()
+ * @generated
+ */
+ EClass AUTO_INDEX = eINSTANCE.getAutoIndex();
+
+ /**
+ * The meta object literal for the '<em><b>Base Property</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference AUTO_INDEX__BASE_PROPERTY = eINSTANCE.getAutoIndex_Base_Property();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.AutoIndexPerNodeImpl <em>Auto Index Per Node</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.AutoIndexPerNodeImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getAutoIndexPerNode()
+ * @generated
+ */
+ EClass AUTO_INDEX_PER_NODE = eINSTANCE.getAutoIndexPerNode();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.InitPrecedenceImpl <em>Init Precedence</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.InitPrecedenceImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getInitPrecedence()
+ * @generated
+ */
+ EClass INIT_PRECEDENCE = eINSTANCE.getInitPrecedence();
+
+ /**
+ * The meta object literal for the '<em><b>Invoke After</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference INIT_PRECEDENCE__INVOKE_AFTER = eINSTANCE.getInitPrecedence_InvokeAfter();
+
+ /**
+ * The meta object literal for the '<em><b>Invoke Before</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference INIT_PRECEDENCE__INVOKE_BEFORE = eINSTANCE.getInitPrecedence_InvokeBefore();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference INIT_PRECEDENCE__BASE_CLASS = eINSTANCE.getInitPrecedence_Base_Class();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.ConnectorConfigurationImpl <em>Connector Configuration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.ConnectorConfigurationImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getConnectorConfiguration()
+ * @generated
+ */
+ EClass CONNECTOR_CONFIGURATION = eINSTANCE.getConnectorConfiguration();
+
+ /**
+ * The meta object literal for the '<em><b>Base Slot</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONNECTOR_CONFIGURATION__BASE_SLOT = eINSTANCE.getConnectorConfiguration_Base_Slot();
+
+ /**
+ * The meta object literal for the '<em><b>Connector</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONNECTOR_CONFIGURATION__CONNECTOR = eINSTANCE.getConnectorConfiguration_Connector();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.BindTemplateImpl <em>Bind Template</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.BindTemplateImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getBindTemplate()
+ * @generated
+ */
+ EClass BIND_TEMPLATE = eINSTANCE.getBindTemplate();
+
+ /**
+ * The meta object literal for the '<em><b>Actual</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference BIND_TEMPLATE__ACTUAL = eINSTANCE.getBindTemplate_Actual();
+
+ /**
+ * The meta object literal for the '<em><b>Base Property</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference BIND_TEMPLATE__BASE_PROPERTY = eINSTANCE.getBindTemplate_Base_Property();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.ContainerRuleKind <em>Container Rule Kind</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.ContainerRuleKind
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getContainerRuleKind()
+ * @generated
+ */
+ EEnum CONTAINER_RULE_KIND = eINSTANCE.getContainerRuleKind();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.InterceptionKind <em>Interception Kind</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.InterceptionKind
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getInterceptionKind()
+ * @generated
+ */
+ EEnum INTERCEPTION_KIND = eINSTANCE.getInterceptionKind();
+
+ }
+
+} // FCMPackage
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Flatten.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Flatten.java
new file mode 100644
index 00000000000..9a89c91f924
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Flatten.java
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Flatten</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * A composite that will get flattened during distribution. This means that it vanishes and its parts are added to the composite in which the flat composite is defined. A flat composite may not have assembly connections. It is primarily used by interaction components
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.Flatten#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getFlatten()
+ * @model
+ * @generated
+ */
+public interface Flatten extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getFlatten_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Flatten#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+} // Flatten
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Fragment.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Fragment.java
new file mode 100644
index 00000000000..53f4baac33e
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Fragment.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Fragment</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.Fragment#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getFragment()
+ * @model
+ * @generated
+ */
+public interface Fragment extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getFragment_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Fragment#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+} // Fragment
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ImplementationGroup.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ImplementationGroup.java
new file mode 100644
index 00000000000..fc79e9d0ea6
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ImplementationGroup.java
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Implementation Group</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * A group of interaction components should apply both stereotypes. Each member of such a group must be an interaction component, but this is not enforced by the meta-model
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.ImplementationGroup#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getImplementationGroup()
+ * @model
+ * @generated
+ */
+public interface ImplementationGroup extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getImplementationGroup_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.ImplementationGroup#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+} // ImplementationGroup
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ImplementationProperties.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ImplementationProperties.java
new file mode 100644
index 00000000000..8a3bd56e5bc
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ImplementationProperties.java
@@ -0,0 +1,170 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Implementation Properties</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.ImplementationProperties#getSizeRAM <em>Size RAM</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.ImplementationProperties#getSupportedOS <em>Supported OS</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.ImplementationProperties#getArch <em>Arch</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.ImplementationProperties#getBase_Class <em>Base Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.ImplementationProperties#getSizeROM <em>Size ROM</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.ImplementationProperties#getSupportedTargetArch <em>Supported Target Arch</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getImplementationProperties()
+ * @model
+ * @generated
+ */
+public interface ImplementationProperties extends EObject {
+ /**
+ * Returns the value of the '<em><b>Size RAM</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Size RAM</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Size RAM</em>' attribute.
+ * @see #setSizeRAM(int)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getImplementationProperties_SizeRAM()
+ * @model unique="false" dataType="org.eclipse.uml2.types.Integer" required="true" ordered="false"
+ * @generated
+ */
+ int getSizeRAM();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.ImplementationProperties#getSizeRAM <em>Size RAM</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Size RAM</em>' attribute.
+ * @see #getSizeRAM()
+ * @generated
+ */
+ void setSizeRAM(int value);
+
+ /**
+ * Returns the value of the '<em><b>Supported OS</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.FCM.OperatingSystem}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Supported OS</em>' reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Supported OS</em>' reference list.
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getImplementationProperties_SupportedOS()
+ * @model ordered="false"
+ * @generated
+ */
+ EList<OperatingSystem> getSupportedOS();
+
+ /**
+ * Returns the value of the '<em><b>Arch</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.FCM.TargetArchitecture}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Arch</em>' reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Arch</em>' reference list.
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getImplementationProperties_Arch()
+ * @model ordered="false"
+ * @generated
+ */
+ EList<TargetArchitecture> getArch();
+
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getImplementationProperties_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.ImplementationProperties#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+ /**
+ * Returns the value of the '<em><b>Size ROM</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Size ROM</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Size ROM</em>' attribute.
+ * @see #setSizeROM(int)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getImplementationProperties_SizeROM()
+ * @model dataType="org.eclipse.uml2.types.Integer" required="true" ordered="false"
+ * @generated
+ */
+ int getSizeROM();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.ImplementationProperties#getSizeROM <em>Size ROM</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Size ROM</em>' attribute.
+ * @see #getSizeROM()
+ * @generated
+ */
+ void setSizeROM(int value);
+
+ /**
+ * Returns the value of the '<em><b>Supported Target Arch</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Supported Target Arch</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Supported Target Arch</em>' reference.
+ * @see #setSupportedTargetArch(TargetArchitecture)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getImplementationProperties_SupportedTargetArch()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ TargetArchitecture getSupportedTargetArch();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.ImplementationProperties#getSupportedTargetArch <em>Supported Target Arch</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Supported Target Arch</em>' reference.
+ * @see #getSupportedTargetArch()
+ * @generated
+ */
+ void setSupportedTargetArch(TargetArchitecture value);
+
+} // ImplementationProperties
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InitPrecedence.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InitPrecedence.java
new file mode 100644
index 00000000000..8c6af695105
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InitPrecedence.java
@@ -0,0 +1,92 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Init Precedence</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.InitPrecedence#getInvokeAfter <em>Invoke After</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.InitPrecedence#getInvokeBefore <em>Invoke Before</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.InitPrecedence#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getInitPrecedence()
+ * @model
+ * @generated
+ */
+public interface InitPrecedence extends EObject {
+ /**
+ * Returns the value of the '<em><b>Invoke After</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.uml2.uml.Class}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Invoke After</em>' reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Invoke After</em>' reference list.
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getInitPrecedence_InvokeAfter()
+ * @model ordered="false"
+ * @generated
+ */
+ EList<org.eclipse.uml2.uml.Class> getInvokeAfter();
+
+ /**
+ * Returns the value of the '<em><b>Invoke Before</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.uml2.uml.Class}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Invoke Before</em>' reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Invoke Before</em>' reference list.
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getInitPrecedence_InvokeBefore()
+ * @model ordered="false"
+ * @generated
+ */
+ EList<org.eclipse.uml2.uml.Class> getInvokeBefore();
+
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getInitPrecedence_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.InitPrecedence#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+} // InitPrecedence
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InstanceConfigurator.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InstanceConfigurator.java
new file mode 100644
index 00000000000..bb463ad5340
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InstanceConfigurator.java
@@ -0,0 +1,85 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Instance Configurator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.InstanceConfigurator#getBase_Class <em>Base Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.InstanceConfigurator#isOnNodeModel <em>On Node Model</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getInstanceConfigurator()
+ * @model
+ * @generated
+ */
+public interface InstanceConfigurator extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getInstanceConfigurator_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.InstanceConfigurator#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+ /**
+ * Returns the value of the '<em><b>On Node Model</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>On Node Model</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>On Node Model</em>' attribute.
+ * @see #setOnNodeModel(boolean)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getInstanceConfigurator_OnNodeModel()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isOnNodeModel();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.InstanceConfigurator#isOnNodeModel <em>On Node Model</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>On Node Model</em>' attribute.
+ * @see #isOnNodeModel()
+ * @generated
+ */
+ void setOnNodeModel(boolean value);
+
+} // InstanceConfigurator
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InteractionComponent.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InteractionComponent.java
new file mode 100644
index 00000000000..cbef19b172b
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InteractionComponent.java
@@ -0,0 +1,117 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Collaboration;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Interaction Component</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * An interaction component is responsible for realization the communication between two components. It typically owns conjugated ports. It might be defined within a package template to enable the adaption of ports to those used by the interacting components
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.InteractionComponent#isForDistribution <em>For Distribution</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.InteractionComponent#getConnectionPattern <em>Connection Pattern</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.InteractionComponent#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getInteractionComponent()
+ * @model
+ * @generated
+ */
+public interface InteractionComponent extends EObject {
+ /**
+ * Returns the value of the '<em><b>For Distribution</b></em>' attribute.
+ * The default value is <code>"false"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>For Distribution</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>For Distribution</em>' attribute.
+ * @see #setForDistribution(boolean)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getInteractionComponent_ForDistribution()
+ * @model default="false" unique="false" dataType="org.eclipse.uml2.types.Boolean" required="true" ordered="false"
+ * @generated
+ */
+ boolean isForDistribution();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.InteractionComponent#isForDistribution <em>For Distribution</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>For Distribution</em>' attribute.
+ * @see #isForDistribution()
+ * @generated
+ */
+ void setForDistribution(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Connection Pattern</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Connection Pattern</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Connection Pattern</em>' reference.
+ * @see #setConnectionPattern(Collaboration)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getInteractionComponent_ConnectionPattern()
+ * @model ordered="false"
+ * @generated
+ */
+ Collaboration getConnectionPattern();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.InteractionComponent#getConnectionPattern <em>Connection Pattern</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Connection Pattern</em>' reference.
+ * @see #getConnectionPattern()
+ * @generated
+ */
+ void setConnectionPattern(Collaboration value);
+
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getInteractionComponent_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.InteractionComponent#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+} // InteractionComponent
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InterceptionKind.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InterceptionKind.java
new file mode 100644
index 00000000000..24de3ce829e
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InterceptionKind.java
@@ -0,0 +1,310 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Interception Kind</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Condition whether an interceptor should be used within a container.
+ * - "Some" = set of ports defined in interception rule
+ * - "AllOut/AllIn" = ports with required/provided ports only
+ * - "Matching" = kind of interceptor and component port need to match
+ *
+ * <!-- end-model-doc -->
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getInterceptionKind()
+ * @model
+ * @generated
+ */
+public enum InterceptionKind implements Enumerator {
+ /**
+ * The '<em><b>Intercept Some</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INTERCEPT_SOME_VALUE
+ * @generated
+ * @ordered
+ */
+ INTERCEPT_SOME(0, "InterceptSome", "InterceptSome"), //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Intercept All</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INTERCEPT_ALL_VALUE
+ * @generated
+ * @ordered
+ */
+ INTERCEPT_ALL(1, "InterceptAll", "InterceptAll"), //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Intercept All Out</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INTERCEPT_ALL_OUT_VALUE
+ * @generated
+ * @ordered
+ */
+ INTERCEPT_ALL_OUT(2, "InterceptAllOut", "InterceptAllOut"), //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Intercept All In</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INTERCEPT_ALL_IN_VALUE
+ * @generated
+ * @ordered
+ */
+ INTERCEPT_ALL_IN(3, "InterceptAllIn", "InterceptAllIn"), //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Intercept Matching</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INTERCEPT_MATCHING_VALUE
+ * @generated
+ * @ordered
+ */
+ INTERCEPT_MATCHING(4, "InterceptMatching", "InterceptMatching"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Intercept Some</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Intercept Some</b></em>' literal object isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #INTERCEPT_SOME
+ * @model name="InterceptSome"
+ * @generated
+ * @ordered
+ */
+ public static final int INTERCEPT_SOME_VALUE = 0;
+
+ /**
+ * The '<em><b>Intercept All</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Intercept All</b></em>' literal object isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #INTERCEPT_ALL
+ * @model name="InterceptAll"
+ * @generated
+ * @ordered
+ */
+ public static final int INTERCEPT_ALL_VALUE = 1;
+
+ /**
+ * The '<em><b>Intercept All Out</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Intercept All Out</b></em>' literal object isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #INTERCEPT_ALL_OUT
+ * @model name="InterceptAllOut"
+ * @generated
+ * @ordered
+ */
+ public static final int INTERCEPT_ALL_OUT_VALUE = 2;
+
+ /**
+ * The '<em><b>Intercept All In</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Intercept All In</b></em>' literal object isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #INTERCEPT_ALL_IN
+ * @model name="InterceptAllIn"
+ * @generated
+ * @ordered
+ */
+ public static final int INTERCEPT_ALL_IN_VALUE = 3;
+
+ /**
+ * The '<em><b>Intercept Matching</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Intercept Matching</b></em>' literal object isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #INTERCEPT_MATCHING
+ * @model name="InterceptMatching"
+ * @generated
+ * @ordered
+ */
+ public static final int INTERCEPT_MATCHING_VALUE = 4;
+
+ /**
+ * An array of all the '<em><b>Interception Kind</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final InterceptionKind[] VALUES_ARRAY =
+ new InterceptionKind[] {
+ INTERCEPT_SOME,
+ INTERCEPT_ALL,
+ INTERCEPT_ALL_OUT,
+ INTERCEPT_ALL_IN,
+ INTERCEPT_MATCHING,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Interception Kind</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<InterceptionKind> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Interception Kind</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param literal the literal.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static InterceptionKind get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ InterceptionKind result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Interception Kind</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param name the name.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static InterceptionKind getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ InterceptionKind result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Interception Kind</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the integer value.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static InterceptionKind get(int value) {
+ switch (value) {
+ case INTERCEPT_SOME_VALUE: return INTERCEPT_SOME;
+ case INTERCEPT_ALL_VALUE: return INTERCEPT_ALL;
+ case INTERCEPT_ALL_OUT_VALUE: return INTERCEPT_ALL_OUT;
+ case INTERCEPT_ALL_IN_VALUE: return INTERCEPT_ALL_IN;
+ case INTERCEPT_MATCHING_VALUE: return INTERCEPT_MATCHING;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private InterceptionKind(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} // InterceptionKind
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InterceptionRule.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InterceptionRule.java
new file mode 100644
index 00000000000..44adb8c7700
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InterceptionRule.java
@@ -0,0 +1,134 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Feature;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Interception Rule</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.InterceptionRule#getInterceptionKind <em>Interception Kind</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.InterceptionRule#getInterceptionSet <em>Interception Set</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.InterceptionRule#getBase_Property <em>Base Property</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.InterceptionRule#getBase_Operation <em>Base Operation</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getInterceptionRule()
+ * @model
+ * @generated
+ */
+public interface InterceptionRule extends EObject {
+ /**
+ * Returns the value of the '<em><b>Interception Kind</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.papyrus.FCM.InterceptionKind}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Interception Kind</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Interception Kind</em>' attribute.
+ * @see org.eclipse.papyrus.FCM.InterceptionKind
+ * @see #setInterceptionKind(InterceptionKind)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getInterceptionRule_InterceptionKind()
+ * @model unique="false" required="true" ordered="false"
+ * @generated
+ */
+ InterceptionKind getInterceptionKind();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.InterceptionRule#getInterceptionKind <em>Interception Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Interception Kind</em>' attribute.
+ * @see org.eclipse.papyrus.FCM.InterceptionKind
+ * @see #getInterceptionKind()
+ * @generated
+ */
+ void setInterceptionKind(InterceptionKind value);
+
+ /**
+ * Returns the value of the '<em><b>Interception Set</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.uml2.uml.Feature}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Interception Set</em>' reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Interception Set</em>' reference list.
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getInterceptionRule_InterceptionSet()
+ * @model ordered="false"
+ * @generated
+ */
+ EList<Feature> getInterceptionSet();
+
+ /**
+ * Returns the value of the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Property</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Property</em>' reference.
+ * @see #setBase_Property(Property)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getInterceptionRule_Base_Property()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Property getBase_Property();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.InterceptionRule#getBase_Property <em>Base Property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Property</em>' reference.
+ * @see #getBase_Property()
+ * @generated
+ */
+ void setBase_Property(Property value);
+
+ /**
+ * Returns the value of the '<em><b>Base Operation</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Operation</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Operation</em>' reference.
+ * @see #setBase_Operation(Operation)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getInterceptionRule_Base_Operation()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Operation getBase_Operation();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.InterceptionRule#getBase_Operation <em>Base Operation</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Operation</em>' reference.
+ * @see #getBase_Operation()
+ * @generated
+ */
+ void setBase_Operation(Operation value);
+
+} // InterceptionRule
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/OperatingSystem.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/OperatingSystem.java
new file mode 100644
index 00000000000..e9dc05079f7
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/OperatingSystem.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Operating System</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.OperatingSystem#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getOperatingSystem()
+ * @model
+ * @generated
+ */
+public interface OperatingSystem extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getOperatingSystem_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.OperatingSystem#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+} // OperatingSystem
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Port.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Port.java
new file mode 100644
index 00000000000..0f1da61cd0c
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Port.java
@@ -0,0 +1,117 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Type;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Port</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.Port#getBase_Port <em>Base Port</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.Port#getKind <em>Kind</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.Port#getType <em>Type</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getPort()
+ * @model
+ * @generated
+ */
+public interface Port extends ConfigurableElementInstance {
+ /**
+ * Returns the value of the '<em><b>Base Port</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Port</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Port</em>' reference.
+ * @see #setBase_Port(org.eclipse.uml2.uml.Port)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getPort_Base_Port()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Port getBase_Port();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Port#getBase_Port <em>Base Port</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Port</em>' reference.
+ * @see #getBase_Port()
+ * @generated
+ */
+ void setBase_Port(org.eclipse.uml2.uml.Port value);
+
+ /**
+ * Returns the value of the '<em><b>Kind</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Kind</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Kind</em>' reference.
+ * @see #setKind(PortKind)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getPort_Kind()
+ * @model ordered="false"
+ * @generated
+ */
+ PortKind getKind();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Port#getKind <em>Kind</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Kind</em>' reference.
+ * @see #getKind()
+ * @generated
+ */
+ void setKind(PortKind value);
+
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type</em>' reference.
+ * @see #setType(Type)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getPort_Type()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Type getType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Port#getType <em>Type</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Type</em>' reference.
+ * @see #getType()
+ * @generated
+ */
+ void setType(Type value);
+
+ /**
+ * Update the derived interfaces of a port. Manually added method
+ */
+ void update();
+} // Port
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/PortKind.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/PortKind.java
new file mode 100644
index 00000000000..82ad56f8cf7
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/PortKind.java
@@ -0,0 +1,138 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Interface;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Port Kind</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.PortKind#getBase_Class <em>Base Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.PortKind#getProvidedInterface <em>Provided Interface</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.PortKind#getRequiredInterface <em>Required Interface</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.PortKind#isExtendedPort <em>Extended Port</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getPortKind()
+ * @model
+ * @generated
+ */
+public interface PortKind extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getPortKind_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.PortKind#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+ /**
+ * Returns the value of the '<em><b>Provided Interface</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Provided Interface</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Provided Interface</em>' reference.
+ * @see #setProvidedInterface(Interface)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getPortKind_ProvidedInterface()
+ * @model ordered="false"
+ * @generated
+ */
+ Interface getProvidedInterface();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.PortKind#getProvidedInterface <em>Provided Interface</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Provided Interface</em>' reference.
+ * @see #getProvidedInterface()
+ * @generated
+ */
+ void setProvidedInterface(Interface value);
+
+ /**
+ * Returns the value of the '<em><b>Required Interface</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Required Interface</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Required Interface</em>' reference.
+ * @see #setRequiredInterface(Interface)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getPortKind_RequiredInterface()
+ * @model ordered="false"
+ * @generated
+ */
+ Interface getRequiredInterface();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.PortKind#getRequiredInterface <em>Required Interface</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Required Interface</em>' reference.
+ * @see #getRequiredInterface()
+ * @generated
+ */
+ void setRequiredInterface(Interface value);
+
+ /**
+ * Returns the value of the '<em><b>Extended Port</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Extended Port</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Extended Port</em>' attribute.
+ * @see #isSetExtendedPort()
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getPortKind_ExtendedPort()
+ * @model unsettable="true" dataType="org.eclipse.uml2.types.Boolean" required="true" transient="true" changeable="false" volatile="true" derived="true" ordered="false"
+ * @generated
+ */
+ boolean isExtendedPort();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.papyrus.FCM.PortKind#isExtendedPort <em>Extended Port</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Extended Port</em>' attribute is set.
+ * @see #isExtendedPort()
+ * @generated
+ */
+ boolean isSetExtendedPort();
+
+} // PortKind
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ProgLanguage.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ProgLanguage.java
new file mode 100644
index 00000000000..8458d640c94
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/ProgLanguage.java
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Prog Language</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * We assume that a model library defines a set of supported programming languages as well as a set of provided component to mappings. We do not use a fixed enumeration defined in the profile to assure extensibility
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.ProgLanguage#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getProgLanguage()
+ * @model
+ * @generated
+ */
+public interface ProgLanguage extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getProgLanguage_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.ProgLanguage#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+} // ProgLanguage
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/RuleApplication.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/RuleApplication.java
new file mode 100644
index 00000000000..5fedd0d9a3a
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/RuleApplication.java
@@ -0,0 +1,106 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Rule Application</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Apply a set of container rules. It can be applied to a single class or to a package, implying that all components within the package apply the specified rule.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.RuleApplication#getBase_Class <em>Base Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.RuleApplication#getContainerRule <em>Container Rule</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.RuleApplication#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getRuleApplication()
+ * @model
+ * @generated
+ */
+public interface RuleApplication extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getRuleApplication_Base_Class()
+ * @model ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.RuleApplication#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+ /**
+ * Returns the value of the '<em><b>Container Rule</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.FCM.ContainerRule}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Container Rule</em>' reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Container Rule</em>' reference list.
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getRuleApplication_ContainerRule()
+ * @model ordered="false"
+ * @generated
+ */
+ EList<ContainerRule> getContainerRule();
+
+ /**
+ * Returns the value of the '<em><b>Base Package</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Package</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Package</em>' reference.
+ * @see #setBase_Package(org.eclipse.uml2.uml.Package)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getRuleApplication_Base_Package()
+ * @model ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Package getBase_Package();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.RuleApplication#getBase_Package <em>Base Package</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Package</em>' reference.
+ * @see #getBase_Package()
+ * @generated
+ */
+ void setBase_Package(org.eclipse.uml2.uml.Package value);
+
+} // RuleApplication
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Singleton.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Singleton.java
new file mode 100644
index 00000000000..097280acf11
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Singleton.java
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Singleton</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Indicate that this component is instantiated only once within the system. It also implies that this component is automatically instantiated by a generated bootloader
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.Singleton#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getSingleton()
+ * @model
+ * @generated
+ */
+public interface Singleton extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getSingleton_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Singleton#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+} // Singleton
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Target.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Target.java
new file mode 100644
index 00000000000..41bf2accb32
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Target.java
@@ -0,0 +1,207 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Node;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Target</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.Target#getTargetArch <em>Target Arch</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.Target#getOptions <em>Options</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.Target#getBase_Node <em>Base Node</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.Target#getUsedOS <em>Used OS</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.Target#getAvailRAM <em>Avail RAM</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.Target#getAvailROM <em>Avail ROM</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.Target#getCompiler <em>Compiler</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getTarget()
+ * @model
+ * @generated
+ */
+public interface Target extends EObject {
+ /**
+ * Returns the value of the '<em><b>Target Arch</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Target Arch</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Target Arch</em>' reference.
+ * @see #setTargetArch(TargetArchitecture)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getTarget_TargetArch()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ TargetArchitecture getTargetArch();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Target#getTargetArch <em>Target Arch</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Target Arch</em>' reference.
+ * @see #getTargetArch()
+ * @generated
+ */
+ void setTargetArch(TargetArchitecture value);
+
+ /**
+ * Returns the value of the '<em><b>Options</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.FCM.ConfigOption}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Options</em>' reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Options</em>' reference list.
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getTarget_Options()
+ * @model ordered="false"
+ * @generated
+ */
+ EList<ConfigOption> getOptions();
+
+ /**
+ * Returns the value of the '<em><b>Base Node</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Node</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Node</em>' reference.
+ * @see #setBase_Node(Node)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getTarget_Base_Node()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Node getBase_Node();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Target#getBase_Node <em>Base Node</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Node</em>' reference.
+ * @see #getBase_Node()
+ * @generated
+ */
+ void setBase_Node(Node value);
+
+ /**
+ * Returns the value of the '<em><b>Used OS</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Used OS</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Used OS</em>' reference.
+ * @see #setUsedOS(OperatingSystem)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getTarget_UsedOS()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ OperatingSystem getUsedOS();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Target#getUsedOS <em>Used OS</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Used OS</em>' reference.
+ * @see #getUsedOS()
+ * @generated
+ */
+ void setUsedOS(OperatingSystem value);
+
+ /**
+ * Returns the value of the '<em><b>Avail RAM</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Avail RAM</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Avail RAM</em>' attribute.
+ * @see #setAvailRAM(int)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getTarget_AvailRAM()
+ * @model dataType="org.eclipse.uml2.types.Integer" required="true" ordered="false"
+ * @generated
+ */
+ int getAvailRAM();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Target#getAvailRAM <em>Avail RAM</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Avail RAM</em>' attribute.
+ * @see #getAvailRAM()
+ * @generated
+ */
+ void setAvailRAM(int value);
+
+ /**
+ * Returns the value of the '<em><b>Avail ROM</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Avail ROM</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Avail ROM</em>' attribute.
+ * @see #setAvailROM(int)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getTarget_AvailROM()
+ * @model dataType="org.eclipse.uml2.types.Integer" required="true" ordered="false"
+ * @generated
+ */
+ int getAvailROM();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Target#getAvailROM <em>Avail ROM</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Avail ROM</em>' attribute.
+ * @see #getAvailROM()
+ * @generated
+ */
+ void setAvailROM(int value);
+
+ /**
+ * Returns the value of the '<em><b>Compiler</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Compiler</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Compiler</em>' reference.
+ * @see #setCompiler(CompilerChain)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getTarget_Compiler()
+ * @model ordered="false"
+ * @generated
+ */
+ CompilerChain getCompiler();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Target#getCompiler <em>Compiler</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Compiler</em>' reference.
+ * @see #getCompiler()
+ * @generated
+ */
+ void setCompiler(CompilerChain value);
+
+} // Target
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/TargetArchitecture.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/TargetArchitecture.java
new file mode 100644
index 00000000000..9d5c63c871a
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/TargetArchitecture.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Target Architecture</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.TargetArchitecture#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getTargetArchitecture()
+ * @model
+ * @generated
+ */
+public interface TargetArchitecture extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getTargetArchitecture_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.TargetArchitecture#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+} // TargetArchitecture
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Template.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Template.java
new file mode 100644
index 00000000000..bf444e4e4b9
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/Template.java
@@ -0,0 +1,90 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.uml2.uml.Element;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Template</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * The template parameters list defines the parameters that are passed to the Acceleo template. If empty, the formal parameter list of the package template is used.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.Template#getBase_Element <em>Base Element</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.Template#getHelper <em>Helper</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getTemplate()
+ * @model
+ * @generated
+ */
+public interface Template extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Element</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Element</em>' reference.
+ * @see #setBase_Element(Element)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getTemplate_Base_Element()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Element getBase_Element();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Template#getBase_Element <em>Base Element</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Element</em>' reference.
+ * @see #getBase_Element()
+ * @generated
+ */
+ void setBase_Element(Element value);
+
+ /**
+ * Returns the value of the '<em><b>Helper</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Helper</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Helper</em>' reference.
+ * @see #setHelper(BindingHelper)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getTemplate_Helper()
+ * @model ordered="false"
+ * @generated
+ */
+ BindingHelper getHelper();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.Template#getHelper <em>Helper</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Helper</em>' reference.
+ * @see #getHelper()
+ * @generated
+ */
+ void setHelper(BindingHelper value);
+
+} // Template
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/TemplatePort.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/TemplatePort.java
new file mode 100644
index 00000000000..77f0d02222f
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/TemplatePort.java
@@ -0,0 +1,90 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Template Port</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Template ports are ports that enable the binding of an extended port with an actual parameter: the resulting port kind is the port kind bound to the current port type.
+ * For instance, we cound type a port with "MyType" and use an extended port Writer with a template with formal parameter T. Resulting port would be Writer with T bound to MyType.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.TemplatePort#getBoundType <em>Bound Type</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getTemplatePort()
+ * @model
+ * @generated
+ */
+public interface TemplatePort extends Port {
+ /**
+ * Returns the value of the '<em><b>Bound Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Bound Type</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Bound Type</em>' reference.
+ * @see #isSetBoundType()
+ * @see #unsetBoundType()
+ * @see #setBoundType(PortKind)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getTemplatePort_BoundType()
+ * @model unsettable="true" transient="true" volatile="true" derived="true" ordered="false"
+ * @generated
+ */
+ PortKind getBoundType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.TemplatePort#getBoundType <em>Bound Type</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Bound Type</em>' reference.
+ * @see #isSetBoundType()
+ * @see #unsetBoundType()
+ * @see #getBoundType()
+ * @generated
+ */
+ void setBoundType(PortKind value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.papyrus.FCM.TemplatePort#getBoundType <em>Bound Type</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetBoundType()
+ * @see #getBoundType()
+ * @see #setBoundType(PortKind)
+ * @generated
+ */
+ void unsetBoundType();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.papyrus.FCM.TemplatePort#getBoundType <em>Bound Type</em>}' reference is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Bound Type</em>' reference is set.
+ * @see #unsetBoundType()
+ * @see #getBoundType()
+ * @see #setBoundType(PortKind)
+ * @generated
+ */
+ boolean isSetBoundType();
+
+} // TemplatePort
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/UseInstanceConfigurator.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/UseInstanceConfigurator.java
new file mode 100644
index 00000000000..f0232d7637f
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/UseInstanceConfigurator.java
@@ -0,0 +1,89 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Use Instance Configurator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Use a dedicated component that that is responsible for configuring component instances. The concept is primarily intented for container extensions. For instance, a container extension might provide reflection data about a component. In this case, the instance configuration would create the value specifications using data available in the model
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.UseInstanceConfigurator#getBase_Class <em>Base Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.UseInstanceConfigurator#getConfigurator <em>Configurator</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getUseInstanceConfigurator()
+ * @model
+ * @generated
+ */
+public interface UseInstanceConfigurator extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getUseInstanceConfigurator_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.UseInstanceConfigurator#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+ /**
+ * Returns the value of the '<em><b>Configurator</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Configurator</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Configurator</em>' reference.
+ * @see #setConfigurator(InstanceConfigurator)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getUseInstanceConfigurator_Configurator()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ InstanceConfigurator getConfigurator();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.UseInstanceConfigurator#getConfigurator <em>Configurator</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Configurator</em>' reference.
+ * @see #getConfigurator()
+ * @generated
+ */
+ void setConfigurator(InstanceConfigurator value);
+
+} // UseInstanceConfigurator
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/AssemblyImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/AssemblyImpl.java
new file mode 100644
index 00000000000..8d53df41fe1
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/AssemblyImpl.java
@@ -0,0 +1,165 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.Assembly;
+import org.eclipse.papyrus.FCM.FCMPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Assembly</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.AssemblyImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class AssemblyImpl extends EObjectImpl implements Assembly {
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AssemblyImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.ASSEMBLY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.ASSEMBLY__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.ASSEMBLY__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.ASSEMBLY__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.ASSEMBLY__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.ASSEMBLY__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.ASSEMBLY__BASE_CLASS:
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // AssemblyImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/AutoIndexImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/AutoIndexImpl.java
new file mode 100644
index 00000000000..9379bae368d
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/AutoIndexImpl.java
@@ -0,0 +1,166 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.AutoIndex;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Auto Index</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.AutoIndexImpl#getBase_Property <em>Base Property</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class AutoIndexImpl extends EObjectImpl implements AutoIndex {
+ /**
+ * The cached value of the '{@link #getBase_Property() <em>Base Property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Property()
+ * @generated
+ * @ordered
+ */
+ protected Property base_Property;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AutoIndexImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.AUTO_INDEX;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Property getBase_Property() {
+ if (base_Property != null && base_Property.eIsProxy()) {
+ InternalEObject oldBase_Property = (InternalEObject)base_Property;
+ base_Property = (Property)eResolveProxy(oldBase_Property);
+ if (base_Property != oldBase_Property) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.AUTO_INDEX__BASE_PROPERTY, oldBase_Property, base_Property));
+ }
+ }
+ return base_Property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property basicGetBase_Property() {
+ return base_Property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Property(Property newBase_Property) {
+ Property oldBase_Property = base_Property;
+ base_Property = newBase_Property;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.AUTO_INDEX__BASE_PROPERTY, oldBase_Property, base_Property));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.AUTO_INDEX__BASE_PROPERTY:
+ if (resolve) return getBase_Property();
+ return basicGetBase_Property();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.AUTO_INDEX__BASE_PROPERTY:
+ setBase_Property((Property)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.AUTO_INDEX__BASE_PROPERTY:
+ setBase_Property((Property)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.AUTO_INDEX__BASE_PROPERTY:
+ return base_Property != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // AutoIndexImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/AutoIndexPerNodeImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/AutoIndexPerNodeImpl.java
new file mode 100644
index 00000000000..ca4713734be
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/AutoIndexPerNodeImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.papyrus.FCM.AutoIndexPerNode;
+import org.eclipse.papyrus.FCM.FCMPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Auto Index Per Node</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class AutoIndexPerNodeImpl extends AutoIndexImpl implements AutoIndexPerNode {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AutoIndexPerNodeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.AUTO_INDEX_PER_NODE;
+ }
+
+} // AutoIndexPerNodeImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/BindTemplateImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/BindTemplateImpl.java
new file mode 100644
index 00000000000..84097ab7ee5
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/BindTemplateImpl.java
@@ -0,0 +1,207 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.papyrus.FCM.BindTemplate;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Type;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Bind Template</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.BindTemplateImpl#getActual <em>Actual</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.BindTemplateImpl#getBase_Property <em>Base Property</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class BindTemplateImpl extends EObjectImpl implements BindTemplate {
+ /**
+ * The cached value of the '{@link #getActual() <em>Actual</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getActual()
+ * @generated
+ * @ordered
+ */
+ protected EList<Type> actual;
+
+ /**
+ * The cached value of the '{@link #getBase_Property() <em>Base Property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Property()
+ * @generated
+ * @ordered
+ */
+ protected Property base_Property;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BindTemplateImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.BIND_TEMPLATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<Type> getActual() {
+ if (actual == null) {
+ actual = new EObjectResolvingEList<Type>(Type.class, this, FCMPackage.BIND_TEMPLATE__ACTUAL);
+ }
+ return actual;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Property getBase_Property() {
+ if (base_Property != null && base_Property.eIsProxy()) {
+ InternalEObject oldBase_Property = (InternalEObject)base_Property;
+ base_Property = (Property)eResolveProxy(oldBase_Property);
+ if (base_Property != oldBase_Property) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.BIND_TEMPLATE__BASE_PROPERTY, oldBase_Property, base_Property));
+ }
+ }
+ return base_Property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property basicGetBase_Property() {
+ return base_Property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Property(Property newBase_Property) {
+ Property oldBase_Property = base_Property;
+ base_Property = newBase_Property;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.BIND_TEMPLATE__BASE_PROPERTY, oldBase_Property, base_Property));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.BIND_TEMPLATE__ACTUAL:
+ return getActual();
+ case FCMPackage.BIND_TEMPLATE__BASE_PROPERTY:
+ if (resolve) return getBase_Property();
+ return basicGetBase_Property();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.BIND_TEMPLATE__ACTUAL:
+ getActual().clear();
+ getActual().addAll((Collection<? extends Type>)newValue);
+ return;
+ case FCMPackage.BIND_TEMPLATE__BASE_PROPERTY:
+ setBase_Property((Property)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.BIND_TEMPLATE__ACTUAL:
+ getActual().clear();
+ return;
+ case FCMPackage.BIND_TEMPLATE__BASE_PROPERTY:
+ setBase_Property((Property)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.BIND_TEMPLATE__ACTUAL:
+ return actual != null && !actual.isEmpty();
+ case FCMPackage.BIND_TEMPLATE__BASE_PROPERTY:
+ return base_Property != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // BindTemplateImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/BindingHelperImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/BindingHelperImpl.java
new file mode 100644
index 00000000000..cca6f30bf16
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/BindingHelperImpl.java
@@ -0,0 +1,165 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.BindingHelper;
+import org.eclipse.papyrus.FCM.FCMPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Binding Helper</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.BindingHelperImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class BindingHelperImpl extends EObjectImpl implements BindingHelper {
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BindingHelperImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.BINDING_HELPER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.BINDING_HELPER__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.BINDING_HELPER__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.BINDING_HELPER__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.BINDING_HELPER__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.BINDING_HELPER__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.BINDING_HELPER__BASE_CLASS:
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // BindingHelperImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CodeGenOptionsImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CodeGenOptionsImpl.java
new file mode 100644
index 00000000000..87c4df5de26
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CodeGenOptionsImpl.java
@@ -0,0 +1,291 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.CodeGenOptions;
+import org.eclipse.papyrus.FCM.CompToOOmapping;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.ProgLanguage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Code Gen Options</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.CodeGenOptionsImpl#getBase_Package <em>Base Package</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.CodeGenOptionsImpl#getCompToOOmapping <em>Comp To OOmapping</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.CodeGenOptionsImpl#getProgLanguage <em>Prog Language</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class CodeGenOptionsImpl extends EObjectImpl implements CodeGenOptions {
+ /**
+ * The cached value of the '{@link #getBase_Package() <em>Base Package</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Package()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Package base_Package;
+
+ /**
+ * The cached value of the '{@link #getCompToOOmapping() <em>Comp To OOmapping</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCompToOOmapping()
+ * @generated
+ * @ordered
+ */
+ protected CompToOOmapping compToOOmapping;
+
+ /**
+ * The cached value of the '{@link #getProgLanguage() <em>Prog Language</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProgLanguage()
+ * @generated
+ * @ordered
+ */
+ protected ProgLanguage progLanguage;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CodeGenOptionsImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.CODE_GEN_OPTIONS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Package getBase_Package() {
+ if (base_Package != null && base_Package.eIsProxy()) {
+ InternalEObject oldBase_Package = (InternalEObject)base_Package;
+ base_Package = (org.eclipse.uml2.uml.Package)eResolveProxy(oldBase_Package);
+ if (base_Package != oldBase_Package) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.CODE_GEN_OPTIONS__BASE_PACKAGE, oldBase_Package, base_Package));
+ }
+ }
+ return base_Package;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Package basicGetBase_Package() {
+ return base_Package;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Package(org.eclipse.uml2.uml.Package newBase_Package) {
+ org.eclipse.uml2.uml.Package oldBase_Package = base_Package;
+ base_Package = newBase_Package;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.CODE_GEN_OPTIONS__BASE_PACKAGE, oldBase_Package, base_Package));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public CompToOOmapping getCompToOOmapping() {
+ if (compToOOmapping != null && compToOOmapping.eIsProxy()) {
+ InternalEObject oldCompToOOmapping = (InternalEObject)compToOOmapping;
+ compToOOmapping = (CompToOOmapping)eResolveProxy(oldCompToOOmapping);
+ if (compToOOmapping != oldCompToOOmapping) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.CODE_GEN_OPTIONS__COMP_TO_OOMAPPING, oldCompToOOmapping, compToOOmapping));
+ }
+ }
+ return compToOOmapping;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CompToOOmapping basicGetCompToOOmapping() {
+ return compToOOmapping;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setCompToOOmapping(CompToOOmapping newCompToOOmapping) {
+ CompToOOmapping oldCompToOOmapping = compToOOmapping;
+ compToOOmapping = newCompToOOmapping;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.CODE_GEN_OPTIONS__COMP_TO_OOMAPPING, oldCompToOOmapping, compToOOmapping));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ProgLanguage getProgLanguage() {
+ if (progLanguage != null && progLanguage.eIsProxy()) {
+ InternalEObject oldProgLanguage = (InternalEObject)progLanguage;
+ progLanguage = (ProgLanguage)eResolveProxy(oldProgLanguage);
+ if (progLanguage != oldProgLanguage) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.CODE_GEN_OPTIONS__PROG_LANGUAGE, oldProgLanguage, progLanguage));
+ }
+ }
+ return progLanguage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ProgLanguage basicGetProgLanguage() {
+ return progLanguage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setProgLanguage(ProgLanguage newProgLanguage) {
+ ProgLanguage oldProgLanguage = progLanguage;
+ progLanguage = newProgLanguage;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.CODE_GEN_OPTIONS__PROG_LANGUAGE, oldProgLanguage, progLanguage));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.CODE_GEN_OPTIONS__BASE_PACKAGE:
+ if (resolve) return getBase_Package();
+ return basicGetBase_Package();
+ case FCMPackage.CODE_GEN_OPTIONS__COMP_TO_OOMAPPING:
+ if (resolve) return getCompToOOmapping();
+ return basicGetCompToOOmapping();
+ case FCMPackage.CODE_GEN_OPTIONS__PROG_LANGUAGE:
+ if (resolve) return getProgLanguage();
+ return basicGetProgLanguage();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.CODE_GEN_OPTIONS__BASE_PACKAGE:
+ setBase_Package((org.eclipse.uml2.uml.Package)newValue);
+ return;
+ case FCMPackage.CODE_GEN_OPTIONS__COMP_TO_OOMAPPING:
+ setCompToOOmapping((CompToOOmapping)newValue);
+ return;
+ case FCMPackage.CODE_GEN_OPTIONS__PROG_LANGUAGE:
+ setProgLanguage((ProgLanguage)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.CODE_GEN_OPTIONS__BASE_PACKAGE:
+ setBase_Package((org.eclipse.uml2.uml.Package)null);
+ return;
+ case FCMPackage.CODE_GEN_OPTIONS__COMP_TO_OOMAPPING:
+ setCompToOOmapping((CompToOOmapping)null);
+ return;
+ case FCMPackage.CODE_GEN_OPTIONS__PROG_LANGUAGE:
+ setProgLanguage((ProgLanguage)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.CODE_GEN_OPTIONS__BASE_PACKAGE:
+ return base_Package != null;
+ case FCMPackage.CODE_GEN_OPTIONS__COMP_TO_OOMAPPING:
+ return compToOOmapping != null;
+ case FCMPackage.CODE_GEN_OPTIONS__PROG_LANGUAGE:
+ return progLanguage != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // CodeGenOptionsImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CompImplTemplateImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CompImplTemplateImpl.java
new file mode 100644
index 00000000000..ef442c13a78
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CompImplTemplateImpl.java
@@ -0,0 +1,235 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.CompImplTemplate;
+import org.eclipse.papyrus.FCM.FCMPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Comp Impl Template</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.CompImplTemplateImpl#getTemplateDefs <em>Template Defs</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.CompImplTemplateImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class CompImplTemplateImpl extends EObjectImpl implements CompImplTemplate {
+ /**
+ * The default value of the '{@link #getTemplateDefs() <em>Template Defs</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTemplateDefs()
+ * @generated
+ * @ordered
+ */
+ protected static final String TEMPLATE_DEFS_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getTemplateDefs() <em>Template Defs</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTemplateDefs()
+ * @generated
+ * @ordered
+ */
+ protected String templateDefs = TEMPLATE_DEFS_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CompImplTemplateImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.COMP_IMPL_TEMPLATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getTemplateDefs() {
+ return templateDefs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setTemplateDefs(String newTemplateDefs) {
+ String oldTemplateDefs = templateDefs;
+ templateDefs = newTemplateDefs;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.COMP_IMPL_TEMPLATE__TEMPLATE_DEFS, oldTemplateDefs, templateDefs));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.COMP_IMPL_TEMPLATE__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.COMP_IMPL_TEMPLATE__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.COMP_IMPL_TEMPLATE__TEMPLATE_DEFS:
+ return getTemplateDefs();
+ case FCMPackage.COMP_IMPL_TEMPLATE__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.COMP_IMPL_TEMPLATE__TEMPLATE_DEFS:
+ setTemplateDefs((String)newValue);
+ return;
+ case FCMPackage.COMP_IMPL_TEMPLATE__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.COMP_IMPL_TEMPLATE__TEMPLATE_DEFS:
+ setTemplateDefs(TEMPLATE_DEFS_EDEFAULT);
+ return;
+ case FCMPackage.COMP_IMPL_TEMPLATE__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.COMP_IMPL_TEMPLATE__TEMPLATE_DEFS:
+ return TEMPLATE_DEFS_EDEFAULT == null ? templateDefs != null : !TEMPLATE_DEFS_EDEFAULT.equals(templateDefs);
+ case FCMPackage.COMP_IMPL_TEMPLATE__BASE_CLASS:
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (templateDefs: "); //$NON-NLS-1$
+ result.append(templateDefs);
+ result.append(')');
+ return result.toString();
+ }
+
+} // CompImplTemplateImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CompToOOmappingImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CompToOOmappingImpl.java
new file mode 100644
index 00000000000..c8337d11912
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CompToOOmappingImpl.java
@@ -0,0 +1,165 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.CompToOOmapping;
+import org.eclipse.papyrus.FCM.FCMPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Comp To OOmapping</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.CompToOOmappingImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class CompToOOmappingImpl extends EObjectImpl implements CompToOOmapping {
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CompToOOmappingImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.COMP_TO_OOMAPPING;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.COMP_TO_OOMAPPING__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.COMP_TO_OOMAPPING__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.COMP_TO_OOMAPPING__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.COMP_TO_OOMAPPING__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.COMP_TO_OOMAPPING__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.COMP_TO_OOMAPPING__BASE_CLASS:
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // CompToOOmappingImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CompilerChainImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CompilerChainImpl.java
new file mode 100644
index 00000000000..9f1edb84aa1
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CompilerChainImpl.java
@@ -0,0 +1,165 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.CompilerChain;
+import org.eclipse.papyrus.FCM.FCMPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Compiler Chain</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.CompilerChainImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class CompilerChainImpl extends EObjectImpl implements CompilerChain {
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CompilerChainImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.COMPILER_CHAIN;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.COMPILER_CHAIN__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.COMPILER_CHAIN__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.COMPILER_CHAIN__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.COMPILER_CHAIN__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.COMPILER_CHAIN__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.COMPILER_CHAIN__BASE_CLASS:
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // CompilerChainImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConfigOptionImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConfigOptionImpl.java
new file mode 100644
index 00000000000..ddf33cb0dbc
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConfigOptionImpl.java
@@ -0,0 +1,165 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.ConfigOption;
+import org.eclipse.papyrus.FCM.FCMPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Config Option</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ConfigOptionImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ConfigOptionImpl extends EObjectImpl implements ConfigOption {
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConfigOptionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.CONFIG_OPTION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.CONFIG_OPTION__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.CONFIG_OPTION__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.CONFIG_OPTION__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.CONFIG_OPTION__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.CONFIG_OPTION__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.CONFIG_OPTION__BASE_CLASS:
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // ConfigOptionImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConfigurableElementInstanceImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConfigurableElementInstanceImpl.java
new file mode 100644
index 00000000000..fb9e509e607
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConfigurableElementInstanceImpl.java
@@ -0,0 +1,166 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.ConfigurableElementInstance;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.uml2.uml.InstanceSpecification;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Configurable Element Instance</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ConfigurableElementInstanceImpl#getConfiguration <em>Configuration</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class ConfigurableElementInstanceImpl extends EObjectImpl implements ConfigurableElementInstance {
+ /**
+ * The cached value of the '{@link #getConfiguration() <em>Configuration</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getConfiguration()
+ * @generated
+ * @ordered
+ */
+ protected InstanceSpecification configuration;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConfigurableElementInstanceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.CONFIGURABLE_ELEMENT_INSTANCE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public InstanceSpecification getConfiguration() {
+ if (configuration != null && configuration.eIsProxy()) {
+ InternalEObject oldConfiguration = (InternalEObject)configuration;
+ configuration = (InstanceSpecification)eResolveProxy(oldConfiguration);
+ if (configuration != oldConfiguration) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.CONFIGURABLE_ELEMENT_INSTANCE__CONFIGURATION, oldConfiguration, configuration));
+ }
+ }
+ return configuration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InstanceSpecification basicGetConfiguration() {
+ return configuration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setConfiguration(InstanceSpecification newConfiguration) {
+ InstanceSpecification oldConfiguration = configuration;
+ configuration = newConfiguration;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.CONFIGURABLE_ELEMENT_INSTANCE__CONFIGURATION, oldConfiguration, configuration));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.CONFIGURABLE_ELEMENT_INSTANCE__CONFIGURATION:
+ if (resolve) return getConfiguration();
+ return basicGetConfiguration();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.CONFIGURABLE_ELEMENT_INSTANCE__CONFIGURATION:
+ setConfiguration((InstanceSpecification)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.CONFIGURABLE_ELEMENT_INSTANCE__CONFIGURATION:
+ setConfiguration((InstanceSpecification)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.CONFIGURABLE_ELEMENT_INSTANCE__CONFIGURATION:
+ return configuration != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // ConfigurableElementInstanceImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConfigurationImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConfigurationImpl.java
new file mode 100644
index 00000000000..b4910abb934
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConfigurationImpl.java
@@ -0,0 +1,269 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.papyrus.FCM.ConfigOption;
+import org.eclipse.papyrus.FCM.Configuration;
+import org.eclipse.papyrus.FCM.DeploymentPlan;
+import org.eclipse.papyrus.FCM.FCMPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Configuration</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ConfigurationImpl#getBase_Class <em>Base Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ConfigurationImpl#getConfigOptions <em>Config Options</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ConfigurationImpl#getDeploymentPlan <em>Deployment Plan</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ConfigurationImpl extends EObjectImpl implements Configuration {
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * The cached value of the '{@link #getConfigOptions() <em>Config Options</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getConfigOptions()
+ * @generated
+ * @ordered
+ */
+ protected EList<ConfigOption> configOptions;
+
+ /**
+ * The cached value of the '{@link #getDeploymentPlan() <em>Deployment Plan</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDeploymentPlan()
+ * @generated
+ * @ordered
+ */
+ protected DeploymentPlan deploymentPlan;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConfigurationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.CONFIGURATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.CONFIGURATION__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.CONFIGURATION__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<ConfigOption> getConfigOptions() {
+ if (configOptions == null) {
+ configOptions = new EObjectResolvingEList<ConfigOption>(ConfigOption.class, this, FCMPackage.CONFIGURATION__CONFIG_OPTIONS);
+ }
+ return configOptions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public DeploymentPlan getDeploymentPlan() {
+ if (deploymentPlan != null && deploymentPlan.eIsProxy()) {
+ InternalEObject oldDeploymentPlan = (InternalEObject)deploymentPlan;
+ deploymentPlan = (DeploymentPlan)eResolveProxy(oldDeploymentPlan);
+ if (deploymentPlan != oldDeploymentPlan) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.CONFIGURATION__DEPLOYMENT_PLAN, oldDeploymentPlan, deploymentPlan));
+ }
+ }
+ return deploymentPlan;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DeploymentPlan basicGetDeploymentPlan() {
+ return deploymentPlan;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setDeploymentPlan(DeploymentPlan newDeploymentPlan) {
+ DeploymentPlan oldDeploymentPlan = deploymentPlan;
+ deploymentPlan = newDeploymentPlan;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.CONFIGURATION__DEPLOYMENT_PLAN, oldDeploymentPlan, deploymentPlan));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.CONFIGURATION__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ case FCMPackage.CONFIGURATION__CONFIG_OPTIONS:
+ return getConfigOptions();
+ case FCMPackage.CONFIGURATION__DEPLOYMENT_PLAN:
+ if (resolve) return getDeploymentPlan();
+ return basicGetDeploymentPlan();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.CONFIGURATION__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ case FCMPackage.CONFIGURATION__CONFIG_OPTIONS:
+ getConfigOptions().clear();
+ getConfigOptions().addAll((Collection<? extends ConfigOption>)newValue);
+ return;
+ case FCMPackage.CONFIGURATION__DEPLOYMENT_PLAN:
+ setDeploymentPlan((DeploymentPlan)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.CONFIGURATION__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ case FCMPackage.CONFIGURATION__CONFIG_OPTIONS:
+ getConfigOptions().clear();
+ return;
+ case FCMPackage.CONFIGURATION__DEPLOYMENT_PLAN:
+ setDeploymentPlan((DeploymentPlan)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.CONFIGURATION__BASE_CLASS:
+ return base_Class != null;
+ case FCMPackage.CONFIGURATION__CONFIG_OPTIONS:
+ return configOptions != null && !configOptions.isEmpty();
+ case FCMPackage.CONFIGURATION__DEPLOYMENT_PLAN:
+ return deploymentPlan != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // ConfigurationImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConfigurationPropertyImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConfigurationPropertyImpl.java
new file mode 100644
index 00000000000..38eab69aac7
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConfigurationPropertyImpl.java
@@ -0,0 +1,166 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.ConfigurationProperty;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Configuration Property</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ConfigurationPropertyImpl#getBase_Property <em>Base Property</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ConfigurationPropertyImpl extends EObjectImpl implements ConfigurationProperty {
+ /**
+ * The cached value of the '{@link #getBase_Property() <em>Base Property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Property()
+ * @generated
+ * @ordered
+ */
+ protected Property base_Property;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConfigurationPropertyImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.CONFIGURATION_PROPERTY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Property getBase_Property() {
+ if (base_Property != null && base_Property.eIsProxy()) {
+ InternalEObject oldBase_Property = (InternalEObject)base_Property;
+ base_Property = (Property)eResolveProxy(oldBase_Property);
+ if (base_Property != oldBase_Property) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.CONFIGURATION_PROPERTY__BASE_PROPERTY, oldBase_Property, base_Property));
+ }
+ }
+ return base_Property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property basicGetBase_Property() {
+ return base_Property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Property(Property newBase_Property) {
+ Property oldBase_Property = base_Property;
+ base_Property = newBase_Property;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.CONFIGURATION_PROPERTY__BASE_PROPERTY, oldBase_Property, base_Property));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.CONFIGURATION_PROPERTY__BASE_PROPERTY:
+ if (resolve) return getBase_Property();
+ return basicGetBase_Property();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.CONFIGURATION_PROPERTY__BASE_PROPERTY:
+ setBase_Property((Property)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.CONFIGURATION_PROPERTY__BASE_PROPERTY:
+ setBase_Property((Property)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.CONFIGURATION_PROPERTY__BASE_PROPERTY:
+ return base_Property != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // ConfigurationPropertyImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConnectorConfigurationImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConnectorConfigurationImpl.java
new file mode 100644
index 00000000000..21bc4a77305
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConnectorConfigurationImpl.java
@@ -0,0 +1,229 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.Connector;
+import org.eclipse.papyrus.FCM.ConnectorConfiguration;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.uml2.uml.Slot;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Connector Configuration</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ConnectorConfigurationImpl#getBase_Slot <em>Base Slot</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ConnectorConfigurationImpl#getConnector <em>Connector</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ConnectorConfigurationImpl extends EObjectImpl implements ConnectorConfiguration {
+ /**
+ * The cached value of the '{@link #getBase_Slot() <em>Base Slot</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Slot()
+ * @generated
+ * @ordered
+ */
+ protected Slot base_Slot;
+
+ /**
+ * The cached value of the '{@link #getConnector() <em>Connector</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getConnector()
+ * @generated
+ * @ordered
+ */
+ protected Connector connector;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConnectorConfigurationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.CONNECTOR_CONFIGURATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Slot getBase_Slot() {
+ if (base_Slot != null && base_Slot.eIsProxy()) {
+ InternalEObject oldBase_Slot = (InternalEObject)base_Slot;
+ base_Slot = (Slot)eResolveProxy(oldBase_Slot);
+ if (base_Slot != oldBase_Slot) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.CONNECTOR_CONFIGURATION__BASE_SLOT, oldBase_Slot, base_Slot));
+ }
+ }
+ return base_Slot;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Slot basicGetBase_Slot() {
+ return base_Slot;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Slot(Slot newBase_Slot) {
+ Slot oldBase_Slot = base_Slot;
+ base_Slot = newBase_Slot;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.CONNECTOR_CONFIGURATION__BASE_SLOT, oldBase_Slot, base_Slot));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Connector getConnector() {
+ if (connector != null && connector.eIsProxy()) {
+ InternalEObject oldConnector = (InternalEObject)connector;
+ connector = (Connector)eResolveProxy(oldConnector);
+ if (connector != oldConnector) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.CONNECTOR_CONFIGURATION__CONNECTOR, oldConnector, connector));
+ }
+ }
+ return connector;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Connector basicGetConnector() {
+ return connector;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setConnector(Connector newConnector) {
+ Connector oldConnector = connector;
+ connector = newConnector;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.CONNECTOR_CONFIGURATION__CONNECTOR, oldConnector, connector));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.CONNECTOR_CONFIGURATION__BASE_SLOT:
+ if (resolve) return getBase_Slot();
+ return basicGetBase_Slot();
+ case FCMPackage.CONNECTOR_CONFIGURATION__CONNECTOR:
+ if (resolve) return getConnector();
+ return basicGetConnector();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.CONNECTOR_CONFIGURATION__BASE_SLOT:
+ setBase_Slot((Slot)newValue);
+ return;
+ case FCMPackage.CONNECTOR_CONFIGURATION__CONNECTOR:
+ setConnector((Connector)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.CONNECTOR_CONFIGURATION__BASE_SLOT:
+ setBase_Slot((Slot)null);
+ return;
+ case FCMPackage.CONNECTOR_CONFIGURATION__CONNECTOR:
+ setConnector((Connector)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.CONNECTOR_CONFIGURATION__BASE_SLOT:
+ return base_Slot != null;
+ case FCMPackage.CONNECTOR_CONFIGURATION__CONNECTOR:
+ return connector != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // ConnectorConfigurationImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConnectorImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConnectorImpl.java
new file mode 100644
index 00000000000..fc4c4381033
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ConnectorImpl.java
@@ -0,0 +1,290 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.papyrus.FCM.Connector;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.InteractionComponent;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Connector</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ConnectorImpl#getBase_Connector <em>Base Connector</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ConnectorImpl#getIc <em>Ic</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ConnectorImpl#getBase_Property <em>Base Property</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ConnectorImpl extends ConfigurableElementInstanceImpl implements Connector {
+ /**
+ * The cached value of the '{@link #getBase_Connector() <em>Base Connector</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Connector()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Connector base_Connector;
+
+ /**
+ * The cached value of the '{@link #getIc() <em>Ic</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIc()
+ * @generated
+ * @ordered
+ */
+ protected InteractionComponent ic;
+
+ /**
+ * The cached value of the '{@link #getBase_Property() <em>Base Property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Property()
+ * @generated
+ * @ordered
+ */
+ protected Property base_Property;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConnectorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.CONNECTOR;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Connector getBase_Connector() {
+ if (base_Connector != null && base_Connector.eIsProxy()) {
+ InternalEObject oldBase_Connector = (InternalEObject)base_Connector;
+ base_Connector = (org.eclipse.uml2.uml.Connector)eResolveProxy(oldBase_Connector);
+ if (base_Connector != oldBase_Connector) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.CONNECTOR__BASE_CONNECTOR, oldBase_Connector, base_Connector));
+ }
+ }
+ return base_Connector;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Connector basicGetBase_Connector() {
+ return base_Connector;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Connector(org.eclipse.uml2.uml.Connector newBase_Connector) {
+ org.eclipse.uml2.uml.Connector oldBase_Connector = base_Connector;
+ base_Connector = newBase_Connector;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.CONNECTOR__BASE_CONNECTOR, oldBase_Connector, base_Connector));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public InteractionComponent getIc() {
+ if (ic != null && ic.eIsProxy()) {
+ InternalEObject oldIc = (InternalEObject)ic;
+ ic = (InteractionComponent)eResolveProxy(oldIc);
+ if (ic != oldIc) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.CONNECTOR__IC, oldIc, ic));
+ }
+ }
+ return ic;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InteractionComponent basicGetIc() {
+ return ic;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setIc(InteractionComponent newIc) {
+ InteractionComponent oldIc = ic;
+ ic = newIc;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.CONNECTOR__IC, oldIc, ic));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Property getBase_Property() {
+ if (base_Property != null && base_Property.eIsProxy()) {
+ InternalEObject oldBase_Property = (InternalEObject)base_Property;
+ base_Property = (Property)eResolveProxy(oldBase_Property);
+ if (base_Property != oldBase_Property) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.CONNECTOR__BASE_PROPERTY, oldBase_Property, base_Property));
+ }
+ }
+ return base_Property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property basicGetBase_Property() {
+ return base_Property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Property(Property newBase_Property) {
+ Property oldBase_Property = base_Property;
+ base_Property = newBase_Property;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.CONNECTOR__BASE_PROPERTY, oldBase_Property, base_Property));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.CONNECTOR__BASE_CONNECTOR:
+ if (resolve) return getBase_Connector();
+ return basicGetBase_Connector();
+ case FCMPackage.CONNECTOR__IC:
+ if (resolve) return getIc();
+ return basicGetIc();
+ case FCMPackage.CONNECTOR__BASE_PROPERTY:
+ if (resolve) return getBase_Property();
+ return basicGetBase_Property();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.CONNECTOR__BASE_CONNECTOR:
+ setBase_Connector((org.eclipse.uml2.uml.Connector)newValue);
+ return;
+ case FCMPackage.CONNECTOR__IC:
+ setIc((InteractionComponent)newValue);
+ return;
+ case FCMPackage.CONNECTOR__BASE_PROPERTY:
+ setBase_Property((Property)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.CONNECTOR__BASE_CONNECTOR:
+ setBase_Connector((org.eclipse.uml2.uml.Connector)null);
+ return;
+ case FCMPackage.CONNECTOR__IC:
+ setIc((InteractionComponent)null);
+ return;
+ case FCMPackage.CONNECTOR__BASE_PROPERTY:
+ setBase_Property((Property)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.CONNECTOR__BASE_CONNECTOR:
+ return base_Connector != null;
+ case FCMPackage.CONNECTOR__IC:
+ return ic != null;
+ case FCMPackage.CONNECTOR__BASE_PROPERTY:
+ return base_Property != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // ConnectorImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ContainerRuleImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ContainerRuleImpl.java
new file mode 100644
index 00000000000..8b705f5b4fb
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ContainerRuleImpl.java
@@ -0,0 +1,277 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.papyrus.FCM.ConfigOption;
+import org.eclipse.papyrus.FCM.ContainerRule;
+import org.eclipse.papyrus.FCM.ContainerRuleKind;
+import org.eclipse.papyrus.FCM.FCMPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Container Rule</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ContainerRuleImpl#getBase_Class <em>Base Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ContainerRuleImpl#getForConfig <em>For Config</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ContainerRuleImpl#getKind <em>Kind</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ContainerRuleImpl extends EObjectImpl implements ContainerRule {
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * The cached value of the '{@link #getForConfig() <em>For Config</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getForConfig()
+ * @generated
+ * @ordered
+ */
+ protected EList<ConfigOption> forConfig;
+
+ /**
+ * The default value of the '{@link #getKind() <em>Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getKind()
+ * @generated
+ * @ordered
+ */
+ protected static final ContainerRuleKind KIND_EDEFAULT = ContainerRuleKind.COMPONENT_RULE;
+
+ /**
+ * The cached value of the '{@link #getKind() <em>Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getKind()
+ * @generated
+ * @ordered
+ */
+ protected ContainerRuleKind kind = KIND_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ContainerRuleImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.CONTAINER_RULE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.CONTAINER_RULE__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.CONTAINER_RULE__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<ConfigOption> getForConfig() {
+ if (forConfig == null) {
+ forConfig = new EObjectResolvingEList<ConfigOption>(ConfigOption.class, this, FCMPackage.CONTAINER_RULE__FOR_CONFIG);
+ }
+ return forConfig;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ContainerRuleKind getKind() {
+ return kind;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setKind(ContainerRuleKind newKind) {
+ ContainerRuleKind oldKind = kind;
+ kind = newKind == null ? KIND_EDEFAULT : newKind;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.CONTAINER_RULE__KIND, oldKind, kind));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.CONTAINER_RULE__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ case FCMPackage.CONTAINER_RULE__FOR_CONFIG:
+ return getForConfig();
+ case FCMPackage.CONTAINER_RULE__KIND:
+ return getKind();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.CONTAINER_RULE__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ case FCMPackage.CONTAINER_RULE__FOR_CONFIG:
+ getForConfig().clear();
+ getForConfig().addAll((Collection<? extends ConfigOption>)newValue);
+ return;
+ case FCMPackage.CONTAINER_RULE__KIND:
+ setKind((ContainerRuleKind)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.CONTAINER_RULE__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ case FCMPackage.CONTAINER_RULE__FOR_CONFIG:
+ getForConfig().clear();
+ return;
+ case FCMPackage.CONTAINER_RULE__KIND:
+ setKind(KIND_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.CONTAINER_RULE__BASE_CLASS:
+ return base_Class != null;
+ case FCMPackage.CONTAINER_RULE__FOR_CONFIG:
+ return forConfig != null && !forConfig.isEmpty();
+ case FCMPackage.CONTAINER_RULE__KIND:
+ return kind != KIND_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (kind: "); //$NON-NLS-1$
+ result.append(kind);
+ result.append(')');
+ return result.toString();
+ }
+
+} // ContainerRuleImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CopyAttributeValueImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CopyAttributeValueImpl.java
new file mode 100644
index 00000000000..bc73efb61af
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/CopyAttributeValueImpl.java
@@ -0,0 +1,228 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.CopyAttributeValue;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Copy Attribute Value</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.CopyAttributeValueImpl#getSource <em>Source</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.CopyAttributeValueImpl#getBase_Property <em>Base Property</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class CopyAttributeValueImpl extends EObjectImpl implements CopyAttributeValue {
+ /**
+ * The cached value of the '{@link #getSource() <em>Source</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSource()
+ * @generated
+ * @ordered
+ */
+ protected Property source;
+
+ /**
+ * The cached value of the '{@link #getBase_Property() <em>Base Property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Property()
+ * @generated
+ * @ordered
+ */
+ protected Property base_Property;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CopyAttributeValueImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.COPY_ATTRIBUTE_VALUE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Property getSource() {
+ if (source != null && source.eIsProxy()) {
+ InternalEObject oldSource = (InternalEObject)source;
+ source = (Property)eResolveProxy(oldSource);
+ if (source != oldSource) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.COPY_ATTRIBUTE_VALUE__SOURCE, oldSource, source));
+ }
+ }
+ return source;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property basicGetSource() {
+ return source;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setSource(Property newSource) {
+ Property oldSource = source;
+ source = newSource;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.COPY_ATTRIBUTE_VALUE__SOURCE, oldSource, source));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Property getBase_Property() {
+ if (base_Property != null && base_Property.eIsProxy()) {
+ InternalEObject oldBase_Property = (InternalEObject)base_Property;
+ base_Property = (Property)eResolveProxy(oldBase_Property);
+ if (base_Property != oldBase_Property) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.COPY_ATTRIBUTE_VALUE__BASE_PROPERTY, oldBase_Property, base_Property));
+ }
+ }
+ return base_Property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property basicGetBase_Property() {
+ return base_Property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Property(Property newBase_Property) {
+ Property oldBase_Property = base_Property;
+ base_Property = newBase_Property;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.COPY_ATTRIBUTE_VALUE__BASE_PROPERTY, oldBase_Property, base_Property));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.COPY_ATTRIBUTE_VALUE__SOURCE:
+ if (resolve) return getSource();
+ return basicGetSource();
+ case FCMPackage.COPY_ATTRIBUTE_VALUE__BASE_PROPERTY:
+ if (resolve) return getBase_Property();
+ return basicGetBase_Property();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.COPY_ATTRIBUTE_VALUE__SOURCE:
+ setSource((Property)newValue);
+ return;
+ case FCMPackage.COPY_ATTRIBUTE_VALUE__BASE_PROPERTY:
+ setBase_Property((Property)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.COPY_ATTRIBUTE_VALUE__SOURCE:
+ setSource((Property)null);
+ return;
+ case FCMPackage.COPY_ATTRIBUTE_VALUE__BASE_PROPERTY:
+ setBase_Property((Property)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.COPY_ATTRIBUTE_VALUE__SOURCE:
+ return source != null;
+ case FCMPackage.COPY_ATTRIBUTE_VALUE__BASE_PROPERTY:
+ return base_Property != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // CopyAttributeValueImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/DeploymentPlanImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/DeploymentPlanImpl.java
new file mode 100644
index 00000000000..eeec84970e5
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/DeploymentPlanImpl.java
@@ -0,0 +1,228 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.DeploymentPlan;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.uml2.uml.InstanceSpecification;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Deployment Plan</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.DeploymentPlanImpl#getMainInstance <em>Main Instance</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.DeploymentPlanImpl#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class DeploymentPlanImpl extends EObjectImpl implements DeploymentPlan {
+ /**
+ * The cached value of the '{@link #getMainInstance() <em>Main Instance</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMainInstance()
+ * @generated
+ * @ordered
+ */
+ protected InstanceSpecification mainInstance;
+
+ /**
+ * The cached value of the '{@link #getBase_Package() <em>Base Package</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Package()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Package base_Package;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DeploymentPlanImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.DEPLOYMENT_PLAN;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public InstanceSpecification getMainInstance() {
+ if (mainInstance != null && mainInstance.eIsProxy()) {
+ InternalEObject oldMainInstance = (InternalEObject)mainInstance;
+ mainInstance = (InstanceSpecification)eResolveProxy(oldMainInstance);
+ if (mainInstance != oldMainInstance) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.DEPLOYMENT_PLAN__MAIN_INSTANCE, oldMainInstance, mainInstance));
+ }
+ }
+ return mainInstance;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InstanceSpecification basicGetMainInstance() {
+ return mainInstance;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setMainInstance(InstanceSpecification newMainInstance) {
+ InstanceSpecification oldMainInstance = mainInstance;
+ mainInstance = newMainInstance;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.DEPLOYMENT_PLAN__MAIN_INSTANCE, oldMainInstance, mainInstance));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Package getBase_Package() {
+ if (base_Package != null && base_Package.eIsProxy()) {
+ InternalEObject oldBase_Package = (InternalEObject)base_Package;
+ base_Package = (org.eclipse.uml2.uml.Package)eResolveProxy(oldBase_Package);
+ if (base_Package != oldBase_Package) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.DEPLOYMENT_PLAN__BASE_PACKAGE, oldBase_Package, base_Package));
+ }
+ }
+ return base_Package;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Package basicGetBase_Package() {
+ return base_Package;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Package(org.eclipse.uml2.uml.Package newBase_Package) {
+ org.eclipse.uml2.uml.Package oldBase_Package = base_Package;
+ base_Package = newBase_Package;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.DEPLOYMENT_PLAN__BASE_PACKAGE, oldBase_Package, base_Package));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.DEPLOYMENT_PLAN__MAIN_INSTANCE:
+ if (resolve) return getMainInstance();
+ return basicGetMainInstance();
+ case FCMPackage.DEPLOYMENT_PLAN__BASE_PACKAGE:
+ if (resolve) return getBase_Package();
+ return basicGetBase_Package();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.DEPLOYMENT_PLAN__MAIN_INSTANCE:
+ setMainInstance((InstanceSpecification)newValue);
+ return;
+ case FCMPackage.DEPLOYMENT_PLAN__BASE_PACKAGE:
+ setBase_Package((org.eclipse.uml2.uml.Package)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.DEPLOYMENT_PLAN__MAIN_INSTANCE:
+ setMainInstance((InstanceSpecification)null);
+ return;
+ case FCMPackage.DEPLOYMENT_PLAN__BASE_PACKAGE:
+ setBase_Package((org.eclipse.uml2.uml.Package)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.DEPLOYMENT_PLAN__MAIN_INSTANCE:
+ return mainInstance != null;
+ case FCMPackage.DEPLOYMENT_PLAN__BASE_PACKAGE:
+ return base_Package != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // DeploymentPlanImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/DerivedElementImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/DerivedElementImpl.java
new file mode 100644
index 00000000000..3217b6ff94e
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/DerivedElementImpl.java
@@ -0,0 +1,228 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.DerivedElement;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.uml2.uml.Element;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Derived Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.DerivedElementImpl#getBase_Element <em>Base Element</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.DerivedElementImpl#getSource <em>Source</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class DerivedElementImpl extends EObjectImpl implements DerivedElement {
+ /**
+ * The cached value of the '{@link #getBase_Element() <em>Base Element</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Element()
+ * @generated
+ * @ordered
+ */
+ protected Element base_Element;
+
+ /**
+ * The cached value of the '{@link #getSource() <em>Source</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSource()
+ * @generated
+ * @ordered
+ */
+ protected Element source;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DerivedElementImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.DERIVED_ELEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Element getBase_Element() {
+ if (base_Element != null && base_Element.eIsProxy()) {
+ InternalEObject oldBase_Element = (InternalEObject)base_Element;
+ base_Element = (Element)eResolveProxy(oldBase_Element);
+ if (base_Element != oldBase_Element) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.DERIVED_ELEMENT__BASE_ELEMENT, oldBase_Element, base_Element));
+ }
+ }
+ return base_Element;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element basicGetBase_Element() {
+ return base_Element;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Element(Element newBase_Element) {
+ Element oldBase_Element = base_Element;
+ base_Element = newBase_Element;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.DERIVED_ELEMENT__BASE_ELEMENT, oldBase_Element, base_Element));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Element getSource() {
+ if (source != null && source.eIsProxy()) {
+ InternalEObject oldSource = (InternalEObject)source;
+ source = (Element)eResolveProxy(oldSource);
+ if (source != oldSource) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.DERIVED_ELEMENT__SOURCE, oldSource, source));
+ }
+ }
+ return source;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element basicGetSource() {
+ return source;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setSource(Element newSource) {
+ Element oldSource = source;
+ source = newSource;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.DERIVED_ELEMENT__SOURCE, oldSource, source));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.DERIVED_ELEMENT__BASE_ELEMENT:
+ if (resolve) return getBase_Element();
+ return basicGetBase_Element();
+ case FCMPackage.DERIVED_ELEMENT__SOURCE:
+ if (resolve) return getSource();
+ return basicGetSource();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.DERIVED_ELEMENT__BASE_ELEMENT:
+ setBase_Element((Element)newValue);
+ return;
+ case FCMPackage.DERIVED_ELEMENT__SOURCE:
+ setSource((Element)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.DERIVED_ELEMENT__BASE_ELEMENT:
+ setBase_Element((Element)null);
+ return;
+ case FCMPackage.DERIVED_ELEMENT__SOURCE:
+ setSource((Element)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.DERIVED_ELEMENT__BASE_ELEMENT:
+ return base_Element != null;
+ case FCMPackage.DERIVED_ELEMENT__SOURCE:
+ return source != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // DerivedElementImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FCMFactoryImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FCMFactoryImpl.java
new file mode 100644
index 00000000000..9cd6ea0b76d
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FCMFactoryImpl.java
@@ -0,0 +1,652 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.papyrus.FCM.*;
+import org.eclipse.papyrus.FCM.Assembly;
+import org.eclipse.papyrus.FCM.AutoIndex;
+import org.eclipse.papyrus.FCM.AutoIndexPerNode;
+import org.eclipse.papyrus.FCM.BindTemplate;
+import org.eclipse.papyrus.FCM.BindingHelper;
+import org.eclipse.papyrus.FCM.CodeGenOptions;
+import org.eclipse.papyrus.FCM.CompImplTemplate;
+import org.eclipse.papyrus.FCM.CompToOOmapping;
+import org.eclipse.papyrus.FCM.CompilerChain;
+import org.eclipse.papyrus.FCM.ConfigOption;
+import org.eclipse.papyrus.FCM.Configuration;
+import org.eclipse.papyrus.FCM.ConfigurationProperty;
+import org.eclipse.papyrus.FCM.Connector;
+import org.eclipse.papyrus.FCM.ConnectorConfiguration;
+import org.eclipse.papyrus.FCM.ContainerRule;
+import org.eclipse.papyrus.FCM.ContainerRuleKind;
+import org.eclipse.papyrus.FCM.CopyAttributeValue;
+import org.eclipse.papyrus.FCM.DeploymentPlan;
+import org.eclipse.papyrus.FCM.DerivedElement;
+import org.eclipse.papyrus.FCM.FCMFactory;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.Flatten;
+import org.eclipse.papyrus.FCM.Fragment;
+import org.eclipse.papyrus.FCM.ImplementationGroup;
+import org.eclipse.papyrus.FCM.ImplementationProperties;
+import org.eclipse.papyrus.FCM.InitPrecedence;
+import org.eclipse.papyrus.FCM.InstanceConfigurator;
+import org.eclipse.papyrus.FCM.InteractionComponent;
+import org.eclipse.papyrus.FCM.InterceptionKind;
+import org.eclipse.papyrus.FCM.InterceptionRule;
+import org.eclipse.papyrus.FCM.OperatingSystem;
+import org.eclipse.papyrus.FCM.Port;
+import org.eclipse.papyrus.FCM.PortKind;
+import org.eclipse.papyrus.FCM.ProgLanguage;
+import org.eclipse.papyrus.FCM.RuleApplication;
+import org.eclipse.papyrus.FCM.Singleton;
+import org.eclipse.papyrus.FCM.Target;
+import org.eclipse.papyrus.FCM.TargetArchitecture;
+import org.eclipse.papyrus.FCM.Template;
+import org.eclipse.papyrus.FCM.TemplatePort;
+import org.eclipse.papyrus.FCM.UseInstanceConfigurator;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class FCMFactoryImpl extends EFactoryImpl implements FCMFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static FCMFactory init() {
+ try {
+ FCMFactory theFCMFactory = (FCMFactory)EPackage.Registry.INSTANCE.getEFactory(FCMPackage.eNS_URI);
+ if (theFCMFactory != null) {
+ return theFCMFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new FCMFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FCMFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case FCMPackage.TEMPLATE: return createTemplate();
+ case FCMPackage.BINDING_HELPER: return createBindingHelper();
+ case FCMPackage.CONFIGURATION_PROPERTY: return createConfigurationProperty();
+ case FCMPackage.IMPLEMENTATION_GROUP: return createImplementationGroup();
+ case FCMPackage.ASSEMBLY: return createAssembly();
+ case FCMPackage.FLATTEN: return createFlatten();
+ case FCMPackage.COMP_TO_OOMAPPING: return createCompToOOmapping();
+ case FCMPackage.PROG_LANGUAGE: return createProgLanguage();
+ case FCMPackage.CODE_GEN_OPTIONS: return createCodeGenOptions();
+ case FCMPackage.INTERACTION_COMPONENT: return createInteractionComponent();
+ case FCMPackage.SINGLETON: return createSingleton();
+ case FCMPackage.CONNECTOR: return createConnector();
+ case FCMPackage.USE_INSTANCE_CONFIGURATOR: return createUseInstanceConfigurator();
+ case FCMPackage.INSTANCE_CONFIGURATOR: return createInstanceConfigurator();
+ case FCMPackage.RULE_APPLICATION: return createRuleApplication();
+ case FCMPackage.CONTAINER_RULE: return createContainerRule();
+ case FCMPackage.CONFIG_OPTION: return createConfigOption();
+ case FCMPackage.TEMPLATE_PORT: return createTemplatePort();
+ case FCMPackage.PORT: return createPort();
+ case FCMPackage.PORT_KIND: return createPortKind();
+ case FCMPackage.DEPLOYMENT_PLAN: return createDeploymentPlan();
+ case FCMPackage.DERIVED_ELEMENT: return createDerivedElement();
+ case FCMPackage.COMP_IMPL_TEMPLATE: return createCompImplTemplate();
+ case FCMPackage.IMPLEMENTATION_PROPERTIES: return createImplementationProperties();
+ case FCMPackage.OPERATING_SYSTEM: return createOperatingSystem();
+ case FCMPackage.TARGET_ARCHITECTURE: return createTargetArchitecture();
+ case FCMPackage.CONFIGURATION: return createConfiguration();
+ case FCMPackage.INTERCEPTION_RULE: return createInterceptionRule();
+ case FCMPackage.TARGET: return createTarget();
+ case FCMPackage.COMPILER_CHAIN: return createCompilerChain();
+ case FCMPackage.FRAGMENT: return createFragment();
+ case FCMPackage.COPY_ATTRIBUTE_VALUE: return createCopyAttributeValue();
+ case FCMPackage.AUTO_INDEX: return createAutoIndex();
+ case FCMPackage.AUTO_INDEX_PER_NODE: return createAutoIndexPerNode();
+ case FCMPackage.INIT_PRECEDENCE: return createInitPrecedence();
+ case FCMPackage.CONNECTOR_CONFIGURATION: return createConnectorConfiguration();
+ case FCMPackage.BIND_TEMPLATE: return createBindTemplate();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object createFromString(EDataType eDataType, String initialValue) {
+ switch (eDataType.getClassifierID()) {
+ case FCMPackage.CONTAINER_RULE_KIND:
+ return createContainerRuleKindFromString(eDataType, initialValue);
+ case FCMPackage.INTERCEPTION_KIND:
+ return createInterceptionKindFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String convertToString(EDataType eDataType, Object instanceValue) {
+ switch (eDataType.getClassifierID()) {
+ case FCMPackage.CONTAINER_RULE_KIND:
+ return convertContainerRuleKindToString(eDataType, instanceValue);
+ case FCMPackage.INTERCEPTION_KIND:
+ return convertInterceptionKindToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Template createTemplate() {
+ TemplateImpl template = new TemplateImpl();
+ return template;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public BindingHelper createBindingHelper() {
+ BindingHelperImpl bindingHelper = new BindingHelperImpl();
+ return bindingHelper;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ConfigurationProperty createConfigurationProperty() {
+ ConfigurationPropertyImpl configurationProperty = new ConfigurationPropertyImpl();
+ return configurationProperty;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ImplementationGroup createImplementationGroup() {
+ ImplementationGroupImpl implementationGroup = new ImplementationGroupImpl();
+ return implementationGroup;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Assembly createAssembly() {
+ AssemblyImpl assembly = new AssemblyImpl();
+ return assembly;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Flatten createFlatten() {
+ FlattenImpl flatten = new FlattenImpl();
+ return flatten;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public CompToOOmapping createCompToOOmapping() {
+ CompToOOmappingImpl compToOOmapping = new CompToOOmappingImpl();
+ return compToOOmapping;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ProgLanguage createProgLanguage() {
+ ProgLanguageImpl progLanguage = new ProgLanguageImpl();
+ return progLanguage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public CodeGenOptions createCodeGenOptions() {
+ CodeGenOptionsImpl codeGenOptions = new CodeGenOptionsImpl();
+ return codeGenOptions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public InteractionComponent createInteractionComponent() {
+ InteractionComponentImpl interactionComponent = new InteractionComponentImpl();
+ return interactionComponent;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Singleton createSingleton() {
+ SingletonImpl singleton = new SingletonImpl();
+ return singleton;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Connector createConnector() {
+ ConnectorImpl connector = new ConnectorImpl();
+ return connector;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public UseInstanceConfigurator createUseInstanceConfigurator() {
+ UseInstanceConfiguratorImpl useInstanceConfigurator = new UseInstanceConfiguratorImpl();
+ return useInstanceConfigurator;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public InstanceConfigurator createInstanceConfigurator() {
+ InstanceConfiguratorImpl instanceConfigurator = new InstanceConfiguratorImpl();
+ return instanceConfigurator;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public RuleApplication createRuleApplication() {
+ RuleApplicationImpl ruleApplication = new RuleApplicationImpl();
+ return ruleApplication;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ContainerRule createContainerRule() {
+ ContainerRuleImpl containerRule = new ContainerRuleImpl();
+ return containerRule;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ConfigOption createConfigOption() {
+ ConfigOptionImpl configOption = new ConfigOptionImpl();
+ return configOption;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public TemplatePort createTemplatePort() {
+ TemplatePortImpl templatePort = new TemplatePortImpl();
+ return templatePort;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Port createPort() {
+ PortImpl port = new PortImpl();
+ return port;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public PortKind createPortKind() {
+ PortKindImpl portKind = new PortKindImpl();
+ return portKind;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public DeploymentPlan createDeploymentPlan() {
+ DeploymentPlanImpl deploymentPlan = new DeploymentPlanImpl();
+ return deploymentPlan;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public DerivedElement createDerivedElement() {
+ DerivedElementImpl derivedElement = new DerivedElementImpl();
+ return derivedElement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public CompImplTemplate createCompImplTemplate() {
+ CompImplTemplateImpl compImplTemplate = new CompImplTemplateImpl();
+ return compImplTemplate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ImplementationProperties createImplementationProperties() {
+ ImplementationPropertiesImpl implementationProperties = new ImplementationPropertiesImpl();
+ return implementationProperties;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public OperatingSystem createOperatingSystem() {
+ OperatingSystemImpl operatingSystem = new OperatingSystemImpl();
+ return operatingSystem;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public TargetArchitecture createTargetArchitecture() {
+ TargetArchitectureImpl targetArchitecture = new TargetArchitectureImpl();
+ return targetArchitecture;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Configuration createConfiguration() {
+ ConfigurationImpl configuration = new ConfigurationImpl();
+ return configuration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public InterceptionRule createInterceptionRule() {
+ InterceptionRuleImpl interceptionRule = new InterceptionRuleImpl();
+ return interceptionRule;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Target createTarget() {
+ TargetImpl target = new TargetImpl();
+ return target;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public CompilerChain createCompilerChain() {
+ CompilerChainImpl compilerChain = new CompilerChainImpl();
+ return compilerChain;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Fragment createFragment() {
+ FragmentImpl fragment = new FragmentImpl();
+ return fragment;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public CopyAttributeValue createCopyAttributeValue() {
+ CopyAttributeValueImpl copyAttributeValue = new CopyAttributeValueImpl();
+ return copyAttributeValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public AutoIndex createAutoIndex() {
+ AutoIndexImpl autoIndex = new AutoIndexImpl();
+ return autoIndex;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public AutoIndexPerNode createAutoIndexPerNode() {
+ AutoIndexPerNodeImpl autoIndexPerNode = new AutoIndexPerNodeImpl();
+ return autoIndexPerNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public InitPrecedence createInitPrecedence() {
+ InitPrecedenceImpl initPrecedence = new InitPrecedenceImpl();
+ return initPrecedence;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ConnectorConfiguration createConnectorConfiguration() {
+ ConnectorConfigurationImpl connectorConfiguration = new ConnectorConfigurationImpl();
+ return connectorConfiguration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public BindTemplate createBindTemplate() {
+ BindTemplateImpl bindTemplate = new BindTemplateImpl();
+ return bindTemplate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ContainerRuleKind createContainerRuleKindFromString(EDataType eDataType, String initialValue) {
+ ContainerRuleKind result = ContainerRuleKind.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertContainerRuleKindToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InterceptionKind createInterceptionKindFromString(EDataType eDataType, String initialValue) {
+ InterceptionKind result = InterceptionKind.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertInterceptionKindToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public FCMPackage getFCMPackage() {
+ return (FCMPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static FCMPackage getPackage() {
+ return FCMPackage.eINSTANCE;
+ }
+
+} // FCMFactoryImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FCMPackageImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FCMPackageImpl.java
new file mode 100644
index 00000000000..c59952dab6e
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FCMPackageImpl.java
@@ -0,0 +1,2002 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.papyrus.FCM.Assembly;
+import org.eclipse.papyrus.FCM.AutoIndex;
+import org.eclipse.papyrus.FCM.AutoIndexPerNode;
+import org.eclipse.papyrus.FCM.BindTemplate;
+import org.eclipse.papyrus.FCM.BindingHelper;
+import org.eclipse.papyrus.FCM.CodeGenOptions;
+import org.eclipse.papyrus.FCM.CompImplTemplate;
+import org.eclipse.papyrus.FCM.CompToOOmapping;
+import org.eclipse.papyrus.FCM.CompilerChain;
+import org.eclipse.papyrus.FCM.ConfigOption;
+import org.eclipse.papyrus.FCM.ConfigurableElementInstance;
+import org.eclipse.papyrus.FCM.Configuration;
+import org.eclipse.papyrus.FCM.ConfigurationProperty;
+import org.eclipse.papyrus.FCM.Connector;
+import org.eclipse.papyrus.FCM.ConnectorConfiguration;
+import org.eclipse.papyrus.FCM.ContainerRule;
+import org.eclipse.papyrus.FCM.ContainerRuleKind;
+import org.eclipse.papyrus.FCM.CopyAttributeValue;
+import org.eclipse.papyrus.FCM.DeploymentPlan;
+import org.eclipse.papyrus.FCM.DerivedElement;
+import org.eclipse.papyrus.FCM.FCMFactory;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.Flatten;
+import org.eclipse.papyrus.FCM.Fragment;
+import org.eclipse.papyrus.FCM.ImplementationGroup;
+import org.eclipse.papyrus.FCM.ImplementationProperties;
+import org.eclipse.papyrus.FCM.InitPrecedence;
+import org.eclipse.papyrus.FCM.InstanceConfigurator;
+import org.eclipse.papyrus.FCM.InteractionComponent;
+import org.eclipse.papyrus.FCM.InterceptionKind;
+import org.eclipse.papyrus.FCM.InterceptionRule;
+import org.eclipse.papyrus.FCM.OperatingSystem;
+import org.eclipse.papyrus.FCM.Port;
+import org.eclipse.papyrus.FCM.PortKind;
+import org.eclipse.papyrus.FCM.ProgLanguage;
+import org.eclipse.papyrus.FCM.RuleApplication;
+import org.eclipse.papyrus.FCM.Singleton;
+import org.eclipse.papyrus.FCM.Target;
+import org.eclipse.papyrus.FCM.TargetArchitecture;
+import org.eclipse.papyrus.FCM.Template;
+import org.eclipse.papyrus.FCM.TemplatePort;
+import org.eclipse.papyrus.FCM.UseInstanceConfigurator;
+import org.eclipse.uml2.types.TypesPackage;
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class FCMPackageImpl extends EPackageImpl implements FCMPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass templateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass bindingHelperEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass configurationPropertyEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass implementationGroupEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass assemblyEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass flattenEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass compToOOmappingEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass progLanguageEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass codeGenOptionsEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass interactionComponentEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass singletonEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass connectorEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass configurableElementInstanceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass useInstanceConfiguratorEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass instanceConfiguratorEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass ruleApplicationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass containerRuleEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass configOptionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass templatePortEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass portEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass portKindEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass deploymentPlanEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass derivedElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass compImplTemplateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass implementationPropertiesEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass operatingSystemEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass targetArchitectureEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass configurationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass interceptionRuleEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass targetEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass compilerChainEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass fragmentEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass copyAttributeValueEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass autoIndexEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass autoIndexPerNodeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass initPrecedenceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass connectorConfigurationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass bindTemplateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum containerRuleKindEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum interceptionKindEEnum = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.papyrus.FCM.FCMPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private FCMPackageImpl() {
+ super(eNS_URI, FCMFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link FCMPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static FCMPackage init() {
+ if (isInited) return (FCMPackage)EPackage.Registry.INSTANCE.getEPackage(FCMPackage.eNS_URI);
+
+ // Obtain or create and register package
+ FCMPackageImpl theFCMPackage = (FCMPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof FCMPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new FCMPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ UMLPackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theFCMPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theFCMPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theFCMPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(FCMPackage.eNS_URI, theFCMPackage);
+ return theFCMPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getTemplate() {
+ return templateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getTemplate_Base_Element() {
+ return (EReference)templateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getTemplate_Helper() {
+ return (EReference)templateEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getBindingHelper() {
+ return bindingHelperEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getBindingHelper_Base_Class() {
+ return (EReference)bindingHelperEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getConfigurationProperty() {
+ return configurationPropertyEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getConfigurationProperty_Base_Property() {
+ return (EReference)configurationPropertyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getImplementationGroup() {
+ return implementationGroupEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getImplementationGroup_Base_Class() {
+ return (EReference)implementationGroupEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getAssembly() {
+ return assemblyEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getAssembly_Base_Class() {
+ return (EReference)assemblyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getFlatten() {
+ return flattenEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getFlatten_Base_Class() {
+ return (EReference)flattenEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getCompToOOmapping() {
+ return compToOOmappingEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getCompToOOmapping_Base_Class() {
+ return (EReference)compToOOmappingEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getProgLanguage() {
+ return progLanguageEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getProgLanguage_Base_Class() {
+ return (EReference)progLanguageEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getCodeGenOptions() {
+ return codeGenOptionsEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getCodeGenOptions_Base_Package() {
+ return (EReference)codeGenOptionsEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getCodeGenOptions_CompToOOmapping() {
+ return (EReference)codeGenOptionsEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getCodeGenOptions_ProgLanguage() {
+ return (EReference)codeGenOptionsEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getInteractionComponent() {
+ return interactionComponentEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getInteractionComponent_ForDistribution() {
+ return (EAttribute)interactionComponentEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getInteractionComponent_ConnectionPattern() {
+ return (EReference)interactionComponentEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getInteractionComponent_Base_Class() {
+ return (EReference)interactionComponentEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getSingleton() {
+ return singletonEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getSingleton_Base_Class() {
+ return (EReference)singletonEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getConnector() {
+ return connectorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getConnector_Base_Connector() {
+ return (EReference)connectorEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getConnector_Ic() {
+ return (EReference)connectorEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getConnector_Base_Property() {
+ return (EReference)connectorEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getConfigurableElementInstance() {
+ return configurableElementInstanceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getConfigurableElementInstance_Configuration() {
+ return (EReference)configurableElementInstanceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getUseInstanceConfigurator() {
+ return useInstanceConfiguratorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getUseInstanceConfigurator_Base_Class() {
+ return (EReference)useInstanceConfiguratorEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getUseInstanceConfigurator_Configurator() {
+ return (EReference)useInstanceConfiguratorEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getInstanceConfigurator() {
+ return instanceConfiguratorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getInstanceConfigurator_Base_Class() {
+ return (EReference)instanceConfiguratorEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getInstanceConfigurator_OnNodeModel() {
+ return (EAttribute)instanceConfiguratorEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getRuleApplication() {
+ return ruleApplicationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getRuleApplication_Base_Class() {
+ return (EReference)ruleApplicationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getRuleApplication_ContainerRule() {
+ return (EReference)ruleApplicationEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getRuleApplication_Base_Package() {
+ return (EReference)ruleApplicationEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getContainerRule() {
+ return containerRuleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getContainerRule_Base_Class() {
+ return (EReference)containerRuleEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getContainerRule_ForConfig() {
+ return (EReference)containerRuleEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getContainerRule_Kind() {
+ return (EAttribute)containerRuleEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getConfigOption() {
+ return configOptionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getConfigOption_Base_Class() {
+ return (EReference)configOptionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getTemplatePort() {
+ return templatePortEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getTemplatePort_BoundType() {
+ return (EReference)templatePortEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getPort() {
+ return portEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getPort_Base_Port() {
+ return (EReference)portEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getPort_Kind() {
+ return (EReference)portEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPort_Type() {
+ return (EReference)portEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getPortKind() {
+ return portKindEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getPortKind_Base_Class() {
+ return (EReference)portKindEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getPortKind_ProvidedInterface() {
+ return (EReference)portKindEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getPortKind_RequiredInterface() {
+ return (EReference)portKindEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getPortKind_ExtendedPort() {
+ return (EAttribute)portKindEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getDeploymentPlan() {
+ return deploymentPlanEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getDeploymentPlan_MainInstance() {
+ return (EReference)deploymentPlanEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getDeploymentPlan_Base_Package() {
+ return (EReference)deploymentPlanEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getDerivedElement() {
+ return derivedElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getDerivedElement_Base_Element() {
+ return (EReference)derivedElementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getDerivedElement_Source() {
+ return (EReference)derivedElementEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getCompImplTemplate() {
+ return compImplTemplateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getCompImplTemplate_TemplateDefs() {
+ return (EAttribute)compImplTemplateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getCompImplTemplate_Base_Class() {
+ return (EReference)compImplTemplateEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getImplementationProperties() {
+ return implementationPropertiesEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getImplementationProperties_SizeRAM() {
+ return (EAttribute)implementationPropertiesEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getImplementationProperties_SupportedOS() {
+ return (EReference)implementationPropertiesEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getImplementationProperties_Arch() {
+ return (EReference)implementationPropertiesEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getImplementationProperties_Base_Class() {
+ return (EReference)implementationPropertiesEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getImplementationProperties_SizeROM() {
+ return (EAttribute)implementationPropertiesEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getImplementationProperties_SupportedTargetArch() {
+ return (EReference)implementationPropertiesEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getOperatingSystem() {
+ return operatingSystemEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getOperatingSystem_Base_Class() {
+ return (EReference)operatingSystemEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getTargetArchitecture() {
+ return targetArchitectureEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getTargetArchitecture_Base_Class() {
+ return (EReference)targetArchitectureEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getConfiguration() {
+ return configurationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getConfiguration_Base_Class() {
+ return (EReference)configurationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getConfiguration_ConfigOptions() {
+ return (EReference)configurationEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getConfiguration_DeploymentPlan() {
+ return (EReference)configurationEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getInterceptionRule() {
+ return interceptionRuleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getInterceptionRule_InterceptionKind() {
+ return (EAttribute)interceptionRuleEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getInterceptionRule_InterceptionSet() {
+ return (EReference)interceptionRuleEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getInterceptionRule_Base_Property() {
+ return (EReference)interceptionRuleEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getInterceptionRule_Base_Operation() {
+ return (EReference)interceptionRuleEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getTarget() {
+ return targetEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getTarget_TargetArch() {
+ return (EReference)targetEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getTarget_Options() {
+ return (EReference)targetEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getTarget_Base_Node() {
+ return (EReference)targetEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getTarget_UsedOS() {
+ return (EReference)targetEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getTarget_AvailRAM() {
+ return (EAttribute)targetEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getTarget_AvailROM() {
+ return (EAttribute)targetEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getTarget_Compiler() {
+ return (EReference)targetEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getCompilerChain() {
+ return compilerChainEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getCompilerChain_Base_Class() {
+ return (EReference)compilerChainEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getFragment() {
+ return fragmentEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getFragment_Base_Class() {
+ return (EReference)fragmentEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getCopyAttributeValue() {
+ return copyAttributeValueEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getCopyAttributeValue_Source() {
+ return (EReference)copyAttributeValueEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getCopyAttributeValue_Base_Property() {
+ return (EReference)copyAttributeValueEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getAutoIndex() {
+ return autoIndexEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getAutoIndex_Base_Property() {
+ return (EReference)autoIndexEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getAutoIndexPerNode() {
+ return autoIndexPerNodeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getInitPrecedence() {
+ return initPrecedenceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getInitPrecedence_InvokeAfter() {
+ return (EReference)initPrecedenceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getInitPrecedence_InvokeBefore() {
+ return (EReference)initPrecedenceEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getInitPrecedence_Base_Class() {
+ return (EReference)initPrecedenceEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getConnectorConfiguration() {
+ return connectorConfigurationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getConnectorConfiguration_Base_Slot() {
+ return (EReference)connectorConfigurationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getConnectorConfiguration_Connector() {
+ return (EReference)connectorConfigurationEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getBindTemplate() {
+ return bindTemplateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getBindTemplate_Actual() {
+ return (EReference)bindTemplateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getBindTemplate_Base_Property() {
+ return (EReference)bindTemplateEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EEnum getContainerRuleKind() {
+ return containerRuleKindEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EEnum getInterceptionKind() {
+ return interceptionKindEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public FCMFactory getFCMFactory() {
+ return (FCMFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ templateEClass = createEClass(TEMPLATE);
+ createEReference(templateEClass, TEMPLATE__BASE_ELEMENT);
+ createEReference(templateEClass, TEMPLATE__HELPER);
+
+ bindingHelperEClass = createEClass(BINDING_HELPER);
+ createEReference(bindingHelperEClass, BINDING_HELPER__BASE_CLASS);
+
+ configurationPropertyEClass = createEClass(CONFIGURATION_PROPERTY);
+ createEReference(configurationPropertyEClass, CONFIGURATION_PROPERTY__BASE_PROPERTY);
+
+ implementationGroupEClass = createEClass(IMPLEMENTATION_GROUP);
+ createEReference(implementationGroupEClass, IMPLEMENTATION_GROUP__BASE_CLASS);
+
+ assemblyEClass = createEClass(ASSEMBLY);
+ createEReference(assemblyEClass, ASSEMBLY__BASE_CLASS);
+
+ flattenEClass = createEClass(FLATTEN);
+ createEReference(flattenEClass, FLATTEN__BASE_CLASS);
+
+ compToOOmappingEClass = createEClass(COMP_TO_OOMAPPING);
+ createEReference(compToOOmappingEClass, COMP_TO_OOMAPPING__BASE_CLASS);
+
+ progLanguageEClass = createEClass(PROG_LANGUAGE);
+ createEReference(progLanguageEClass, PROG_LANGUAGE__BASE_CLASS);
+
+ codeGenOptionsEClass = createEClass(CODE_GEN_OPTIONS);
+ createEReference(codeGenOptionsEClass, CODE_GEN_OPTIONS__BASE_PACKAGE);
+ createEReference(codeGenOptionsEClass, CODE_GEN_OPTIONS__COMP_TO_OOMAPPING);
+ createEReference(codeGenOptionsEClass, CODE_GEN_OPTIONS__PROG_LANGUAGE);
+
+ interactionComponentEClass = createEClass(INTERACTION_COMPONENT);
+ createEAttribute(interactionComponentEClass, INTERACTION_COMPONENT__FOR_DISTRIBUTION);
+ createEReference(interactionComponentEClass, INTERACTION_COMPONENT__CONNECTION_PATTERN);
+ createEReference(interactionComponentEClass, INTERACTION_COMPONENT__BASE_CLASS);
+
+ singletonEClass = createEClass(SINGLETON);
+ createEReference(singletonEClass, SINGLETON__BASE_CLASS);
+
+ connectorEClass = createEClass(CONNECTOR);
+ createEReference(connectorEClass, CONNECTOR__BASE_CONNECTOR);
+ createEReference(connectorEClass, CONNECTOR__IC);
+ createEReference(connectorEClass, CONNECTOR__BASE_PROPERTY);
+
+ configurableElementInstanceEClass = createEClass(CONFIGURABLE_ELEMENT_INSTANCE);
+ createEReference(configurableElementInstanceEClass, CONFIGURABLE_ELEMENT_INSTANCE__CONFIGURATION);
+
+ useInstanceConfiguratorEClass = createEClass(USE_INSTANCE_CONFIGURATOR);
+ createEReference(useInstanceConfiguratorEClass, USE_INSTANCE_CONFIGURATOR__BASE_CLASS);
+ createEReference(useInstanceConfiguratorEClass, USE_INSTANCE_CONFIGURATOR__CONFIGURATOR);
+
+ instanceConfiguratorEClass = createEClass(INSTANCE_CONFIGURATOR);
+ createEReference(instanceConfiguratorEClass, INSTANCE_CONFIGURATOR__BASE_CLASS);
+ createEAttribute(instanceConfiguratorEClass, INSTANCE_CONFIGURATOR__ON_NODE_MODEL);
+
+ ruleApplicationEClass = createEClass(RULE_APPLICATION);
+ createEReference(ruleApplicationEClass, RULE_APPLICATION__BASE_CLASS);
+ createEReference(ruleApplicationEClass, RULE_APPLICATION__CONTAINER_RULE);
+ createEReference(ruleApplicationEClass, RULE_APPLICATION__BASE_PACKAGE);
+
+ containerRuleEClass = createEClass(CONTAINER_RULE);
+ createEReference(containerRuleEClass, CONTAINER_RULE__BASE_CLASS);
+ createEReference(containerRuleEClass, CONTAINER_RULE__FOR_CONFIG);
+ createEAttribute(containerRuleEClass, CONTAINER_RULE__KIND);
+
+ configOptionEClass = createEClass(CONFIG_OPTION);
+ createEReference(configOptionEClass, CONFIG_OPTION__BASE_CLASS);
+
+ templatePortEClass = createEClass(TEMPLATE_PORT);
+ createEReference(templatePortEClass, TEMPLATE_PORT__BOUND_TYPE);
+
+ portEClass = createEClass(PORT);
+ createEReference(portEClass, PORT__BASE_PORT);
+ createEReference(portEClass, PORT__KIND);
+ createEReference(portEClass, PORT__TYPE);
+
+ portKindEClass = createEClass(PORT_KIND);
+ createEReference(portKindEClass, PORT_KIND__BASE_CLASS);
+ createEReference(portKindEClass, PORT_KIND__PROVIDED_INTERFACE);
+ createEReference(portKindEClass, PORT_KIND__REQUIRED_INTERFACE);
+ createEAttribute(portKindEClass, PORT_KIND__EXTENDED_PORT);
+
+ deploymentPlanEClass = createEClass(DEPLOYMENT_PLAN);
+ createEReference(deploymentPlanEClass, DEPLOYMENT_PLAN__MAIN_INSTANCE);
+ createEReference(deploymentPlanEClass, DEPLOYMENT_PLAN__BASE_PACKAGE);
+
+ derivedElementEClass = createEClass(DERIVED_ELEMENT);
+ createEReference(derivedElementEClass, DERIVED_ELEMENT__BASE_ELEMENT);
+ createEReference(derivedElementEClass, DERIVED_ELEMENT__SOURCE);
+
+ compImplTemplateEClass = createEClass(COMP_IMPL_TEMPLATE);
+ createEAttribute(compImplTemplateEClass, COMP_IMPL_TEMPLATE__TEMPLATE_DEFS);
+ createEReference(compImplTemplateEClass, COMP_IMPL_TEMPLATE__BASE_CLASS);
+
+ implementationPropertiesEClass = createEClass(IMPLEMENTATION_PROPERTIES);
+ createEAttribute(implementationPropertiesEClass, IMPLEMENTATION_PROPERTIES__SIZE_RAM);
+ createEReference(implementationPropertiesEClass, IMPLEMENTATION_PROPERTIES__SUPPORTED_OS);
+ createEReference(implementationPropertiesEClass, IMPLEMENTATION_PROPERTIES__ARCH);
+ createEReference(implementationPropertiesEClass, IMPLEMENTATION_PROPERTIES__BASE_CLASS);
+ createEAttribute(implementationPropertiesEClass, IMPLEMENTATION_PROPERTIES__SIZE_ROM);
+ createEReference(implementationPropertiesEClass, IMPLEMENTATION_PROPERTIES__SUPPORTED_TARGET_ARCH);
+
+ operatingSystemEClass = createEClass(OPERATING_SYSTEM);
+ createEReference(operatingSystemEClass, OPERATING_SYSTEM__BASE_CLASS);
+
+ targetArchitectureEClass = createEClass(TARGET_ARCHITECTURE);
+ createEReference(targetArchitectureEClass, TARGET_ARCHITECTURE__BASE_CLASS);
+
+ configurationEClass = createEClass(CONFIGURATION);
+ createEReference(configurationEClass, CONFIGURATION__BASE_CLASS);
+ createEReference(configurationEClass, CONFIGURATION__CONFIG_OPTIONS);
+ createEReference(configurationEClass, CONFIGURATION__DEPLOYMENT_PLAN);
+
+ interceptionRuleEClass = createEClass(INTERCEPTION_RULE);
+ createEAttribute(interceptionRuleEClass, INTERCEPTION_RULE__INTERCEPTION_KIND);
+ createEReference(interceptionRuleEClass, INTERCEPTION_RULE__INTERCEPTION_SET);
+ createEReference(interceptionRuleEClass, INTERCEPTION_RULE__BASE_PROPERTY);
+ createEReference(interceptionRuleEClass, INTERCEPTION_RULE__BASE_OPERATION);
+
+ targetEClass = createEClass(TARGET);
+ createEReference(targetEClass, TARGET__TARGET_ARCH);
+ createEReference(targetEClass, TARGET__OPTIONS);
+ createEReference(targetEClass, TARGET__BASE_NODE);
+ createEReference(targetEClass, TARGET__USED_OS);
+ createEAttribute(targetEClass, TARGET__AVAIL_RAM);
+ createEAttribute(targetEClass, TARGET__AVAIL_ROM);
+ createEReference(targetEClass, TARGET__COMPILER);
+
+ compilerChainEClass = createEClass(COMPILER_CHAIN);
+ createEReference(compilerChainEClass, COMPILER_CHAIN__BASE_CLASS);
+
+ fragmentEClass = createEClass(FRAGMENT);
+ createEReference(fragmentEClass, FRAGMENT__BASE_CLASS);
+
+ copyAttributeValueEClass = createEClass(COPY_ATTRIBUTE_VALUE);
+ createEReference(copyAttributeValueEClass, COPY_ATTRIBUTE_VALUE__SOURCE);
+ createEReference(copyAttributeValueEClass, COPY_ATTRIBUTE_VALUE__BASE_PROPERTY);
+
+ autoIndexEClass = createEClass(AUTO_INDEX);
+ createEReference(autoIndexEClass, AUTO_INDEX__BASE_PROPERTY);
+
+ autoIndexPerNodeEClass = createEClass(AUTO_INDEX_PER_NODE);
+
+ initPrecedenceEClass = createEClass(INIT_PRECEDENCE);
+ createEReference(initPrecedenceEClass, INIT_PRECEDENCE__INVOKE_AFTER);
+ createEReference(initPrecedenceEClass, INIT_PRECEDENCE__INVOKE_BEFORE);
+ createEReference(initPrecedenceEClass, INIT_PRECEDENCE__BASE_CLASS);
+
+ connectorConfigurationEClass = createEClass(CONNECTOR_CONFIGURATION);
+ createEReference(connectorConfigurationEClass, CONNECTOR_CONFIGURATION__BASE_SLOT);
+ createEReference(connectorConfigurationEClass, CONNECTOR_CONFIGURATION__CONNECTOR);
+
+ bindTemplateEClass = createEClass(BIND_TEMPLATE);
+ createEReference(bindTemplateEClass, BIND_TEMPLATE__ACTUAL);
+ createEReference(bindTemplateEClass, BIND_TEMPLATE__BASE_PROPERTY);
+
+ // Create enums
+ containerRuleKindEEnum = createEEnum(CONTAINER_RULE_KIND);
+ interceptionKindEEnum = createEEnum(INTERCEPTION_KIND);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ UMLPackage theUMLPackage = (UMLPackage)EPackage.Registry.INSTANCE.getEPackage(UMLPackage.eNS_URI);
+ TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ connectorEClass.getESuperTypes().add(this.getConfigurableElementInstance());
+ templatePortEClass.getESuperTypes().add(this.getPort());
+ portEClass.getESuperTypes().add(this.getConfigurableElementInstance());
+ autoIndexPerNodeEClass.getESuperTypes().add(this.getAutoIndex());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(templateEClass, Template.class, "Template", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getTemplate_Base_Element(), theUMLPackage.getElement(), null, "base_Element", null, 1, 1, Template.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getTemplate_Helper(), this.getBindingHelper(), null, "helper", null, 0, 1, Template.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(bindingHelperEClass, BindingHelper.class, "BindingHelper", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getBindingHelper_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, BindingHelper.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(configurationPropertyEClass, ConfigurationProperty.class, "ConfigurationProperty", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getConfigurationProperty_Base_Property(), theUMLPackage.getProperty(), null, "base_Property", null, 1, 1, ConfigurationProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(implementationGroupEClass, ImplementationGroup.class, "ImplementationGroup", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getImplementationGroup_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, ImplementationGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(assemblyEClass, Assembly.class, "Assembly", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getAssembly_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, Assembly.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(flattenEClass, Flatten.class, "Flatten", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getFlatten_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, Flatten.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(compToOOmappingEClass, CompToOOmapping.class, "CompToOOmapping", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getCompToOOmapping_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, CompToOOmapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(progLanguageEClass, ProgLanguage.class, "ProgLanguage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getProgLanguage_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, ProgLanguage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(codeGenOptionsEClass, CodeGenOptions.class, "CodeGenOptions", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getCodeGenOptions_Base_Package(), theUMLPackage.getPackage(), null, "base_Package", null, 1, 1, CodeGenOptions.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getCodeGenOptions_CompToOOmapping(), this.getCompToOOmapping(), null, "compToOOmapping", null, 1, 1, CodeGenOptions.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getCodeGenOptions_ProgLanguage(), this.getProgLanguage(), null, "progLanguage", null, 1, 1, CodeGenOptions.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(interactionComponentEClass, InteractionComponent.class, "InteractionComponent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getInteractionComponent_ForDistribution(), theTypesPackage.getBoolean(), "forDistribution", "false", 1, 1, InteractionComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEReference(getInteractionComponent_ConnectionPattern(), theUMLPackage.getCollaboration(), null, "connectionPattern", null, 0, 1, InteractionComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getInteractionComponent_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, InteractionComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(singletonEClass, Singleton.class, "Singleton", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getSingleton_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, Singleton.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(connectorEClass, Connector.class, "Connector", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getConnector_Base_Connector(), theUMLPackage.getConnector(), null, "base_Connector", null, 0, 1, Connector.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getConnector_Ic(), this.getInteractionComponent(), null, "ic", null, 0, 1, Connector.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getConnector_Base_Property(), theUMLPackage.getProperty(), null, "base_Property", null, 0, 1, Connector.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(configurableElementInstanceEClass, ConfigurableElementInstance.class, "ConfigurableElementInstance", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getConfigurableElementInstance_Configuration(), theUMLPackage.getInstanceSpecification(), null, "configuration", null, 0, 1, ConfigurableElementInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(useInstanceConfiguratorEClass, UseInstanceConfigurator.class, "UseInstanceConfigurator", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getUseInstanceConfigurator_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, UseInstanceConfigurator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getUseInstanceConfigurator_Configurator(), this.getInstanceConfigurator(), null, "configurator", null, 1, 1, UseInstanceConfigurator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(instanceConfiguratorEClass, InstanceConfigurator.class, "InstanceConfigurator", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getInstanceConfigurator_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, InstanceConfigurator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getInstanceConfigurator_OnNodeModel(), theTypesPackage.getBoolean(), "onNodeModel", null, 0, 1, InstanceConfigurator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(ruleApplicationEClass, RuleApplication.class, "RuleApplication", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getRuleApplication_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 0, 1, RuleApplication.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getRuleApplication_ContainerRule(), this.getContainerRule(), null, "containerRule", null, 0, -1, RuleApplication.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getRuleApplication_Base_Package(), theUMLPackage.getPackage(), null, "base_Package", null, 0, 1, RuleApplication.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(containerRuleEClass, ContainerRule.class, "ContainerRule", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getContainerRule_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, ContainerRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getContainerRule_ForConfig(), this.getConfigOption(), null, "forConfig", null, 0, -1, ContainerRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getContainerRule_Kind(), this.getContainerRuleKind(), "kind", null, 1, 1, ContainerRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(configOptionEClass, ConfigOption.class, "ConfigOption", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getConfigOption_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, ConfigOption.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(templatePortEClass, TemplatePort.class, "TemplatePort", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getTemplatePort_BoundType(), this.getPortKind(), null, "boundType", null, 0, 1, TemplatePort.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(portEClass, Port.class, "Port", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getPort_Base_Port(), theUMLPackage.getPort(), null, "base_Port", null, 1, 1, Port.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getPort_Kind(), this.getPortKind(), null, "kind", null, 0, 1, Port.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getPort_Type(), theUMLPackage.getType(), null, "type", null, 1, 1, Port.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(portKindEClass, PortKind.class, "PortKind", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getPortKind_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, PortKind.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getPortKind_ProvidedInterface(), theUMLPackage.getInterface(), null, "providedInterface", null, 0, 1, PortKind.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getPortKind_RequiredInterface(), theUMLPackage.getInterface(), null, "requiredInterface", null, 0, 1, PortKind.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getPortKind_ExtendedPort(), theTypesPackage.getBoolean(), "extendedPort", null, 1, 1, PortKind.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(deploymentPlanEClass, DeploymentPlan.class, "DeploymentPlan", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getDeploymentPlan_MainInstance(), theUMLPackage.getInstanceSpecification(), null, "mainInstance", null, 1, 1, DeploymentPlan.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDeploymentPlan_Base_Package(), theUMLPackage.getPackage(), null, "base_Package", null, 1, 1, DeploymentPlan.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(derivedElementEClass, DerivedElement.class, "DerivedElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getDerivedElement_Base_Element(), theUMLPackage.getElement(), null, "base_Element", null, 1, 1, DerivedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDerivedElement_Source(), theUMLPackage.getElement(), null, "source", null, 1, 1, DerivedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(compImplTemplateEClass, CompImplTemplate.class, "CompImplTemplate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getCompImplTemplate_TemplateDefs(), theTypesPackage.getString(), "templateDefs", null, 0, 1, CompImplTemplate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getCompImplTemplate_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, CompImplTemplate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(implementationPropertiesEClass, ImplementationProperties.class, "ImplementationProperties", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getImplementationProperties_SizeRAM(), theTypesPackage.getInteger(), "sizeRAM", null, 1, 1, ImplementationProperties.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getImplementationProperties_SupportedOS(), this.getOperatingSystem(), null, "supportedOS", null, 0, -1, ImplementationProperties.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getImplementationProperties_Arch(), this.getTargetArchitecture(), null, "arch", null, 0, -1, ImplementationProperties.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getImplementationProperties_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, ImplementationProperties.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getImplementationProperties_SizeROM(), theTypesPackage.getInteger(), "sizeROM", null, 1, 1, ImplementationProperties.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getImplementationProperties_SupportedTargetArch(), this.getTargetArchitecture(), null, "supportedTargetArch", null, 1, 1, ImplementationProperties.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(operatingSystemEClass, OperatingSystem.class, "OperatingSystem", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getOperatingSystem_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, OperatingSystem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(targetArchitectureEClass, TargetArchitecture.class, "TargetArchitecture", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getTargetArchitecture_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, TargetArchitecture.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(configurationEClass, Configuration.class, "Configuration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getConfiguration_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, Configuration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getConfiguration_ConfigOptions(), this.getConfigOption(), null, "configOptions", null, 0, -1, Configuration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getConfiguration_DeploymentPlan(), this.getDeploymentPlan(), null, "deploymentPlan", null, 1, 1, Configuration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(interceptionRuleEClass, InterceptionRule.class, "InterceptionRule", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getInterceptionRule_InterceptionKind(), this.getInterceptionKind(), "interceptionKind", null, 1, 1, InterceptionRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getInterceptionRule_InterceptionSet(), theUMLPackage.getFeature(), null, "interceptionSet", null, 0, -1, InterceptionRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getInterceptionRule_Base_Property(), theUMLPackage.getProperty(), null, "base_Property", null, 1, 1, InterceptionRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getInterceptionRule_Base_Operation(), theUMLPackage.getOperation(), null, "base_Operation", null, 1, 1, InterceptionRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(targetEClass, Target.class, "Target", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getTarget_TargetArch(), this.getTargetArchitecture(), null, "targetArch", null, 1, 1, Target.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getTarget_Options(), this.getConfigOption(), null, "options", null, 0, -1, Target.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getTarget_Base_Node(), theUMLPackage.getNode(), null, "base_Node", null, 1, 1, Target.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getTarget_UsedOS(), this.getOperatingSystem(), null, "usedOS", null, 1, 1, Target.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getTarget_AvailRAM(), theTypesPackage.getInteger(), "availRAM", null, 1, 1, Target.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getTarget_AvailROM(), theTypesPackage.getInteger(), "availROM", null, 1, 1, Target.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getTarget_Compiler(), this.getCompilerChain(), null, "compiler", null, 0, 1, Target.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(compilerChainEClass, CompilerChain.class, "CompilerChain", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getCompilerChain_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, CompilerChain.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(fragmentEClass, Fragment.class, "Fragment", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getFragment_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, Fragment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(copyAttributeValueEClass, CopyAttributeValue.class, "CopyAttributeValue", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getCopyAttributeValue_Source(), theUMLPackage.getProperty(), null, "source", null, 1, 1, CopyAttributeValue.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getCopyAttributeValue_Base_Property(), theUMLPackage.getProperty(), null, "base_Property", null, 1, 1, CopyAttributeValue.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(autoIndexEClass, AutoIndex.class, "AutoIndex", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getAutoIndex_Base_Property(), theUMLPackage.getProperty(), null, "base_Property", null, 1, 1, AutoIndex.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(autoIndexPerNodeEClass, AutoIndexPerNode.class, "AutoIndexPerNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(initPrecedenceEClass, InitPrecedence.class, "InitPrecedence", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getInitPrecedence_InvokeAfter(), theUMLPackage.getClass_(), null, "invokeAfter", null, 0, -1, InitPrecedence.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getInitPrecedence_InvokeBefore(), theUMLPackage.getClass_(), null, "invokeBefore", null, 0, -1, InitPrecedence.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getInitPrecedence_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, InitPrecedence.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(connectorConfigurationEClass, ConnectorConfiguration.class, "ConnectorConfiguration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getConnectorConfiguration_Base_Slot(), theUMLPackage.getSlot(), null, "base_Slot", null, 1, 1, ConnectorConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getConnectorConfiguration_Connector(), this.getConnector(), null, "connector", null, 1, 1, ConnectorConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(bindTemplateEClass, BindTemplate.class, "BindTemplate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getBindTemplate_Actual(), theUMLPackage.getType(), null, "actual", null, 0, -1, BindTemplate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getBindTemplate_Base_Property(), theUMLPackage.getProperty(), null, "base_Property", null, 1, 1, BindTemplate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ // Initialize enums and add enum literals
+ initEEnum(containerRuleKindEEnum, ContainerRuleKind.class, "ContainerRuleKind"); //$NON-NLS-1$
+ addEEnumLiteral(containerRuleKindEEnum, ContainerRuleKind.COMPONENT_RULE);
+ addEEnumLiteral(containerRuleKindEEnum, ContainerRuleKind.LIGHT_WEIGHT_OO_RULE);
+
+ initEEnum(interceptionKindEEnum, InterceptionKind.class, "InterceptionKind"); //$NON-NLS-1$
+ addEEnumLiteral(interceptionKindEEnum, InterceptionKind.INTERCEPT_SOME);
+ addEEnumLiteral(interceptionKindEEnum, InterceptionKind.INTERCEPT_ALL);
+ addEEnumLiteral(interceptionKindEEnum, InterceptionKind.INTERCEPT_ALL_OUT);
+ addEEnumLiteral(interceptionKindEEnum, InterceptionKind.INTERCEPT_ALL_IN);
+ addEEnumLiteral(interceptionKindEEnum, InterceptionKind.INTERCEPT_MATCHING);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} // FCMPackageImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FlattenImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FlattenImpl.java
new file mode 100644
index 00000000000..df03b58b1df
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FlattenImpl.java
@@ -0,0 +1,165 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.Flatten;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Flatten</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.FlattenImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class FlattenImpl extends EObjectImpl implements Flatten {
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FlattenImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.FLATTEN;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.FLATTEN__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.FLATTEN__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.FLATTEN__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.FLATTEN__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.FLATTEN__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.FLATTEN__BASE_CLASS:
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // FlattenImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FragmentImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FragmentImpl.java
new file mode 100644
index 00000000000..3b0f821b496
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FragmentImpl.java
@@ -0,0 +1,165 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.Fragment;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Fragment</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.FragmentImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class FragmentImpl extends EObjectImpl implements Fragment {
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FragmentImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.FRAGMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.FRAGMENT__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.FRAGMENT__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.FRAGMENT__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.FRAGMENT__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.FRAGMENT__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.FRAGMENT__BASE_CLASS:
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // FragmentImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ImplementationGroupImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ImplementationGroupImpl.java
new file mode 100644
index 00000000000..42d65ff5e31
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ImplementationGroupImpl.java
@@ -0,0 +1,165 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.ImplementationGroup;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Implementation Group</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ImplementationGroupImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ImplementationGroupImpl extends EObjectImpl implements ImplementationGroup {
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ImplementationGroupImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.IMPLEMENTATION_GROUP;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.IMPLEMENTATION_GROUP__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.IMPLEMENTATION_GROUP__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.IMPLEMENTATION_GROUP__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.IMPLEMENTATION_GROUP__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.IMPLEMENTATION_GROUP__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.IMPLEMENTATION_GROUP__BASE_CLASS:
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // ImplementationGroupImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ImplementationPropertiesImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ImplementationPropertiesImpl.java
new file mode 100644
index 00000000000..7f86201abbf
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ImplementationPropertiesImpl.java
@@ -0,0 +1,430 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.ImplementationProperties;
+import org.eclipse.papyrus.FCM.OperatingSystem;
+import org.eclipse.papyrus.FCM.TargetArchitecture;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Implementation Properties</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ImplementationPropertiesImpl#getSizeRAM <em>Size RAM</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ImplementationPropertiesImpl#getSupportedOS <em>Supported OS</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ImplementationPropertiesImpl#getArch <em>Arch</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ImplementationPropertiesImpl#getBase_Class <em>Base Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ImplementationPropertiesImpl#getSizeROM <em>Size ROM</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ImplementationPropertiesImpl#getSupportedTargetArch <em>Supported Target Arch</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ImplementationPropertiesImpl extends EObjectImpl implements ImplementationProperties {
+ /**
+ * The default value of the '{@link #getSizeRAM() <em>Size RAM</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSizeRAM()
+ * @generated
+ * @ordered
+ */
+ protected static final int SIZE_RAM_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getSizeRAM() <em>Size RAM</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSizeRAM()
+ * @generated
+ * @ordered
+ */
+ protected int sizeRAM = SIZE_RAM_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getSupportedOS() <em>Supported OS</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSupportedOS()
+ * @generated
+ * @ordered
+ */
+ protected EList<OperatingSystem> supportedOS;
+
+ /**
+ * The cached value of the '{@link #getArch() <em>Arch</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getArch()
+ * @generated
+ * @ordered
+ */
+ protected EList<TargetArchitecture> arch;
+
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * The default value of the '{@link #getSizeROM() <em>Size ROM</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSizeROM()
+ * @generated
+ * @ordered
+ */
+ protected static final int SIZE_ROM_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getSizeROM() <em>Size ROM</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSizeROM()
+ * @generated
+ * @ordered
+ */
+ protected int sizeROM = SIZE_ROM_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getSupportedTargetArch() <em>Supported Target Arch</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSupportedTargetArch()
+ * @generated
+ * @ordered
+ */
+ protected TargetArchitecture supportedTargetArch;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ImplementationPropertiesImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.IMPLEMENTATION_PROPERTIES;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getSizeRAM() {
+ return sizeRAM;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setSizeRAM(int newSizeRAM) {
+ int oldSizeRAM = sizeRAM;
+ sizeRAM = newSizeRAM;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.IMPLEMENTATION_PROPERTIES__SIZE_RAM, oldSizeRAM, sizeRAM));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<OperatingSystem> getSupportedOS() {
+ if (supportedOS == null) {
+ supportedOS = new EObjectResolvingEList<OperatingSystem>(OperatingSystem.class, this, FCMPackage.IMPLEMENTATION_PROPERTIES__SUPPORTED_OS);
+ }
+ return supportedOS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<TargetArchitecture> getArch() {
+ if (arch == null) {
+ arch = new EObjectResolvingEList<TargetArchitecture>(TargetArchitecture.class, this, FCMPackage.IMPLEMENTATION_PROPERTIES__ARCH);
+ }
+ return arch;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.IMPLEMENTATION_PROPERTIES__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.IMPLEMENTATION_PROPERTIES__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getSizeROM() {
+ return sizeROM;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setSizeROM(int newSizeROM) {
+ int oldSizeROM = sizeROM;
+ sizeROM = newSizeROM;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.IMPLEMENTATION_PROPERTIES__SIZE_ROM, oldSizeROM, sizeROM));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public TargetArchitecture getSupportedTargetArch() {
+ if (supportedTargetArch != null && supportedTargetArch.eIsProxy()) {
+ InternalEObject oldSupportedTargetArch = (InternalEObject)supportedTargetArch;
+ supportedTargetArch = (TargetArchitecture)eResolveProxy(oldSupportedTargetArch);
+ if (supportedTargetArch != oldSupportedTargetArch) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.IMPLEMENTATION_PROPERTIES__SUPPORTED_TARGET_ARCH, oldSupportedTargetArch, supportedTargetArch));
+ }
+ }
+ return supportedTargetArch;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TargetArchitecture basicGetSupportedTargetArch() {
+ return supportedTargetArch;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setSupportedTargetArch(TargetArchitecture newSupportedTargetArch) {
+ TargetArchitecture oldSupportedTargetArch = supportedTargetArch;
+ supportedTargetArch = newSupportedTargetArch;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.IMPLEMENTATION_PROPERTIES__SUPPORTED_TARGET_ARCH, oldSupportedTargetArch, supportedTargetArch));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__SIZE_RAM:
+ return getSizeRAM();
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__SUPPORTED_OS:
+ return getSupportedOS();
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__ARCH:
+ return getArch();
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__SIZE_ROM:
+ return getSizeROM();
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__SUPPORTED_TARGET_ARCH:
+ if (resolve) return getSupportedTargetArch();
+ return basicGetSupportedTargetArch();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__SIZE_RAM:
+ setSizeRAM((Integer)newValue);
+ return;
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__SUPPORTED_OS:
+ getSupportedOS().clear();
+ getSupportedOS().addAll((Collection<? extends OperatingSystem>)newValue);
+ return;
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__ARCH:
+ getArch().clear();
+ getArch().addAll((Collection<? extends TargetArchitecture>)newValue);
+ return;
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__SIZE_ROM:
+ setSizeROM((Integer)newValue);
+ return;
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__SUPPORTED_TARGET_ARCH:
+ setSupportedTargetArch((TargetArchitecture)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__SIZE_RAM:
+ setSizeRAM(SIZE_RAM_EDEFAULT);
+ return;
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__SUPPORTED_OS:
+ getSupportedOS().clear();
+ return;
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__ARCH:
+ getArch().clear();
+ return;
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__SIZE_ROM:
+ setSizeROM(SIZE_ROM_EDEFAULT);
+ return;
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__SUPPORTED_TARGET_ARCH:
+ setSupportedTargetArch((TargetArchitecture)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__SIZE_RAM:
+ return sizeRAM != SIZE_RAM_EDEFAULT;
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__SUPPORTED_OS:
+ return supportedOS != null && !supportedOS.isEmpty();
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__ARCH:
+ return arch != null && !arch.isEmpty();
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__BASE_CLASS:
+ return base_Class != null;
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__SIZE_ROM:
+ return sizeROM != SIZE_ROM_EDEFAULT;
+ case FCMPackage.IMPLEMENTATION_PROPERTIES__SUPPORTED_TARGET_ARCH:
+ return supportedTargetArch != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (sizeRAM: "); //$NON-NLS-1$
+ result.append(sizeRAM);
+ result.append(", sizeROM: "); //$NON-NLS-1$
+ result.append(sizeROM);
+ result.append(')');
+ return result.toString();
+ }
+
+} // ImplementationPropertiesImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/InitPrecedenceImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/InitPrecedenceImpl.java
new file mode 100644
index 00000000000..f3912aed57b
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/InitPrecedenceImpl.java
@@ -0,0 +1,240 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.InitPrecedence;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Init Precedence</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.InitPrecedenceImpl#getInvokeAfter <em>Invoke After</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.InitPrecedenceImpl#getInvokeBefore <em>Invoke Before</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.InitPrecedenceImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class InitPrecedenceImpl extends EObjectImpl implements InitPrecedence {
+ /**
+ * The cached value of the '{@link #getInvokeAfter() <em>Invoke After</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInvokeAfter()
+ * @generated
+ * @ordered
+ */
+ protected EList<org.eclipse.uml2.uml.Class> invokeAfter;
+
+ /**
+ * The cached value of the '{@link #getInvokeBefore() <em>Invoke Before</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInvokeBefore()
+ * @generated
+ * @ordered
+ */
+ protected EList<org.eclipse.uml2.uml.Class> invokeBefore;
+
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InitPrecedenceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.INIT_PRECEDENCE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<org.eclipse.uml2.uml.Class> getInvokeAfter() {
+ if (invokeAfter == null) {
+ invokeAfter = new EObjectResolvingEList<org.eclipse.uml2.uml.Class>(org.eclipse.uml2.uml.Class.class, this, FCMPackage.INIT_PRECEDENCE__INVOKE_AFTER);
+ }
+ return invokeAfter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<org.eclipse.uml2.uml.Class> getInvokeBefore() {
+ if (invokeBefore == null) {
+ invokeBefore = new EObjectResolvingEList<org.eclipse.uml2.uml.Class>(org.eclipse.uml2.uml.Class.class, this, FCMPackage.INIT_PRECEDENCE__INVOKE_BEFORE);
+ }
+ return invokeBefore;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.INIT_PRECEDENCE__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.INIT_PRECEDENCE__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.INIT_PRECEDENCE__INVOKE_AFTER:
+ return getInvokeAfter();
+ case FCMPackage.INIT_PRECEDENCE__INVOKE_BEFORE:
+ return getInvokeBefore();
+ case FCMPackage.INIT_PRECEDENCE__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.INIT_PRECEDENCE__INVOKE_AFTER:
+ getInvokeAfter().clear();
+ getInvokeAfter().addAll((Collection<? extends org.eclipse.uml2.uml.Class>)newValue);
+ return;
+ case FCMPackage.INIT_PRECEDENCE__INVOKE_BEFORE:
+ getInvokeBefore().clear();
+ getInvokeBefore().addAll((Collection<? extends org.eclipse.uml2.uml.Class>)newValue);
+ return;
+ case FCMPackage.INIT_PRECEDENCE__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.INIT_PRECEDENCE__INVOKE_AFTER:
+ getInvokeAfter().clear();
+ return;
+ case FCMPackage.INIT_PRECEDENCE__INVOKE_BEFORE:
+ getInvokeBefore().clear();
+ return;
+ case FCMPackage.INIT_PRECEDENCE__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.INIT_PRECEDENCE__INVOKE_AFTER:
+ return invokeAfter != null && !invokeAfter.isEmpty();
+ case FCMPackage.INIT_PRECEDENCE__INVOKE_BEFORE:
+ return invokeBefore != null && !invokeBefore.isEmpty();
+ case FCMPackage.INIT_PRECEDENCE__BASE_CLASS:
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // InitPrecedenceImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/InstanceConfiguratorImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/InstanceConfiguratorImpl.java
new file mode 100644
index 00000000000..98c39d1bb77
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/InstanceConfiguratorImpl.java
@@ -0,0 +1,234 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.InstanceConfigurator;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Instance Configurator</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.InstanceConfiguratorImpl#getBase_Class <em>Base Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.InstanceConfiguratorImpl#isOnNodeModel <em>On Node Model</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class InstanceConfiguratorImpl extends EObjectImpl implements InstanceConfigurator {
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * The default value of the '{@link #isOnNodeModel() <em>On Node Model</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isOnNodeModel()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean ON_NODE_MODEL_EDEFAULT = false;
+ /**
+ * The cached value of the '{@link #isOnNodeModel() <em>On Node Model</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isOnNodeModel()
+ * @generated
+ * @ordered
+ */
+ protected boolean onNodeModel = ON_NODE_MODEL_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InstanceConfiguratorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.INSTANCE_CONFIGURATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.INSTANCE_CONFIGURATOR__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.INSTANCE_CONFIGURATOR__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isOnNodeModel() {
+ return onNodeModel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setOnNodeModel(boolean newOnNodeModel) {
+ boolean oldOnNodeModel = onNodeModel;
+ onNodeModel = newOnNodeModel;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.INSTANCE_CONFIGURATOR__ON_NODE_MODEL, oldOnNodeModel, onNodeModel));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.INSTANCE_CONFIGURATOR__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ case FCMPackage.INSTANCE_CONFIGURATOR__ON_NODE_MODEL:
+ return isOnNodeModel();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.INSTANCE_CONFIGURATOR__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ case FCMPackage.INSTANCE_CONFIGURATOR__ON_NODE_MODEL:
+ setOnNodeModel((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.INSTANCE_CONFIGURATOR__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ case FCMPackage.INSTANCE_CONFIGURATOR__ON_NODE_MODEL:
+ setOnNodeModel(ON_NODE_MODEL_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.INSTANCE_CONFIGURATOR__BASE_CLASS:
+ return base_Class != null;
+ case FCMPackage.INSTANCE_CONFIGURATOR__ON_NODE_MODEL:
+ return onNodeModel != ON_NODE_MODEL_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (onNodeModel: "); //$NON-NLS-1$
+ result.append(onNodeModel);
+ result.append(')');
+ return result.toString();
+ }
+
+} // InstanceConfiguratorImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/InteractionComponentImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/InteractionComponentImpl.java
new file mode 100644
index 00000000000..eda594ff7b3
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/InteractionComponentImpl.java
@@ -0,0 +1,298 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.InteractionComponent;
+import org.eclipse.uml2.uml.Collaboration;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Interaction Component</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.InteractionComponentImpl#isForDistribution <em>For Distribution</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.InteractionComponentImpl#getConnectionPattern <em>Connection Pattern</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.InteractionComponentImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class InteractionComponentImpl extends EObjectImpl implements InteractionComponent {
+ /**
+ * The default value of the '{@link #isForDistribution() <em>For Distribution</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isForDistribution()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean FOR_DISTRIBUTION_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isForDistribution() <em>For Distribution</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isForDistribution()
+ * @generated
+ * @ordered
+ */
+ protected boolean forDistribution = FOR_DISTRIBUTION_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getConnectionPattern() <em>Connection Pattern</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getConnectionPattern()
+ * @generated
+ * @ordered
+ */
+ protected Collaboration connectionPattern;
+
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InteractionComponentImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.INTERACTION_COMPONENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isForDistribution() {
+ return forDistribution;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setForDistribution(boolean newForDistribution) {
+ boolean oldForDistribution = forDistribution;
+ forDistribution = newForDistribution;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.INTERACTION_COMPONENT__FOR_DISTRIBUTION, oldForDistribution, forDistribution));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collaboration getConnectionPattern() {
+ if (connectionPattern != null && connectionPattern.eIsProxy()) {
+ InternalEObject oldConnectionPattern = (InternalEObject)connectionPattern;
+ connectionPattern = (Collaboration)eResolveProxy(oldConnectionPattern);
+ if (connectionPattern != oldConnectionPattern) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.INTERACTION_COMPONENT__CONNECTION_PATTERN, oldConnectionPattern, connectionPattern));
+ }
+ }
+ return connectionPattern;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Collaboration basicGetConnectionPattern() {
+ return connectionPattern;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setConnectionPattern(Collaboration newConnectionPattern) {
+ Collaboration oldConnectionPattern = connectionPattern;
+ connectionPattern = newConnectionPattern;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.INTERACTION_COMPONENT__CONNECTION_PATTERN, oldConnectionPattern, connectionPattern));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.INTERACTION_COMPONENT__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.INTERACTION_COMPONENT__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.INTERACTION_COMPONENT__FOR_DISTRIBUTION:
+ return isForDistribution();
+ case FCMPackage.INTERACTION_COMPONENT__CONNECTION_PATTERN:
+ if (resolve) return getConnectionPattern();
+ return basicGetConnectionPattern();
+ case FCMPackage.INTERACTION_COMPONENT__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.INTERACTION_COMPONENT__FOR_DISTRIBUTION:
+ setForDistribution((Boolean)newValue);
+ return;
+ case FCMPackage.INTERACTION_COMPONENT__CONNECTION_PATTERN:
+ setConnectionPattern((Collaboration)newValue);
+ return;
+ case FCMPackage.INTERACTION_COMPONENT__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.INTERACTION_COMPONENT__FOR_DISTRIBUTION:
+ setForDistribution(FOR_DISTRIBUTION_EDEFAULT);
+ return;
+ case FCMPackage.INTERACTION_COMPONENT__CONNECTION_PATTERN:
+ setConnectionPattern((Collaboration)null);
+ return;
+ case FCMPackage.INTERACTION_COMPONENT__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.INTERACTION_COMPONENT__FOR_DISTRIBUTION:
+ return forDistribution != FOR_DISTRIBUTION_EDEFAULT;
+ case FCMPackage.INTERACTION_COMPONENT__CONNECTION_PATTERN:
+ return connectionPattern != null;
+ case FCMPackage.INTERACTION_COMPONENT__BASE_CLASS:
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (forDistribution: "); //$NON-NLS-1$
+ result.append(forDistribution);
+ result.append(')');
+ return result.toString();
+ }
+
+} // InteractionComponentImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/InterceptionRuleImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/InterceptionRuleImpl.java
new file mode 100644
index 00000000000..5c061d96327
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/InterceptionRuleImpl.java
@@ -0,0 +1,341 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.InterceptionKind;
+import org.eclipse.papyrus.FCM.InterceptionRule;
+import org.eclipse.uml2.uml.Feature;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Interception Rule</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.InterceptionRuleImpl#getInterceptionKind <em>Interception Kind</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.InterceptionRuleImpl#getInterceptionSet <em>Interception Set</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.InterceptionRuleImpl#getBase_Property <em>Base Property</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.InterceptionRuleImpl#getBase_Operation <em>Base Operation</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class InterceptionRuleImpl extends EObjectImpl implements InterceptionRule {
+ /**
+ * The default value of the '{@link #getInterceptionKind() <em>Interception Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInterceptionKind()
+ * @generated
+ * @ordered
+ */
+ protected static final InterceptionKind INTERCEPTION_KIND_EDEFAULT = InterceptionKind.INTERCEPT_SOME;
+
+ /**
+ * The cached value of the '{@link #getInterceptionKind() <em>Interception Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInterceptionKind()
+ * @generated
+ * @ordered
+ */
+ protected InterceptionKind interceptionKind = INTERCEPTION_KIND_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getInterceptionSet() <em>Interception Set</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInterceptionSet()
+ * @generated
+ * @ordered
+ */
+ protected EList<Feature> interceptionSet;
+
+ /**
+ * The cached value of the '{@link #getBase_Property() <em>Base Property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Property()
+ * @generated
+ * @ordered
+ */
+ protected Property base_Property;
+
+ /**
+ * The cached value of the '{@link #getBase_Operation() <em>Base Operation</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Operation()
+ * @generated
+ * @ordered
+ */
+ protected Operation base_Operation;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InterceptionRuleImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.INTERCEPTION_RULE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public InterceptionKind getInterceptionKind() {
+ return interceptionKind;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setInterceptionKind(InterceptionKind newInterceptionKind) {
+ InterceptionKind oldInterceptionKind = interceptionKind;
+ interceptionKind = newInterceptionKind == null ? INTERCEPTION_KIND_EDEFAULT : newInterceptionKind;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.INTERCEPTION_RULE__INTERCEPTION_KIND, oldInterceptionKind, interceptionKind));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<Feature> getInterceptionSet() {
+ if (interceptionSet == null) {
+ interceptionSet = new EObjectResolvingEList<Feature>(Feature.class, this, FCMPackage.INTERCEPTION_RULE__INTERCEPTION_SET);
+ }
+ return interceptionSet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Property getBase_Property() {
+ if (base_Property != null && base_Property.eIsProxy()) {
+ InternalEObject oldBase_Property = (InternalEObject)base_Property;
+ base_Property = (Property)eResolveProxy(oldBase_Property);
+ if (base_Property != oldBase_Property) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.INTERCEPTION_RULE__BASE_PROPERTY, oldBase_Property, base_Property));
+ }
+ }
+ return base_Property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property basicGetBase_Property() {
+ return base_Property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Property(Property newBase_Property) {
+ Property oldBase_Property = base_Property;
+ base_Property = newBase_Property;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.INTERCEPTION_RULE__BASE_PROPERTY, oldBase_Property, base_Property));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Operation getBase_Operation() {
+ if (base_Operation != null && base_Operation.eIsProxy()) {
+ InternalEObject oldBase_Operation = (InternalEObject)base_Operation;
+ base_Operation = (Operation)eResolveProxy(oldBase_Operation);
+ if (base_Operation != oldBase_Operation) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.INTERCEPTION_RULE__BASE_OPERATION, oldBase_Operation, base_Operation));
+ }
+ }
+ return base_Operation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Operation basicGetBase_Operation() {
+ return base_Operation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Operation(Operation newBase_Operation) {
+ Operation oldBase_Operation = base_Operation;
+ base_Operation = newBase_Operation;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.INTERCEPTION_RULE__BASE_OPERATION, oldBase_Operation, base_Operation));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.INTERCEPTION_RULE__INTERCEPTION_KIND:
+ return getInterceptionKind();
+ case FCMPackage.INTERCEPTION_RULE__INTERCEPTION_SET:
+ return getInterceptionSet();
+ case FCMPackage.INTERCEPTION_RULE__BASE_PROPERTY:
+ if (resolve) return getBase_Property();
+ return basicGetBase_Property();
+ case FCMPackage.INTERCEPTION_RULE__BASE_OPERATION:
+ if (resolve) return getBase_Operation();
+ return basicGetBase_Operation();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.INTERCEPTION_RULE__INTERCEPTION_KIND:
+ setInterceptionKind((InterceptionKind)newValue);
+ return;
+ case FCMPackage.INTERCEPTION_RULE__INTERCEPTION_SET:
+ getInterceptionSet().clear();
+ getInterceptionSet().addAll((Collection<? extends Feature>)newValue);
+ return;
+ case FCMPackage.INTERCEPTION_RULE__BASE_PROPERTY:
+ setBase_Property((Property)newValue);
+ return;
+ case FCMPackage.INTERCEPTION_RULE__BASE_OPERATION:
+ setBase_Operation((Operation)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.INTERCEPTION_RULE__INTERCEPTION_KIND:
+ setInterceptionKind(INTERCEPTION_KIND_EDEFAULT);
+ return;
+ case FCMPackage.INTERCEPTION_RULE__INTERCEPTION_SET:
+ getInterceptionSet().clear();
+ return;
+ case FCMPackage.INTERCEPTION_RULE__BASE_PROPERTY:
+ setBase_Property((Property)null);
+ return;
+ case FCMPackage.INTERCEPTION_RULE__BASE_OPERATION:
+ setBase_Operation((Operation)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.INTERCEPTION_RULE__INTERCEPTION_KIND:
+ return interceptionKind != INTERCEPTION_KIND_EDEFAULT;
+ case FCMPackage.INTERCEPTION_RULE__INTERCEPTION_SET:
+ return interceptionSet != null && !interceptionSet.isEmpty();
+ case FCMPackage.INTERCEPTION_RULE__BASE_PROPERTY:
+ return base_Property != null;
+ case FCMPackage.INTERCEPTION_RULE__BASE_OPERATION:
+ return base_Operation != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (interceptionKind: "); //$NON-NLS-1$
+ result.append(interceptionKind);
+ result.append(')');
+ return result.toString();
+ }
+
+} // InterceptionRuleImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/OperatingSystemImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/OperatingSystemImpl.java
new file mode 100644
index 00000000000..f102dd9fd32
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/OperatingSystemImpl.java
@@ -0,0 +1,165 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.OperatingSystem;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Operating System</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.OperatingSystemImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class OperatingSystemImpl extends EObjectImpl implements OperatingSystem {
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected OperatingSystemImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.OPERATING_SYSTEM;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.OPERATING_SYSTEM__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.OPERATING_SYSTEM__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.OPERATING_SYSTEM__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.OPERATING_SYSTEM__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.OPERATING_SYSTEM__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.OPERATING_SYSTEM__BASE_CLASS:
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // OperatingSystemImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/PortImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/PortImpl.java
new file mode 100644
index 00000000000..474cdf56684
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/PortImpl.java
@@ -0,0 +1,334 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.Port;
+import org.eclipse.papyrus.FCM.PortKind;
+import org.eclipse.papyrus.FCM.util.MapUtil;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Image;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Stereotype;
+import org.eclipse.uml2.uml.Type;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Port</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.PortImpl#getBase_Port <em>Base Port</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.PortImpl#getKind <em>Kind</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.PortImpl#getType <em>Type</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class PortImpl extends ConfigurableElementInstanceImpl implements Port {
+
+ /**
+ * The cached value of the '{@link #getBase_Port() <em>Base Port</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Port()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Port base_Port;
+
+ /**
+ * The cached value of the '{@link #getKind() <em>Kind</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getKind()
+ * @generated
+ * @ordered
+ */
+ protected PortKind kind;
+
+ /**
+ * The cached value of the '{@link #getType() <em>Type</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected Type type;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PortImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.PORT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Port getBase_Port() {
+ if (base_Port != null && base_Port.eIsProxy()) {
+ InternalEObject oldBase_Port = (InternalEObject)base_Port;
+ base_Port = (org.eclipse.uml2.uml.Port)eResolveProxy(oldBase_Port);
+ if (base_Port != oldBase_Port) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.PORT__BASE_PORT, oldBase_Port, base_Port));
+ }
+ }
+ return base_Port;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Port basicGetBase_Port() {
+ return base_Port;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Port(org.eclipse.uml2.uml.Port newBase_Port) {
+ org.eclipse.uml2.uml.Port oldBase_Port = base_Port;
+ base_Port = newBase_Port;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.PORT__BASE_PORT, oldBase_Port, base_Port));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public PortKind getKind() {
+ if (kind != null && kind.eIsProxy()) {
+ InternalEObject oldKind = (InternalEObject)kind;
+ kind = (PortKind)eResolveProxy(oldKind);
+ if (kind != oldKind) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.PORT__KIND, oldKind, kind));
+ }
+ }
+ return kind;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PortKind basicGetKind() {
+ return kind;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setKind(PortKind newKind) {
+ PortKind oldKind = kind;
+ kind = newKind;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.PORT__KIND, oldKind, kind));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Type getType() {
+ if (type != null && type.eIsProxy()) {
+ InternalEObject oldType = (InternalEObject)type;
+ type = (Type)eResolveProxy(oldType);
+ if (type != oldType) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.PORT__TYPE, oldType, type));
+ }
+ }
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Type basicGetType() {
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setType(Type newType) {
+ Type oldType = type;
+ type = newType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.PORT__TYPE, oldType, type));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.PORT__BASE_PORT:
+ if (resolve) return getBase_Port();
+ return basicGetBase_Port();
+ case FCMPackage.PORT__KIND:
+ if (resolve) return getKind();
+ return basicGetKind();
+ case FCMPackage.PORT__TYPE:
+ if (resolve) return getType();
+ return basicGetType();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.PORT__BASE_PORT:
+ setBase_Port((org.eclipse.uml2.uml.Port)newValue);
+ return;
+ case FCMPackage.PORT__KIND:
+ setKind((PortKind)newValue);
+ return;
+ case FCMPackage.PORT__TYPE:
+ setType((Type)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.PORT__BASE_PORT:
+ setBase_Port((org.eclipse.uml2.uml.Port)null);
+ return;
+ case FCMPackage.PORT__KIND:
+ setKind((PortKind)null);
+ return;
+ case FCMPackage.PORT__TYPE:
+ setType((Type)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.PORT__BASE_PORT:
+ return base_Port != null;
+ case FCMPackage.PORT__KIND:
+ return kind != null;
+ case FCMPackage.PORT__TYPE:
+ return type != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * * @generated NOT
+ */
+ static EList<Interface> emptyList = new BasicEList<Interface>();
+
+ /**
+ * @return icon (serialized in port kind)
+ * @generated NOT
+ */
+ public Image getIcon()
+ {
+ if (getKind() != null) {
+ Class clazz = getKind().getBase_Class();
+
+ if (clazz instanceof Stereotype) {
+ EList<Image> icons = ((Stereotype) clazz).getIcons();
+ if (base_Port.isConjugated()) {
+ if (icons.size() > 1) {
+ // standard position for conjugated icon
+ return icons.get(1);
+ }
+ }
+ else {
+ if (icons.size() > 0) {
+ return icons.get(0);
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public void update() {
+ MapUtil.update(this);
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/PortKindImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/PortKindImpl.java
new file mode 100644
index 00000000000..eb480f3a3fc
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/PortKindImpl.java
@@ -0,0 +1,351 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.PortKind;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Image;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Stereotype;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Port Kind</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.PortKindImpl#getBase_Class <em>Base Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.PortKindImpl#getProvidedInterface <em>Provided Interface</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.PortKindImpl#getRequiredInterface <em>Required Interface</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.PortKindImpl#isExtendedPort <em>Extended Port</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class PortKindImpl extends EObjectImpl implements PortKind {
+
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * The cached value of the '{@link #getProvidedInterface() <em>Provided Interface</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProvidedInterface()
+ * @generated
+ * @ordered
+ */
+ protected Interface providedInterface;
+
+ /**
+ * The cached value of the '{@link #getRequiredInterface() <em>Required Interface</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRequiredInterface()
+ * @generated
+ * @ordered
+ */
+ protected Interface requiredInterface;
+
+ /**
+ * The default value of the '{@link #isExtendedPort() <em>Extended Port</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isExtendedPort()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean EXTENDED_PORT_EDEFAULT = false;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PortKindImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.PORT_KIND;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.PORT_KIND__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.PORT_KIND__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Interface getProvidedInterface() {
+ if (providedInterface != null && providedInterface.eIsProxy()) {
+ InternalEObject oldProvidedInterface = (InternalEObject)providedInterface;
+ providedInterface = (Interface)eResolveProxy(oldProvidedInterface);
+ if (providedInterface != oldProvidedInterface) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.PORT_KIND__PROVIDED_INTERFACE, oldProvidedInterface, providedInterface));
+ }
+ }
+ return providedInterface;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Interface basicGetProvidedInterface() {
+ return providedInterface;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setProvidedInterface(Interface newProvidedInterface) {
+ Interface oldProvidedInterface = providedInterface;
+ providedInterface = newProvidedInterface;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.PORT_KIND__PROVIDED_INTERFACE, oldProvidedInterface, providedInterface));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Interface getRequiredInterface() {
+ if (requiredInterface != null && requiredInterface.eIsProxy()) {
+ InternalEObject oldRequiredInterface = (InternalEObject)requiredInterface;
+ requiredInterface = (Interface)eResolveProxy(oldRequiredInterface);
+ if (requiredInterface != oldRequiredInterface) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.PORT_KIND__REQUIRED_INTERFACE, oldRequiredInterface, requiredInterface));
+ }
+ }
+ return requiredInterface;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Interface basicGetRequiredInterface() {
+ return requiredInterface;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setRequiredInterface(Interface newRequiredInterface) {
+ Interface oldRequiredInterface = requiredInterface;
+ requiredInterface = newRequiredInterface;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.PORT_KIND__REQUIRED_INTERFACE, oldRequiredInterface, requiredInterface));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public boolean isExtendedPort() {
+ if (getBase_Class() != null) {
+ return getBase_Class().getOwnedPorts().size() > 0;
+ }
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public boolean isSetExtendedPort() {
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.PORT_KIND__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ case FCMPackage.PORT_KIND__PROVIDED_INTERFACE:
+ if (resolve) return getProvidedInterface();
+ return basicGetProvidedInterface();
+ case FCMPackage.PORT_KIND__REQUIRED_INTERFACE:
+ if (resolve) return getRequiredInterface();
+ return basicGetRequiredInterface();
+ case FCMPackage.PORT_KIND__EXTENDED_PORT:
+ return isExtendedPort();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.PORT_KIND__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ case FCMPackage.PORT_KIND__PROVIDED_INTERFACE:
+ setProvidedInterface((Interface)newValue);
+ return;
+ case FCMPackage.PORT_KIND__REQUIRED_INTERFACE:
+ setRequiredInterface((Interface)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.PORT_KIND__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ case FCMPackage.PORT_KIND__PROVIDED_INTERFACE:
+ setProvidedInterface((Interface)null);
+ return;
+ case FCMPackage.PORT_KIND__REQUIRED_INTERFACE:
+ setRequiredInterface((Interface)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.PORT_KIND__BASE_CLASS:
+ return base_Class != null;
+ case FCMPackage.PORT_KIND__PROVIDED_INTERFACE:
+ return providedInterface != null;
+ case FCMPackage.PORT_KIND__REQUIRED_INTERFACE:
+ return requiredInterface != null;
+ case FCMPackage.PORT_KIND__EXTENDED_PORT:
+ return isSetExtendedPort();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * @return icon (serialized in port kind)
+ * @generated NOT
+ */
+ public Image getIcon()
+ {
+ Class clazz = getBase_Class();
+
+ if (clazz instanceof Stereotype) {
+ EList<Image> icons = ((Stereotype) clazz).getIcons();
+ if (icons.size() > 0) {
+ return icons.get(0);
+ }
+ }
+ return null;
+ }
+} // PortKindImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ProgLanguageImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ProgLanguageImpl.java
new file mode 100644
index 00000000000..367900b37a8
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/ProgLanguageImpl.java
@@ -0,0 +1,165 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.ProgLanguage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Prog Language</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.ProgLanguageImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ProgLanguageImpl extends EObjectImpl implements ProgLanguage {
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ProgLanguageImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.PROG_LANGUAGE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.PROG_LANGUAGE__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.PROG_LANGUAGE__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.PROG_LANGUAGE__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.PROG_LANGUAGE__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.PROG_LANGUAGE__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.PROG_LANGUAGE__BASE_CLASS:
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // ProgLanguageImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/RuleApplicationImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/RuleApplicationImpl.java
new file mode 100644
index 00000000000..8e9183bee71
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/RuleApplicationImpl.java
@@ -0,0 +1,268 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.papyrus.FCM.ContainerRule;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.RuleApplication;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Rule Application</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.RuleApplicationImpl#getBase_Class <em>Base Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.RuleApplicationImpl#getContainerRule <em>Container Rule</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.RuleApplicationImpl#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class RuleApplicationImpl extends EObjectImpl implements RuleApplication {
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * The cached value of the '{@link #getContainerRule() <em>Container Rule</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getContainerRule()
+ * @generated
+ * @ordered
+ */
+ protected EList<ContainerRule> containerRule;
+
+ /**
+ * The cached value of the '{@link #getBase_Package() <em>Base Package</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Package()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Package base_Package;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected RuleApplicationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.RULE_APPLICATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.RULE_APPLICATION__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.RULE_APPLICATION__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<ContainerRule> getContainerRule() {
+ if (containerRule == null) {
+ containerRule = new EObjectResolvingEList<ContainerRule>(ContainerRule.class, this, FCMPackage.RULE_APPLICATION__CONTAINER_RULE);
+ }
+ return containerRule;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Package getBase_Package() {
+ if (base_Package != null && base_Package.eIsProxy()) {
+ InternalEObject oldBase_Package = (InternalEObject)base_Package;
+ base_Package = (org.eclipse.uml2.uml.Package)eResolveProxy(oldBase_Package);
+ if (base_Package != oldBase_Package) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.RULE_APPLICATION__BASE_PACKAGE, oldBase_Package, base_Package));
+ }
+ }
+ return base_Package;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Package basicGetBase_Package() {
+ return base_Package;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Package(org.eclipse.uml2.uml.Package newBase_Package) {
+ org.eclipse.uml2.uml.Package oldBase_Package = base_Package;
+ base_Package = newBase_Package;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.RULE_APPLICATION__BASE_PACKAGE, oldBase_Package, base_Package));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.RULE_APPLICATION__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ case FCMPackage.RULE_APPLICATION__CONTAINER_RULE:
+ return getContainerRule();
+ case FCMPackage.RULE_APPLICATION__BASE_PACKAGE:
+ if (resolve) return getBase_Package();
+ return basicGetBase_Package();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.RULE_APPLICATION__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ case FCMPackage.RULE_APPLICATION__CONTAINER_RULE:
+ getContainerRule().clear();
+ getContainerRule().addAll((Collection<? extends ContainerRule>)newValue);
+ return;
+ case FCMPackage.RULE_APPLICATION__BASE_PACKAGE:
+ setBase_Package((org.eclipse.uml2.uml.Package)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.RULE_APPLICATION__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ case FCMPackage.RULE_APPLICATION__CONTAINER_RULE:
+ getContainerRule().clear();
+ return;
+ case FCMPackage.RULE_APPLICATION__BASE_PACKAGE:
+ setBase_Package((org.eclipse.uml2.uml.Package)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.RULE_APPLICATION__BASE_CLASS:
+ return base_Class != null;
+ case FCMPackage.RULE_APPLICATION__CONTAINER_RULE:
+ return containerRule != null && !containerRule.isEmpty();
+ case FCMPackage.RULE_APPLICATION__BASE_PACKAGE:
+ return base_Package != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // RuleApplicationImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/SingletonImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/SingletonImpl.java
new file mode 100644
index 00000000000..80a515a8d12
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/SingletonImpl.java
@@ -0,0 +1,165 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.Singleton;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Singleton</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.SingletonImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class SingletonImpl extends EObjectImpl implements Singleton {
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SingletonImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.SINGLETON;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.SINGLETON__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.SINGLETON__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.SINGLETON__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.SINGLETON__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.SINGLETON__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.SINGLETON__BASE_CLASS:
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // SingletonImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/TargetArchitectureImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/TargetArchitectureImpl.java
new file mode 100644
index 00000000000..5af10b34478
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/TargetArchitectureImpl.java
@@ -0,0 +1,165 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.TargetArchitecture;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Target Architecture</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.TargetArchitectureImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class TargetArchitectureImpl extends EObjectImpl implements TargetArchitecture {
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TargetArchitectureImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.TARGET_ARCHITECTURE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.TARGET_ARCHITECTURE__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.TARGET_ARCHITECTURE__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.TARGET_ARCHITECTURE__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.TARGET_ARCHITECTURE__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.TARGET_ARCHITECTURE__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.TARGET_ARCHITECTURE__BASE_CLASS:
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // TargetArchitectureImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/TargetImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/TargetImpl.java
new file mode 100644
index 00000000000..512c44b434d
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/TargetImpl.java
@@ -0,0 +1,522 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.papyrus.FCM.CompilerChain;
+import org.eclipse.papyrus.FCM.ConfigOption;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.OperatingSystem;
+import org.eclipse.papyrus.FCM.Target;
+import org.eclipse.papyrus.FCM.TargetArchitecture;
+import org.eclipse.uml2.uml.Node;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Target</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.TargetImpl#getTargetArch <em>Target Arch</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.TargetImpl#getOptions <em>Options</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.TargetImpl#getBase_Node <em>Base Node</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.TargetImpl#getUsedOS <em>Used OS</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.TargetImpl#getAvailRAM <em>Avail RAM</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.TargetImpl#getAvailROM <em>Avail ROM</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.TargetImpl#getCompiler <em>Compiler</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class TargetImpl extends EObjectImpl implements Target {
+ /**
+ * The cached value of the '{@link #getTargetArch() <em>Target Arch</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTargetArch()
+ * @generated
+ * @ordered
+ */
+ protected TargetArchitecture targetArch;
+
+ /**
+ * The cached value of the '{@link #getOptions() <em>Options</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOptions()
+ * @generated
+ * @ordered
+ */
+ protected EList<ConfigOption> options;
+
+ /**
+ * The cached value of the '{@link #getBase_Node() <em>Base Node</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Node()
+ * @generated
+ * @ordered
+ */
+ protected Node base_Node;
+
+ /**
+ * The cached value of the '{@link #getUsedOS() <em>Used OS</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUsedOS()
+ * @generated
+ * @ordered
+ */
+ protected OperatingSystem usedOS;
+
+ /**
+ * The default value of the '{@link #getAvailRAM() <em>Avail RAM</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAvailRAM()
+ * @generated
+ * @ordered
+ */
+ protected static final int AVAIL_RAM_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getAvailRAM() <em>Avail RAM</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAvailRAM()
+ * @generated
+ * @ordered
+ */
+ protected int availRAM = AVAIL_RAM_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getAvailROM() <em>Avail ROM</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAvailROM()
+ * @generated
+ * @ordered
+ */
+ protected static final int AVAIL_ROM_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getAvailROM() <em>Avail ROM</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAvailROM()
+ * @generated
+ * @ordered
+ */
+ protected int availROM = AVAIL_ROM_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getCompiler() <em>Compiler</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCompiler()
+ * @generated
+ * @ordered
+ */
+ protected CompilerChain compiler;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TargetImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.TARGET;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public TargetArchitecture getTargetArch() {
+ if (targetArch != null && targetArch.eIsProxy()) {
+ InternalEObject oldTargetArch = (InternalEObject)targetArch;
+ targetArch = (TargetArchitecture)eResolveProxy(oldTargetArch);
+ if (targetArch != oldTargetArch) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.TARGET__TARGET_ARCH, oldTargetArch, targetArch));
+ }
+ }
+ return targetArch;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TargetArchitecture basicGetTargetArch() {
+ return targetArch;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setTargetArch(TargetArchitecture newTargetArch) {
+ TargetArchitecture oldTargetArch = targetArch;
+ targetArch = newTargetArch;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.TARGET__TARGET_ARCH, oldTargetArch, targetArch));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<ConfigOption> getOptions() {
+ if (options == null) {
+ options = new EObjectResolvingEList<ConfigOption>(ConfigOption.class, this, FCMPackage.TARGET__OPTIONS);
+ }
+ return options;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Node getBase_Node() {
+ if (base_Node != null && base_Node.eIsProxy()) {
+ InternalEObject oldBase_Node = (InternalEObject)base_Node;
+ base_Node = (Node)eResolveProxy(oldBase_Node);
+ if (base_Node != oldBase_Node) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.TARGET__BASE_NODE, oldBase_Node, base_Node));
+ }
+ }
+ return base_Node;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Node basicGetBase_Node() {
+ return base_Node;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Node(Node newBase_Node) {
+ Node oldBase_Node = base_Node;
+ base_Node = newBase_Node;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.TARGET__BASE_NODE, oldBase_Node, base_Node));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public OperatingSystem getUsedOS() {
+ if (usedOS != null && usedOS.eIsProxy()) {
+ InternalEObject oldUsedOS = (InternalEObject)usedOS;
+ usedOS = (OperatingSystem)eResolveProxy(oldUsedOS);
+ if (usedOS != oldUsedOS) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.TARGET__USED_OS, oldUsedOS, usedOS));
+ }
+ }
+ return usedOS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OperatingSystem basicGetUsedOS() {
+ return usedOS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setUsedOS(OperatingSystem newUsedOS) {
+ OperatingSystem oldUsedOS = usedOS;
+ usedOS = newUsedOS;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.TARGET__USED_OS, oldUsedOS, usedOS));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getAvailRAM() {
+ return availRAM;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setAvailRAM(int newAvailRAM) {
+ int oldAvailRAM = availRAM;
+ availRAM = newAvailRAM;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.TARGET__AVAIL_RAM, oldAvailRAM, availRAM));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getAvailROM() {
+ return availROM;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setAvailROM(int newAvailROM) {
+ int oldAvailROM = availROM;
+ availROM = newAvailROM;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.TARGET__AVAIL_ROM, oldAvailROM, availROM));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public CompilerChain getCompiler() {
+ if (compiler != null && compiler.eIsProxy()) {
+ InternalEObject oldCompiler = (InternalEObject)compiler;
+ compiler = (CompilerChain)eResolveProxy(oldCompiler);
+ if (compiler != oldCompiler) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.TARGET__COMPILER, oldCompiler, compiler));
+ }
+ }
+ return compiler;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CompilerChain basicGetCompiler() {
+ return compiler;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setCompiler(CompilerChain newCompiler) {
+ CompilerChain oldCompiler = compiler;
+ compiler = newCompiler;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.TARGET__COMPILER, oldCompiler, compiler));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.TARGET__TARGET_ARCH:
+ if (resolve) return getTargetArch();
+ return basicGetTargetArch();
+ case FCMPackage.TARGET__OPTIONS:
+ return getOptions();
+ case FCMPackage.TARGET__BASE_NODE:
+ if (resolve) return getBase_Node();
+ return basicGetBase_Node();
+ case FCMPackage.TARGET__USED_OS:
+ if (resolve) return getUsedOS();
+ return basicGetUsedOS();
+ case FCMPackage.TARGET__AVAIL_RAM:
+ return getAvailRAM();
+ case FCMPackage.TARGET__AVAIL_ROM:
+ return getAvailROM();
+ case FCMPackage.TARGET__COMPILER:
+ if (resolve) return getCompiler();
+ return basicGetCompiler();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.TARGET__TARGET_ARCH:
+ setTargetArch((TargetArchitecture)newValue);
+ return;
+ case FCMPackage.TARGET__OPTIONS:
+ getOptions().clear();
+ getOptions().addAll((Collection<? extends ConfigOption>)newValue);
+ return;
+ case FCMPackage.TARGET__BASE_NODE:
+ setBase_Node((Node)newValue);
+ return;
+ case FCMPackage.TARGET__USED_OS:
+ setUsedOS((OperatingSystem)newValue);
+ return;
+ case FCMPackage.TARGET__AVAIL_RAM:
+ setAvailRAM((Integer)newValue);
+ return;
+ case FCMPackage.TARGET__AVAIL_ROM:
+ setAvailROM((Integer)newValue);
+ return;
+ case FCMPackage.TARGET__COMPILER:
+ setCompiler((CompilerChain)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.TARGET__TARGET_ARCH:
+ setTargetArch((TargetArchitecture)null);
+ return;
+ case FCMPackage.TARGET__OPTIONS:
+ getOptions().clear();
+ return;
+ case FCMPackage.TARGET__BASE_NODE:
+ setBase_Node((Node)null);
+ return;
+ case FCMPackage.TARGET__USED_OS:
+ setUsedOS((OperatingSystem)null);
+ return;
+ case FCMPackage.TARGET__AVAIL_RAM:
+ setAvailRAM(AVAIL_RAM_EDEFAULT);
+ return;
+ case FCMPackage.TARGET__AVAIL_ROM:
+ setAvailROM(AVAIL_ROM_EDEFAULT);
+ return;
+ case FCMPackage.TARGET__COMPILER:
+ setCompiler((CompilerChain)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.TARGET__TARGET_ARCH:
+ return targetArch != null;
+ case FCMPackage.TARGET__OPTIONS:
+ return options != null && !options.isEmpty();
+ case FCMPackage.TARGET__BASE_NODE:
+ return base_Node != null;
+ case FCMPackage.TARGET__USED_OS:
+ return usedOS != null;
+ case FCMPackage.TARGET__AVAIL_RAM:
+ return availRAM != AVAIL_RAM_EDEFAULT;
+ case FCMPackage.TARGET__AVAIL_ROM:
+ return availROM != AVAIL_ROM_EDEFAULT;
+ case FCMPackage.TARGET__COMPILER:
+ return compiler != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (availRAM: "); //$NON-NLS-1$
+ result.append(availRAM);
+ result.append(", availROM: "); //$NON-NLS-1$
+ result.append(availROM);
+ result.append(')');
+ return result.toString();
+ }
+
+} // TargetImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/TemplateImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/TemplateImpl.java
new file mode 100644
index 00000000000..9bae3f5d98c
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/TemplateImpl.java
@@ -0,0 +1,229 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.BindingHelper;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.Template;
+import org.eclipse.uml2.uml.Element;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Template</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.TemplateImpl#getBase_Element <em>Base Element</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.TemplateImpl#getHelper <em>Helper</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class TemplateImpl extends EObjectImpl implements Template {
+ /**
+ * The cached value of the '{@link #getBase_Element() <em>Base Element</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Element()
+ * @generated
+ * @ordered
+ */
+ protected Element base_Element;
+
+ /**
+ * The cached value of the '{@link #getHelper() <em>Helper</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHelper()
+ * @generated
+ * @ordered
+ */
+ protected BindingHelper helper;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TemplateImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.TEMPLATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Element getBase_Element() {
+ if (base_Element != null && base_Element.eIsProxy()) {
+ InternalEObject oldBase_Element = (InternalEObject)base_Element;
+ base_Element = (Element)eResolveProxy(oldBase_Element);
+ if (base_Element != oldBase_Element) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.TEMPLATE__BASE_ELEMENT, oldBase_Element, base_Element));
+ }
+ }
+ return base_Element;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element basicGetBase_Element() {
+ return base_Element;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Element(Element newBase_Element) {
+ Element oldBase_Element = base_Element;
+ base_Element = newBase_Element;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.TEMPLATE__BASE_ELEMENT, oldBase_Element, base_Element));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public BindingHelper getHelper() {
+ if (helper != null && helper.eIsProxy()) {
+ InternalEObject oldHelper = (InternalEObject)helper;
+ helper = (BindingHelper)eResolveProxy(oldHelper);
+ if (helper != oldHelper) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.TEMPLATE__HELPER, oldHelper, helper));
+ }
+ }
+ return helper;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BindingHelper basicGetHelper() {
+ return helper;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setHelper(BindingHelper newHelper) {
+ BindingHelper oldHelper = helper;
+ helper = newHelper;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.TEMPLATE__HELPER, oldHelper, helper));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.TEMPLATE__BASE_ELEMENT:
+ if (resolve) return getBase_Element();
+ return basicGetBase_Element();
+ case FCMPackage.TEMPLATE__HELPER:
+ if (resolve) return getHelper();
+ return basicGetHelper();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.TEMPLATE__BASE_ELEMENT:
+ setBase_Element((Element)newValue);
+ return;
+ case FCMPackage.TEMPLATE__HELPER:
+ setHelper((BindingHelper)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.TEMPLATE__BASE_ELEMENT:
+ setBase_Element((Element)null);
+ return;
+ case FCMPackage.TEMPLATE__HELPER:
+ setHelper((BindingHelper)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.TEMPLATE__BASE_ELEMENT:
+ return base_Element != null;
+ case FCMPackage.TEMPLATE__HELPER:
+ return helper != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // TemplateImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/TemplatePortImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/TemplatePortImpl.java
new file mode 100644
index 00000000000..60fcc261168
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/TemplatePortImpl.java
@@ -0,0 +1,181 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.PortKind;
+import org.eclipse.papyrus.FCM.TemplatePort;
+import org.eclipse.papyrus.FCM.util.MapUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Template Port</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.TemplatePortImpl#getBoundType <em>Bound Type</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class TemplatePortImpl extends PortImpl implements TemplatePort {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TemplatePortImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.TEMPLATE_PORT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public PortKind getBoundType() {
+ PortKind boundType = basicGetBoundType();
+ return boundType != null && boundType.eIsProxy() ? (PortKind)eResolveProxy((InternalEObject)boundType) : boundType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ public PortKind basicGetBoundType() {
+ if(base_Port == null) {
+ return null;
+ }
+ if(base_Port.isConjugated()) {
+ return MapUtil.getBoundType(this);
+ }
+ else {
+ return MapUtil.getBoundType(this);
+ }
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public void setBoundType(PortKind newBoundType) {
+ // TODO: implement this method to set the 'Bound Type' reference
+ // Ensure that you remove @generated or mark it @generated NOT
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public void unsetBoundType() {
+ // TODO: implement this method to unset the 'Bound Type' reference
+ // Ensure that you remove @generated or mark it @generated NOT
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @Override
+ public boolean isSetBoundType() {
+ // TODO: implement this method to return whether the 'Bound Type' reference is set
+ // Ensure that you remove @generated or mark it @generated NOT
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.TEMPLATE_PORT__BOUND_TYPE:
+ if (resolve) return getBoundType();
+ return basicGetBoundType();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.TEMPLATE_PORT__BOUND_TYPE:
+ setBoundType((PortKind)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.TEMPLATE_PORT__BOUND_TYPE:
+ unsetBoundType();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.TEMPLATE_PORT__BOUND_TYPE:
+ return isSetBoundType();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // TemplatePortImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/UseInstanceConfiguratorImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/UseInstanceConfiguratorImpl.java
new file mode 100644
index 00000000000..21b2bcece52
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/UseInstanceConfiguratorImpl.java
@@ -0,0 +1,228 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.InstanceConfigurator;
+import org.eclipse.papyrus.FCM.UseInstanceConfigurator;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Use Instance Configurator</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.UseInstanceConfiguratorImpl#getBase_Class <em>Base Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.UseInstanceConfiguratorImpl#getConfigurator <em>Configurator</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class UseInstanceConfiguratorImpl extends EObjectImpl implements UseInstanceConfigurator {
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * The cached value of the '{@link #getConfigurator() <em>Configurator</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getConfigurator()
+ * @generated
+ * @ordered
+ */
+ protected InstanceConfigurator configurator;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected UseInstanceConfiguratorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.USE_INSTANCE_CONFIGURATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.USE_INSTANCE_CONFIGURATOR__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.USE_INSTANCE_CONFIGURATOR__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public InstanceConfigurator getConfigurator() {
+ if (configurator != null && configurator.eIsProxy()) {
+ InternalEObject oldConfigurator = (InternalEObject)configurator;
+ configurator = (InstanceConfigurator)eResolveProxy(oldConfigurator);
+ if (configurator != oldConfigurator) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.USE_INSTANCE_CONFIGURATOR__CONFIGURATOR, oldConfigurator, configurator));
+ }
+ }
+ return configurator;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InstanceConfigurator basicGetConfigurator() {
+ return configurator;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setConfigurator(InstanceConfigurator newConfigurator) {
+ InstanceConfigurator oldConfigurator = configurator;
+ configurator = newConfigurator;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.USE_INSTANCE_CONFIGURATOR__CONFIGURATOR, oldConfigurator, configurator));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.USE_INSTANCE_CONFIGURATOR__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ case FCMPackage.USE_INSTANCE_CONFIGURATOR__CONFIGURATOR:
+ if (resolve) return getConfigurator();
+ return basicGetConfigurator();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.USE_INSTANCE_CONFIGURATOR__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ case FCMPackage.USE_INSTANCE_CONFIGURATOR__CONFIGURATOR:
+ setConfigurator((InstanceConfigurator)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.USE_INSTANCE_CONFIGURATOR__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ case FCMPackage.USE_INSTANCE_CONFIGURATOR__CONFIGURATOR:
+ setConfigurator((InstanceConfigurator)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.USE_INSTANCE_CONFIGURATOR__BASE_CLASS:
+ return base_Class != null;
+ case FCMPackage.USE_INSTANCE_CONFIGURATOR__CONFIGURATOR:
+ return configurator != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // UseInstanceConfiguratorImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/ConnectorTypeUtil.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/ConnectorTypeUtil.java
new file mode 100644
index 00000000000..919a7fcbff1
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/ConnectorTypeUtil.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+
+package org.eclipse.papyrus.FCM.util;
+
+import java.util.ArrayList;
+
+import org.eclipse.papyrus.FCM.InteractionComponent;
+import org.eclipse.uml2.uml.Collaboration;
+
+public class ConnectorTypeUtil {
+
+ protected Collaboration connectionPattern = null;
+
+ protected InteractionComponent connectorComp = null;
+
+ protected FCMUtil.RoleBindingTable bindingTable = null;
+
+ public FCMUtil.RoleBindingTable getRoleBindings(org.eclipse.papyrus.FCM.Connector connector) {
+ if (connector.getIc() instanceof InteractionComponent) {
+ connectorComp = connector.getIc();
+ connectionPattern = connectorComp.getConnectionPattern();
+ bindingTable = new FCMUtil.RoleBindingTable();
+ for (org.eclipse.uml2.uml.ConnectableElement role : connectionPattern.getRoles()) {
+ bindingTable.addEntry(role, new ArrayList<org.eclipse.uml2.uml.NamedElement>());
+ }
+ return bindingTable;
+ }
+ return null;
+ }
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMAdapterFactory.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMAdapterFactory.java
new file mode 100644
index 00000000000..ae3a258af53
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMAdapterFactory.java
@@ -0,0 +1,832 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.FCM.*;
+import org.eclipse.papyrus.FCM.Assembly;
+import org.eclipse.papyrus.FCM.AutoIndex;
+import org.eclipse.papyrus.FCM.AutoIndexPerNode;
+import org.eclipse.papyrus.FCM.BindTemplate;
+import org.eclipse.papyrus.FCM.BindingHelper;
+import org.eclipse.papyrus.FCM.CodeGenOptions;
+import org.eclipse.papyrus.FCM.CompImplTemplate;
+import org.eclipse.papyrus.FCM.CompToOOmapping;
+import org.eclipse.papyrus.FCM.CompilerChain;
+import org.eclipse.papyrus.FCM.ConfigOption;
+import org.eclipse.papyrus.FCM.ConfigurableElementInstance;
+import org.eclipse.papyrus.FCM.Configuration;
+import org.eclipse.papyrus.FCM.ConfigurationProperty;
+import org.eclipse.papyrus.FCM.Connector;
+import org.eclipse.papyrus.FCM.ConnectorConfiguration;
+import org.eclipse.papyrus.FCM.ContainerRule;
+import org.eclipse.papyrus.FCM.CopyAttributeValue;
+import org.eclipse.papyrus.FCM.DeploymentPlan;
+import org.eclipse.papyrus.FCM.DerivedElement;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.Flatten;
+import org.eclipse.papyrus.FCM.Fragment;
+import org.eclipse.papyrus.FCM.ImplementationGroup;
+import org.eclipse.papyrus.FCM.ImplementationProperties;
+import org.eclipse.papyrus.FCM.InitPrecedence;
+import org.eclipse.papyrus.FCM.InstanceConfigurator;
+import org.eclipse.papyrus.FCM.InteractionComponent;
+import org.eclipse.papyrus.FCM.InterceptionRule;
+import org.eclipse.papyrus.FCM.OperatingSystem;
+import org.eclipse.papyrus.FCM.Port;
+import org.eclipse.papyrus.FCM.PortKind;
+import org.eclipse.papyrus.FCM.ProgLanguage;
+import org.eclipse.papyrus.FCM.RuleApplication;
+import org.eclipse.papyrus.FCM.Singleton;
+import org.eclipse.papyrus.FCM.Target;
+import org.eclipse.papyrus.FCM.TargetArchitecture;
+import org.eclipse.papyrus.FCM.Template;
+import org.eclipse.papyrus.FCM.TemplatePort;
+import org.eclipse.papyrus.FCM.UseInstanceConfigurator;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.FCMPackage
+ * @generated
+ */
+public class FCMAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static FCMPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FCMAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = FCMPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FCMSwitch<Adapter> modelSwitch =
+ new FCMSwitch<Adapter>() {
+ @Override
+ public Adapter caseTemplate(Template object) {
+ return createTemplateAdapter();
+ }
+ @Override
+ public Adapter caseBindingHelper(BindingHelper object) {
+ return createBindingHelperAdapter();
+ }
+ @Override
+ public Adapter caseConfigurationProperty(ConfigurationProperty object) {
+ return createConfigurationPropertyAdapter();
+ }
+ @Override
+ public Adapter caseImplementationGroup(ImplementationGroup object) {
+ return createImplementationGroupAdapter();
+ }
+ @Override
+ public Adapter caseAssembly(Assembly object) {
+ return createAssemblyAdapter();
+ }
+ @Override
+ public Adapter caseFlatten(Flatten object) {
+ return createFlattenAdapter();
+ }
+ @Override
+ public Adapter caseCompToOOmapping(CompToOOmapping object) {
+ return createCompToOOmappingAdapter();
+ }
+ @Override
+ public Adapter caseProgLanguage(ProgLanguage object) {
+ return createProgLanguageAdapter();
+ }
+ @Override
+ public Adapter caseCodeGenOptions(CodeGenOptions object) {
+ return createCodeGenOptionsAdapter();
+ }
+ @Override
+ public Adapter caseInteractionComponent(InteractionComponent object) {
+ return createInteractionComponentAdapter();
+ }
+ @Override
+ public Adapter caseSingleton(Singleton object) {
+ return createSingletonAdapter();
+ }
+ @Override
+ public Adapter caseConnector(Connector object) {
+ return createConnectorAdapter();
+ }
+ @Override
+ public Adapter caseConfigurableElementInstance(ConfigurableElementInstance object) {
+ return createConfigurableElementInstanceAdapter();
+ }
+ @Override
+ public Adapter caseUseInstanceConfigurator(UseInstanceConfigurator object) {
+ return createUseInstanceConfiguratorAdapter();
+ }
+ @Override
+ public Adapter caseInstanceConfigurator(InstanceConfigurator object) {
+ return createInstanceConfiguratorAdapter();
+ }
+ @Override
+ public Adapter caseRuleApplication(RuleApplication object) {
+ return createRuleApplicationAdapter();
+ }
+ @Override
+ public Adapter caseContainerRule(ContainerRule object) {
+ return createContainerRuleAdapter();
+ }
+ @Override
+ public Adapter caseConfigOption(ConfigOption object) {
+ return createConfigOptionAdapter();
+ }
+ @Override
+ public Adapter caseTemplatePort(TemplatePort object) {
+ return createTemplatePortAdapter();
+ }
+ @Override
+ public Adapter casePort(Port object) {
+ return createPortAdapter();
+ }
+ @Override
+ public Adapter casePortKind(PortKind object) {
+ return createPortKindAdapter();
+ }
+ @Override
+ public Adapter caseDeploymentPlan(DeploymentPlan object) {
+ return createDeploymentPlanAdapter();
+ }
+ @Override
+ public Adapter caseDerivedElement(DerivedElement object) {
+ return createDerivedElementAdapter();
+ }
+ @Override
+ public Adapter caseCompImplTemplate(CompImplTemplate object) {
+ return createCompImplTemplateAdapter();
+ }
+ @Override
+ public Adapter caseImplementationProperties(ImplementationProperties object) {
+ return createImplementationPropertiesAdapter();
+ }
+ @Override
+ public Adapter caseOperatingSystem(OperatingSystem object) {
+ return createOperatingSystemAdapter();
+ }
+ @Override
+ public Adapter caseTargetArchitecture(TargetArchitecture object) {
+ return createTargetArchitectureAdapter();
+ }
+ @Override
+ public Adapter caseConfiguration(Configuration object) {
+ return createConfigurationAdapter();
+ }
+ @Override
+ public Adapter caseInterceptionRule(InterceptionRule object) {
+ return createInterceptionRuleAdapter();
+ }
+ @Override
+ public Adapter caseTarget(Target object) {
+ return createTargetAdapter();
+ }
+ @Override
+ public Adapter caseCompilerChain(CompilerChain object) {
+ return createCompilerChainAdapter();
+ }
+ @Override
+ public Adapter caseFragment(Fragment object) {
+ return createFragmentAdapter();
+ }
+ @Override
+ public Adapter caseCopyAttributeValue(CopyAttributeValue object) {
+ return createCopyAttributeValueAdapter();
+ }
+ @Override
+ public Adapter caseAutoIndex(AutoIndex object) {
+ return createAutoIndexAdapter();
+ }
+ @Override
+ public Adapter caseAutoIndexPerNode(AutoIndexPerNode object) {
+ return createAutoIndexPerNodeAdapter();
+ }
+ @Override
+ public Adapter caseInitPrecedence(InitPrecedence object) {
+ return createInitPrecedenceAdapter();
+ }
+ @Override
+ public Adapter caseConnectorConfiguration(ConnectorConfiguration object) {
+ return createConnectorConfigurationAdapter();
+ }
+ @Override
+ public Adapter caseBindTemplate(BindTemplate object) {
+ return createBindTemplateAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.Template <em>Template</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.Template
+ * @generated
+ */
+ public Adapter createTemplateAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.BindingHelper <em>Binding Helper</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.BindingHelper
+ * @generated
+ */
+ public Adapter createBindingHelperAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.ConfigurationProperty <em>Configuration Property</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.ConfigurationProperty
+ * @generated
+ */
+ public Adapter createConfigurationPropertyAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.ImplementationGroup <em>Implementation Group</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.ImplementationGroup
+ * @generated
+ */
+ public Adapter createImplementationGroupAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.Assembly <em>Assembly</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.Assembly
+ * @generated
+ */
+ public Adapter createAssemblyAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.Flatten <em>Flatten</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.Flatten
+ * @generated
+ */
+ public Adapter createFlattenAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.CompToOOmapping <em>Comp To OOmapping</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.CompToOOmapping
+ * @generated
+ */
+ public Adapter createCompToOOmappingAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.ProgLanguage <em>Prog Language</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.ProgLanguage
+ * @generated
+ */
+ public Adapter createProgLanguageAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.CodeGenOptions <em>Code Gen Options</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.CodeGenOptions
+ * @generated
+ */
+ public Adapter createCodeGenOptionsAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.InteractionComponent <em>Interaction Component</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.InteractionComponent
+ * @generated
+ */
+ public Adapter createInteractionComponentAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.Singleton <em>Singleton</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.Singleton
+ * @generated
+ */
+ public Adapter createSingletonAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.Connector <em>Connector</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.Connector
+ * @generated
+ */
+ public Adapter createConnectorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.ConfigurableElementInstance <em>Configurable Element Instance</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.ConfigurableElementInstance
+ * @generated
+ */
+ public Adapter createConfigurableElementInstanceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.UseInstanceConfigurator <em>Use Instance Configurator</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.UseInstanceConfigurator
+ * @generated
+ */
+ public Adapter createUseInstanceConfiguratorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.InstanceConfigurator <em>Instance Configurator</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.InstanceConfigurator
+ * @generated
+ */
+ public Adapter createInstanceConfiguratorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.RuleApplication <em>Rule Application</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.RuleApplication
+ * @generated
+ */
+ public Adapter createRuleApplicationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.ContainerRule <em>Container Rule</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.ContainerRule
+ * @generated
+ */
+ public Adapter createContainerRuleAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.ConfigOption <em>Config Option</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.ConfigOption
+ * @generated
+ */
+ public Adapter createConfigOptionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.TemplatePort <em>Template Port</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.TemplatePort
+ * @generated
+ */
+ public Adapter createTemplatePortAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.Port <em>Port</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.Port
+ * @generated
+ */
+ public Adapter createPortAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.PortKind <em>Port Kind</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.PortKind
+ * @generated
+ */
+ public Adapter createPortKindAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.DeploymentPlan <em>Deployment Plan</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.DeploymentPlan
+ * @generated
+ */
+ public Adapter createDeploymentPlanAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.DerivedElement <em>Derived Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.DerivedElement
+ * @generated
+ */
+ public Adapter createDerivedElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.CompImplTemplate <em>Comp Impl Template</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.CompImplTemplate
+ * @generated
+ */
+ public Adapter createCompImplTemplateAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.ImplementationProperties <em>Implementation Properties</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.ImplementationProperties
+ * @generated
+ */
+ public Adapter createImplementationPropertiesAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.OperatingSystem <em>Operating System</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.OperatingSystem
+ * @generated
+ */
+ public Adapter createOperatingSystemAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.TargetArchitecture <em>Target Architecture</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.TargetArchitecture
+ * @generated
+ */
+ public Adapter createTargetArchitectureAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.Configuration <em>Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.Configuration
+ * @generated
+ */
+ public Adapter createConfigurationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.InterceptionRule <em>Interception Rule</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.InterceptionRule
+ * @generated
+ */
+ public Adapter createInterceptionRuleAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.Target <em>Target</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.Target
+ * @generated
+ */
+ public Adapter createTargetAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.CompilerChain <em>Compiler Chain</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.CompilerChain
+ * @generated
+ */
+ public Adapter createCompilerChainAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.Fragment <em>Fragment</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.Fragment
+ * @generated
+ */
+ public Adapter createFragmentAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.CopyAttributeValue <em>Copy Attribute Value</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.CopyAttributeValue
+ * @generated
+ */
+ public Adapter createCopyAttributeValueAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.AutoIndex <em>Auto Index</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.AutoIndex
+ * @generated
+ */
+ public Adapter createAutoIndexAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.AutoIndexPerNode <em>Auto Index Per Node</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.AutoIndexPerNode
+ * @generated
+ */
+ public Adapter createAutoIndexPerNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.InitPrecedence <em>Init Precedence</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.InitPrecedence
+ * @generated
+ */
+ public Adapter createInitPrecedenceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.ConnectorConfiguration <em>Connector Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.ConnectorConfiguration
+ * @generated
+ */
+ public Adapter createConnectorConfigurationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.BindTemplate <em>Bind Template</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.BindTemplate
+ * @generated
+ */
+ public Adapter createBindTemplateAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} // FCMAdapterFactory
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMResourceFactoryImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMResourceFactoryImpl.java
new file mode 100644
index 00000000000..5a422f9f93f
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMResourceFactoryImpl.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.util;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.impl.ResourceFactoryImpl;
+import org.eclipse.emf.ecore.xmi.XMLResource;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Resource Factory</b> associated with the package.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.util.FCMResourceImpl
+ * @generated
+ */
+public class FCMResourceFactoryImpl extends ResourceFactoryImpl {
+ /**
+ * Creates an instance of the resource factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FCMResourceFactoryImpl() {
+ super();
+ }
+
+ /**
+ * Creates an instance of the resource.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Resource createResource(URI uri) {
+ Resource result = new FCMResourceImpl(uri);
+ return result;
+ }
+
+} // FCMResourceFactoryImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMResourceImpl.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMResourceImpl.java
new file mode 100644
index 00000000000..44226971798
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMResourceImpl.java
@@ -0,0 +1,37 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.util;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Resource </b> associated with the package.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.util.FCMResourceFactoryImpl
+ * @generated
+ */
+public class FCMResourceImpl extends XMLResourceImpl {
+ /**
+ * Creates an instance of the resource.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param uri the URI of the new resource.
+ * @generated
+ */
+ public FCMResourceImpl(URI uri) {
+ super(uri);
+ }
+
+} // FCMResourceImpl
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMSwitch.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMSwitch.java
new file mode 100644
index 00000000000..8850265f42a
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMSwitch.java
@@ -0,0 +1,938 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.util.Switch;
+import org.eclipse.papyrus.FCM.*;
+import org.eclipse.papyrus.FCM.Assembly;
+import org.eclipse.papyrus.FCM.AutoIndex;
+import org.eclipse.papyrus.FCM.AutoIndexPerNode;
+import org.eclipse.papyrus.FCM.BindTemplate;
+import org.eclipse.papyrus.FCM.BindingHelper;
+import org.eclipse.papyrus.FCM.CodeGenOptions;
+import org.eclipse.papyrus.FCM.CompImplTemplate;
+import org.eclipse.papyrus.FCM.CompToOOmapping;
+import org.eclipse.papyrus.FCM.CompilerChain;
+import org.eclipse.papyrus.FCM.ConfigOption;
+import org.eclipse.papyrus.FCM.ConfigurableElementInstance;
+import org.eclipse.papyrus.FCM.Configuration;
+import org.eclipse.papyrus.FCM.ConfigurationProperty;
+import org.eclipse.papyrus.FCM.Connector;
+import org.eclipse.papyrus.FCM.ConnectorConfiguration;
+import org.eclipse.papyrus.FCM.ContainerRule;
+import org.eclipse.papyrus.FCM.CopyAttributeValue;
+import org.eclipse.papyrus.FCM.DeploymentPlan;
+import org.eclipse.papyrus.FCM.DerivedElement;
+import org.eclipse.papyrus.FCM.FCMPackage;
+import org.eclipse.papyrus.FCM.Flatten;
+import org.eclipse.papyrus.FCM.Fragment;
+import org.eclipse.papyrus.FCM.ImplementationGroup;
+import org.eclipse.papyrus.FCM.ImplementationProperties;
+import org.eclipse.papyrus.FCM.InitPrecedence;
+import org.eclipse.papyrus.FCM.InstanceConfigurator;
+import org.eclipse.papyrus.FCM.InteractionComponent;
+import org.eclipse.papyrus.FCM.InterceptionRule;
+import org.eclipse.papyrus.FCM.OperatingSystem;
+import org.eclipse.papyrus.FCM.Port;
+import org.eclipse.papyrus.FCM.PortKind;
+import org.eclipse.papyrus.FCM.ProgLanguage;
+import org.eclipse.papyrus.FCM.RuleApplication;
+import org.eclipse.papyrus.FCM.Singleton;
+import org.eclipse.papyrus.FCM.Target;
+import org.eclipse.papyrus.FCM.TargetArchitecture;
+import org.eclipse.papyrus.FCM.Template;
+import org.eclipse.papyrus.FCM.TemplatePort;
+import org.eclipse.papyrus.FCM.UseInstanceConfigurator;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)} to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.FCMPackage
+ * @generated
+ */
+public class FCMSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static FCMPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FCMSwitch() {
+ if (modelPackage == null) {
+ modelPackage = FCMPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case FCMPackage.TEMPLATE: {
+ Template template = (Template)theEObject;
+ T result = caseTemplate(template);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.BINDING_HELPER: {
+ BindingHelper bindingHelper = (BindingHelper)theEObject;
+ T result = caseBindingHelper(bindingHelper);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.CONFIGURATION_PROPERTY: {
+ ConfigurationProperty configurationProperty = (ConfigurationProperty)theEObject;
+ T result = caseConfigurationProperty(configurationProperty);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.IMPLEMENTATION_GROUP: {
+ ImplementationGroup implementationGroup = (ImplementationGroup)theEObject;
+ T result = caseImplementationGroup(implementationGroup);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.ASSEMBLY: {
+ Assembly assembly = (Assembly)theEObject;
+ T result = caseAssembly(assembly);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.FLATTEN: {
+ Flatten flatten = (Flatten)theEObject;
+ T result = caseFlatten(flatten);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.COMP_TO_OOMAPPING: {
+ CompToOOmapping compToOOmapping = (CompToOOmapping)theEObject;
+ T result = caseCompToOOmapping(compToOOmapping);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.PROG_LANGUAGE: {
+ ProgLanguage progLanguage = (ProgLanguage)theEObject;
+ T result = caseProgLanguage(progLanguage);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.CODE_GEN_OPTIONS: {
+ CodeGenOptions codeGenOptions = (CodeGenOptions)theEObject;
+ T result = caseCodeGenOptions(codeGenOptions);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.INTERACTION_COMPONENT: {
+ InteractionComponent interactionComponent = (InteractionComponent)theEObject;
+ T result = caseInteractionComponent(interactionComponent);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.SINGLETON: {
+ Singleton singleton = (Singleton)theEObject;
+ T result = caseSingleton(singleton);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.CONNECTOR: {
+ Connector connector = (Connector)theEObject;
+ T result = caseConnector(connector);
+ if (result == null) result = caseConfigurableElementInstance(connector);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.CONFIGURABLE_ELEMENT_INSTANCE: {
+ ConfigurableElementInstance configurableElementInstance = (ConfigurableElementInstance)theEObject;
+ T result = caseConfigurableElementInstance(configurableElementInstance);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.USE_INSTANCE_CONFIGURATOR: {
+ UseInstanceConfigurator useInstanceConfigurator = (UseInstanceConfigurator)theEObject;
+ T result = caseUseInstanceConfigurator(useInstanceConfigurator);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.INSTANCE_CONFIGURATOR: {
+ InstanceConfigurator instanceConfigurator = (InstanceConfigurator)theEObject;
+ T result = caseInstanceConfigurator(instanceConfigurator);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.RULE_APPLICATION: {
+ RuleApplication ruleApplication = (RuleApplication)theEObject;
+ T result = caseRuleApplication(ruleApplication);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.CONTAINER_RULE: {
+ ContainerRule containerRule = (ContainerRule)theEObject;
+ T result = caseContainerRule(containerRule);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.CONFIG_OPTION: {
+ ConfigOption configOption = (ConfigOption)theEObject;
+ T result = caseConfigOption(configOption);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.TEMPLATE_PORT: {
+ TemplatePort templatePort = (TemplatePort)theEObject;
+ T result = caseTemplatePort(templatePort);
+ if (result == null) result = casePort(templatePort);
+ if (result == null) result = caseConfigurableElementInstance(templatePort);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.PORT: {
+ Port port = (Port)theEObject;
+ T result = casePort(port);
+ if (result == null) result = caseConfigurableElementInstance(port);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.PORT_KIND: {
+ PortKind portKind = (PortKind)theEObject;
+ T result = casePortKind(portKind);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.DEPLOYMENT_PLAN: {
+ DeploymentPlan deploymentPlan = (DeploymentPlan)theEObject;
+ T result = caseDeploymentPlan(deploymentPlan);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.DERIVED_ELEMENT: {
+ DerivedElement derivedElement = (DerivedElement)theEObject;
+ T result = caseDerivedElement(derivedElement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.COMP_IMPL_TEMPLATE: {
+ CompImplTemplate compImplTemplate = (CompImplTemplate)theEObject;
+ T result = caseCompImplTemplate(compImplTemplate);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.IMPLEMENTATION_PROPERTIES: {
+ ImplementationProperties implementationProperties = (ImplementationProperties)theEObject;
+ T result = caseImplementationProperties(implementationProperties);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.OPERATING_SYSTEM: {
+ OperatingSystem operatingSystem = (OperatingSystem)theEObject;
+ T result = caseOperatingSystem(operatingSystem);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.TARGET_ARCHITECTURE: {
+ TargetArchitecture targetArchitecture = (TargetArchitecture)theEObject;
+ T result = caseTargetArchitecture(targetArchitecture);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.CONFIGURATION: {
+ Configuration configuration = (Configuration)theEObject;
+ T result = caseConfiguration(configuration);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.INTERCEPTION_RULE: {
+ InterceptionRule interceptionRule = (InterceptionRule)theEObject;
+ T result = caseInterceptionRule(interceptionRule);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.TARGET: {
+ Target target = (Target)theEObject;
+ T result = caseTarget(target);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.COMPILER_CHAIN: {
+ CompilerChain compilerChain = (CompilerChain)theEObject;
+ T result = caseCompilerChain(compilerChain);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.FRAGMENT: {
+ Fragment fragment = (Fragment)theEObject;
+ T result = caseFragment(fragment);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.COPY_ATTRIBUTE_VALUE: {
+ CopyAttributeValue copyAttributeValue = (CopyAttributeValue)theEObject;
+ T result = caseCopyAttributeValue(copyAttributeValue);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.AUTO_INDEX: {
+ AutoIndex autoIndex = (AutoIndex)theEObject;
+ T result = caseAutoIndex(autoIndex);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.AUTO_INDEX_PER_NODE: {
+ AutoIndexPerNode autoIndexPerNode = (AutoIndexPerNode)theEObject;
+ T result = caseAutoIndexPerNode(autoIndexPerNode);
+ if (result == null) result = caseAutoIndex(autoIndexPerNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.INIT_PRECEDENCE: {
+ InitPrecedence initPrecedence = (InitPrecedence)theEObject;
+ T result = caseInitPrecedence(initPrecedence);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.CONNECTOR_CONFIGURATION: {
+ ConnectorConfiguration connectorConfiguration = (ConnectorConfiguration)theEObject;
+ T result = caseConnectorConfiguration(connectorConfiguration);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FCMPackage.BIND_TEMPLATE: {
+ BindTemplate bindTemplate = (BindTemplate)theEObject;
+ T result = caseBindTemplate(bindTemplate);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Template</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Template</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTemplate(Template object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Binding Helper</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Binding Helper</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseBindingHelper(BindingHelper object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Configuration Property</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Configuration Property</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConfigurationProperty(ConfigurationProperty object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Implementation Group</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Implementation Group</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseImplementationGroup(ImplementationGroup object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Assembly</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Assembly</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAssembly(Assembly object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Flatten</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Flatten</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFlatten(Flatten object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Comp To OOmapping</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Comp To OOmapping</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCompToOOmapping(CompToOOmapping object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Prog Language</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Prog Language</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseProgLanguage(ProgLanguage object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Code Gen Options</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Code Gen Options</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCodeGenOptions(CodeGenOptions object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Interaction Component</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Interaction Component</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseInteractionComponent(InteractionComponent object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Singleton</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Singleton</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSingleton(Singleton object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Connector</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Connector</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConnector(Connector object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Configurable Element Instance</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Configurable Element Instance</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConfigurableElementInstance(ConfigurableElementInstance object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Use Instance Configurator</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Use Instance Configurator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseUseInstanceConfigurator(UseInstanceConfigurator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Instance Configurator</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Instance Configurator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseInstanceConfigurator(InstanceConfigurator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Rule Application</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Rule Application</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseRuleApplication(RuleApplication object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Container Rule</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Container Rule</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseContainerRule(ContainerRule object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Config Option</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Config Option</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConfigOption(ConfigOption object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Template Port</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Template Port</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTemplatePort(TemplatePort object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Port</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Port</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePort(Port object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Port Kind</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Port Kind</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePortKind(PortKind object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Deployment Plan</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Deployment Plan</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDeploymentPlan(DeploymentPlan object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Derived Element</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Derived Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDerivedElement(DerivedElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Comp Impl Template</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Comp Impl Template</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCompImplTemplate(CompImplTemplate object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Implementation Properties</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Implementation Properties</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseImplementationProperties(ImplementationProperties object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Operating System</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Operating System</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseOperatingSystem(OperatingSystem object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Target Architecture</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Target Architecture</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTargetArchitecture(TargetArchitecture object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Configuration</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Configuration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConfiguration(Configuration object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Interception Rule</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Interception Rule</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseInterceptionRule(InterceptionRule object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Target</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Target</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTarget(Target object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Compiler Chain</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Compiler Chain</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCompilerChain(CompilerChain object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Fragment</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Fragment</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFragment(Fragment object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Copy Attribute Value</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Copy Attribute Value</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCopyAttributeValue(CopyAttributeValue object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Auto Index</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Auto Index</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAutoIndex(AutoIndex object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Auto Index Per Node</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Auto Index Per Node</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAutoIndexPerNode(AutoIndexPerNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Init Precedence</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Init Precedence</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseInitPrecedence(InitPrecedence object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Connector Configuration</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Connector Configuration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConnectorConfiguration(ConnectorConfiguration object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Bind Template</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Bind Template</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseBindTemplate(BindTemplate object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} // FCMSwitch
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMUtil.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMUtil.java
new file mode 100644
index 00000000000..70d93d48d1b
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMUtil.java
@@ -0,0 +1,240 @@
+package org.eclipse.papyrus.FCM.util;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.UniqueEList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.FCM.Connector;
+import org.eclipse.papyrus.FCM.ContainerRule;
+import org.eclipse.papyrus.FCM.InteractionComponent;
+import org.eclipse.papyrus.FCM.RuleApplication;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.CollaborationUse;
+import org.eclipse.uml2.uml.ConnectableElement;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Slot;
+import org.eclipse.uml2.uml.UMLFactory;
+import org.eclipse.uml2.uml.ValueSpecification;
+
+
+public class FCMUtil {
+
+ /**
+ * @param specification
+ * @param configPropertyName
+ * @return
+ */
+ public static EList<ValueSpecification> getConfigurationValue(InstanceSpecification specification, String configPropertyName) {
+ if (specification != null) {
+ for (Iterator<Slot> i = specification.getSlots().iterator(); i.hasNext();) {
+ Slot currentSlot = i.next();
+ if (currentSlot.getDefiningFeature() != null &&
+ currentSlot.getDefiningFeature().getName().equals(configPropertyName)) {
+ return currentSlot.getValues();
+ }
+ }
+ }
+ return null;
+ }
+
+ /**
+ * @param interfaces
+ * @param interfaceName
+ * @return
+ */
+ public static Interface findInterfaceByName(EList<Interface> interfaces, String interfaceName) {
+ for (Iterator<Interface> i = interfaces.iterator(); i.hasNext();) {
+ Interface currentInterface = i.next();
+ if (currentInterface.getName().equals(interfaceName)) {
+ return currentInterface;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * A data structure to be used for the specification of how the roles of the collaboration associated with
+ * the type of param "connector" are bound to actual elements of the composite containing param "connector".
+ * This data structure contains an hashmap<ConnectableElement, List<Element>>:
+ * - keys must be roles of a Collaboration
+ * - values must be list of elements playing this role in the context of a particular composite
+ *
+ * @author ac221913
+ *
+ */
+ public static final class RoleBindingTable {
+
+ private HashMap<org.eclipse.uml2.uml.ConnectableElement, List<org.eclipse.uml2.uml.NamedElement>> table;
+
+ public RoleBindingTable() {
+ this.table = new HashMap<org.eclipse.uml2.uml.ConnectableElement,
+ List<org.eclipse.uml2.uml.NamedElement>>();
+ }
+
+ public void addEntry(org.eclipse.uml2.uml.ConnectableElement role,
+ List<org.eclipse.uml2.uml.NamedElement> playedBy) {
+ table.put(role, playedBy);
+ }
+
+ public List<org.eclipse.uml2.uml.NamedElement> getEntry(org.eclipse.uml2.uml.ConnectableElement role) {
+ return table.get(role);
+ }
+
+ public Iterator<org.eclipse.uml2.uml.ConnectableElement> iterator() {
+ return table.keySet().iterator();
+ }
+
+ public HashMap<org.eclipse.uml2.uml.ConnectableElement, List<org.eclipse.uml2.uml.NamedElement>> getTable() {
+ return table;
+ }
+
+ public ConnectableElement getRoleKeyByName(String roleName) {
+ for (ConnectableElement role : table.keySet()) {
+ if (role.getName().equals(roleName)) {
+ return role;
+ }
+ }
+ return null;
+ }
+ }
+
+ /**
+ * Generate a connection pattern. Currently unused
+ *
+ * @param connectorComp
+ */
+ public static void generateDefaultConnectionPattern(InteractionComponent connectorComp) {
+ org.eclipse.uml2.uml.Collaboration connectionPattern =
+ UMLFactory.eINSTANCE.createCollaboration();
+
+ // ((org.eclipse.uml2.uml.Package)connectorComp.getBase_Class().getOwner()).getPackagedElements().add(connectionPattern) ;
+ connectorComp.getBase_Class().getNestedClassifiers().add(connectionPattern);
+ connectionPattern.setName(connectorComp.getBase_Class().getName() + "ConnectionPattern"); //$NON-NLS-1$
+
+ org.eclipse.uml2.uml.Property connectorRole =
+ connectionPattern.createOwnedAttribute("connector", connectorComp.getBase_Class(), 1, 1); //$NON-NLS-1$
+ for (Iterator<org.eclipse.uml2.uml.Port> i = connectorComp.getBase_Class().getOwnedPorts().iterator(); i.hasNext();) {
+ org.eclipse.uml2.uml.Port port = i.next();
+ org.eclipse.uml2.uml.Property role;
+ org.eclipse.uml2.uml.Connector connector;
+ role = connectionPattern.createOwnedAttribute(port.getName(), null);
+ connector = connectionPattern.createOwnedConnector(""); //$NON-NLS-1$
+ org.eclipse.uml2.uml.ConnectorEnd source, target;
+ source = connector.createEnd();
+ source.setRole(port);
+ source.setPartWithPort(connectorRole);
+ target = connector.createEnd();
+ target.setRole(role);
+ }
+
+ connectorComp.setConnectionPattern(connectionPattern);
+ }
+
+ /**
+ * TODO Move this method in ConnectorReification.java
+ *
+ * @author ac221913
+ *
+ */
+ public static void generateCollaborationUse(Connector connector) {
+
+ InteractionComponent connectorCompGen = connector.getIc();
+
+ if (!(connectorCompGen instanceof InteractionComponent)) {
+ return;
+ }
+ InteractionComponent connectorComp = connectorCompGen;
+ org.eclipse.uml2.uml.Collaboration connectionPattern =
+ connectorComp.getConnectionPattern();
+
+ if (connectionPattern == null) {
+ FCMUtil.generateDefaultConnectionPattern(connectorComp);
+ connectionPattern = connectorComp.getConnectionPattern();
+ }
+
+ Class composite = (Class) connector.getBase_Connector().getOwner();
+ CollaborationUse collaborationUse;
+ RoleBindingTable bindingTable = getConnectorRoleBindings(connector);
+
+ if (bindingTable == null) {
+ return;
+ }
+
+ collaborationUse = composite.createCollaborationUse("useOf" + connectionPattern.getName()); //$NON-NLS-1$
+ collaborationUse.setType(connectionPattern);
+ for (Iterator<org.eclipse.uml2.uml.ConnectableElement> i = bindingTable.iterator(); i.hasNext();) {
+ org.eclipse.uml2.uml.ConnectableElement role = i.next();
+ org.eclipse.uml2.uml.Dependency roleBinding;
+ roleBinding = collaborationUse.createRoleBinding(role.getName() + "RoleBinding"); //$NON-NLS-1$
+ roleBinding.getSuppliers().add(role);
+ for (Iterator<org.eclipse.uml2.uml.NamedElement> j = bindingTable.getEntry(role).iterator(); j.hasNext();) {
+ roleBinding.getClients().add(j.next());
+ }
+ }
+ }
+
+ /**
+ * Computes a RoleBindingTable for a given ConnectorComp
+ * Implies that a java class has been defined in FCMProfile.util for this ConnectorComp,
+ * and that it encapsulates corresponding role binding rule
+ *
+ * @author ac221913
+ *
+ */
+ public static RoleBindingTable getConnectorRoleBindings(Connector connector) {
+ InteractionComponent connectorCompGen = connector.getIc();
+
+ if (!(connectorCompGen instanceof InteractionComponent)) {
+ return null;
+ }
+ InteractionComponent type = connectorCompGen;
+
+ IExtensionRegistry reg = Platform.getExtensionRegistry();
+ IConfigurationElement[] configElements = reg.getConfigurationElementsFor("fcmEmbeddingRule"); //$NON-NLS-1$
+ for (IConfigurationElement configElement : configElements) {
+ try {
+ final String extConnName = configElement.getAttribute("connectorName"); //$NON-NLS-1$
+ if (extConnName.equals(type.getBase_Class().getName())) {
+ final Object obj = configElement.createExecutableExtension("class"); //$NON-NLS-1$
+ if (obj instanceof IEmbeddingRule) {
+ return ((IEmbeddingRule) obj).getRoleBindings(connector);
+ }
+ }
+ } catch (CoreException exception) {
+ exception.printStackTrace();
+ }
+ }
+ return null;
+ }
+
+ /*
+ * return a list of all rules based on containment packages of rules
+ * from owning elements
+ */
+ public static EList<ContainerRule> getAllContainerRules(Element element) {
+ EList<ContainerRule> list = new UniqueEList<ContainerRule>();
+ if (element != null) {
+ for (EObject eObj : element.getStereotypeApplications()) {
+ if (eObj instanceof RuleApplication) {
+ list.addAll(((RuleApplication) eObj).getContainerRule());
+ break;
+ }
+ }
+ element = element.getOwner();
+ if (element != null) {
+ list.addAll(getAllContainerRules(element));
+ }
+ }
+ return list;
+ }
+
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMXMLProcessor.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMXMLProcessor.java
new file mode 100644
index 00000000000..c529e27f558
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMXMLProcessor.java
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.util;
+
+import java.util.Map;
+
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.xmi.util.XMLProcessor;
+import org.eclipse.papyrus.FCM.FCMPackage;
+
+/**
+ * This class contains helper methods to serialize and deserialize XML documents
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class FCMXMLProcessor extends XMLProcessor {
+
+ /**
+ * Public constructor to instantiate the helper.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FCMXMLProcessor() {
+ super((EPackage.Registry.INSTANCE));
+ FCMPackage.eINSTANCE.eClass();
+ }
+
+ /**
+ * Register for "*" and "xml" file extensions the FCMResourceFactoryImpl factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected Map<String, Resource.Factory> getRegistrations() {
+ if (registrations == null) {
+ super.getRegistrations();
+ registrations.put(XML_EXTENSION, new FCMResourceFactoryImpl());
+ registrations.put(STAR_EXTENSION, new FCMResourceFactoryImpl());
+ }
+ return registrations;
+ }
+
+} // FCMXMLProcessor
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/IBindingHelper.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/IBindingHelper.java
new file mode 100644
index 00000000000..b512b1e5b11
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/IBindingHelper.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+
+package org.eclipse.papyrus.FCM.util;
+
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.TemplateBinding;
+
+/**
+ * BindingHelper interface. The interface is intentionally left empty. Implementations
+ * (such as Qompass designer) might check for subclasses.
+ *
+ */
+public interface IBindingHelper {
+ public void handleElement(TemplateBinding binding, Element object);
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/IEmbeddingRule.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/IEmbeddingRule.java
new file mode 100644
index 00000000000..8489c5377cc
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/IEmbeddingRule.java
@@ -0,0 +1,31 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+
+package org.eclipse.papyrus.FCM.util;
+
+import org.eclipse.papyrus.FCM.Connector;
+
+/**
+ * Interface used by extension point for embedding rules
+ */
+public interface IEmbeddingRule {
+ /**
+ * Return a role binding table for a given connector
+ *
+ * @param connector
+ * the connector
+ * @return role binding table
+ */
+ public FCMUtil.RoleBindingTable getRoleBindings(Connector connector);
+
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/IMappingRule.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/IMappingRule.java
new file mode 100644
index 00000000000..f5b37646df5
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/IMappingRule.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+
+package org.eclipse.papyrus.FCM.util;
+
+import org.eclipse.papyrus.FCM.Port;
+import org.eclipse.uml2.uml.Type;
+
+/**
+ * Interface used by extension point for evaluation of interface mappings
+ *
+ */
+public interface IMappingRule {
+ /**
+ * Calculate the derived portType
+ *
+ * @param p
+ * the port
+ * @param update
+ * if true, make model updates during calculation of derived interface
+ * @return the list of provided interfaces
+ */
+ public Type calcDerivedType(Port p, boolean update);
+
+ /**
+ * check whether a port needs to be updated (recalculation of its derived interfaces)
+ *
+ * @return true, if update is required, false otherwise
+ */
+ public boolean needsUpdate(Port p);
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/ITemplateMappingRule.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/ITemplateMappingRule.java
new file mode 100644
index 00000000000..2b9ef6487db
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/ITemplateMappingRule.java
@@ -0,0 +1,40 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+
+package org.eclipse.papyrus.FCM.util;
+
+import org.eclipse.papyrus.FCM.Port;
+import org.eclipse.papyrus.FCM.PortKind;
+
+
+/**
+ * A specific mapping rule for template ports, i.e. ports that facilitate the
+ * use of bound ports: i.e. instead of creating explicitly a binding for an extended
+ * port, the type of the port is used as actual and the kind points to an extended
+ * port
+ */
+public interface ITemplateMappingRule extends IMappingRule {
+
+ /**
+ * Update the created binding
+ */
+ public void updateBinding(Port port);
+
+ /**
+ * Return the bound type
+ *
+ * @param port
+ * @return
+ */
+ public PortKind getBoundType(Port port);
+}
diff --git a/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/MapUtil.java b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/MapUtil.java
new file mode 100644
index 00000000000..c6e4699fb8e
--- /dev/null
+++ b/extraplugins/qompass/designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/MapUtil.java
@@ -0,0 +1,530 @@
+/**
+ * Copyright (c) 2013 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+
+package org.eclipse.papyrus.FCM.util;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.FCM.Activator;
+import org.eclipse.papyrus.FCM.DerivedElement;
+import org.eclipse.papyrus.FCM.Port;
+import org.eclipse.papyrus.FCM.PortKind;
+import org.eclipse.papyrus.FCM.TemplatePort;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Namespace;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.PackageMerge;
+import org.eclipse.uml2.uml.PackageableElement;
+import org.eclipse.uml2.uml.Stereotype;
+import org.eclipse.uml2.uml.TemplateSignature;
+import org.eclipse.uml2.uml.TemplateableElement;
+import org.eclipse.uml2.uml.Type;
+
+
+/**
+ * This class is responsible for creating derived types associated with ports. The derived
+ * type is the class that will type the port and contain imported and used interfaces depending
+ * on the FCM type and kind.
+ * A particular question related to the derived types is into which package we can place them
+ * within the type hierarchy:
+ * (1) Of course, the package must be writable. That means, it must not belong to an imported library.
+ * (2) The source type must be clearly identifiable.
+ * (3) If a template get's instantiated, derived types within (if we place them there) might
+ * need (re-) instantiation. Imagine AMI_ interface that contains some of I's method. The creation of an AMI_I type within the template
+ *
+ * Therefore, a global "derived types" package is created within the model that owns the port. This
+ * package contains the full folder hierarchy of the original type and places the elements there.
+ * TODO: Align with package template instantiation => create type specific sub-folder, e.g. kind_type. Use package specific side-folders.
+ * Need specific solution for elements within template (placing into same template is finally not a good idea).
+ * Idea of package template (and the possibility to extend) was, that common elements are instantiated once. Thus, we will have interfaceBased_<intfName>/UseInterface/Use.cpp,
+ * not UseInterface_<intfName>/Use.cpp
+ * [Users choice to define template with additional package or not?]
+ */
+public class MapUtil {
+
+ private static final String DERIVED_TYPES = "derivedTypes"; //$NON-NLS-1$
+
+ // specific treatment of "root" model that is created by eC3M for deployment
+ // It avoids that copies of derived interfaces are created at different places
+ // [better alternative: avoid problem by using set of models instead of single large one]
+ // [other option?: no-update flag?]
+ public static final String rootModelName = "root"; //$NON-NLS-1$
+
+ public static final String MAPPING_RULE_ID = "fcmPortMappingRule"; //$NON-NLS-1$
+
+ public enum CREATE_KIND {
+ CLASS, INTERFACE, NONE
+ }
+
+ /**
+ * Get the template signature of a templateable element (typically a package). The class must
+ * (1) either own the signature
+ * (2) or merge with a package which owns the signature.
+ * Qompass enables the "extension" of existing packages via the package merge mechanism
+ *
+ * @param template
+ * The potential template
+ * @return the signature or null, if none can be found.
+ */
+ public static TemplateSignature getSignature(TemplateableElement template) {
+ for (Element element : template.getOwnedElements()) {
+ if (element instanceof TemplateSignature) {
+ return (TemplateSignature) element;
+ }
+ }
+
+ // enable multiple package templates sharing the same signature.
+ if (template instanceof Package) {
+ Package pkg = (Package) template;
+ for (PackageMerge pkgImport : pkg.getPackageMerges()) {
+ Package importedPkg = pkgImport.getMergedPackage();
+ return getSignature(importedPkg);
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Return the top-level owner of an element. This function returns the same value
+ * as getModel, if the top-level element is a model and not contained in a template
+ * While this is the case for models, model libraries have a top-level package (not
+ * a model). In this case, getTop returns the top-level package whereas getModel
+ * would return null.
+ * In case of a package owning a signature, it returns this package instead of the
+ * top level package. The reason is that the derived types might reference elements
+ * of the template signature which would be undefined outside.
+ *
+ * @param element
+ * An element of which we want to query
+ * @return the top-level owning package
+ */
+ public static Package getTop(Element element) {
+ while (element != null) {
+ Element owner = element.getOwner();
+ if (owner == null) {
+ if (element instanceof Package) {
+ return (Package) element;
+ }
+ } else if ((owner instanceof Package) && (owner.getOwner() == null) &&
+ ((Package) owner).getName().equals(rootModelName)) {
+ // Hack: assure that no new derived interface folder is created in "root" model
+ // that eC3M creates for deployment
+ if (element instanceof Package) {
+ // return (Package)element;
+ }
+ }
+ if ((element instanceof Package) && (getSignature((Package) element) != null)) {
+ return (Package) element;
+ }
+ element = owner;
+ }
+ return null;
+ }
+
+ /**
+ * Apply the derived element stereotype to a model element
+ *
+ * @param element
+ * @return
+ */
+ public static DerivedElement applyDE(Element element) {
+ Stereotype stereotype = element.getApplicableStereotype("FCM::DerivedElement"); //$NON-NLS-1$
+ if (stereotype != null) {
+ EObject alreadyApplied = element.getStereotypeApplication(stereotype);
+ if (alreadyApplied instanceof DerivedElement) {
+ return (DerivedElement) alreadyApplied;
+ }
+ alreadyApplied = element.applyStereotype(stereotype);
+ if (alreadyApplied instanceof DerivedElement) {
+ return (DerivedElement) alreadyApplied;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Get or create a package within another package (often the root of a model), i.e. return
+ * a package with the passed name, if it exists or create a new one of this name
+ *
+ * @param root
+ * a package potentially owning a certain element
+ * @param name
+ * the name of a package that should be be returned.
+ * @return a package
+ */
+ public static Package getAndCreate(Package root, String name, boolean createOnDemand) {
+ NamedElement pkg = root.getOwnedMember(name);
+ if ((pkg == null) && createOnDemand) {
+ pkg = root.createNestedPackage(name);
+ }
+ return (Package) pkg;
+ }
+
+ /**
+ * Get or create a derived interface for a port using a fixed prefix
+ * type name
+ *
+ * @param port
+ * The port
+ * @param prefix
+ * prefix string
+ * @param type
+ * type name
+ * @return the derived interface or null (if it cannot be created)
+ */
+ public static Class getDerivedClass(Port port, String prefix) {
+ Type type = getOrCreateDerivedTypeIntern(port, prefix, port.getType(), CREATE_KIND.NONE);
+ return type instanceof Class ? (Class) type : null;
+ }
+
+ /**
+ * Get or create a derived interface for a port using a fixed prefix
+ * type name
+ *
+ * @param port
+ * The port
+ * @param prefix
+ * prefix string
+ * @param type
+ * type name
+ * @return the derived interface or null (if it cannot be created)
+ */
+ public static Class getDerivedClass(Port port, String prefix, boolean update) {
+ return update ? getOrCreateDerivedClass(port, prefix) : getDerivedClass(port, prefix);
+ }
+
+ /**
+ * Get a derived interface of a port. The interface is searched within the derived types
+ * folder based on the passed prefix
+ *
+ * @param port
+ * The port
+ * @param prefix
+ * prefix string
+ * @param type
+ * FCM port type
+ * @return the derived interface or null (if it cannot be created)
+ */
+ public static Interface getDerivedInterface(Port port, String prefix) {
+ Type type = getOrCreateDerivedTypeIntern(port, prefix, port.getType(), CREATE_KIND.NONE);
+ return type instanceof Interface ? (Interface) type : null;
+ }
+
+ /**
+ * Get or create a derived interface for a port using a fixed prefix
+ * type name
+ *
+ * @param port
+ * The port
+ * @param prefix
+ * prefix string
+ * @param type
+ * type name
+ * @return the derived interface or null (if it cannot be created)
+ */
+ public static Interface getDerivedInterface(Port port, String prefix, boolean update) {
+ return update ? getOrCreateDerivedInterface(port, prefix) : getDerivedInterface(port, prefix);
+ }
+
+ /**
+ * Get or create a derived interface for a port using a fixed prefix
+ * type name
+ *
+ * @param port
+ * The port
+ * @param prefix
+ * prefix string
+ * @param type
+ * type name
+ * @param createKind
+ * if non NONE, create either an interfaces or a class, if it does not exist yet
+ * @return the derived interface or null (if it cannot be created)
+ */
+ public static Class getOrCreateDerivedClass(Port port, String prefix) {
+ Type type = getOrCreateDerivedTypeIntern(port, prefix, port.getType(), CREATE_KIND.CLASS);
+ return type instanceof Class ? (Class) type : null;
+ }
+
+ /**
+ * Get or create a derived interface for a port using a fixed prefix
+ * type name
+ *
+ * @param port
+ * The port
+ * @param prefix
+ * prefix string
+ * @param type
+ * type name
+ * @return the derived interface or null (if it cannot be created)
+ */
+ public static Interface getOrCreateDerivedInterface(Port port, String prefix) {
+ Type type = getOrCreateDerivedTypeIntern(port, prefix, port.getType(), CREATE_KIND.INTERFACE);
+ return type instanceof Interface ? (Interface) type : null;
+ }
+
+
+
+ /**
+ * This function returns a Package reference that corresponds to a qualified name.
+ * Packages are created, if not existing yet - the function is thus a bit similar to
+ * the unix "mkdir -p" command. Note that the main model within the list of name-spaces is
+ * ignored, in order to avoid that a sub-package within a model starts with the name
+ * of the model.
+ *
+ * @param model
+ * a model
+ * @param list
+ * a list of namespace elements (as can be obtained via allNamespaces),
+ * the top-level element is the last within the list.
+ * @param skipTop
+ * if true, skip top level namespace element
+ * @return
+ */
+ public static Package getAndCreate(Package root, EList<Namespace> list, boolean createOnDemand) {
+ boolean first = true;
+ for (int i = list.size() - 1; i >= 0; i--) {
+ Namespace ns = list.get(i);
+
+ if (first) {
+ first = false;
+ // Hack: if rootModel is used, skip top
+ // (avoid that new derived interface with "root" prefix is created)
+ if (ns.getName().equals(rootModelName)) {
+ continue;
+ }
+ }
+ NamedElement pkg = root.getOwnedMember(ns.getName());
+ if ((pkg == null) && createOnDemand) {
+ // package does not exist => create it.
+ pkg = root.createNestedPackage(ns.getName());
+ // copy stereotype to create package
+ }
+ if (!(pkg instanceof Package)) {
+ break;
+ }
+ root = (Package) pkg;
+ }
+ return root;
+ }
+
+ /**
+ * Get or create a derived interface for a port using the name given by concatenation of prefix and
+ * type name
+ *
+ * @param port
+ * The port for which to create a derived interface. Only used to determine the place where the
+ * derived interface is placed
+ * @param prefix
+ * prefix string
+ * @param type
+ * type name
+ * @param createKind
+ * if non NONE, create either an interfaces or a class, if it does not exist yet
+ * @return
+ */
+ private static Type getOrCreateDerivedTypeIntern(Port port, String prefix, Type type, CREATE_KIND createKind) {
+ String typeName = prefix + type.getName();
+
+ // create derived element in "derivedInterface" package within the model owning
+ // the port (which must be an FCM model, since the port carries the FCM stereotype)
+ Package baseModelOfPort = getTop(port.getBase_Port());
+ // handle specific case of type within template. Place derived type into same template.
+ Package derivedTypes = getAndCreate(baseModelOfPort, DERIVED_TYPES, createKind != CREATE_KIND.NONE);
+ if (derivedTypes != null) {
+ Package owner = getAndCreate(derivedTypes, type.allNamespaces(), createKind != CREATE_KIND.NONE);
+ Interface intf = null;
+
+ PackageableElement pe = owner.getPackagedElement(typeName);
+ if (pe instanceof Type) {
+ // type already exists
+ return (Type) pe;
+ } else if (createKind == CREATE_KIND.INTERFACE) {
+ // System.out.println ("Derived port types: create new interface " + typeName + " in package " + owner.getQualifiedName ());
+ intf = owner.createOwnedInterface(typeName);
+
+ // System.out.println ("Derived port types: Apply derived stereotype annotation to interface: " + intf.getQualifiedName());
+ DerivedElement de = applyDE(intf);
+ if (de != null) {
+ // de may be null, if FCM is not properly applied
+ de.setSource(type);
+ }
+ return intf;
+ } else if (createKind == CREATE_KIND.CLASS) {
+ // System.out.println ("Derived port types: create new interface " + typeName + " in package " + owner.getQualifiedName ());
+ Class newType = owner.createOwnedClass(typeName, false);
+
+ // System.out.println ("Derived port types: Apply derived stereotype annotation to interface: " + intf.getQualifiedName());
+ DerivedElement de = applyDE(newType);
+ if (de != null) {
+ // de may be null, if FCM is not properly applied
+ de.setSource(type);
+ }
+ return newType;
+ }
+ }
+
+ // instead of returning null, return a dummy interface that indicates the user that an element needs updating.
+ PackageableElement portKinds = baseModelOfPort.getImportedMember("PortKinds"); //$NON-NLS-1$
+ if (portKinds instanceof Package) {
+ PackageableElement pe = ((Package) portKinds).getPackagedElement("Please update derived elements"); //$NON-NLS-1$
+ if (pe instanceof Interface) {
+ // dummy interface exists
+ return (Interface) pe;
+ }
+ }
+ return null;
+ }
+
+ public static void addRealization(Class portType, Interface providedInterface) {
+ if (!portType.getImplementedInterfaces().contains(providedInterface)) {
+ portType.createInterfaceRealization(null, providedInterface);
+ }
+ }
+
+ public static void addUsage(Class portType, Interface usedInterface) {
+ if (!portType.getUsedInterfaces().contains(usedInterface)) {
+ portType.createUsage(usedInterface);
+ }
+ }
+
+ /**
+ * Calculate derived required interface in function of port type and kind
+ *
+ * @param port
+ * the port, for which the calculation should be done
+ * @return
+ */
+ public static Type getDerivedType(final Port port) {
+ if (port.getBase_Port() == null) {
+ // should not happen, but can occur in case of corrupted XMI files
+ return null;
+ }
+ PortKind portKind = port.getKind();
+ if (portKind != null) {
+ String ruleName = portKind.isExtendedPort() ? "ExtendedPort" : portKind.getBase_Class().getName(); //$NON-NLS-1$
+ final IMappingRule mappingRule = getMappingRule(ruleName);
+ if (mappingRule != null) {
+ return mappingRule.calcDerivedType(port, false);
+ }
+ }
+ return null;
+ }
+
+
+ /**
+ * Obtain the mapping rule for a port when the name of the portKind is given
+ *
+ * @param portKindName
+ * the name of the port-kind
+ *
+ * @return the mapping rule or null, if no rule could be found
+ */
+ public static IMappingRule getMappingRule(String portKindName) {
+ IExtensionRegistry reg = Platform.getExtensionRegistry();
+ IConfigurationElement[] configElements = reg.getConfigurationElementsFor(Activator.PLUGIN_ID + "." + MAPPING_RULE_ID); //$NON-NLS-1$
+ for (IConfigurationElement configElement : configElements) {
+ try {
+ final String extPortKindName = configElement.getAttribute("portKindName"); //$NON-NLS-1$
+ if (extPortKindName.equals(portKindName)) {
+ final Object obj = configElement.createExecutableExtension("class"); //$NON-NLS-1$
+ if (obj instanceof IMappingRule) {
+ return (IMappingRule) obj;
+ }
+ }
+ } catch (CoreException exception) {
+ exception.printStackTrace();
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Get the mapping rule for a port
+ *
+ * @param port
+ * the FCM port
+ * @return the mapping rule or null, if no rule could be found
+ */
+ public static IMappingRule getMappingRule(final Port port) {
+ if (port.getBase_Port() == null) {
+ // should not happen, but can occur in case of corrupted XMI files
+ return null;
+ }
+ PortKind portKind = port.getKind();
+ if (portKind == null) {
+ return null;
+ }
+ if (portKind.getBase_Class() != null) {
+ String ruleName = portKind.isExtendedPort() ? "ExtendedPort" : portKind.getBase_Class().getName(); //$NON-NLS-1$
+ if (port instanceof TemplatePort) {
+ ruleName = "TemplatePort"; //$NON-NLS-1$
+ }
+ return getMappingRule(ruleName);
+ }
+ return null;
+ }
+
+ public static PortKind getBoundType(final Port port) {
+ if (port.getBase_Port() == null) {
+ // should not happen, but can occur in case of corrupted XMI files
+ return null;
+ } else {
+ String ruleName = "TemplatePort"; //$NON-NLS-1$
+ final IMappingRule mappingRule = getMappingRule(ruleName);
+ if (mappingRule instanceof ITemplateMappingRule) {
+ return ((ITemplateMappingRule) mappingRule).getBoundType(port);
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Update the derived interfaces of a port this operation needs to be
+ * called in the context of an update command (transaction).
+ *
+ * @param port
+ */
+ public static void update(final Port port) {
+ final IMappingRule mappingRule = getMappingRule(port);
+
+ if (mappingRule != null) {
+ Type type = mappingRule.calcDerivedType(port, true);
+ port.getBase_Port().setType(type);
+ if (mappingRule instanceof ITemplateMappingRule) {
+ ((ITemplateMappingRule) mappingRule).updateBinding(port);
+ }
+ }
+ }
+
+ /**
+ * Check whether a port needs to be updated, since its derived interfaces
+ * are either not existing or out of date.
+ *
+ * @param port
+ * @return
+ */
+ public static boolean needsUpdate(final Port port) {
+ final IMappingRule mappingRule = getMappingRule(port);
+ if (mappingRule != null) {
+ return mappingRule.needsUpdate(port);
+ }
+ return false;
+ }
+}

Back to the top