Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM')
-rw-r--r--extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/ClientServerFeature.java94
-rw-r--r--extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/ClientServerKind.java246
-rw-r--r--extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/ClientServerPort.java189
-rw-r--r--extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/ClientServerSpecification.java63
-rw-r--r--extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/DataEvent.java91
-rw-r--r--extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/DataPool.java149
-rw-r--r--extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/DataPoolOrderingKind.java246
-rw-r--r--extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/FlowDirectionKind.java246
-rw-r--r--extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/FlowPort.java121
-rw-r--r--extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/FlowProperty.java94
-rw-r--r--extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/FlowSpecification.java63
-rw-r--r--extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/GCMFactory.java143
-rw-r--r--extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/GCMInvocatingBehavior.java119
-rw-r--r--extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/GCMInvocationAction.java91
-rw-r--r--extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/GCMPackage.java1456
-rw-r--r--extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/GCMTrigger.java91
-rw-r--r--extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/PortSpecificationKind.java246
-rw-r--r--extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/ClientServerFeatureImpl.java238
-rw-r--r--extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/ClientServerPortImpl.java512
-rw-r--r--extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/ClientServerSpecificationImpl.java169
-rw-r--r--extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/DataEventImpl.java230
-rw-r--r--extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/DataPoolImpl.java359
-rw-r--r--extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/FlowPortImpl.java343
-rw-r--r--extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/FlowPropertyImpl.java238
-rw-r--r--extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/FlowSpecificationImpl.java169
-rw-r--r--extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/GCMFactoryImpl.java339
-rw-r--r--extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/GCMInvocatingBehaviorImpl.java281
-rw-r--r--extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/GCMInvocationActionImpl.java230
-rw-r--r--extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/GCMPackageImpl.java1054
-rw-r--r--extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/GCMTriggerImpl.java230
-rw-r--r--extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/util/GCMAdapterFactory.java311
-rw-r--r--extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/util/GCMResourceFactoryImpl.java63
-rw-r--r--extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/util/GCMResourceImpl.java39
-rw-r--r--extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/util/GCMSwitch.java347
-rw-r--r--extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/util/GCMXMLProcessor.java61
35 files changed, 8961 insertions, 0 deletions
diff --git a/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/ClientServerFeature.java b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/ClientServerFeature.java
new file mode 100644
index 00000000000..235b74043ac
--- /dev/null
+++ b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/ClientServerFeature.java
@@ -0,0 +1,94 @@
+/*****************************************************************************
+ * Copyright (c) 2010 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:
+ * Chokri MRAIDHA (CEA LIST) chokri.mraidha@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.BehavioralFeature;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Client Server Feature</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerFeature#getKind <em>Kind</em>}</li>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerFeature#getBase_BehavioralFeature <em>Base Behavioral Feature</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getClientServerFeature()
+ * @model
+ * @generated
+ */
+public interface ClientServerFeature extends EObject {
+ /**
+ * Returns the value of the '<em><b>Kind</b></em>' attribute.
+ * The default value is <code>"proreq"</code>.
+ * The literals are from the enumeration {@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerKind}.
+ * <!-- 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.MARTE.MARTE_DesignModel.GCM.ClientServerKind
+ * @see #setKind(ClientServerKind)
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getClientServerFeature_Kind()
+ * @model default="proreq" unique="false" required="true" ordered="false"
+ * @generated
+ */
+ ClientServerKind getKind();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerFeature#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.MARTE.MARTE_DesignModel.GCM.ClientServerKind
+ * @see #getKind()
+ * @generated
+ */
+ void setKind(ClientServerKind value);
+
+ /**
+ * Returns the value of the '<em><b>Base Behavioral Feature</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Behavioral Feature</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 Behavioral Feature</em>' reference.
+ * @see #setBase_BehavioralFeature(BehavioralFeature)
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getClientServerFeature_Base_BehavioralFeature()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ BehavioralFeature getBase_BehavioralFeature();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerFeature#getBase_BehavioralFeature <em>Base Behavioral Feature</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Behavioral Feature</em>' reference.
+ * @see #getBase_BehavioralFeature()
+ * @generated
+ */
+ void setBase_BehavioralFeature(BehavioralFeature value);
+
+} // ClientServerFeature
diff --git a/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/ClientServerKind.java b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/ClientServerKind.java
new file mode 100644
index 00000000000..b6f797ce2ea
--- /dev/null
+++ b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/ClientServerKind.java
@@ -0,0 +1,246 @@
+/*****************************************************************************
+ * Copyright (c) 2010 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:
+ * Chokri MRAIDHA (CEA LIST) chokri.mraidha@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM;
+
+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>Client Server Kind</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getClientServerKind()
+ * @model
+ * @generated
+ */
+public enum ClientServerKind implements Enumerator {
+ /**
+ * The '<em><b>Required</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #REQUIRED_VALUE
+ * @generated
+ * @ordered
+ */
+ REQUIRED(0, "required", "required"),
+
+ /**
+ * The '<em><b>Provided</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PROVIDED_VALUE
+ * @generated
+ * @ordered
+ */
+ PROVIDED(1, "provided", "provided"),
+
+ /**
+ * The '<em><b>Proreq</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PROREQ_VALUE
+ * @generated
+ * @ordered
+ */
+ PROREQ(2, "proreq", "proreq");
+
+ /**
+ * The '<em><b>Required</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Required</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #REQUIRED
+ * @model name="required"
+ * @generated
+ * @ordered
+ */
+ public static final int REQUIRED_VALUE = 0;
+
+ /**
+ * The '<em><b>Provided</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Provided</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #PROVIDED
+ * @model name="provided"
+ * @generated
+ * @ordered
+ */
+ public static final int PROVIDED_VALUE = 1;
+
+ /**
+ * The '<em><b>Proreq</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Proreq</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #PROREQ
+ * @model name="proreq"
+ * @generated
+ * @ordered
+ */
+ public static final int PROREQ_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>Client Server Kind</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final ClientServerKind[] VALUES_ARRAY =
+ new ClientServerKind[] {
+ REQUIRED,
+ PROVIDED,
+ PROREQ,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Client Server Kind</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<ClientServerKind> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Client Server Kind</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ClientServerKind get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ClientServerKind result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Client Server Kind</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ClientServerKind getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ClientServerKind result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Client Server Kind</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ClientServerKind get(int value) {
+ switch (value) {
+ case REQUIRED_VALUE: return REQUIRED;
+ case PROVIDED_VALUE: return PROVIDED;
+ case PROREQ_VALUE: return PROREQ;
+ }
+ 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 ClientServerKind(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ 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;
+ }
+
+} //ClientServerKind
diff --git a/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/ClientServerPort.java b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/ClientServerPort.java
new file mode 100644
index 00000000000..96f941de7e9
--- /dev/null
+++ b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/ClientServerPort.java
@@ -0,0 +1,189 @@
+/*****************************************************************************
+ * Copyright (c) 2010 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:
+ * Chokri MRAIDHA (CEA LIST) chokri.mraidha@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Port;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Client Server Port</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerPort#getBase_Port <em>Base Port</em>}</li>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerPort#getSpecificationKind <em>Specification Kind</em>}</li>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerPort#getKind <em>Kind</em>}</li>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerPort#getProvInterface <em>Prov Interface</em>}</li>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerPort#getReqInterface <em>Req Interface</em>}</li>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerPort#getFeaturesSpec <em>Features Spec</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getClientServerPort()
+ * @model
+ * @generated
+ */
+public interface ClientServerPort extends EObject {
+ /**
+ * 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(Port)
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getClientServerPort_Base_Port()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Port getBase_Port();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerPort#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(Port value);
+
+ /**
+ * Returns the value of the '<em><b>Specification Kind</b></em>' attribute.
+ * The default value is <code>"interfaceBased"</code>.
+ * The literals are from the enumeration {@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.PortSpecificationKind}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Specification 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>Specification Kind</em>' attribute.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.PortSpecificationKind
+ * @see #setSpecificationKind(PortSpecificationKind)
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getClientServerPort_SpecificationKind()
+ * @model default="interfaceBased" unique="false" required="true" transient="true" volatile="true" derived="true" ordered="false"
+ * @generated
+ */
+ PortSpecificationKind getSpecificationKind();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerPort#getSpecificationKind <em>Specification Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Specification Kind</em>' attribute.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.PortSpecificationKind
+ * @see #getSpecificationKind()
+ * @generated
+ */
+ void setSpecificationKind(PortSpecificationKind value);
+
+ /**
+ * Returns the value of the '<em><b>Kind</b></em>' attribute.
+ * The default value is <code>"proreq"</code>.
+ * The literals are from the enumeration {@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerKind}.
+ * <!-- 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.MARTE.MARTE_DesignModel.GCM.ClientServerKind
+ * @see #setKind(ClientServerKind)
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getClientServerPort_Kind()
+ * @model default="proreq" unique="false" required="true" ordered="false"
+ * @generated
+ */
+ ClientServerKind getKind();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerPort#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.MARTE.MARTE_DesignModel.GCM.ClientServerKind
+ * @see #getKind()
+ * @generated
+ */
+ void setKind(ClientServerKind value);
+
+ /**
+ * Returns the value of the '<em><b>Prov Interface</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.uml2.uml.Interface}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Prov Interface</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>Prov Interface</em>' reference list.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getClientServerPort_ProvInterface()
+ * @model ordered="false"
+ * @generated
+ */
+ EList<Interface> getProvInterface();
+
+ /**
+ * Returns the value of the '<em><b>Req Interface</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.uml2.uml.Interface}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Req Interface</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>Req Interface</em>' reference list.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getClientServerPort_ReqInterface()
+ * @model ordered="false"
+ * @generated
+ */
+ EList<Interface> getReqInterface();
+
+ /**
+ * Returns the value of the '<em><b>Features Spec</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Features Spec</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Features Spec</em>' reference.
+ * @see #setFeaturesSpec(ClientServerSpecification)
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getClientServerPort_FeaturesSpec()
+ * @model ordered="false"
+ * @generated
+ */
+ ClientServerSpecification getFeaturesSpec();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerPort#getFeaturesSpec <em>Features Spec</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Features Spec</em>' reference.
+ * @see #getFeaturesSpec()
+ * @generated
+ */
+ void setFeaturesSpec(ClientServerSpecification value);
+
+} // ClientServerPort
diff --git a/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/ClientServerSpecification.java b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/ClientServerSpecification.java
new file mode 100644
index 00000000000..a57befda459
--- /dev/null
+++ b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/ClientServerSpecification.java
@@ -0,0 +1,63 @@
+/*****************************************************************************
+ * Copyright (c) 2010 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:
+ * Chokri MRAIDHA (CEA LIST) chokri.mraidha@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.Interface;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Client Server Specification</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerSpecification#getBase_Interface <em>Base Interface</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getClientServerSpecification()
+ * @model
+ * @generated
+ */
+public interface ClientServerSpecification extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Interface</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base 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>Base Interface</em>' reference.
+ * @see #setBase_Interface(Interface)
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getClientServerSpecification_Base_Interface()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Interface getBase_Interface();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerSpecification#getBase_Interface <em>Base Interface</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Interface</em>' reference.
+ * @see #getBase_Interface()
+ * @generated
+ */
+ void setBase_Interface(Interface value);
+
+} // ClientServerSpecification
diff --git a/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/DataEvent.java b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/DataEvent.java
new file mode 100644
index 00000000000..9298b9ee99f
--- /dev/null
+++ b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/DataEvent.java
@@ -0,0 +1,91 @@
+/*****************************************************************************
+ * Copyright (c) 2010 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:
+ * Chokri MRAIDHA (CEA LIST) chokri.mraidha@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.AnyReceiveEvent;
+import org.eclipse.uml2.uml.Classifier;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Data Event</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataEvent#getBase_AnyReceiveEvent <em>Base Any Receive Event</em>}</li>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataEvent#getClassifier <em>Classifier</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getDataEvent()
+ * @model
+ * @generated
+ */
+public interface DataEvent extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Any Receive Event</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Any Receive Event</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 Any Receive Event</em>' reference.
+ * @see #setBase_AnyReceiveEvent(AnyReceiveEvent)
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getDataEvent_Base_AnyReceiveEvent()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ AnyReceiveEvent getBase_AnyReceiveEvent();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataEvent#getBase_AnyReceiveEvent <em>Base Any Receive Event</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Any Receive Event</em>' reference.
+ * @see #getBase_AnyReceiveEvent()
+ * @generated
+ */
+ void setBase_AnyReceiveEvent(AnyReceiveEvent value);
+
+ /**
+ * Returns the value of the '<em><b>Classifier</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Classifier</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Classifier</em>' reference.
+ * @see #setClassifier(Classifier)
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getDataEvent_Classifier()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Classifier getClassifier();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataEvent#getClassifier <em>Classifier</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Classifier</em>' reference.
+ * @see #getClassifier()
+ * @generated
+ */
+ void setClassifier(Classifier value);
+
+} // DataEvent
diff --git a/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/DataPool.java b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/DataPool.java
new file mode 100644
index 00000000000..51e7b9b3c7a
--- /dev/null
+++ b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/DataPool.java
@@ -0,0 +1,149 @@
+/*****************************************************************************
+ * Copyright (c) 2010 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:
+ * Chokri MRAIDHA (CEA LIST) chokri.mraidha@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.Behavior;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Data Pool</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataPool#getOrdering <em>Ordering</em>}</li>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataPool#getBase_Property <em>Base Property</em>}</li>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataPool#getInsertion <em>Insertion</em>}</li>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataPool#getSelection <em>Selection</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getDataPool()
+ * @model
+ * @generated
+ */
+public interface DataPool extends EObject {
+ /**
+ * Returns the value of the '<em><b>Ordering</b></em>' attribute.
+ * The default value is <code>"FIFO"</code>.
+ * The literals are from the enumeration {@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataPoolOrderingKind}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Ordering</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Ordering</em>' attribute.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataPoolOrderingKind
+ * @see #setOrdering(DataPoolOrderingKind)
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getDataPool_Ordering()
+ * @model default="FIFO" unique="false" required="true" ordered="false"
+ * @generated
+ */
+ DataPoolOrderingKind getOrdering();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataPool#getOrdering <em>Ordering</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Ordering</em>' attribute.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataPoolOrderingKind
+ * @see #getOrdering()
+ * @generated
+ */
+ void setOrdering(DataPoolOrderingKind 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.MARTE.MARTE_DesignModel.GCM.GCMPackage#getDataPool_Base_Property()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Property getBase_Property();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataPool#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>Insertion</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Insertion</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Insertion</em>' reference.
+ * @see #setInsertion(Behavior)
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getDataPool_Insertion()
+ * @model ordered="false"
+ * @generated
+ */
+ Behavior getInsertion();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataPool#getInsertion <em>Insertion</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Insertion</em>' reference.
+ * @see #getInsertion()
+ * @generated
+ */
+ void setInsertion(Behavior value);
+
+ /**
+ * Returns the value of the '<em><b>Selection</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Selection</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Selection</em>' reference.
+ * @see #setSelection(Behavior)
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getDataPool_Selection()
+ * @model ordered="false"
+ * @generated
+ */
+ Behavior getSelection();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataPool#getSelection <em>Selection</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Selection</em>' reference.
+ * @see #getSelection()
+ * @generated
+ */
+ void setSelection(Behavior value);
+
+} // DataPool
diff --git a/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/DataPoolOrderingKind.java b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/DataPoolOrderingKind.java
new file mode 100644
index 00000000000..23319ce19c5
--- /dev/null
+++ b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/DataPoolOrderingKind.java
@@ -0,0 +1,246 @@
+/*****************************************************************************
+ * Copyright (c) 2010 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:
+ * Chokri MRAIDHA (CEA LIST) chokri.mraidha@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM;
+
+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>Data Pool Ordering Kind</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getDataPoolOrderingKind()
+ * @model
+ * @generated
+ */
+public enum DataPoolOrderingKind implements Enumerator {
+ /**
+ * The '<em><b>FIFO</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FIFO_VALUE
+ * @generated
+ * @ordered
+ */
+ FIFO(0, "FIFO", "FIFO"),
+
+ /**
+ * The '<em><b>LIFO</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LIFO_VALUE
+ * @generated
+ * @ordered
+ */
+ LIFO(1, "LIFO", "LIFO"),
+
+ /**
+ * The '<em><b>User Defined</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #USER_DEFINED_VALUE
+ * @generated
+ * @ordered
+ */
+ USER_DEFINED(2, "UserDefined", "UserDefined");
+
+ /**
+ * The '<em><b>FIFO</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>FIFO</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FIFO
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int FIFO_VALUE = 0;
+
+ /**
+ * The '<em><b>LIFO</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LIFO</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LIFO
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LIFO_VALUE = 1;
+
+ /**
+ * The '<em><b>User Defined</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>User Defined</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #USER_DEFINED
+ * @model name="UserDefined"
+ * @generated
+ * @ordered
+ */
+ public static final int USER_DEFINED_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>Data Pool Ordering Kind</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final DataPoolOrderingKind[] VALUES_ARRAY =
+ new DataPoolOrderingKind[] {
+ FIFO,
+ LIFO,
+ USER_DEFINED,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Data Pool Ordering Kind</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<DataPoolOrderingKind> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Data Pool Ordering Kind</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DataPoolOrderingKind get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ DataPoolOrderingKind result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Data Pool Ordering Kind</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DataPoolOrderingKind getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ DataPoolOrderingKind result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Data Pool Ordering Kind</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DataPoolOrderingKind get(int value) {
+ switch (value) {
+ case FIFO_VALUE: return FIFO;
+ case LIFO_VALUE: return LIFO;
+ case USER_DEFINED_VALUE: return USER_DEFINED;
+ }
+ 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 DataPoolOrderingKind(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ 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;
+ }
+
+} //DataPoolOrderingKind
diff --git a/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/FlowDirectionKind.java b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/FlowDirectionKind.java
new file mode 100644
index 00000000000..b54b3e314bd
--- /dev/null
+++ b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/FlowDirectionKind.java
@@ -0,0 +1,246 @@
+/*****************************************************************************
+ * Copyright (c) 2010 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:
+ * Chokri MRAIDHA (CEA LIST) chokri.mraidha@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM;
+
+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>Flow Direction Kind</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getFlowDirectionKind()
+ * @model
+ * @generated
+ */
+public enum FlowDirectionKind implements Enumerator {
+ /**
+ * The '<em><b>In</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #IN_VALUE
+ * @generated
+ * @ordered
+ */
+ IN(0, "in", "in"),
+
+ /**
+ * The '<em><b>Out</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #OUT_VALUE
+ * @generated
+ * @ordered
+ */
+ OUT(1, "out", "out"),
+
+ /**
+ * The '<em><b>Inout</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INOUT_VALUE
+ * @generated
+ * @ordered
+ */
+ INOUT(2, "inout", "inout");
+
+ /**
+ * The '<em><b>In</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>In</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #IN
+ * @model name="in"
+ * @generated
+ * @ordered
+ */
+ public static final int IN_VALUE = 0;
+
+ /**
+ * The '<em><b>Out</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Out</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #OUT
+ * @model name="out"
+ * @generated
+ * @ordered
+ */
+ public static final int OUT_VALUE = 1;
+
+ /**
+ * The '<em><b>Inout</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Inout</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #INOUT
+ * @model name="inout"
+ * @generated
+ * @ordered
+ */
+ public static final int INOUT_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>Flow Direction Kind</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final FlowDirectionKind[] VALUES_ARRAY =
+ new FlowDirectionKind[] {
+ IN,
+ OUT,
+ INOUT,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Flow Direction Kind</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<FlowDirectionKind> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Flow Direction Kind</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static FlowDirectionKind get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ FlowDirectionKind result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Flow Direction Kind</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static FlowDirectionKind getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ FlowDirectionKind result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Flow Direction Kind</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static FlowDirectionKind get(int value) {
+ switch (value) {
+ case IN_VALUE: return IN;
+ case OUT_VALUE: return OUT;
+ case INOUT_VALUE: return INOUT;
+ }
+ 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 FlowDirectionKind(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ 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;
+ }
+
+} //FlowDirectionKind
diff --git a/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/FlowPort.java b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/FlowPort.java
new file mode 100644
index 00000000000..99c07ed06b7
--- /dev/null
+++ b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/FlowPort.java
@@ -0,0 +1,121 @@
+/*****************************************************************************
+ * Copyright (c) 2010 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:
+ * Chokri MRAIDHA (CEA LIST) chokri.mraidha@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.Port;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Flow Port</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowPort#isIsAtomic <em>Is Atomic</em>}</li>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowPort#getDirection <em>Direction</em>}</li>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowPort#getBase_Port <em>Base Port</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getFlowPort()
+ * @model
+ * @generated
+ */
+public interface FlowPort extends EObject {
+ /**
+ * Returns the value of the '<em><b>Is Atomic</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Is Atomic</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Is Atomic</em>' attribute.
+ * @see #setIsAtomic(boolean)
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getFlowPort_IsAtomic()
+ * @model unique="false" dataType="org.eclipse.papyrus.MARTE_Library.MARTE_PrimitivesTypes.Boolean" required="true" transient="true" volatile="true" derived="true" ordered="false"
+ * @generated
+ */
+ boolean isIsAtomic();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowPort#isIsAtomic <em>Is Atomic</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Is Atomic</em>' attribute.
+ * @see #isIsAtomic()
+ * @generated
+ */
+ void setIsAtomic(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Direction</b></em>' attribute.
+ * The default value is <code>"inout"</code>.
+ * The literals are from the enumeration {@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowDirectionKind}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Direction</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Direction</em>' attribute.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowDirectionKind
+ * @see #setDirection(FlowDirectionKind)
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getFlowPort_Direction()
+ * @model default="inout" unique="false" required="true" ordered="false"
+ * @generated
+ */
+ FlowDirectionKind getDirection();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowPort#getDirection <em>Direction</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Direction</em>' attribute.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowDirectionKind
+ * @see #getDirection()
+ * @generated
+ */
+ void setDirection(FlowDirectionKind value);
+
+ /**
+ * 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(Port)
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getFlowPort_Base_Port()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Port getBase_Port();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowPort#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(Port value);
+
+} // FlowPort
diff --git a/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/FlowProperty.java b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/FlowProperty.java
new file mode 100644
index 00000000000..7dad4993de4
--- /dev/null
+++ b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/FlowProperty.java
@@ -0,0 +1,94 @@
+/*****************************************************************************
+ * Copyright (c) 2010 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:
+ * Chokri MRAIDHA (CEA LIST) chokri.mraidha@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Flow Property</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowProperty#getDirection <em>Direction</em>}</li>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowProperty#getBase_Property <em>Base Property</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getFlowProperty()
+ * @model
+ * @generated
+ */
+public interface FlowProperty extends EObject {
+ /**
+ * Returns the value of the '<em><b>Direction</b></em>' attribute.
+ * The default value is <code>"inout"</code>.
+ * The literals are from the enumeration {@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowDirectionKind}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Direction</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Direction</em>' attribute.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowDirectionKind
+ * @see #setDirection(FlowDirectionKind)
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getFlowProperty_Direction()
+ * @model default="inout" unique="false" required="true" ordered="false"
+ * @generated
+ */
+ FlowDirectionKind getDirection();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowProperty#getDirection <em>Direction</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Direction</em>' attribute.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowDirectionKind
+ * @see #getDirection()
+ * @generated
+ */
+ void setDirection(FlowDirectionKind 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.MARTE.MARTE_DesignModel.GCM.GCMPackage#getFlowProperty_Base_Property()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Property getBase_Property();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowProperty#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);
+
+} // FlowProperty
diff --git a/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/FlowSpecification.java b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/FlowSpecification.java
new file mode 100644
index 00000000000..df186355d87
--- /dev/null
+++ b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/FlowSpecification.java
@@ -0,0 +1,63 @@
+/*****************************************************************************
+ * Copyright (c) 2010 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:
+ * Chokri MRAIDHA (CEA LIST) chokri.mraidha@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.Interface;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Flow Specification</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowSpecification#getBase_Interface <em>Base Interface</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getFlowSpecification()
+ * @model
+ * @generated
+ */
+public interface FlowSpecification extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Interface</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base 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>Base Interface</em>' reference.
+ * @see #setBase_Interface(Interface)
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getFlowSpecification_Base_Interface()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Interface getBase_Interface();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowSpecification#getBase_Interface <em>Base Interface</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Interface</em>' reference.
+ * @see #getBase_Interface()
+ * @generated
+ */
+ void setBase_Interface(Interface value);
+
+} // FlowSpecification
diff --git a/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/GCMFactory.java b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/GCMFactory.java
new file mode 100644
index 00000000000..afdfcbf0533
--- /dev/null
+++ b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/GCMFactory.java
@@ -0,0 +1,143 @@
+/*****************************************************************************
+ * Copyright (c) 2010 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:
+ * Chokri MRAIDHA (CEA LIST) chokri.mraidha@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM;
+
+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.MARTE.MARTE_DesignModel.GCM.GCMPackage
+ * @generated
+ */
+public interface GCMFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ GCMFactory eINSTANCE = org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Flow Property</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Flow Property</em>'.
+ * @generated
+ */
+ FlowProperty createFlowProperty();
+
+ /**
+ * Returns a new object of class '<em>Flow Port</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Flow Port</em>'.
+ * @generated
+ */
+ FlowPort createFlowPort();
+
+ /**
+ * Returns a new object of class '<em>Client Server Port</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Client Server Port</em>'.
+ * @generated
+ */
+ ClientServerPort createClientServerPort();
+
+ /**
+ * Returns a new object of class '<em>Client Server Specification</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Client Server Specification</em>'.
+ * @generated
+ */
+ ClientServerSpecification createClientServerSpecification();
+
+ /**
+ * Returns a new object of class '<em>Flow Specification</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Flow Specification</em>'.
+ * @generated
+ */
+ FlowSpecification createFlowSpecification();
+
+ /**
+ * Returns a new object of class '<em>Client Server Feature</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Client Server Feature</em>'.
+ * @generated
+ */
+ ClientServerFeature createClientServerFeature();
+
+ /**
+ * Returns a new object of class '<em>Trigger</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Trigger</em>'.
+ * @generated
+ */
+ GCMTrigger createGCMTrigger();
+
+ /**
+ * Returns a new object of class '<em>Invocation Action</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Invocation Action</em>'.
+ * @generated
+ */
+ GCMInvocationAction createGCMInvocationAction();
+
+ /**
+ * Returns a new object of class '<em>Data Event</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Data Event</em>'.
+ * @generated
+ */
+ DataEvent createDataEvent();
+
+ /**
+ * Returns a new object of class '<em>Data Pool</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Data Pool</em>'.
+ * @generated
+ */
+ DataPool createDataPool();
+
+ /**
+ * Returns a new object of class '<em>Invocating Behavior</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Invocating Behavior</em>'.
+ * @generated
+ */
+ GCMInvocatingBehavior createGCMInvocatingBehavior();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ GCMPackage getGCMPackage();
+
+} //GCMFactory
diff --git a/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/GCMInvocatingBehavior.java b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/GCMInvocatingBehavior.java
new file mode 100644
index 00000000000..d2be2aaefb5
--- /dev/null
+++ b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/GCMInvocatingBehavior.java
@@ -0,0 +1,119 @@
+/*****************************************************************************
+ * Copyright (c) 2010 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:
+ * Chokri MRAIDHA (CEA LIST) chokri.mraidha@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.Behavior;
+import org.eclipse.uml2.uml.Feature;
+import org.eclipse.uml2.uml.InvocationAction;
+import org.eclipse.uml2.uml.Port;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Invocating Behavior</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMInvocatingBehavior#getBase_Behavior <em>Base Behavior</em>}</li>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMInvocatingBehavior#getOnPorts <em>On Ports</em>}</li>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMInvocatingBehavior#getOnFeatures <em>On Features</em>}</li>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMInvocatingBehavior#getInvocations <em>Invocations</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getGCMInvocatingBehavior()
+ * @model
+ * @generated
+ */
+public interface GCMInvocatingBehavior extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Behavior</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Behavior</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 Behavior</em>' reference.
+ * @see #setBase_Behavior(Behavior)
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getGCMInvocatingBehavior_Base_Behavior()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Behavior getBase_Behavior();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMInvocatingBehavior#getBase_Behavior <em>Base Behavior</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Behavior</em>' reference.
+ * @see #getBase_Behavior()
+ * @generated
+ */
+ void setBase_Behavior(Behavior value);
+
+ /**
+ * Returns the value of the '<em><b>On Ports</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.uml2.uml.Port}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>On Ports</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>On Ports</em>' reference list.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getGCMInvocatingBehavior_OnPorts()
+ * @model ordered="false"
+ * @generated
+ */
+ EList<Port> getOnPorts();
+
+ /**
+ * Returns the value of the '<em><b>On Features</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>On Features</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>On Features</em>' reference list.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getGCMInvocatingBehavior_OnFeatures()
+ * @model ordered="false"
+ * @generated
+ */
+ EList<Feature> getOnFeatures();
+
+ /**
+ * Returns the value of the '<em><b>Invocations</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.uml2.uml.InvocationAction}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Invocations</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>Invocations</em>' reference list.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getGCMInvocatingBehavior_Invocations()
+ * @model ordered="false"
+ * @generated
+ */
+ EList<InvocationAction> getInvocations();
+
+} // GCMInvocatingBehavior
diff --git a/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/GCMInvocationAction.java b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/GCMInvocationAction.java
new file mode 100644
index 00000000000..97db5985e67
--- /dev/null
+++ b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/GCMInvocationAction.java
@@ -0,0 +1,91 @@
+/*****************************************************************************
+ * Copyright (c) 2010 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:
+ * Chokri MRAIDHA (CEA LIST) chokri.mraidha@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.Feature;
+import org.eclipse.uml2.uml.InvocationAction;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Invocation Action</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMInvocationAction#getBase_InvocationAction <em>Base Invocation Action</em>}</li>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMInvocationAction#getOnFeature <em>On Feature</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getGCMInvocationAction()
+ * @model
+ * @generated
+ */
+public interface GCMInvocationAction extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Invocation Action</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Invocation Action</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 Invocation Action</em>' reference.
+ * @see #setBase_InvocationAction(InvocationAction)
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getGCMInvocationAction_Base_InvocationAction()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ InvocationAction getBase_InvocationAction();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMInvocationAction#getBase_InvocationAction <em>Base Invocation Action</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Invocation Action</em>' reference.
+ * @see #getBase_InvocationAction()
+ * @generated
+ */
+ void setBase_InvocationAction(InvocationAction value);
+
+ /**
+ * Returns the value of the '<em><b>On Feature</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>On Feature</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>On Feature</em>' reference.
+ * @see #setOnFeature(Feature)
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getGCMInvocationAction_OnFeature()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Feature getOnFeature();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMInvocationAction#getOnFeature <em>On Feature</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>On Feature</em>' reference.
+ * @see #getOnFeature()
+ * @generated
+ */
+ void setOnFeature(Feature value);
+
+} // GCMInvocationAction
diff --git a/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/GCMPackage.java b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/GCMPackage.java
new file mode 100644
index 00000000000..90cc89c4ac9
--- /dev/null
+++ b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/GCMPackage.java
@@ -0,0 +1,1456 @@
+/*****************************************************************************
+ * Copyright (c) 2010 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:
+ * Chokri MRAIDHA (CEA LIST) chokri.mraidha@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM;
+
+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.MARTE.MARTE_DesignModel.GCM.GCMFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface GCMPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "GCM";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/papyrus/GCM/1";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "GCM";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ GCMPackage eINSTANCE = org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.FlowPropertyImpl <em>Flow Property</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.FlowPropertyImpl
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMPackageImpl#getFlowProperty()
+ * @generated
+ */
+ int FLOW_PROPERTY = 0;
+
+ /**
+ * The feature id for the '<em><b>Direction</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FLOW_PROPERTY__DIRECTION = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FLOW_PROPERTY__BASE_PROPERTY = 1;
+
+ /**
+ * The number of structural features of the '<em>Flow Property</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FLOW_PROPERTY_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.FlowPortImpl <em>Flow Port</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.FlowPortImpl
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMPackageImpl#getFlowPort()
+ * @generated
+ */
+ int FLOW_PORT = 1;
+
+ /**
+ * The feature id for the '<em><b>Is Atomic</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FLOW_PORT__IS_ATOMIC = 0;
+
+ /**
+ * The feature id for the '<em><b>Direction</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FLOW_PORT__DIRECTION = 1;
+
+ /**
+ * The feature id for the '<em><b>Base Port</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FLOW_PORT__BASE_PORT = 2;
+
+ /**
+ * The number of structural features of the '<em>Flow Port</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FLOW_PORT_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.ClientServerPortImpl <em>Client Server Port</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.ClientServerPortImpl
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMPackageImpl#getClientServerPort()
+ * @generated
+ */
+ int CLIENT_SERVER_PORT = 2;
+
+ /**
+ * The feature id for the '<em><b>Base Port</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLIENT_SERVER_PORT__BASE_PORT = 0;
+
+ /**
+ * The feature id for the '<em><b>Specification Kind</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLIENT_SERVER_PORT__SPECIFICATION_KIND = 1;
+
+ /**
+ * The feature id for the '<em><b>Kind</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLIENT_SERVER_PORT__KIND = 2;
+
+ /**
+ * The feature id for the '<em><b>Prov Interface</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLIENT_SERVER_PORT__PROV_INTERFACE = 3;
+
+ /**
+ * The feature id for the '<em><b>Req Interface</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLIENT_SERVER_PORT__REQ_INTERFACE = 4;
+
+ /**
+ * The feature id for the '<em><b>Features Spec</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLIENT_SERVER_PORT__FEATURES_SPEC = 5;
+
+ /**
+ * The number of structural features of the '<em>Client Server Port</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLIENT_SERVER_PORT_FEATURE_COUNT = 6;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.ClientServerSpecificationImpl <em>Client Server Specification</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.ClientServerSpecificationImpl
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMPackageImpl#getClientServerSpecification()
+ * @generated
+ */
+ int CLIENT_SERVER_SPECIFICATION = 3;
+
+ /**
+ * The feature id for the '<em><b>Base Interface</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLIENT_SERVER_SPECIFICATION__BASE_INTERFACE = 0;
+
+ /**
+ * The number of structural features of the '<em>Client Server Specification</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLIENT_SERVER_SPECIFICATION_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.FlowSpecificationImpl <em>Flow Specification</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.FlowSpecificationImpl
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMPackageImpl#getFlowSpecification()
+ * @generated
+ */
+ int FLOW_SPECIFICATION = 4;
+
+ /**
+ * The feature id for the '<em><b>Base Interface</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FLOW_SPECIFICATION__BASE_INTERFACE = 0;
+
+ /**
+ * The number of structural features of the '<em>Flow Specification</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FLOW_SPECIFICATION_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.ClientServerFeatureImpl <em>Client Server Feature</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.ClientServerFeatureImpl
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMPackageImpl#getClientServerFeature()
+ * @generated
+ */
+ int CLIENT_SERVER_FEATURE = 5;
+
+ /**
+ * The feature id for the '<em><b>Kind</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLIENT_SERVER_FEATURE__KIND = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Behavioral Feature</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLIENT_SERVER_FEATURE__BASE_BEHAVIORAL_FEATURE = 1;
+
+ /**
+ * The number of structural features of the '<em>Client Server Feature</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLIENT_SERVER_FEATURE_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMTriggerImpl <em>Trigger</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMTriggerImpl
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMPackageImpl#getGCMTrigger()
+ * @generated
+ */
+ int GCM_TRIGGER = 6;
+
+ /**
+ * The feature id for the '<em><b>Base Trigger</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GCM_TRIGGER__BASE_TRIGGER = 0;
+
+ /**
+ * The feature id for the '<em><b>Feature</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GCM_TRIGGER__FEATURE = 1;
+
+ /**
+ * The number of structural features of the '<em>Trigger</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GCM_TRIGGER_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMInvocationActionImpl <em>Invocation Action</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMInvocationActionImpl
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMPackageImpl#getGCMInvocationAction()
+ * @generated
+ */
+ int GCM_INVOCATION_ACTION = 7;
+
+ /**
+ * The feature id for the '<em><b>Base Invocation Action</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GCM_INVOCATION_ACTION__BASE_INVOCATION_ACTION = 0;
+
+ /**
+ * The feature id for the '<em><b>On Feature</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GCM_INVOCATION_ACTION__ON_FEATURE = 1;
+
+ /**
+ * The number of structural features of the '<em>Invocation Action</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GCM_INVOCATION_ACTION_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.DataEventImpl <em>Data Event</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.DataEventImpl
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMPackageImpl#getDataEvent()
+ * @generated
+ */
+ int DATA_EVENT = 8;
+
+ /**
+ * The feature id for the '<em><b>Base Any Receive Event</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_EVENT__BASE_ANY_RECEIVE_EVENT = 0;
+
+ /**
+ * The feature id for the '<em><b>Classifier</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_EVENT__CLASSIFIER = 1;
+
+ /**
+ * The number of structural features of the '<em>Data Event</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_EVENT_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.DataPoolImpl <em>Data Pool</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.DataPoolImpl
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMPackageImpl#getDataPool()
+ * @generated
+ */
+ int DATA_POOL = 9;
+
+ /**
+ * The feature id for the '<em><b>Ordering</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_POOL__ORDERING = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_POOL__BASE_PROPERTY = 1;
+
+ /**
+ * The feature id for the '<em><b>Insertion</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_POOL__INSERTION = 2;
+
+ /**
+ * The feature id for the '<em><b>Selection</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_POOL__SELECTION = 3;
+
+ /**
+ * The number of structural features of the '<em>Data Pool</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_POOL_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMInvocatingBehaviorImpl <em>Invocating Behavior</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMInvocatingBehaviorImpl
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMPackageImpl#getGCMInvocatingBehavior()
+ * @generated
+ */
+ int GCM_INVOCATING_BEHAVIOR = 10;
+
+ /**
+ * The feature id for the '<em><b>Base Behavior</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GCM_INVOCATING_BEHAVIOR__BASE_BEHAVIOR = 0;
+
+ /**
+ * The feature id for the '<em><b>On Ports</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GCM_INVOCATING_BEHAVIOR__ON_PORTS = 1;
+
+ /**
+ * The feature id for the '<em><b>On Features</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GCM_INVOCATING_BEHAVIOR__ON_FEATURES = 2;
+
+ /**
+ * The feature id for the '<em><b>Invocations</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GCM_INVOCATING_BEHAVIOR__INVOCATIONS = 3;
+
+ /**
+ * The number of structural features of the '<em>Invocating Behavior</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GCM_INVOCATING_BEHAVIOR_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowDirectionKind <em>Flow Direction Kind</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowDirectionKind
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMPackageImpl#getFlowDirectionKind()
+ * @generated
+ */
+ int FLOW_DIRECTION_KIND = 11;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.PortSpecificationKind <em>Port Specification Kind</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.PortSpecificationKind
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMPackageImpl#getPortSpecificationKind()
+ * @generated
+ */
+ int PORT_SPECIFICATION_KIND = 12;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerKind <em>Client Server Kind</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerKind
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMPackageImpl#getClientServerKind()
+ * @generated
+ */
+ int CLIENT_SERVER_KIND = 13;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataPoolOrderingKind <em>Data Pool Ordering Kind</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataPoolOrderingKind
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMPackageImpl#getDataPoolOrderingKind()
+ * @generated
+ */
+ int DATA_POOL_ORDERING_KIND = 14;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowProperty <em>Flow Property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Flow Property</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowProperty
+ * @generated
+ */
+ EClass getFlowProperty();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowProperty#getDirection <em>Direction</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Direction</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowProperty#getDirection()
+ * @see #getFlowProperty()
+ * @generated
+ */
+ EAttribute getFlowProperty_Direction();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowProperty#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.MARTE.MARTE_DesignModel.GCM.FlowProperty#getBase_Property()
+ * @see #getFlowProperty()
+ * @generated
+ */
+ EReference getFlowProperty_Base_Property();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowPort <em>Flow Port</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Flow Port</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowPort
+ * @generated
+ */
+ EClass getFlowPort();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowPort#isIsAtomic <em>Is Atomic</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Is Atomic</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowPort#isIsAtomic()
+ * @see #getFlowPort()
+ * @generated
+ */
+ EAttribute getFlowPort_IsAtomic();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowPort#getDirection <em>Direction</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Direction</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowPort#getDirection()
+ * @see #getFlowPort()
+ * @generated
+ */
+ EAttribute getFlowPort_Direction();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowPort#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.MARTE.MARTE_DesignModel.GCM.FlowPort#getBase_Port()
+ * @see #getFlowPort()
+ * @generated
+ */
+ EReference getFlowPort_Base_Port();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerPort <em>Client Server Port</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Client Server Port</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerPort
+ * @generated
+ */
+ EClass getClientServerPort();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerPort#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.MARTE.MARTE_DesignModel.GCM.ClientServerPort#getBase_Port()
+ * @see #getClientServerPort()
+ * @generated
+ */
+ EReference getClientServerPort_Base_Port();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerPort#getSpecificationKind <em>Specification Kind</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Specification Kind</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerPort#getSpecificationKind()
+ * @see #getClientServerPort()
+ * @generated
+ */
+ EAttribute getClientServerPort_SpecificationKind();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerPort#getKind <em>Kind</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Kind</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerPort#getKind()
+ * @see #getClientServerPort()
+ * @generated
+ */
+ EAttribute getClientServerPort_Kind();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerPort#getProvInterface <em>Prov Interface</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Prov Interface</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerPort#getProvInterface()
+ * @see #getClientServerPort()
+ * @generated
+ */
+ EReference getClientServerPort_ProvInterface();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerPort#getReqInterface <em>Req Interface</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Req Interface</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerPort#getReqInterface()
+ * @see #getClientServerPort()
+ * @generated
+ */
+ EReference getClientServerPort_ReqInterface();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerPort#getFeaturesSpec <em>Features Spec</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Features Spec</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerPort#getFeaturesSpec()
+ * @see #getClientServerPort()
+ * @generated
+ */
+ EReference getClientServerPort_FeaturesSpec();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerSpecification <em>Client Server Specification</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Client Server Specification</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerSpecification
+ * @generated
+ */
+ EClass getClientServerSpecification();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerSpecification#getBase_Interface <em>Base Interface</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Interface</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerSpecification#getBase_Interface()
+ * @see #getClientServerSpecification()
+ * @generated
+ */
+ EReference getClientServerSpecification_Base_Interface();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowSpecification <em>Flow Specification</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Flow Specification</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowSpecification
+ * @generated
+ */
+ EClass getFlowSpecification();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowSpecification#getBase_Interface <em>Base Interface</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Interface</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowSpecification#getBase_Interface()
+ * @see #getFlowSpecification()
+ * @generated
+ */
+ EReference getFlowSpecification_Base_Interface();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerFeature <em>Client Server Feature</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Client Server Feature</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerFeature
+ * @generated
+ */
+ EClass getClientServerFeature();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerFeature#getKind <em>Kind</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Kind</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerFeature#getKind()
+ * @see #getClientServerFeature()
+ * @generated
+ */
+ EAttribute getClientServerFeature_Kind();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerFeature#getBase_BehavioralFeature <em>Base Behavioral Feature</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Behavioral Feature</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerFeature#getBase_BehavioralFeature()
+ * @see #getClientServerFeature()
+ * @generated
+ */
+ EReference getClientServerFeature_Base_BehavioralFeature();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMTrigger <em>Trigger</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Trigger</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMTrigger
+ * @generated
+ */
+ EClass getGCMTrigger();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMTrigger#getBase_Trigger <em>Base Trigger</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Trigger</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMTrigger#getBase_Trigger()
+ * @see #getGCMTrigger()
+ * @generated
+ */
+ EReference getGCMTrigger_Base_Trigger();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMTrigger#getFeature <em>Feature</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Feature</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMTrigger#getFeature()
+ * @see #getGCMTrigger()
+ * @generated
+ */
+ EReference getGCMTrigger_Feature();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMInvocationAction <em>Invocation Action</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Invocation Action</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMInvocationAction
+ * @generated
+ */
+ EClass getGCMInvocationAction();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMInvocationAction#getBase_InvocationAction <em>Base Invocation Action</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Invocation Action</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMInvocationAction#getBase_InvocationAction()
+ * @see #getGCMInvocationAction()
+ * @generated
+ */
+ EReference getGCMInvocationAction_Base_InvocationAction();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMInvocationAction#getOnFeature <em>On Feature</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>On Feature</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMInvocationAction#getOnFeature()
+ * @see #getGCMInvocationAction()
+ * @generated
+ */
+ EReference getGCMInvocationAction_OnFeature();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataEvent <em>Data Event</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Data Event</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataEvent
+ * @generated
+ */
+ EClass getDataEvent();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataEvent#getBase_AnyReceiveEvent <em>Base Any Receive Event</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Any Receive Event</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataEvent#getBase_AnyReceiveEvent()
+ * @see #getDataEvent()
+ * @generated
+ */
+ EReference getDataEvent_Base_AnyReceiveEvent();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataEvent#getClassifier <em>Classifier</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Classifier</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataEvent#getClassifier()
+ * @see #getDataEvent()
+ * @generated
+ */
+ EReference getDataEvent_Classifier();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataPool <em>Data Pool</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Data Pool</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataPool
+ * @generated
+ */
+ EClass getDataPool();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataPool#getOrdering <em>Ordering</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Ordering</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataPool#getOrdering()
+ * @see #getDataPool()
+ * @generated
+ */
+ EAttribute getDataPool_Ordering();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataPool#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.MARTE.MARTE_DesignModel.GCM.DataPool#getBase_Property()
+ * @see #getDataPool()
+ * @generated
+ */
+ EReference getDataPool_Base_Property();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataPool#getInsertion <em>Insertion</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Insertion</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataPool#getInsertion()
+ * @see #getDataPool()
+ * @generated
+ */
+ EReference getDataPool_Insertion();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataPool#getSelection <em>Selection</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Selection</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataPool#getSelection()
+ * @see #getDataPool()
+ * @generated
+ */
+ EReference getDataPool_Selection();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMInvocatingBehavior <em>Invocating Behavior</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Invocating Behavior</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMInvocatingBehavior
+ * @generated
+ */
+ EClass getGCMInvocatingBehavior();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMInvocatingBehavior#getBase_Behavior <em>Base Behavior</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Behavior</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMInvocatingBehavior#getBase_Behavior()
+ * @see #getGCMInvocatingBehavior()
+ * @generated
+ */
+ EReference getGCMInvocatingBehavior_Base_Behavior();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMInvocatingBehavior#getOnPorts <em>On Ports</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>On Ports</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMInvocatingBehavior#getOnPorts()
+ * @see #getGCMInvocatingBehavior()
+ * @generated
+ */
+ EReference getGCMInvocatingBehavior_OnPorts();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMInvocatingBehavior#getOnFeatures <em>On Features</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>On Features</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMInvocatingBehavior#getOnFeatures()
+ * @see #getGCMInvocatingBehavior()
+ * @generated
+ */
+ EReference getGCMInvocatingBehavior_OnFeatures();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMInvocatingBehavior#getInvocations <em>Invocations</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Invocations</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMInvocatingBehavior#getInvocations()
+ * @see #getGCMInvocatingBehavior()
+ * @generated
+ */
+ EReference getGCMInvocatingBehavior_Invocations();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowDirectionKind <em>Flow Direction Kind</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Flow Direction Kind</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowDirectionKind
+ * @generated
+ */
+ EEnum getFlowDirectionKind();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.PortSpecificationKind <em>Port Specification Kind</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Port Specification Kind</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.PortSpecificationKind
+ * @generated
+ */
+ EEnum getPortSpecificationKind();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerKind <em>Client Server Kind</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Client Server Kind</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerKind
+ * @generated
+ */
+ EEnum getClientServerKind();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataPoolOrderingKind <em>Data Pool Ordering Kind</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Data Pool Ordering Kind</em>'.
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataPoolOrderingKind
+ * @generated
+ */
+ EEnum getDataPoolOrderingKind();
+
+ /**
+ * 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
+ */
+ GCMFactory getGCMFactory();
+
+ /**
+ * <!-- 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.MARTE.MARTE_DesignModel.GCM.impl.FlowPropertyImpl <em>Flow Property</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.FlowPropertyImpl
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMPackageImpl#getFlowProperty()
+ * @generated
+ */
+ EClass FLOW_PROPERTY = eINSTANCE.getFlowProperty();
+
+ /**
+ * The meta object literal for the '<em><b>Direction</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FLOW_PROPERTY__DIRECTION = eINSTANCE.getFlowProperty_Direction();
+
+ /**
+ * The meta object literal for the '<em><b>Base Property</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FLOW_PROPERTY__BASE_PROPERTY = eINSTANCE.getFlowProperty_Base_Property();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.FlowPortImpl <em>Flow Port</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.FlowPortImpl
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMPackageImpl#getFlowPort()
+ * @generated
+ */
+ EClass FLOW_PORT = eINSTANCE.getFlowPort();
+
+ /**
+ * The meta object literal for the '<em><b>Is Atomic</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FLOW_PORT__IS_ATOMIC = eINSTANCE.getFlowPort_IsAtomic();
+
+ /**
+ * The meta object literal for the '<em><b>Direction</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FLOW_PORT__DIRECTION = eINSTANCE.getFlowPort_Direction();
+
+ /**
+ * The meta object literal for the '<em><b>Base Port</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FLOW_PORT__BASE_PORT = eINSTANCE.getFlowPort_Base_Port();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.ClientServerPortImpl <em>Client Server Port</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.ClientServerPortImpl
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMPackageImpl#getClientServerPort()
+ * @generated
+ */
+ EClass CLIENT_SERVER_PORT = eINSTANCE.getClientServerPort();
+
+ /**
+ * The meta object literal for the '<em><b>Base Port</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CLIENT_SERVER_PORT__BASE_PORT = eINSTANCE.getClientServerPort_Base_Port();
+
+ /**
+ * The meta object literal for the '<em><b>Specification Kind</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CLIENT_SERVER_PORT__SPECIFICATION_KIND = eINSTANCE.getClientServerPort_SpecificationKind();
+
+ /**
+ * The meta object literal for the '<em><b>Kind</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CLIENT_SERVER_PORT__KIND = eINSTANCE.getClientServerPort_Kind();
+
+ /**
+ * The meta object literal for the '<em><b>Prov Interface</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CLIENT_SERVER_PORT__PROV_INTERFACE = eINSTANCE.getClientServerPort_ProvInterface();
+
+ /**
+ * The meta object literal for the '<em><b>Req Interface</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CLIENT_SERVER_PORT__REQ_INTERFACE = eINSTANCE.getClientServerPort_ReqInterface();
+
+ /**
+ * The meta object literal for the '<em><b>Features Spec</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CLIENT_SERVER_PORT__FEATURES_SPEC = eINSTANCE.getClientServerPort_FeaturesSpec();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.ClientServerSpecificationImpl <em>Client Server Specification</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.ClientServerSpecificationImpl
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMPackageImpl#getClientServerSpecification()
+ * @generated
+ */
+ EClass CLIENT_SERVER_SPECIFICATION = eINSTANCE.getClientServerSpecification();
+
+ /**
+ * The meta object literal for the '<em><b>Base Interface</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CLIENT_SERVER_SPECIFICATION__BASE_INTERFACE = eINSTANCE.getClientServerSpecification_Base_Interface();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.FlowSpecificationImpl <em>Flow Specification</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.FlowSpecificationImpl
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMPackageImpl#getFlowSpecification()
+ * @generated
+ */
+ EClass FLOW_SPECIFICATION = eINSTANCE.getFlowSpecification();
+
+ /**
+ * The meta object literal for the '<em><b>Base Interface</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FLOW_SPECIFICATION__BASE_INTERFACE = eINSTANCE.getFlowSpecification_Base_Interface();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.ClientServerFeatureImpl <em>Client Server Feature</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.ClientServerFeatureImpl
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMPackageImpl#getClientServerFeature()
+ * @generated
+ */
+ EClass CLIENT_SERVER_FEATURE = eINSTANCE.getClientServerFeature();
+
+ /**
+ * The meta object literal for the '<em><b>Kind</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CLIENT_SERVER_FEATURE__KIND = eINSTANCE.getClientServerFeature_Kind();
+
+ /**
+ * The meta object literal for the '<em><b>Base Behavioral Feature</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CLIENT_SERVER_FEATURE__BASE_BEHAVIORAL_FEATURE = eINSTANCE.getClientServerFeature_Base_BehavioralFeature();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMTriggerImpl <em>Trigger</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMTriggerImpl
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMPackageImpl#getGCMTrigger()
+ * @generated
+ */
+ EClass GCM_TRIGGER = eINSTANCE.getGCMTrigger();
+
+ /**
+ * The meta object literal for the '<em><b>Base Trigger</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference GCM_TRIGGER__BASE_TRIGGER = eINSTANCE.getGCMTrigger_Base_Trigger();
+
+ /**
+ * The meta object literal for the '<em><b>Feature</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference GCM_TRIGGER__FEATURE = eINSTANCE.getGCMTrigger_Feature();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMInvocationActionImpl <em>Invocation Action</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMInvocationActionImpl
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMPackageImpl#getGCMInvocationAction()
+ * @generated
+ */
+ EClass GCM_INVOCATION_ACTION = eINSTANCE.getGCMInvocationAction();
+
+ /**
+ * The meta object literal for the '<em><b>Base Invocation Action</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference GCM_INVOCATION_ACTION__BASE_INVOCATION_ACTION = eINSTANCE.getGCMInvocationAction_Base_InvocationAction();
+
+ /**
+ * The meta object literal for the '<em><b>On Feature</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference GCM_INVOCATION_ACTION__ON_FEATURE = eINSTANCE.getGCMInvocationAction_OnFeature();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.DataEventImpl <em>Data Event</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.DataEventImpl
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMPackageImpl#getDataEvent()
+ * @generated
+ */
+ EClass DATA_EVENT = eINSTANCE.getDataEvent();
+
+ /**
+ * The meta object literal for the '<em><b>Base Any Receive Event</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DATA_EVENT__BASE_ANY_RECEIVE_EVENT = eINSTANCE.getDataEvent_Base_AnyReceiveEvent();
+
+ /**
+ * The meta object literal for the '<em><b>Classifier</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DATA_EVENT__CLASSIFIER = eINSTANCE.getDataEvent_Classifier();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.DataPoolImpl <em>Data Pool</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.DataPoolImpl
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMPackageImpl#getDataPool()
+ * @generated
+ */
+ EClass DATA_POOL = eINSTANCE.getDataPool();
+
+ /**
+ * The meta object literal for the '<em><b>Ordering</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DATA_POOL__ORDERING = eINSTANCE.getDataPool_Ordering();
+
+ /**
+ * The meta object literal for the '<em><b>Base Property</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DATA_POOL__BASE_PROPERTY = eINSTANCE.getDataPool_Base_Property();
+
+ /**
+ * The meta object literal for the '<em><b>Insertion</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DATA_POOL__INSERTION = eINSTANCE.getDataPool_Insertion();
+
+ /**
+ * The meta object literal for the '<em><b>Selection</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DATA_POOL__SELECTION = eINSTANCE.getDataPool_Selection();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMInvocatingBehaviorImpl <em>Invocating Behavior</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMInvocatingBehaviorImpl
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMPackageImpl#getGCMInvocatingBehavior()
+ * @generated
+ */
+ EClass GCM_INVOCATING_BEHAVIOR = eINSTANCE.getGCMInvocatingBehavior();
+
+ /**
+ * The meta object literal for the '<em><b>Base Behavior</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference GCM_INVOCATING_BEHAVIOR__BASE_BEHAVIOR = eINSTANCE.getGCMInvocatingBehavior_Base_Behavior();
+
+ /**
+ * The meta object literal for the '<em><b>On Ports</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference GCM_INVOCATING_BEHAVIOR__ON_PORTS = eINSTANCE.getGCMInvocatingBehavior_OnPorts();
+
+ /**
+ * The meta object literal for the '<em><b>On Features</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference GCM_INVOCATING_BEHAVIOR__ON_FEATURES = eINSTANCE.getGCMInvocatingBehavior_OnFeatures();
+
+ /**
+ * The meta object literal for the '<em><b>Invocations</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference GCM_INVOCATING_BEHAVIOR__INVOCATIONS = eINSTANCE.getGCMInvocatingBehavior_Invocations();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowDirectionKind <em>Flow Direction Kind</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowDirectionKind
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMPackageImpl#getFlowDirectionKind()
+ * @generated
+ */
+ EEnum FLOW_DIRECTION_KIND = eINSTANCE.getFlowDirectionKind();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.PortSpecificationKind <em>Port Specification Kind</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.PortSpecificationKind
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMPackageImpl#getPortSpecificationKind()
+ * @generated
+ */
+ EEnum PORT_SPECIFICATION_KIND = eINSTANCE.getPortSpecificationKind();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerKind <em>Client Server Kind</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerKind
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMPackageImpl#getClientServerKind()
+ * @generated
+ */
+ EEnum CLIENT_SERVER_KIND = eINSTANCE.getClientServerKind();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataPoolOrderingKind <em>Data Pool Ordering Kind</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataPoolOrderingKind
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMPackageImpl#getDataPoolOrderingKind()
+ * @generated
+ */
+ EEnum DATA_POOL_ORDERING_KIND = eINSTANCE.getDataPoolOrderingKind();
+
+ }
+
+} //GCMPackage
diff --git a/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/GCMTrigger.java b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/GCMTrigger.java
new file mode 100644
index 00000000000..880a65b3acb
--- /dev/null
+++ b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/GCMTrigger.java
@@ -0,0 +1,91 @@
+/*****************************************************************************
+ * Copyright (c) 2010 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:
+ * Chokri MRAIDHA (CEA LIST) chokri.mraidha@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.Feature;
+import org.eclipse.uml2.uml.Trigger;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Trigger</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMTrigger#getBase_Trigger <em>Base Trigger</em>}</li>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMTrigger#getFeature <em>Feature</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getGCMTrigger()
+ * @model
+ * @generated
+ */
+public interface GCMTrigger extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Trigger</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Trigger</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 Trigger</em>' reference.
+ * @see #setBase_Trigger(Trigger)
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getGCMTrigger_Base_Trigger()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Trigger getBase_Trigger();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMTrigger#getBase_Trigger <em>Base Trigger</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Trigger</em>' reference.
+ * @see #getBase_Trigger()
+ * @generated
+ */
+ void setBase_Trigger(Trigger value);
+
+ /**
+ * Returns the value of the '<em><b>Feature</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Feature</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Feature</em>' reference.
+ * @see #setFeature(Feature)
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getGCMTrigger_Feature()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Feature getFeature();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMTrigger#getFeature <em>Feature</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Feature</em>' reference.
+ * @see #getFeature()
+ * @generated
+ */
+ void setFeature(Feature value);
+
+} // GCMTrigger
diff --git a/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/PortSpecificationKind.java b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/PortSpecificationKind.java
new file mode 100644
index 00000000000..fd8d2326f91
--- /dev/null
+++ b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/PortSpecificationKind.java
@@ -0,0 +1,246 @@
+/*****************************************************************************
+ * Copyright (c) 2010 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:
+ * Chokri MRAIDHA (CEA LIST) chokri.mraidha@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM;
+
+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>Port Specification Kind</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage#getPortSpecificationKind()
+ * @model
+ * @generated
+ */
+public enum PortSpecificationKind implements Enumerator {
+ /**
+ * The '<em><b>Atomic</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ATOMIC_VALUE
+ * @generated
+ * @ordered
+ */
+ ATOMIC(0, "atomic", "atomic"),
+
+ /**
+ * The '<em><b>Interface Based</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INTERFACE_BASED_VALUE
+ * @generated
+ * @ordered
+ */
+ INTERFACE_BASED(1, "interfaceBased", "interfaceBased"),
+
+ /**
+ * The '<em><b>Feature Based</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FEATURE_BASED_VALUE
+ * @generated
+ * @ordered
+ */
+ FEATURE_BASED(2, "featureBased", "featureBased");
+
+ /**
+ * The '<em><b>Atomic</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Atomic</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ATOMIC
+ * @model name="atomic"
+ * @generated
+ * @ordered
+ */
+ public static final int ATOMIC_VALUE = 0;
+
+ /**
+ * The '<em><b>Interface Based</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Interface Based</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #INTERFACE_BASED
+ * @model name="interfaceBased"
+ * @generated
+ * @ordered
+ */
+ public static final int INTERFACE_BASED_VALUE = 1;
+
+ /**
+ * The '<em><b>Feature Based</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Feature Based</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FEATURE_BASED
+ * @model name="featureBased"
+ * @generated
+ * @ordered
+ */
+ public static final int FEATURE_BASED_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>Port Specification Kind</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final PortSpecificationKind[] VALUES_ARRAY =
+ new PortSpecificationKind[] {
+ ATOMIC,
+ INTERFACE_BASED,
+ FEATURE_BASED,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Port Specification Kind</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<PortSpecificationKind> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Port Specification Kind</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static PortSpecificationKind get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ PortSpecificationKind result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Port Specification Kind</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static PortSpecificationKind getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ PortSpecificationKind result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Port Specification Kind</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static PortSpecificationKind get(int value) {
+ switch (value) {
+ case ATOMIC_VALUE: return ATOMIC;
+ case INTERFACE_BASED_VALUE: return INTERFACE_BASED;
+ case FEATURE_BASED_VALUE: return FEATURE_BASED;
+ }
+ 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 PortSpecificationKind(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ 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;
+ }
+
+} //PortSpecificationKind
diff --git a/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/ClientServerFeatureImpl.java b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/ClientServerFeatureImpl.java
new file mode 100644
index 00000000000..17065fedc60
--- /dev/null
+++ b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/ClientServerFeatureImpl.java
@@ -0,0 +1,238 @@
+/*****************************************************************************
+ * Copyright (c) 2010 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:
+ * Chokri MRAIDHA (CEA LIST) chokri.mraidha@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.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.MARTE.MARTE_DesignModel.GCM.ClientServerFeature;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerKind;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage;
+
+import org.eclipse.uml2.uml.BehavioralFeature;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Client Server Feature</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.ClientServerFeatureImpl#getKind <em>Kind</em>}</li>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.ClientServerFeatureImpl#getBase_BehavioralFeature <em>Base Behavioral Feature</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ClientServerFeatureImpl extends EObjectImpl implements ClientServerFeature {
+ /**
+ * The default value of the '{@link #getKind() <em>Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getKind()
+ * @generated
+ * @ordered
+ */
+ protected static final ClientServerKind KIND_EDEFAULT = ClientServerKind.PROREQ;
+
+ /**
+ * The cached value of the '{@link #getKind() <em>Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getKind()
+ * @generated
+ * @ordered
+ */
+ protected ClientServerKind kind = KIND_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getBase_BehavioralFeature() <em>Base Behavioral Feature</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_BehavioralFeature()
+ * @generated
+ * @ordered
+ */
+ protected BehavioralFeature base_BehavioralFeature;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ClientServerFeatureImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return GCMPackage.Literals.CLIENT_SERVER_FEATURE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ClientServerKind getKind() {
+ return kind;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setKind(ClientServerKind newKind) {
+ ClientServerKind oldKind = kind;
+ kind = newKind == null ? KIND_EDEFAULT : newKind;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, GCMPackage.CLIENT_SERVER_FEATURE__KIND, oldKind, kind));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BehavioralFeature getBase_BehavioralFeature() {
+ if (base_BehavioralFeature != null && base_BehavioralFeature.eIsProxy()) {
+ InternalEObject oldBase_BehavioralFeature = (InternalEObject)base_BehavioralFeature;
+ base_BehavioralFeature = (BehavioralFeature)eResolveProxy(oldBase_BehavioralFeature);
+ if (base_BehavioralFeature != oldBase_BehavioralFeature) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, GCMPackage.CLIENT_SERVER_FEATURE__BASE_BEHAVIORAL_FEATURE, oldBase_BehavioralFeature, base_BehavioralFeature));
+ }
+ }
+ return base_BehavioralFeature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BehavioralFeature basicGetBase_BehavioralFeature() {
+ return base_BehavioralFeature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_BehavioralFeature(BehavioralFeature newBase_BehavioralFeature) {
+ BehavioralFeature oldBase_BehavioralFeature = base_BehavioralFeature;
+ base_BehavioralFeature = newBase_BehavioralFeature;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, GCMPackage.CLIENT_SERVER_FEATURE__BASE_BEHAVIORAL_FEATURE, oldBase_BehavioralFeature, base_BehavioralFeature));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case GCMPackage.CLIENT_SERVER_FEATURE__KIND:
+ return getKind();
+ case GCMPackage.CLIENT_SERVER_FEATURE__BASE_BEHAVIORAL_FEATURE:
+ if (resolve) return getBase_BehavioralFeature();
+ return basicGetBase_BehavioralFeature();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case GCMPackage.CLIENT_SERVER_FEATURE__KIND:
+ setKind((ClientServerKind)newValue);
+ return;
+ case GCMPackage.CLIENT_SERVER_FEATURE__BASE_BEHAVIORAL_FEATURE:
+ setBase_BehavioralFeature((BehavioralFeature)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case GCMPackage.CLIENT_SERVER_FEATURE__KIND:
+ setKind(KIND_EDEFAULT);
+ return;
+ case GCMPackage.CLIENT_SERVER_FEATURE__BASE_BEHAVIORAL_FEATURE:
+ setBase_BehavioralFeature((BehavioralFeature)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case GCMPackage.CLIENT_SERVER_FEATURE__KIND:
+ return kind != KIND_EDEFAULT;
+ case GCMPackage.CLIENT_SERVER_FEATURE__BASE_BEHAVIORAL_FEATURE:
+ return base_BehavioralFeature != 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(" (kind: ");
+ result.append(kind);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ClientServerFeatureImpl
diff --git a/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/ClientServerPortImpl.java b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/ClientServerPortImpl.java
new file mode 100644
index 00000000000..8eaa24a6d48
--- /dev/null
+++ b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/ClientServerPortImpl.java
@@ -0,0 +1,512 @@
+/*****************************************************************************
+ * Copyright (c) 2010 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:
+ * Chokri MRAIDHA (CEA LIST) chokri.mraidha@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.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.MARTE.MARTE_DesignModel.GCM.ClientServerKind;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerPort;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerSpecification;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowDirectionKind;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.PortSpecificationKind;
+import org.eclipse.papyrus.MARTE.utils.MarteResource;
+
+import org.eclipse.uml2.uml.Image;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.Signal;
+import org.eclipse.uml2.uml.Stereotype;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Client Server Port</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.ClientServerPortImpl#getBase_Port <em>Base Port</em>}</li>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.ClientServerPortImpl#getSpecificationKind <em>Specification Kind</em>}</li>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.ClientServerPortImpl#getKind <em>Kind</em>}</li>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.ClientServerPortImpl#getProvInterface <em>Prov Interface</em>}</li>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.ClientServerPortImpl#getReqInterface <em>Req Interface</em>}</li>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.ClientServerPortImpl#getFeaturesSpec <em>Features Spec</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ClientServerPortImpl extends EObjectImpl implements ClientServerPort {
+ /**
+ * 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 Port base_Port;
+
+ /**
+ * The default value of the '{@link #getSpecificationKind() <em>Specification Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSpecificationKind()
+ * @generated
+ * @ordered
+ */
+ protected static final PortSpecificationKind SPECIFICATION_KIND_EDEFAULT = PortSpecificationKind.INTERFACE_BASED;
+
+ /**
+ * The default value of the '{@link #getKind() <em>Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getKind()
+ * @generated
+ * @ordered
+ */
+ protected static final ClientServerKind KIND_EDEFAULT = ClientServerKind.PROREQ;
+
+ /**
+ * The cached value of the '{@link #getKind() <em>Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getKind()
+ * @generated
+ * @ordered
+ */
+ protected ClientServerKind kind = KIND_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getProvInterface() <em>Prov Interface</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProvInterface()
+ * @generated
+ * @ordered
+ */
+ protected EList<Interface> provInterface;
+
+ /**
+ * The cached value of the '{@link #getReqInterface() <em>Req Interface</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getReqInterface()
+ * @generated
+ * @ordered
+ */
+ protected EList<Interface> reqInterface;
+
+ /**
+ * The cached value of the '{@link #getFeaturesSpec() <em>Features Spec</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFeaturesSpec()
+ * @generated
+ * @ordered
+ */
+ protected ClientServerSpecification featuresSpec;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ClientServerPortImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return GCMPackage.Literals.CLIENT_SERVER_PORT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Port getBase_Port() {
+ if (base_Port != null && base_Port.eIsProxy()) {
+ InternalEObject oldBase_Port = (InternalEObject)base_Port;
+ base_Port = (Port)eResolveProxy(oldBase_Port);
+ if (base_Port != oldBase_Port) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, GCMPackage.CLIENT_SERVER_PORT__BASE_PORT, oldBase_Port, base_Port));
+ }
+ }
+ return base_Port;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Port basicGetBase_Port() {
+ return base_Port;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Port(Port newBase_Port) {
+ Port oldBase_Port = base_Port;
+ base_Port = newBase_Port;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, GCMPackage.CLIENT_SERVER_PORT__BASE_PORT, oldBase_Port, base_Port));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public PortSpecificationKind getSpecificationKind() {
+ // TODO: implement this method to return the 'Specification Kind' attribute
+ // Ensure that you remove @generated or mark it @generated NOT
+ // throw new UnsupportedOperationException();
+
+ PortSpecificationKind portSpecKind = SPECIFICATION_KIND_EDEFAULT;
+ if(getBase_Port() != null) {
+ if(getBase_Port().getType() != null && getBase_Port().getType() instanceof Signal) {
+ if(getProvInterface() != null)
+ getProvInterface().clear();
+ if(getReqInterface() != null)
+ getReqInterface().clear();
+ if(getFeaturesSpec() != null)
+ setFeaturesSpec(null);
+ portSpecKind = PortSpecificationKind.ATOMIC;
+ }
+ else if(getBase_Port().getType() == null) {
+ if (getFeaturesSpec() != null) {
+ /*
+ if(getProvInterface() != null)
+
+ getProvInterface().clear();
+ if(getReqInterface() != null)
+ getReqInterface().clear();
+ */
+ portSpecKind = PortSpecificationKind.FEATURE_BASED;
+ }
+ else if(getProvInterface() != null || getReqInterface() != null ) {
+ if(getFeaturesSpec() != null)
+ setFeaturesSpec(null);
+ portSpecKind = PortSpecificationKind.INTERFACE_BASED;
+ }
+ }
+ else
+ System.err.println("Error: An Atomic ClientServerPort must be typed with a Signal!");
+ }
+
+ return portSpecKind;
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSpecificationKind(PortSpecificationKind newSpecificationKind) {
+ // TODO: implement this method to set the 'Specification Kind' attribute
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ClientServerKind getKind() {
+ return kind;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setKind(ClientServerKind newKind) {
+ ClientServerKind oldKind = kind;
+ kind = newKind == null ? KIND_EDEFAULT : newKind;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, GCMPackage.CLIENT_SERVER_PORT__KIND, oldKind, kind));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Interface> getProvInterface() {
+ if (provInterface == null) {
+ provInterface = new EObjectResolvingEList<Interface>(Interface.class, this, GCMPackage.CLIENT_SERVER_PORT__PROV_INTERFACE);
+ }
+ return provInterface;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Interface> getReqInterface() {
+ if (reqInterface == null) {
+ reqInterface = new EObjectResolvingEList<Interface>(Interface.class, this, GCMPackage.CLIENT_SERVER_PORT__REQ_INTERFACE);
+ }
+ return reqInterface;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ClientServerSpecification getFeaturesSpec() {
+ if (featuresSpec != null && featuresSpec.eIsProxy()) {
+ InternalEObject oldFeaturesSpec = (InternalEObject)featuresSpec;
+ featuresSpec = (ClientServerSpecification)eResolveProxy(oldFeaturesSpec);
+ if (featuresSpec != oldFeaturesSpec) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, GCMPackage.CLIENT_SERVER_PORT__FEATURES_SPEC, oldFeaturesSpec, featuresSpec));
+ }
+ }
+ return featuresSpec;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ClientServerSpecification basicGetFeaturesSpec() {
+ return featuresSpec;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFeaturesSpec(ClientServerSpecification newFeaturesSpec) {
+ ClientServerSpecification oldFeaturesSpec = featuresSpec;
+ featuresSpec = newFeaturesSpec;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, GCMPackage.CLIENT_SERVER_PORT__FEATURES_SPEC, oldFeaturesSpec, featuresSpec));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case GCMPackage.CLIENT_SERVER_PORT__BASE_PORT:
+ if (resolve) return getBase_Port();
+ return basicGetBase_Port();
+ case GCMPackage.CLIENT_SERVER_PORT__SPECIFICATION_KIND:
+ return getSpecificationKind();
+ case GCMPackage.CLIENT_SERVER_PORT__KIND:
+ return getKind();
+ case GCMPackage.CLIENT_SERVER_PORT__PROV_INTERFACE:
+ return getProvInterface();
+ case GCMPackage.CLIENT_SERVER_PORT__REQ_INTERFACE:
+ return getReqInterface();
+ case GCMPackage.CLIENT_SERVER_PORT__FEATURES_SPEC:
+ if (resolve) return getFeaturesSpec();
+ return basicGetFeaturesSpec();
+ }
+ 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 GCMPackage.CLIENT_SERVER_PORT__BASE_PORT:
+ setBase_Port((Port)newValue);
+ return;
+ case GCMPackage.CLIENT_SERVER_PORT__SPECIFICATION_KIND:
+ setSpecificationKind((PortSpecificationKind)newValue);
+ return;
+ case GCMPackage.CLIENT_SERVER_PORT__KIND:
+ setKind((ClientServerKind)newValue);
+ return;
+ case GCMPackage.CLIENT_SERVER_PORT__PROV_INTERFACE:
+ getProvInterface().clear();
+ getProvInterface().addAll((Collection<? extends Interface>)newValue);
+ return;
+ case GCMPackage.CLIENT_SERVER_PORT__REQ_INTERFACE:
+ getReqInterface().clear();
+ getReqInterface().addAll((Collection<? extends Interface>)newValue);
+ return;
+ case GCMPackage.CLIENT_SERVER_PORT__FEATURES_SPEC:
+ setFeaturesSpec((ClientServerSpecification)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case GCMPackage.CLIENT_SERVER_PORT__BASE_PORT:
+ setBase_Port((Port)null);
+ return;
+ case GCMPackage.CLIENT_SERVER_PORT__SPECIFICATION_KIND:
+ setSpecificationKind(SPECIFICATION_KIND_EDEFAULT);
+ return;
+ case GCMPackage.CLIENT_SERVER_PORT__KIND:
+ setKind(KIND_EDEFAULT);
+ return;
+ case GCMPackage.CLIENT_SERVER_PORT__PROV_INTERFACE:
+ getProvInterface().clear();
+ return;
+ case GCMPackage.CLIENT_SERVER_PORT__REQ_INTERFACE:
+ getReqInterface().clear();
+ return;
+ case GCMPackage.CLIENT_SERVER_PORT__FEATURES_SPEC:
+ setFeaturesSpec((ClientServerSpecification)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case GCMPackage.CLIENT_SERVER_PORT__BASE_PORT:
+ return base_Port != null;
+ case GCMPackage.CLIENT_SERVER_PORT__SPECIFICATION_KIND:
+ return getSpecificationKind() != SPECIFICATION_KIND_EDEFAULT;
+ case GCMPackage.CLIENT_SERVER_PORT__KIND:
+ return kind != KIND_EDEFAULT;
+ case GCMPackage.CLIENT_SERVER_PORT__PROV_INTERFACE:
+ return provInterface != null && !provInterface.isEmpty();
+ case GCMPackage.CLIENT_SERVER_PORT__REQ_INTERFACE:
+ return reqInterface != null && !reqInterface.isEmpty();
+ case GCMPackage.CLIENT_SERVER_PORT__FEATURES_SPEC:
+ return featuresSpec != 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(" (kind: ");
+ result.append(kind);
+ result.append(')');
+ return result.toString();
+ }
+
+ /**
+ *
+ * @return
+ * @generated NOT
+ */
+ public Image getIcon() {
+
+ Image ImageNotFound = null;
+
+ if(getBase_Port() != null) {
+ Stereotype st = getBase_Port().getAppliedStereotype(MarteResource.CLIENT_SERVER_PORT_ID);
+
+ Image defaultImage = st.getIcons().get(2);
+ Image image = null;
+
+ if(getSpecificationKind() == PortSpecificationKind.INTERFACE_BASED) {
+ if(!getReqInterface().isEmpty() && getProvInterface().isEmpty()) {
+ image = st.getIcons().get(0);
+ } else if(!getProvInterface().isEmpty() && getReqInterface().isEmpty() ) {
+ image = st.getIcons().get(1);
+ } else {
+ // Default proreq
+ image = defaultImage;
+ }
+ }
+
+ else if (getSpecificationKind() == PortSpecificationKind.FEATURE_BASED){
+ image = defaultImage;
+ }
+
+ else if(getSpecificationKind() == PortSpecificationKind.ATOMIC) {
+ if(getKind() == ClientServerKind.PROVIDED) {
+ image = st.getIcons().get(1);
+ }
+
+ else if(getKind() == ClientServerKind.REQUIRED) {
+ image = st.getIcons().get(0);
+ }
+
+ else {
+ // Default proreq
+ image = defaultImage;
+ }
+ }
+
+ return image;
+
+ } else {
+ return ImageNotFound;
+ }
+ }
+
+
+} //ClientServerPortImpl
diff --git a/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/ClientServerSpecificationImpl.java b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/ClientServerSpecificationImpl.java
new file mode 100644
index 00000000000..3393a250245
--- /dev/null
+++ b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/ClientServerSpecificationImpl.java
@@ -0,0 +1,169 @@
+/*****************************************************************************
+ * Copyright (c) 2010 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:
+ * Chokri MRAIDHA (CEA LIST) chokri.mraidha@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.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.MARTE.MARTE_DesignModel.GCM.ClientServerSpecification;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage;
+
+import org.eclipse.uml2.uml.Interface;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Client Server Specification</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.ClientServerSpecificationImpl#getBase_Interface <em>Base Interface</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ClientServerSpecificationImpl extends EObjectImpl implements ClientServerSpecification {
+ /**
+ * The cached value of the '{@link #getBase_Interface() <em>Base Interface</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Interface()
+ * @generated
+ * @ordered
+ */
+ protected Interface base_Interface;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ClientServerSpecificationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return GCMPackage.Literals.CLIENT_SERVER_SPECIFICATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Interface getBase_Interface() {
+ if (base_Interface != null && base_Interface.eIsProxy()) {
+ InternalEObject oldBase_Interface = (InternalEObject)base_Interface;
+ base_Interface = (Interface)eResolveProxy(oldBase_Interface);
+ if (base_Interface != oldBase_Interface) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, GCMPackage.CLIENT_SERVER_SPECIFICATION__BASE_INTERFACE, oldBase_Interface, base_Interface));
+ }
+ }
+ return base_Interface;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Interface basicGetBase_Interface() {
+ return base_Interface;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Interface(Interface newBase_Interface) {
+ Interface oldBase_Interface = base_Interface;
+ base_Interface = newBase_Interface;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, GCMPackage.CLIENT_SERVER_SPECIFICATION__BASE_INTERFACE, oldBase_Interface, base_Interface));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case GCMPackage.CLIENT_SERVER_SPECIFICATION__BASE_INTERFACE:
+ if (resolve) return getBase_Interface();
+ return basicGetBase_Interface();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case GCMPackage.CLIENT_SERVER_SPECIFICATION__BASE_INTERFACE:
+ setBase_Interface((Interface)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case GCMPackage.CLIENT_SERVER_SPECIFICATION__BASE_INTERFACE:
+ setBase_Interface((Interface)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case GCMPackage.CLIENT_SERVER_SPECIFICATION__BASE_INTERFACE:
+ return base_Interface != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ClientServerSpecificationImpl
diff --git a/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/DataEventImpl.java b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/DataEventImpl.java
new file mode 100644
index 00000000000..54a937b6dbb
--- /dev/null
+++ b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/DataEventImpl.java
@@ -0,0 +1,230 @@
+/*****************************************************************************
+ * Copyright (c) 2010 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:
+ * Chokri MRAIDHA (CEA LIST) chokri.mraidha@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.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.MARTE.MARTE_DesignModel.GCM.DataEvent;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage;
+
+import org.eclipse.uml2.uml.AnyReceiveEvent;
+import org.eclipse.uml2.uml.Classifier;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Data Event</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.DataEventImpl#getBase_AnyReceiveEvent <em>Base Any Receive Event</em>}</li>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.DataEventImpl#getClassifier <em>Classifier</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DataEventImpl extends EObjectImpl implements DataEvent {
+ /**
+ * The cached value of the '{@link #getBase_AnyReceiveEvent() <em>Base Any Receive Event</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_AnyReceiveEvent()
+ * @generated
+ * @ordered
+ */
+ protected AnyReceiveEvent base_AnyReceiveEvent;
+
+ /**
+ * The cached value of the '{@link #getClassifier() <em>Classifier</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getClassifier()
+ * @generated
+ * @ordered
+ */
+ protected Classifier classifier;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DataEventImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return GCMPackage.Literals.DATA_EVENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AnyReceiveEvent getBase_AnyReceiveEvent() {
+ if (base_AnyReceiveEvent != null && base_AnyReceiveEvent.eIsProxy()) {
+ InternalEObject oldBase_AnyReceiveEvent = (InternalEObject)base_AnyReceiveEvent;
+ base_AnyReceiveEvent = (AnyReceiveEvent)eResolveProxy(oldBase_AnyReceiveEvent);
+ if (base_AnyReceiveEvent != oldBase_AnyReceiveEvent) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, GCMPackage.DATA_EVENT__BASE_ANY_RECEIVE_EVENT, oldBase_AnyReceiveEvent, base_AnyReceiveEvent));
+ }
+ }
+ return base_AnyReceiveEvent;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AnyReceiveEvent basicGetBase_AnyReceiveEvent() {
+ return base_AnyReceiveEvent;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_AnyReceiveEvent(AnyReceiveEvent newBase_AnyReceiveEvent) {
+ AnyReceiveEvent oldBase_AnyReceiveEvent = base_AnyReceiveEvent;
+ base_AnyReceiveEvent = newBase_AnyReceiveEvent;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, GCMPackage.DATA_EVENT__BASE_ANY_RECEIVE_EVENT, oldBase_AnyReceiveEvent, base_AnyReceiveEvent));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Classifier getClassifier() {
+ if (classifier != null && classifier.eIsProxy()) {
+ InternalEObject oldClassifier = (InternalEObject)classifier;
+ classifier = (Classifier)eResolveProxy(oldClassifier);
+ if (classifier != oldClassifier) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, GCMPackage.DATA_EVENT__CLASSIFIER, oldClassifier, classifier));
+ }
+ }
+ return classifier;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Classifier basicGetClassifier() {
+ return classifier;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setClassifier(Classifier newClassifier) {
+ Classifier oldClassifier = classifier;
+ classifier = newClassifier;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, GCMPackage.DATA_EVENT__CLASSIFIER, oldClassifier, classifier));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case GCMPackage.DATA_EVENT__BASE_ANY_RECEIVE_EVENT:
+ if (resolve) return getBase_AnyReceiveEvent();
+ return basicGetBase_AnyReceiveEvent();
+ case GCMPackage.DATA_EVENT__CLASSIFIER:
+ if (resolve) return getClassifier();
+ return basicGetClassifier();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case GCMPackage.DATA_EVENT__BASE_ANY_RECEIVE_EVENT:
+ setBase_AnyReceiveEvent((AnyReceiveEvent)newValue);
+ return;
+ case GCMPackage.DATA_EVENT__CLASSIFIER:
+ setClassifier((Classifier)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case GCMPackage.DATA_EVENT__BASE_ANY_RECEIVE_EVENT:
+ setBase_AnyReceiveEvent((AnyReceiveEvent)null);
+ return;
+ case GCMPackage.DATA_EVENT__CLASSIFIER:
+ setClassifier((Classifier)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case GCMPackage.DATA_EVENT__BASE_ANY_RECEIVE_EVENT:
+ return base_AnyReceiveEvent != null;
+ case GCMPackage.DATA_EVENT__CLASSIFIER:
+ return classifier != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //DataEventImpl
diff --git a/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/DataPoolImpl.java b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/DataPoolImpl.java
new file mode 100644
index 00000000000..c7a1ce7607e
--- /dev/null
+++ b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/DataPoolImpl.java
@@ -0,0 +1,359 @@
+/*****************************************************************************
+ * Copyright (c) 2010 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:
+ * Chokri MRAIDHA (CEA LIST) chokri.mraidha@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.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.MARTE.MARTE_DesignModel.GCM.DataPool;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataPoolOrderingKind;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage;
+
+import org.eclipse.uml2.uml.Behavior;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Data Pool</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.DataPoolImpl#getOrdering <em>Ordering</em>}</li>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.DataPoolImpl#getBase_Property <em>Base Property</em>}</li>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.DataPoolImpl#getInsertion <em>Insertion</em>}</li>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.DataPoolImpl#getSelection <em>Selection</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DataPoolImpl extends EObjectImpl implements DataPool {
+ /**
+ * The default value of the '{@link #getOrdering() <em>Ordering</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOrdering()
+ * @generated
+ * @ordered
+ */
+ protected static final DataPoolOrderingKind ORDERING_EDEFAULT = DataPoolOrderingKind.FIFO;
+
+ /**
+ * The cached value of the '{@link #getOrdering() <em>Ordering</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOrdering()
+ * @generated
+ * @ordered
+ */
+ protected DataPoolOrderingKind ordering = ORDERING_EDEFAULT;
+
+ /**
+ * 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 #getInsertion() <em>Insertion</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInsertion()
+ * @generated
+ * @ordered
+ */
+ protected Behavior insertion;
+
+ /**
+ * The cached value of the '{@link #getSelection() <em>Selection</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSelection()
+ * @generated
+ * @ordered
+ */
+ protected Behavior selection;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DataPoolImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return GCMPackage.Literals.DATA_POOL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DataPoolOrderingKind getOrdering() {
+ return ordering;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOrdering(DataPoolOrderingKind newOrdering) {
+ DataPoolOrderingKind oldOrdering = ordering;
+ ordering = newOrdering == null ? ORDERING_EDEFAULT : newOrdering;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, GCMPackage.DATA_POOL__ORDERING, oldOrdering, ordering));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ 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, GCMPackage.DATA_POOL__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
+ */
+ public void setBase_Property(Property newBase_Property) {
+ Property oldBase_Property = base_Property;
+ base_Property = newBase_Property;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, GCMPackage.DATA_POOL__BASE_PROPERTY, oldBase_Property, base_Property));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Behavior getInsertion() {
+ if (insertion != null && insertion.eIsProxy()) {
+ InternalEObject oldInsertion = (InternalEObject)insertion;
+ insertion = (Behavior)eResolveProxy(oldInsertion);
+ if (insertion != oldInsertion) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, GCMPackage.DATA_POOL__INSERTION, oldInsertion, insertion));
+ }
+ }
+ return insertion;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Behavior basicGetInsertion() {
+ return insertion;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInsertion(Behavior newInsertion) {
+ Behavior oldInsertion = insertion;
+ insertion = newInsertion;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, GCMPackage.DATA_POOL__INSERTION, oldInsertion, insertion));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Behavior getSelection() {
+ if (selection != null && selection.eIsProxy()) {
+ InternalEObject oldSelection = (InternalEObject)selection;
+ selection = (Behavior)eResolveProxy(oldSelection);
+ if (selection != oldSelection) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, GCMPackage.DATA_POOL__SELECTION, oldSelection, selection));
+ }
+ }
+ return selection;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Behavior basicGetSelection() {
+ return selection;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSelection(Behavior newSelection) {
+ Behavior oldSelection = selection;
+ selection = newSelection;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, GCMPackage.DATA_POOL__SELECTION, oldSelection, selection));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case GCMPackage.DATA_POOL__ORDERING:
+ return getOrdering();
+ case GCMPackage.DATA_POOL__BASE_PROPERTY:
+ if (resolve) return getBase_Property();
+ return basicGetBase_Property();
+ case GCMPackage.DATA_POOL__INSERTION:
+ if (resolve) return getInsertion();
+ return basicGetInsertion();
+ case GCMPackage.DATA_POOL__SELECTION:
+ if (resolve) return getSelection();
+ return basicGetSelection();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case GCMPackage.DATA_POOL__ORDERING:
+ setOrdering((DataPoolOrderingKind)newValue);
+ return;
+ case GCMPackage.DATA_POOL__BASE_PROPERTY:
+ setBase_Property((Property)newValue);
+ return;
+ case GCMPackage.DATA_POOL__INSERTION:
+ setInsertion((Behavior)newValue);
+ return;
+ case GCMPackage.DATA_POOL__SELECTION:
+ setSelection((Behavior)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case GCMPackage.DATA_POOL__ORDERING:
+ setOrdering(ORDERING_EDEFAULT);
+ return;
+ case GCMPackage.DATA_POOL__BASE_PROPERTY:
+ setBase_Property((Property)null);
+ return;
+ case GCMPackage.DATA_POOL__INSERTION:
+ setInsertion((Behavior)null);
+ return;
+ case GCMPackage.DATA_POOL__SELECTION:
+ setSelection((Behavior)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case GCMPackage.DATA_POOL__ORDERING:
+ return ordering != ORDERING_EDEFAULT;
+ case GCMPackage.DATA_POOL__BASE_PROPERTY:
+ return base_Property != null;
+ case GCMPackage.DATA_POOL__INSERTION:
+ return insertion != null;
+ case GCMPackage.DATA_POOL__SELECTION:
+ return selection != 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(" (ordering: ");
+ result.append(ordering);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DataPoolImpl
diff --git a/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/FlowPortImpl.java b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/FlowPortImpl.java
new file mode 100644
index 00000000000..807515616b0
--- /dev/null
+++ b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/FlowPortImpl.java
@@ -0,0 +1,343 @@
+/*****************************************************************************
+ * Copyright (c) 2010 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:
+ * Chokri MRAIDHA (CEA LIST) chokri.mraidha@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.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.MARTE.MARTE_DesignModel.GCM.FlowDirectionKind;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowPort;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowSpecification;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage;
+import org.eclipse.papyrus.MARTE.utils.MarteResource;
+import org.eclipse.papyrus.umlutils.ElementUtil;
+
+import org.eclipse.uml2.uml.Image;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.Stereotype;
+import org.eclipse.uml2.uml.Type;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Flow Port</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.FlowPortImpl#isIsAtomic <em>Is Atomic</em>}</li>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.FlowPortImpl#getDirection <em>Direction</em>}</li>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.FlowPortImpl#getBase_Port <em>Base Port</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class FlowPortImpl extends EObjectImpl implements FlowPort {
+ /**
+ * The default value of the '{@link #isIsAtomic() <em>Is Atomic</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsAtomic()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_ATOMIC_EDEFAULT = false;
+
+ /**
+ * The default value of the '{@link #getDirection() <em>Direction</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDirection()
+ * @generated
+ * @ordered
+ */
+ protected static final FlowDirectionKind DIRECTION_EDEFAULT = FlowDirectionKind.INOUT;
+
+ /**
+ * The cached value of the '{@link #getDirection() <em>Direction</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDirection()
+ * @generated
+ * @ordered
+ */
+ protected FlowDirectionKind direction = DIRECTION_EDEFAULT;
+
+ /**
+ * 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 Port base_Port;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FlowPortImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return GCMPackage.Literals.FLOW_PORT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean isIsAtomic() {
+ // TODO: implement this method to return the 'Is Atomic' attribute
+ // Ensure that you remove @generated or mark it @generated NOT
+ // throw new UnsupportedOperationException();
+
+ Port port = getBase_Port();
+ Type portType = port.getType();
+ if(portType != null) {
+ // get flowSpecification stereotype
+ FlowSpecification flowSpec =
+ (FlowSpecification) ElementUtil.hasStereotype(portType, GCMPackage.eINSTANCE.getFlowSpecification());
+
+ // flowSpecification stereotype is applied
+ if(flowSpec != null) {
+ return false;
+ }
+ }
+
+ // untyped port or port not typed with a flowSpecification.
+ return true;
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIsAtomic(boolean newIsAtomic) {
+ // TODO: implement this method to set the 'Is Atomic' attribute
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FlowDirectionKind getDirection() {
+ return direction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDirection(FlowDirectionKind newDirection) {
+ FlowDirectionKind oldDirection = direction;
+ direction = newDirection == null ? DIRECTION_EDEFAULT : newDirection;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, GCMPackage.FLOW_PORT__DIRECTION, oldDirection, direction));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Port getBase_Port() {
+ if (base_Port != null && base_Port.eIsProxy()) {
+ InternalEObject oldBase_Port = (InternalEObject)base_Port;
+ base_Port = (Port)eResolveProxy(oldBase_Port);
+ if (base_Port != oldBase_Port) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, GCMPackage.FLOW_PORT__BASE_PORT, oldBase_Port, base_Port));
+ }
+ }
+ return base_Port;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Port basicGetBase_Port() {
+ return base_Port;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Port(Port newBase_Port) {
+ Port oldBase_Port = base_Port;
+ base_Port = newBase_Port;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, GCMPackage.FLOW_PORT__BASE_PORT, oldBase_Port, base_Port));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case GCMPackage.FLOW_PORT__IS_ATOMIC:
+ return isIsAtomic();
+ case GCMPackage.FLOW_PORT__DIRECTION:
+ return getDirection();
+ case GCMPackage.FLOW_PORT__BASE_PORT:
+ if (resolve) return getBase_Port();
+ return basicGetBase_Port();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case GCMPackage.FLOW_PORT__IS_ATOMIC:
+ setIsAtomic((Boolean)newValue);
+ return;
+ case GCMPackage.FLOW_PORT__DIRECTION:
+ setDirection((FlowDirectionKind)newValue);
+ return;
+ case GCMPackage.FLOW_PORT__BASE_PORT:
+ setBase_Port((Port)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case GCMPackage.FLOW_PORT__IS_ATOMIC:
+ setIsAtomic(IS_ATOMIC_EDEFAULT);
+ return;
+ case GCMPackage.FLOW_PORT__DIRECTION:
+ setDirection(DIRECTION_EDEFAULT);
+ return;
+ case GCMPackage.FLOW_PORT__BASE_PORT:
+ setBase_Port((Port)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case GCMPackage.FLOW_PORT__IS_ATOMIC:
+ return isIsAtomic() != IS_ATOMIC_EDEFAULT;
+ case GCMPackage.FLOW_PORT__DIRECTION:
+ return direction != DIRECTION_EDEFAULT;
+ case GCMPackage.FLOW_PORT__BASE_PORT:
+ return base_Port != 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(" (direction: ");
+ result.append(direction);
+ result.append(')');
+ return result.toString();
+ }
+
+ /**
+ *
+ * @return
+ * @generated NOT
+ */
+ public Image getIcon() {
+
+ Image ImageNotFound = null;
+
+ if(getBase_Port() != null) {
+ Stereotype st = getBase_Port().getAppliedStereotype(MarteResource.FLOW_PORT_ID);
+
+ Image defaultImage = st.getIcons().get(0);
+ Image image = null;
+
+ if(isIsAtomic()) {
+ if(getDirection() == FlowDirectionKind.OUT) {
+ image = st.getIcons().get(1);
+ } else if(getDirection() == FlowDirectionKind.INOUT) {
+ image = st.getIcons().get(2);
+ } else {
+ // Default : IN
+ image = defaultImage;
+ }
+
+ }
+
+ else {
+ image = st.getIcons().get(2);
+ }
+
+ return image;
+
+ } else {
+ return ImageNotFound;
+ }
+ }
+
+
+} //FlowPortImpl
diff --git a/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/FlowPropertyImpl.java b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/FlowPropertyImpl.java
new file mode 100644
index 00000000000..03689fb102c
--- /dev/null
+++ b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/FlowPropertyImpl.java
@@ -0,0 +1,238 @@
+/*****************************************************************************
+ * Copyright (c) 2010 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:
+ * Chokri MRAIDHA (CEA LIST) chokri.mraidha@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.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.MARTE.MARTE_DesignModel.GCM.FlowDirectionKind;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowProperty;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage;
+
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Flow Property</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.FlowPropertyImpl#getDirection <em>Direction</em>}</li>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.FlowPropertyImpl#getBase_Property <em>Base Property</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class FlowPropertyImpl extends EObjectImpl implements FlowProperty {
+ /**
+ * The default value of the '{@link #getDirection() <em>Direction</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDirection()
+ * @generated
+ * @ordered
+ */
+ protected static final FlowDirectionKind DIRECTION_EDEFAULT = FlowDirectionKind.INOUT;
+
+ /**
+ * The cached value of the '{@link #getDirection() <em>Direction</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDirection()
+ * @generated
+ * @ordered
+ */
+ protected FlowDirectionKind direction = DIRECTION_EDEFAULT;
+
+ /**
+ * 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 FlowPropertyImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return GCMPackage.Literals.FLOW_PROPERTY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FlowDirectionKind getDirection() {
+ return direction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDirection(FlowDirectionKind newDirection) {
+ FlowDirectionKind oldDirection = direction;
+ direction = newDirection == null ? DIRECTION_EDEFAULT : newDirection;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, GCMPackage.FLOW_PROPERTY__DIRECTION, oldDirection, direction));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ 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, GCMPackage.FLOW_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
+ */
+ public void setBase_Property(Property newBase_Property) {
+ Property oldBase_Property = base_Property;
+ base_Property = newBase_Property;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, GCMPackage.FLOW_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 GCMPackage.FLOW_PROPERTY__DIRECTION:
+ return getDirection();
+ case GCMPackage.FLOW_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 GCMPackage.FLOW_PROPERTY__DIRECTION:
+ setDirection((FlowDirectionKind)newValue);
+ return;
+ case GCMPackage.FLOW_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 GCMPackage.FLOW_PROPERTY__DIRECTION:
+ setDirection(DIRECTION_EDEFAULT);
+ return;
+ case GCMPackage.FLOW_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 GCMPackage.FLOW_PROPERTY__DIRECTION:
+ return direction != DIRECTION_EDEFAULT;
+ case GCMPackage.FLOW_PROPERTY__BASE_PROPERTY:
+ return base_Property != 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(" (direction: ");
+ result.append(direction);
+ result.append(')');
+ return result.toString();
+ }
+
+} //FlowPropertyImpl
diff --git a/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/FlowSpecificationImpl.java b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/FlowSpecificationImpl.java
new file mode 100644
index 00000000000..f4770daf3ce
--- /dev/null
+++ b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/FlowSpecificationImpl.java
@@ -0,0 +1,169 @@
+/*****************************************************************************
+ * Copyright (c) 2010 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:
+ * Chokri MRAIDHA (CEA LIST) chokri.mraidha@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.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.MARTE.MARTE_DesignModel.GCM.FlowSpecification;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage;
+
+import org.eclipse.uml2.uml.Interface;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Flow Specification</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.FlowSpecificationImpl#getBase_Interface <em>Base Interface</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class FlowSpecificationImpl extends EObjectImpl implements FlowSpecification {
+ /**
+ * The cached value of the '{@link #getBase_Interface() <em>Base Interface</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Interface()
+ * @generated
+ * @ordered
+ */
+ protected Interface base_Interface;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FlowSpecificationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return GCMPackage.Literals.FLOW_SPECIFICATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Interface getBase_Interface() {
+ if (base_Interface != null && base_Interface.eIsProxy()) {
+ InternalEObject oldBase_Interface = (InternalEObject)base_Interface;
+ base_Interface = (Interface)eResolveProxy(oldBase_Interface);
+ if (base_Interface != oldBase_Interface) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, GCMPackage.FLOW_SPECIFICATION__BASE_INTERFACE, oldBase_Interface, base_Interface));
+ }
+ }
+ return base_Interface;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Interface basicGetBase_Interface() {
+ return base_Interface;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Interface(Interface newBase_Interface) {
+ Interface oldBase_Interface = base_Interface;
+ base_Interface = newBase_Interface;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, GCMPackage.FLOW_SPECIFICATION__BASE_INTERFACE, oldBase_Interface, base_Interface));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case GCMPackage.FLOW_SPECIFICATION__BASE_INTERFACE:
+ if (resolve) return getBase_Interface();
+ return basicGetBase_Interface();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case GCMPackage.FLOW_SPECIFICATION__BASE_INTERFACE:
+ setBase_Interface((Interface)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case GCMPackage.FLOW_SPECIFICATION__BASE_INTERFACE:
+ setBase_Interface((Interface)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case GCMPackage.FLOW_SPECIFICATION__BASE_INTERFACE:
+ return base_Interface != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //FlowSpecificationImpl
diff --git a/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/GCMFactoryImpl.java b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/GCMFactoryImpl.java
new file mode 100644
index 00000000000..0fe8b9137bd
--- /dev/null
+++ b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/GCMFactoryImpl.java
@@ -0,0 +1,339 @@
+/*****************************************************************************
+ * Copyright (c) 2010 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:
+ * Chokri MRAIDHA (CEA LIST) chokri.mraidha@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.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.MARTE.MARTE_DesignModel.GCM.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class GCMFactoryImpl extends EFactoryImpl implements GCMFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static GCMFactory init() {
+ try {
+ GCMFactory theGCMFactory = (GCMFactory)EPackage.Registry.INSTANCE.getEFactory("http://www.eclipse.org/papyrus/GCM/1");
+ if (theGCMFactory != null) {
+ return theGCMFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new GCMFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GCMFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case GCMPackage.FLOW_PROPERTY: return createFlowProperty();
+ case GCMPackage.FLOW_PORT: return createFlowPort();
+ case GCMPackage.CLIENT_SERVER_PORT: return createClientServerPort();
+ case GCMPackage.CLIENT_SERVER_SPECIFICATION: return createClientServerSpecification();
+ case GCMPackage.FLOW_SPECIFICATION: return createFlowSpecification();
+ case GCMPackage.CLIENT_SERVER_FEATURE: return createClientServerFeature();
+ case GCMPackage.GCM_TRIGGER: return createGCMTrigger();
+ case GCMPackage.GCM_INVOCATION_ACTION: return createGCMInvocationAction();
+ case GCMPackage.DATA_EVENT: return createDataEvent();
+ case GCMPackage.DATA_POOL: return createDataPool();
+ case GCMPackage.GCM_INVOCATING_BEHAVIOR: return createGCMInvocatingBehavior();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object createFromString(EDataType eDataType, String initialValue) {
+ switch (eDataType.getClassifierID()) {
+ case GCMPackage.FLOW_DIRECTION_KIND:
+ return createFlowDirectionKindFromString(eDataType, initialValue);
+ case GCMPackage.PORT_SPECIFICATION_KIND:
+ return createPortSpecificationKindFromString(eDataType, initialValue);
+ case GCMPackage.CLIENT_SERVER_KIND:
+ return createClientServerKindFromString(eDataType, initialValue);
+ case GCMPackage.DATA_POOL_ORDERING_KIND:
+ return createDataPoolOrderingKindFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String convertToString(EDataType eDataType, Object instanceValue) {
+ switch (eDataType.getClassifierID()) {
+ case GCMPackage.FLOW_DIRECTION_KIND:
+ return convertFlowDirectionKindToString(eDataType, instanceValue);
+ case GCMPackage.PORT_SPECIFICATION_KIND:
+ return convertPortSpecificationKindToString(eDataType, instanceValue);
+ case GCMPackage.CLIENT_SERVER_KIND:
+ return convertClientServerKindToString(eDataType, instanceValue);
+ case GCMPackage.DATA_POOL_ORDERING_KIND:
+ return convertDataPoolOrderingKindToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FlowProperty createFlowProperty() {
+ FlowPropertyImpl flowProperty = new FlowPropertyImpl();
+ return flowProperty;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FlowPort createFlowPort() {
+ FlowPortImpl flowPort = new FlowPortImpl();
+ return flowPort;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ClientServerPort createClientServerPort() {
+ ClientServerPortImpl clientServerPort = new ClientServerPortImpl();
+ return clientServerPort;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ClientServerSpecification createClientServerSpecification() {
+ ClientServerSpecificationImpl clientServerSpecification = new ClientServerSpecificationImpl();
+ return clientServerSpecification;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FlowSpecification createFlowSpecification() {
+ FlowSpecificationImpl flowSpecification = new FlowSpecificationImpl();
+ return flowSpecification;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ClientServerFeature createClientServerFeature() {
+ ClientServerFeatureImpl clientServerFeature = new ClientServerFeatureImpl();
+ return clientServerFeature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GCMTrigger createGCMTrigger() {
+ GCMTriggerImpl gcmTrigger = new GCMTriggerImpl();
+ return gcmTrigger;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GCMInvocationAction createGCMInvocationAction() {
+ GCMInvocationActionImpl gcmInvocationAction = new GCMInvocationActionImpl();
+ return gcmInvocationAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DataEvent createDataEvent() {
+ DataEventImpl dataEvent = new DataEventImpl();
+ return dataEvent;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DataPool createDataPool() {
+ DataPoolImpl dataPool = new DataPoolImpl();
+ return dataPool;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GCMInvocatingBehavior createGCMInvocatingBehavior() {
+ GCMInvocatingBehaviorImpl gcmInvocatingBehavior = new GCMInvocatingBehaviorImpl();
+ return gcmInvocatingBehavior;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FlowDirectionKind createFlowDirectionKindFromString(EDataType eDataType, String initialValue) {
+ FlowDirectionKind result = FlowDirectionKind.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertFlowDirectionKindToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PortSpecificationKind createPortSpecificationKindFromString(EDataType eDataType, String initialValue) {
+ PortSpecificationKind result = PortSpecificationKind.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertPortSpecificationKindToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ClientServerKind createClientServerKindFromString(EDataType eDataType, String initialValue) {
+ ClientServerKind result = ClientServerKind.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertClientServerKindToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DataPoolOrderingKind createDataPoolOrderingKindFromString(EDataType eDataType, String initialValue) {
+ DataPoolOrderingKind result = DataPoolOrderingKind.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertDataPoolOrderingKindToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GCMPackage getGCMPackage() {
+ return (GCMPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static GCMPackage getPackage() {
+ return GCMPackage.eINSTANCE;
+ }
+
+} //GCMFactoryImpl
diff --git a/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/GCMInvocatingBehaviorImpl.java b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/GCMInvocatingBehaviorImpl.java
new file mode 100644
index 00000000000..7dc521ad47e
--- /dev/null
+++ b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/GCMInvocatingBehaviorImpl.java
@@ -0,0 +1,281 @@
+/*****************************************************************************
+ * Copyright (c) 2010 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:
+ * Chokri MRAIDHA (CEA LIST) chokri.mraidha@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.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.MARTE.MARTE_DesignModel.GCM.GCMInvocatingBehavior;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage;
+
+import org.eclipse.uml2.uml.Behavior;
+import org.eclipse.uml2.uml.Feature;
+import org.eclipse.uml2.uml.InvocationAction;
+import org.eclipse.uml2.uml.Port;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Invocating Behavior</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMInvocatingBehaviorImpl#getBase_Behavior <em>Base Behavior</em>}</li>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMInvocatingBehaviorImpl#getOnPorts <em>On Ports</em>}</li>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMInvocatingBehaviorImpl#getOnFeatures <em>On Features</em>}</li>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMInvocatingBehaviorImpl#getInvocations <em>Invocations</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class GCMInvocatingBehaviorImpl extends EObjectImpl implements GCMInvocatingBehavior {
+ /**
+ * The cached value of the '{@link #getBase_Behavior() <em>Base Behavior</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Behavior()
+ * @generated
+ * @ordered
+ */
+ protected Behavior base_Behavior;
+
+ /**
+ * The cached value of the '{@link #getOnPorts() <em>On Ports</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOnPorts()
+ * @generated
+ * @ordered
+ */
+ protected EList<Port> onPorts;
+
+ /**
+ * The cached value of the '{@link #getOnFeatures() <em>On Features</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOnFeatures()
+ * @generated
+ * @ordered
+ */
+ protected EList<Feature> onFeatures;
+
+ /**
+ * The cached value of the '{@link #getInvocations() <em>Invocations</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInvocations()
+ * @generated
+ * @ordered
+ */
+ protected EList<InvocationAction> invocations;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GCMInvocatingBehaviorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return GCMPackage.Literals.GCM_INVOCATING_BEHAVIOR;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Behavior getBase_Behavior() {
+ if (base_Behavior != null && base_Behavior.eIsProxy()) {
+ InternalEObject oldBase_Behavior = (InternalEObject)base_Behavior;
+ base_Behavior = (Behavior)eResolveProxy(oldBase_Behavior);
+ if (base_Behavior != oldBase_Behavior) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, GCMPackage.GCM_INVOCATING_BEHAVIOR__BASE_BEHAVIOR, oldBase_Behavior, base_Behavior));
+ }
+ }
+ return base_Behavior;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Behavior basicGetBase_Behavior() {
+ return base_Behavior;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Behavior(Behavior newBase_Behavior) {
+ Behavior oldBase_Behavior = base_Behavior;
+ base_Behavior = newBase_Behavior;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, GCMPackage.GCM_INVOCATING_BEHAVIOR__BASE_BEHAVIOR, oldBase_Behavior, base_Behavior));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Port> getOnPorts() {
+ if (onPorts == null) {
+ onPorts = new EObjectResolvingEList<Port>(Port.class, this, GCMPackage.GCM_INVOCATING_BEHAVIOR__ON_PORTS);
+ }
+ return onPorts;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Feature> getOnFeatures() {
+ if (onFeatures == null) {
+ onFeatures = new EObjectResolvingEList<Feature>(Feature.class, this, GCMPackage.GCM_INVOCATING_BEHAVIOR__ON_FEATURES);
+ }
+ return onFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<InvocationAction> getInvocations() {
+ if (invocations == null) {
+ invocations = new EObjectResolvingEList<InvocationAction>(InvocationAction.class, this, GCMPackage.GCM_INVOCATING_BEHAVIOR__INVOCATIONS);
+ }
+ return invocations;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case GCMPackage.GCM_INVOCATING_BEHAVIOR__BASE_BEHAVIOR:
+ if (resolve) return getBase_Behavior();
+ return basicGetBase_Behavior();
+ case GCMPackage.GCM_INVOCATING_BEHAVIOR__ON_PORTS:
+ return getOnPorts();
+ case GCMPackage.GCM_INVOCATING_BEHAVIOR__ON_FEATURES:
+ return getOnFeatures();
+ case GCMPackage.GCM_INVOCATING_BEHAVIOR__INVOCATIONS:
+ return getInvocations();
+ }
+ 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 GCMPackage.GCM_INVOCATING_BEHAVIOR__BASE_BEHAVIOR:
+ setBase_Behavior((Behavior)newValue);
+ return;
+ case GCMPackage.GCM_INVOCATING_BEHAVIOR__ON_PORTS:
+ getOnPorts().clear();
+ getOnPorts().addAll((Collection<? extends Port>)newValue);
+ return;
+ case GCMPackage.GCM_INVOCATING_BEHAVIOR__ON_FEATURES:
+ getOnFeatures().clear();
+ getOnFeatures().addAll((Collection<? extends Feature>)newValue);
+ return;
+ case GCMPackage.GCM_INVOCATING_BEHAVIOR__INVOCATIONS:
+ getInvocations().clear();
+ getInvocations().addAll((Collection<? extends InvocationAction>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case GCMPackage.GCM_INVOCATING_BEHAVIOR__BASE_BEHAVIOR:
+ setBase_Behavior((Behavior)null);
+ return;
+ case GCMPackage.GCM_INVOCATING_BEHAVIOR__ON_PORTS:
+ getOnPorts().clear();
+ return;
+ case GCMPackage.GCM_INVOCATING_BEHAVIOR__ON_FEATURES:
+ getOnFeatures().clear();
+ return;
+ case GCMPackage.GCM_INVOCATING_BEHAVIOR__INVOCATIONS:
+ getInvocations().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case GCMPackage.GCM_INVOCATING_BEHAVIOR__BASE_BEHAVIOR:
+ return base_Behavior != null;
+ case GCMPackage.GCM_INVOCATING_BEHAVIOR__ON_PORTS:
+ return onPorts != null && !onPorts.isEmpty();
+ case GCMPackage.GCM_INVOCATING_BEHAVIOR__ON_FEATURES:
+ return onFeatures != null && !onFeatures.isEmpty();
+ case GCMPackage.GCM_INVOCATING_BEHAVIOR__INVOCATIONS:
+ return invocations != null && !invocations.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //GCMInvocatingBehaviorImpl
diff --git a/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/GCMInvocationActionImpl.java b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/GCMInvocationActionImpl.java
new file mode 100644
index 00000000000..2363bf2be8f
--- /dev/null
+++ b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/GCMInvocationActionImpl.java
@@ -0,0 +1,230 @@
+/*****************************************************************************
+ * Copyright (c) 2010 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:
+ * Chokri MRAIDHA (CEA LIST) chokri.mraidha@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.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.MARTE.MARTE_DesignModel.GCM.GCMInvocationAction;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage;
+
+import org.eclipse.uml2.uml.Feature;
+import org.eclipse.uml2.uml.InvocationAction;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Invocation Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMInvocationActionImpl#getBase_InvocationAction <em>Base Invocation Action</em>}</li>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMInvocationActionImpl#getOnFeature <em>On Feature</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class GCMInvocationActionImpl extends EObjectImpl implements GCMInvocationAction {
+ /**
+ * The cached value of the '{@link #getBase_InvocationAction() <em>Base Invocation Action</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_InvocationAction()
+ * @generated
+ * @ordered
+ */
+ protected InvocationAction base_InvocationAction;
+
+ /**
+ * The cached value of the '{@link #getOnFeature() <em>On Feature</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOnFeature()
+ * @generated
+ * @ordered
+ */
+ protected Feature onFeature;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GCMInvocationActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return GCMPackage.Literals.GCM_INVOCATION_ACTION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InvocationAction getBase_InvocationAction() {
+ if (base_InvocationAction != null && base_InvocationAction.eIsProxy()) {
+ InternalEObject oldBase_InvocationAction = (InternalEObject)base_InvocationAction;
+ base_InvocationAction = (InvocationAction)eResolveProxy(oldBase_InvocationAction);
+ if (base_InvocationAction != oldBase_InvocationAction) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, GCMPackage.GCM_INVOCATION_ACTION__BASE_INVOCATION_ACTION, oldBase_InvocationAction, base_InvocationAction));
+ }
+ }
+ return base_InvocationAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InvocationAction basicGetBase_InvocationAction() {
+ return base_InvocationAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_InvocationAction(InvocationAction newBase_InvocationAction) {
+ InvocationAction oldBase_InvocationAction = base_InvocationAction;
+ base_InvocationAction = newBase_InvocationAction;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, GCMPackage.GCM_INVOCATION_ACTION__BASE_INVOCATION_ACTION, oldBase_InvocationAction, base_InvocationAction));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Feature getOnFeature() {
+ if (onFeature != null && onFeature.eIsProxy()) {
+ InternalEObject oldOnFeature = (InternalEObject)onFeature;
+ onFeature = (Feature)eResolveProxy(oldOnFeature);
+ if (onFeature != oldOnFeature) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, GCMPackage.GCM_INVOCATION_ACTION__ON_FEATURE, oldOnFeature, onFeature));
+ }
+ }
+ return onFeature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Feature basicGetOnFeature() {
+ return onFeature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOnFeature(Feature newOnFeature) {
+ Feature oldOnFeature = onFeature;
+ onFeature = newOnFeature;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, GCMPackage.GCM_INVOCATION_ACTION__ON_FEATURE, oldOnFeature, onFeature));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case GCMPackage.GCM_INVOCATION_ACTION__BASE_INVOCATION_ACTION:
+ if (resolve) return getBase_InvocationAction();
+ return basicGetBase_InvocationAction();
+ case GCMPackage.GCM_INVOCATION_ACTION__ON_FEATURE:
+ if (resolve) return getOnFeature();
+ return basicGetOnFeature();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case GCMPackage.GCM_INVOCATION_ACTION__BASE_INVOCATION_ACTION:
+ setBase_InvocationAction((InvocationAction)newValue);
+ return;
+ case GCMPackage.GCM_INVOCATION_ACTION__ON_FEATURE:
+ setOnFeature((Feature)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case GCMPackage.GCM_INVOCATION_ACTION__BASE_INVOCATION_ACTION:
+ setBase_InvocationAction((InvocationAction)null);
+ return;
+ case GCMPackage.GCM_INVOCATION_ACTION__ON_FEATURE:
+ setOnFeature((Feature)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case GCMPackage.GCM_INVOCATION_ACTION__BASE_INVOCATION_ACTION:
+ return base_InvocationAction != null;
+ case GCMPackage.GCM_INVOCATION_ACTION__ON_FEATURE:
+ return onFeature != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //GCMInvocationActionImpl
diff --git a/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/GCMPackageImpl.java b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/GCMPackageImpl.java
new file mode 100644
index 00000000000..7be8bf8a218
--- /dev/null
+++ b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/GCMPackageImpl.java
@@ -0,0 +1,1054 @@
+/*****************************************************************************
+ * Copyright (c) 2010 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:
+ * Chokri MRAIDHA (CEA LIST) chokri.mraidha@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.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.MARTE.MARTEPackage;
+
+import org.eclipse.papyrus.MARTE.MARTE_AnalysisModel.GQAM.GQAMPackage;
+
+import org.eclipse.papyrus.MARTE.MARTE_AnalysisModel.GQAM.impl.GQAMPackageImpl;
+
+import org.eclipse.papyrus.MARTE.MARTE_AnalysisModel.PAM.PAMPackage;
+
+import org.eclipse.papyrus.MARTE.MARTE_AnalysisModel.PAM.impl.PAMPackageImpl;
+
+import org.eclipse.papyrus.MARTE.MARTE_AnalysisModel.SAM.SAMPackage;
+
+import org.eclipse.papyrus.MARTE.MARTE_AnalysisModel.SAM.impl.SAMPackageImpl;
+
+import org.eclipse.papyrus.MARTE.MARTE_Annexes.RSM.RSMPackage;
+
+import org.eclipse.papyrus.MARTE.MARTE_Annexes.RSM.impl.RSMPackageImpl;
+
+import org.eclipse.papyrus.MARTE.MARTE_Annexes.VSL.DataTypes.DataTypesPackage;
+
+import org.eclipse.papyrus.MARTE.MARTE_Annexes.VSL.DataTypes.impl.DataTypesPackageImpl;
+
+import org.eclipse.papyrus.MARTE.MARTE_Annexes.VSL.Operators.OperatorsPackage;
+import org.eclipse.papyrus.MARTE.MARTE_Annexes.VSL.Operators.impl.OperatorsPackageImpl;
+import org.eclipse.papyrus.MARTE.MARTE_Annexes.VSL.Variables.VariablesPackage;
+
+import org.eclipse.papyrus.MARTE.MARTE_Annexes.VSL.Variables.impl.VariablesPackageImpl;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerFeature;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerKind;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerPort;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerSpecification;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataEvent;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataPool;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataPoolOrderingKind;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowDirectionKind;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowPort;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowProperty;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowSpecification;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMFactory;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMInvocatingBehavior;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMInvocationAction;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMPackage;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMTrigger;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.PortSpecificationKind;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HLAM.HLAMPackage;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HLAM.impl.HLAMPackageImpl;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwGeneral.HwGeneralPackage;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwGeneral.impl.HwGeneralPackageImpl;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwCommunication.HwCommunicationPackage;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwCommunication.impl.HwCommunicationPackageImpl;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwComputing.HwComputingPackage;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwComputing.impl.HwComputingPackageImpl;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwDevice.HwDevicePackage;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwDevice.impl.HwDevicePackageImpl;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwStorage.HwMemory.HwMemoryPackage;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwStorage.HwMemory.impl.HwMemoryPackageImpl;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwStorage.HwStorageManager.HwStorageManagerPackage;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwStorage.HwStorageManager.impl.HwStorageManagerPackageImpl;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwTiming.HwTimingPackage;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwTiming.impl.HwTimingPackageImpl;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwPhysical.HwLayout.HwLayoutPackage;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwPhysical.HwLayout.impl.HwLayoutPackageImpl;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwPhysical.HwPower.HwPowerPackage;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwPhysical.HwPower.impl.HwPowerPackageImpl;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.SRM.SW_Brokering.SW_BrokeringPackage;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.SRM.SW_Brokering.impl.SW_BrokeringPackageImpl;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.SRM.SW_Concurrency.SW_ConcurrencyPackage;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.SRM.SW_Concurrency.impl.SW_ConcurrencyPackageImpl;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.SRM.SW_Interaction.SW_InteractionPackage;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.SRM.SW_Interaction.impl.SW_InteractionPackageImpl;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.SRM.SW_ResourceCore.SW_ResourceCorePackage;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.SRM.SW_ResourceCore.impl.SW_ResourceCorePackageImpl;
+
+import org.eclipse.papyrus.MARTE.MARTE_Foundations.Alloc.AllocPackage;
+
+import org.eclipse.papyrus.MARTE.MARTE_Foundations.Alloc.impl.AllocPackageImpl;
+
+import org.eclipse.papyrus.MARTE.MARTE_Foundations.CoreElements.CoreElementsPackage;
+
+import org.eclipse.papyrus.MARTE.MARTE_Foundations.CoreElements.impl.CoreElementsPackageImpl;
+
+import org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.GRMPackage;
+
+import org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.impl.GRMPackageImpl;
+
+import org.eclipse.papyrus.MARTE.MARTE_Foundations.NFPs.NFPsPackage;
+
+import org.eclipse.papyrus.MARTE.MARTE_Foundations.NFPs.impl.NFPsPackageImpl;
+
+import org.eclipse.papyrus.MARTE.MARTE_Foundations.Time.TimePackage;
+
+import org.eclipse.papyrus.MARTE.MARTE_Foundations.Time.impl.TimePackageImpl;
+
+import org.eclipse.papyrus.MARTE.impl.MARTEPackageImpl;
+
+import org.eclipse.papyrus.MARTE_Library.BasicNFP_Types.BasicNFP_TypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.BasicNFP_Types.impl.BasicNFP_TypesPackageImpl;
+
+import org.eclipse.papyrus.MARTE_Library.GRM_BasicTypes.GRM_BasicTypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.GRM_BasicTypes.impl.GRM_BasicTypesPackageImpl;
+
+import org.eclipse.papyrus.MARTE_Library.MARTE_DataTypes.MARTE_DataTypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.MARTE_DataTypes.impl.MARTE_DataTypesPackageImpl;
+
+import org.eclipse.papyrus.MARTE_Library.MARTE_PrimitivesTypes.MARTE_PrimitivesTypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.MARTE_PrimitivesTypes.impl.MARTE_PrimitivesTypesPackageImpl;
+
+import org.eclipse.papyrus.MARTE_Library.MeasurementUnits.MeasurementUnitsPackage;
+
+import org.eclipse.papyrus.MARTE_Library.MeasurementUnits.impl.MeasurementUnitsPackageImpl;
+
+import org.eclipse.papyrus.MARTE_Library.RS_Library.RS_LibraryPackage;
+
+import org.eclipse.papyrus.MARTE_Library.RS_Library.impl.RS_LibraryPackageImpl;
+
+import org.eclipse.papyrus.MARTE_Library.TimeLibrary.TimeLibraryPackage;
+
+import org.eclipse.papyrus.MARTE_Library.TimeLibrary.impl.TimeLibraryPackageImpl;
+
+import org.eclipse.papyrus.MARTE_Library.TimeTypesLibrary.TimeTypesLibraryPackage;
+
+import org.eclipse.papyrus.MARTE_Library.TimeTypesLibrary.impl.TimeTypesLibraryPackageImpl;
+
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class GCMPackageImpl extends EPackageImpl implements GCMPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass flowPropertyEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass flowPortEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass clientServerPortEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass clientServerSpecificationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass flowSpecificationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass clientServerFeatureEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass gcmTriggerEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass gcmInvocationActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass dataEventEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass dataPoolEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass gcmInvocatingBehaviorEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum flowDirectionKindEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum portSpecificationKindEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum clientServerKindEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum dataPoolOrderingKindEEnum = 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.MARTE.MARTE_DesignModel.GCM.GCMPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private GCMPackageImpl() {
+ super(eNS_URI, GCMFactory.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 GCMPackage#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 GCMPackage init() {
+ if (isInited) return (GCMPackage)EPackage.Registry.INSTANCE.getEPackage(GCMPackage.eNS_URI);
+
+ // Obtain or create and register package
+ GCMPackageImpl theGCMPackage = (GCMPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof GCMPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new GCMPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ UMLPackage.eINSTANCE.eClass();
+
+ // Obtain or create and register interdependencies
+ MARTEPackageImpl theMARTEPackage = (MARTEPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(MARTEPackage.eNS_URI) instanceof MARTEPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(MARTEPackage.eNS_URI) : MARTEPackage.eINSTANCE);
+ NFPsPackageImpl theNFPsPackage = (NFPsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(NFPsPackage.eNS_URI) instanceof NFPsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(NFPsPackage.eNS_URI) : NFPsPackage.eINSTANCE);
+ CoreElementsPackageImpl theCoreElementsPackage = (CoreElementsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(CoreElementsPackage.eNS_URI) instanceof CoreElementsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(CoreElementsPackage.eNS_URI) : CoreElementsPackage.eINSTANCE);
+ AllocPackageImpl theAllocPackage = (AllocPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(AllocPackage.eNS_URI) instanceof AllocPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(AllocPackage.eNS_URI) : AllocPackage.eINSTANCE);
+ TimePackageImpl theTimePackage = (TimePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(TimePackage.eNS_URI) instanceof TimePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(TimePackage.eNS_URI) : TimePackage.eINSTANCE);
+ GRMPackageImpl theGRMPackage = (GRMPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(GRMPackage.eNS_URI) instanceof GRMPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(GRMPackage.eNS_URI) : GRMPackage.eINSTANCE);
+ RSMPackageImpl theRSMPackage = (RSMPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(RSMPackage.eNS_URI) instanceof RSMPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(RSMPackage.eNS_URI) : RSMPackage.eINSTANCE);
+ VariablesPackageImpl theVariablesPackage = (VariablesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(VariablesPackage.eNS_URI) instanceof VariablesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(VariablesPackage.eNS_URI) : VariablesPackage.eINSTANCE);
+ OperatorsPackageImpl theOperatorsPackage = (OperatorsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(OperatorsPackage.eNS_URI) instanceof OperatorsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(OperatorsPackage.eNS_URI) : OperatorsPackage.eINSTANCE);
+ DataTypesPackageImpl theDataTypesPackage = (DataTypesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(DataTypesPackage.eNS_URI) instanceof DataTypesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(DataTypesPackage.eNS_URI) : DataTypesPackage.eINSTANCE);
+ HLAMPackageImpl theHLAMPackage = (HLAMPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(HLAMPackage.eNS_URI) instanceof HLAMPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(HLAMPackage.eNS_URI) : HLAMPackage.eINSTANCE);
+ HwComputingPackageImpl theHwComputingPackage = (HwComputingPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(HwComputingPackage.eNS_URI) instanceof HwComputingPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(HwComputingPackage.eNS_URI) : HwComputingPackage.eINSTANCE);
+ HwCommunicationPackageImpl theHwCommunicationPackage = (HwCommunicationPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(HwCommunicationPackage.eNS_URI) instanceof HwCommunicationPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(HwCommunicationPackage.eNS_URI) : HwCommunicationPackage.eINSTANCE);
+ HwStorageManagerPackageImpl theHwStorageManagerPackage = (HwStorageManagerPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(HwStorageManagerPackage.eNS_URI) instanceof HwStorageManagerPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(HwStorageManagerPackage.eNS_URI) : HwStorageManagerPackage.eINSTANCE);
+ HwMemoryPackageImpl theHwMemoryPackage = (HwMemoryPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(HwMemoryPackage.eNS_URI) instanceof HwMemoryPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(HwMemoryPackage.eNS_URI) : HwMemoryPackage.eINSTANCE);
+ HwTimingPackageImpl theHwTimingPackage = (HwTimingPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(HwTimingPackage.eNS_URI) instanceof HwTimingPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(HwTimingPackage.eNS_URI) : HwTimingPackage.eINSTANCE);
+ HwDevicePackageImpl theHwDevicePackage = (HwDevicePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(HwDevicePackage.eNS_URI) instanceof HwDevicePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(HwDevicePackage.eNS_URI) : HwDevicePackage.eINSTANCE);
+ HwGeneralPackageImpl theHwGeneralPackage = (HwGeneralPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(HwGeneralPackage.eNS_URI) instanceof HwGeneralPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(HwGeneralPackage.eNS_URI) : HwGeneralPackage.eINSTANCE);
+ HwLayoutPackageImpl theHwLayoutPackage = (HwLayoutPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(HwLayoutPackage.eNS_URI) instanceof HwLayoutPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(HwLayoutPackage.eNS_URI) : HwLayoutPackage.eINSTANCE);
+ HwPowerPackageImpl theHwPowerPackage = (HwPowerPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(HwPowerPackage.eNS_URI) instanceof HwPowerPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(HwPowerPackage.eNS_URI) : HwPowerPackage.eINSTANCE);
+ SW_ResourceCorePackageImpl theSW_ResourceCorePackage = (SW_ResourceCorePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SW_ResourceCorePackage.eNS_URI) instanceof SW_ResourceCorePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SW_ResourceCorePackage.eNS_URI) : SW_ResourceCorePackage.eINSTANCE);
+ SW_ConcurrencyPackageImpl theSW_ConcurrencyPackage = (SW_ConcurrencyPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SW_ConcurrencyPackage.eNS_URI) instanceof SW_ConcurrencyPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SW_ConcurrencyPackage.eNS_URI) : SW_ConcurrencyPackage.eINSTANCE);
+ SW_BrokeringPackageImpl theSW_BrokeringPackage = (SW_BrokeringPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SW_BrokeringPackage.eNS_URI) instanceof SW_BrokeringPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SW_BrokeringPackage.eNS_URI) : SW_BrokeringPackage.eINSTANCE);
+ SW_InteractionPackageImpl theSW_InteractionPackage = (SW_InteractionPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SW_InteractionPackage.eNS_URI) instanceof SW_InteractionPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SW_InteractionPackage.eNS_URI) : SW_InteractionPackage.eINSTANCE);
+ GQAMPackageImpl theGQAMPackage = (GQAMPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(GQAMPackage.eNS_URI) instanceof GQAMPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(GQAMPackage.eNS_URI) : GQAMPackage.eINSTANCE);
+ SAMPackageImpl theSAMPackage = (SAMPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SAMPackage.eNS_URI) instanceof SAMPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SAMPackage.eNS_URI) : SAMPackage.eINSTANCE);
+ PAMPackageImpl thePAMPackage = (PAMPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(PAMPackage.eNS_URI) instanceof PAMPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(PAMPackage.eNS_URI) : PAMPackage.eINSTANCE);
+ MeasurementUnitsPackageImpl theMeasurementUnitsPackage = (MeasurementUnitsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(MeasurementUnitsPackage.eNS_URI) instanceof MeasurementUnitsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(MeasurementUnitsPackage.eNS_URI) : MeasurementUnitsPackage.eINSTANCE);
+ GRM_BasicTypesPackageImpl theGRM_BasicTypesPackage = (GRM_BasicTypesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(GRM_BasicTypesPackage.eNS_URI) instanceof GRM_BasicTypesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(GRM_BasicTypesPackage.eNS_URI) : GRM_BasicTypesPackage.eINSTANCE);
+ MARTE_DataTypesPackageImpl theMARTE_DataTypesPackage = (MARTE_DataTypesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(MARTE_DataTypesPackage.eNS_URI) instanceof MARTE_DataTypesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(MARTE_DataTypesPackage.eNS_URI) : MARTE_DataTypesPackage.eINSTANCE);
+ BasicNFP_TypesPackageImpl theBasicNFP_TypesPackage = (BasicNFP_TypesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(BasicNFP_TypesPackage.eNS_URI) instanceof BasicNFP_TypesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(BasicNFP_TypesPackage.eNS_URI) : BasicNFP_TypesPackage.eINSTANCE);
+ TimeTypesLibraryPackageImpl theTimeTypesLibraryPackage = (TimeTypesLibraryPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(TimeTypesLibraryPackage.eNS_URI) instanceof TimeTypesLibraryPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(TimeTypesLibraryPackage.eNS_URI) : TimeTypesLibraryPackage.eINSTANCE);
+ TimeLibraryPackageImpl theTimeLibraryPackage = (TimeLibraryPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(TimeLibraryPackage.eNS_URI) instanceof TimeLibraryPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(TimeLibraryPackage.eNS_URI) : TimeLibraryPackage.eINSTANCE);
+ RS_LibraryPackageImpl theRS_LibraryPackage = (RS_LibraryPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(RS_LibraryPackage.eNS_URI) instanceof RS_LibraryPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(RS_LibraryPackage.eNS_URI) : RS_LibraryPackage.eINSTANCE);
+ MARTE_PrimitivesTypesPackageImpl theMARTE_PrimitivesTypesPackage = (MARTE_PrimitivesTypesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(MARTE_PrimitivesTypesPackage.eNS_URI) instanceof MARTE_PrimitivesTypesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(MARTE_PrimitivesTypesPackage.eNS_URI) : MARTE_PrimitivesTypesPackage.eINSTANCE);
+
+ // Create package meta-data objects
+ theGCMPackage.createPackageContents();
+ theMARTEPackage.createPackageContents();
+ theNFPsPackage.createPackageContents();
+ theCoreElementsPackage.createPackageContents();
+ theAllocPackage.createPackageContents();
+ theTimePackage.createPackageContents();
+ theGRMPackage.createPackageContents();
+ theRSMPackage.createPackageContents();
+ theVariablesPackage.createPackageContents();
+ theOperatorsPackage.createPackageContents();
+ theDataTypesPackage.createPackageContents();
+ theHLAMPackage.createPackageContents();
+ theHwComputingPackage.createPackageContents();
+ theHwCommunicationPackage.createPackageContents();
+ theHwStorageManagerPackage.createPackageContents();
+ theHwMemoryPackage.createPackageContents();
+ theHwTimingPackage.createPackageContents();
+ theHwDevicePackage.createPackageContents();
+ theHwGeneralPackage.createPackageContents();
+ theHwLayoutPackage.createPackageContents();
+ theHwPowerPackage.createPackageContents();
+ theSW_ResourceCorePackage.createPackageContents();
+ theSW_ConcurrencyPackage.createPackageContents();
+ theSW_BrokeringPackage.createPackageContents();
+ theSW_InteractionPackage.createPackageContents();
+ theGQAMPackage.createPackageContents();
+ theSAMPackage.createPackageContents();
+ thePAMPackage.createPackageContents();
+ theMeasurementUnitsPackage.createPackageContents();
+ theGRM_BasicTypesPackage.createPackageContents();
+ theMARTE_DataTypesPackage.createPackageContents();
+ theBasicNFP_TypesPackage.createPackageContents();
+ theTimeTypesLibraryPackage.createPackageContents();
+ theTimeLibraryPackage.createPackageContents();
+ theRS_LibraryPackage.createPackageContents();
+ theMARTE_PrimitivesTypesPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theGCMPackage.initializePackageContents();
+ theMARTEPackage.initializePackageContents();
+ theNFPsPackage.initializePackageContents();
+ theCoreElementsPackage.initializePackageContents();
+ theAllocPackage.initializePackageContents();
+ theTimePackage.initializePackageContents();
+ theGRMPackage.initializePackageContents();
+ theRSMPackage.initializePackageContents();
+ theVariablesPackage.initializePackageContents();
+ theOperatorsPackage.initializePackageContents();
+ theDataTypesPackage.initializePackageContents();
+ theHLAMPackage.initializePackageContents();
+ theHwComputingPackage.initializePackageContents();
+ theHwCommunicationPackage.initializePackageContents();
+ theHwStorageManagerPackage.initializePackageContents();
+ theHwMemoryPackage.initializePackageContents();
+ theHwTimingPackage.initializePackageContents();
+ theHwDevicePackage.initializePackageContents();
+ theHwGeneralPackage.initializePackageContents();
+ theHwLayoutPackage.initializePackageContents();
+ theHwPowerPackage.initializePackageContents();
+ theSW_ResourceCorePackage.initializePackageContents();
+ theSW_ConcurrencyPackage.initializePackageContents();
+ theSW_BrokeringPackage.initializePackageContents();
+ theSW_InteractionPackage.initializePackageContents();
+ theGQAMPackage.initializePackageContents();
+ theSAMPackage.initializePackageContents();
+ thePAMPackage.initializePackageContents();
+ theMeasurementUnitsPackage.initializePackageContents();
+ theGRM_BasicTypesPackage.initializePackageContents();
+ theMARTE_DataTypesPackage.initializePackageContents();
+ theBasicNFP_TypesPackage.initializePackageContents();
+ theTimeTypesLibraryPackage.initializePackageContents();
+ theTimeLibraryPackage.initializePackageContents();
+ theRS_LibraryPackage.initializePackageContents();
+ theMARTE_PrimitivesTypesPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theGCMPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(GCMPackage.eNS_URI, theGCMPackage);
+ return theGCMPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFlowProperty() {
+ return flowPropertyEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getFlowProperty_Direction() {
+ return (EAttribute)flowPropertyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getFlowProperty_Base_Property() {
+ return (EReference)flowPropertyEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFlowPort() {
+ return flowPortEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getFlowPort_IsAtomic() {
+ return (EAttribute)flowPortEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getFlowPort_Direction() {
+ return (EAttribute)flowPortEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getFlowPort_Base_Port() {
+ return (EReference)flowPortEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getClientServerPort() {
+ return clientServerPortEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClientServerPort_Base_Port() {
+ return (EReference)clientServerPortEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getClientServerPort_SpecificationKind() {
+ return (EAttribute)clientServerPortEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getClientServerPort_Kind() {
+ return (EAttribute)clientServerPortEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClientServerPort_ProvInterface() {
+ return (EReference)clientServerPortEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClientServerPort_ReqInterface() {
+ return (EReference)clientServerPortEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClientServerPort_FeaturesSpec() {
+ return (EReference)clientServerPortEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getClientServerSpecification() {
+ return clientServerSpecificationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClientServerSpecification_Base_Interface() {
+ return (EReference)clientServerSpecificationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFlowSpecification() {
+ return flowSpecificationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getFlowSpecification_Base_Interface() {
+ return (EReference)flowSpecificationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getClientServerFeature() {
+ return clientServerFeatureEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getClientServerFeature_Kind() {
+ return (EAttribute)clientServerFeatureEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClientServerFeature_Base_BehavioralFeature() {
+ return (EReference)clientServerFeatureEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getGCMTrigger() {
+ return gcmTriggerEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getGCMTrigger_Base_Trigger() {
+ return (EReference)gcmTriggerEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getGCMTrigger_Feature() {
+ return (EReference)gcmTriggerEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getGCMInvocationAction() {
+ return gcmInvocationActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getGCMInvocationAction_Base_InvocationAction() {
+ return (EReference)gcmInvocationActionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getGCMInvocationAction_OnFeature() {
+ return (EReference)gcmInvocationActionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDataEvent() {
+ return dataEventEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDataEvent_Base_AnyReceiveEvent() {
+ return (EReference)dataEventEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDataEvent_Classifier() {
+ return (EReference)dataEventEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDataPool() {
+ return dataPoolEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDataPool_Ordering() {
+ return (EAttribute)dataPoolEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDataPool_Base_Property() {
+ return (EReference)dataPoolEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDataPool_Insertion() {
+ return (EReference)dataPoolEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDataPool_Selection() {
+ return (EReference)dataPoolEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getGCMInvocatingBehavior() {
+ return gcmInvocatingBehaviorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getGCMInvocatingBehavior_Base_Behavior() {
+ return (EReference)gcmInvocatingBehaviorEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getGCMInvocatingBehavior_OnPorts() {
+ return (EReference)gcmInvocatingBehaviorEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getGCMInvocatingBehavior_OnFeatures() {
+ return (EReference)gcmInvocatingBehaviorEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getGCMInvocatingBehavior_Invocations() {
+ return (EReference)gcmInvocatingBehaviorEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getFlowDirectionKind() {
+ return flowDirectionKindEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getPortSpecificationKind() {
+ return portSpecificationKindEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getClientServerKind() {
+ return clientServerKindEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getDataPoolOrderingKind() {
+ return dataPoolOrderingKindEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GCMFactory getGCMFactory() {
+ return (GCMFactory)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
+ flowPropertyEClass = createEClass(FLOW_PROPERTY);
+ createEAttribute(flowPropertyEClass, FLOW_PROPERTY__DIRECTION);
+ createEReference(flowPropertyEClass, FLOW_PROPERTY__BASE_PROPERTY);
+
+ flowPortEClass = createEClass(FLOW_PORT);
+ createEAttribute(flowPortEClass, FLOW_PORT__IS_ATOMIC);
+ createEAttribute(flowPortEClass, FLOW_PORT__DIRECTION);
+ createEReference(flowPortEClass, FLOW_PORT__BASE_PORT);
+
+ clientServerPortEClass = createEClass(CLIENT_SERVER_PORT);
+ createEReference(clientServerPortEClass, CLIENT_SERVER_PORT__BASE_PORT);
+ createEAttribute(clientServerPortEClass, CLIENT_SERVER_PORT__SPECIFICATION_KIND);
+ createEAttribute(clientServerPortEClass, CLIENT_SERVER_PORT__KIND);
+ createEReference(clientServerPortEClass, CLIENT_SERVER_PORT__PROV_INTERFACE);
+ createEReference(clientServerPortEClass, CLIENT_SERVER_PORT__REQ_INTERFACE);
+ createEReference(clientServerPortEClass, CLIENT_SERVER_PORT__FEATURES_SPEC);
+
+ clientServerSpecificationEClass = createEClass(CLIENT_SERVER_SPECIFICATION);
+ createEReference(clientServerSpecificationEClass, CLIENT_SERVER_SPECIFICATION__BASE_INTERFACE);
+
+ flowSpecificationEClass = createEClass(FLOW_SPECIFICATION);
+ createEReference(flowSpecificationEClass, FLOW_SPECIFICATION__BASE_INTERFACE);
+
+ clientServerFeatureEClass = createEClass(CLIENT_SERVER_FEATURE);
+ createEAttribute(clientServerFeatureEClass, CLIENT_SERVER_FEATURE__KIND);
+ createEReference(clientServerFeatureEClass, CLIENT_SERVER_FEATURE__BASE_BEHAVIORAL_FEATURE);
+
+ gcmTriggerEClass = createEClass(GCM_TRIGGER);
+ createEReference(gcmTriggerEClass, GCM_TRIGGER__BASE_TRIGGER);
+ createEReference(gcmTriggerEClass, GCM_TRIGGER__FEATURE);
+
+ gcmInvocationActionEClass = createEClass(GCM_INVOCATION_ACTION);
+ createEReference(gcmInvocationActionEClass, GCM_INVOCATION_ACTION__BASE_INVOCATION_ACTION);
+ createEReference(gcmInvocationActionEClass, GCM_INVOCATION_ACTION__ON_FEATURE);
+
+ dataEventEClass = createEClass(DATA_EVENT);
+ createEReference(dataEventEClass, DATA_EVENT__BASE_ANY_RECEIVE_EVENT);
+ createEReference(dataEventEClass, DATA_EVENT__CLASSIFIER);
+
+ dataPoolEClass = createEClass(DATA_POOL);
+ createEAttribute(dataPoolEClass, DATA_POOL__ORDERING);
+ createEReference(dataPoolEClass, DATA_POOL__BASE_PROPERTY);
+ createEReference(dataPoolEClass, DATA_POOL__INSERTION);
+ createEReference(dataPoolEClass, DATA_POOL__SELECTION);
+
+ gcmInvocatingBehaviorEClass = createEClass(GCM_INVOCATING_BEHAVIOR);
+ createEReference(gcmInvocatingBehaviorEClass, GCM_INVOCATING_BEHAVIOR__BASE_BEHAVIOR);
+ createEReference(gcmInvocatingBehaviorEClass, GCM_INVOCATING_BEHAVIOR__ON_PORTS);
+ createEReference(gcmInvocatingBehaviorEClass, GCM_INVOCATING_BEHAVIOR__ON_FEATURES);
+ createEReference(gcmInvocatingBehaviorEClass, GCM_INVOCATING_BEHAVIOR__INVOCATIONS);
+
+ // Create enums
+ flowDirectionKindEEnum = createEEnum(FLOW_DIRECTION_KIND);
+ portSpecificationKindEEnum = createEEnum(PORT_SPECIFICATION_KIND);
+ clientServerKindEEnum = createEEnum(CLIENT_SERVER_KIND);
+ dataPoolOrderingKindEEnum = createEEnum(DATA_POOL_ORDERING_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);
+ MARTE_PrimitivesTypesPackage theMARTE_PrimitivesTypesPackage = (MARTE_PrimitivesTypesPackage)EPackage.Registry.INSTANCE.getEPackage(MARTE_PrimitivesTypesPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(flowPropertyEClass, FlowProperty.class, "FlowProperty", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getFlowProperty_Direction(), this.getFlowDirectionKind(), "direction", "inout", 1, 1, FlowProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getFlowProperty_Base_Property(), theUMLPackage.getProperty(), null, "base_Property", null, 1, 1, FlowProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(flowPortEClass, FlowPort.class, "FlowPort", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getFlowPort_IsAtomic(), theMARTE_PrimitivesTypesPackage.getBoolean(), "isAtomic", null, 1, 1, FlowPort.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getFlowPort_Direction(), this.getFlowDirectionKind(), "direction", "inout", 1, 1, FlowPort.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getFlowPort_Base_Port(), theUMLPackage.getPort(), null, "base_Port", null, 1, 1, FlowPort.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(clientServerPortEClass, ClientServerPort.class, "ClientServerPort", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getClientServerPort_Base_Port(), theUMLPackage.getPort(), null, "base_Port", null, 1, 1, ClientServerPort.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getClientServerPort_SpecificationKind(), this.getPortSpecificationKind(), "specificationKind", "interfaceBased", 1, 1, ClientServerPort.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getClientServerPort_Kind(), this.getClientServerKind(), "kind", "proreq", 1, 1, ClientServerPort.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getClientServerPort_ProvInterface(), theUMLPackage.getInterface(), null, "provInterface", null, 0, -1, ClientServerPort.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getClientServerPort_ReqInterface(), theUMLPackage.getInterface(), null, "reqInterface", null, 0, -1, ClientServerPort.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getClientServerPort_FeaturesSpec(), this.getClientServerSpecification(), null, "featuresSpec", null, 0, 1, ClientServerPort.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(clientServerSpecificationEClass, ClientServerSpecification.class, "ClientServerSpecification", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getClientServerSpecification_Base_Interface(), theUMLPackage.getInterface(), null, "base_Interface", null, 1, 1, ClientServerSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(flowSpecificationEClass, FlowSpecification.class, "FlowSpecification", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getFlowSpecification_Base_Interface(), theUMLPackage.getInterface(), null, "base_Interface", null, 1, 1, FlowSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(clientServerFeatureEClass, ClientServerFeature.class, "ClientServerFeature", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getClientServerFeature_Kind(), this.getClientServerKind(), "kind", "proreq", 1, 1, ClientServerFeature.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getClientServerFeature_Base_BehavioralFeature(), theUMLPackage.getBehavioralFeature(), null, "base_BehavioralFeature", null, 1, 1, ClientServerFeature.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(gcmTriggerEClass, GCMTrigger.class, "GCMTrigger", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getGCMTrigger_Base_Trigger(), theUMLPackage.getTrigger(), null, "base_Trigger", null, 1, 1, GCMTrigger.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getGCMTrigger_Feature(), theUMLPackage.getFeature(), null, "feature", null, 1, 1, GCMTrigger.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(gcmInvocationActionEClass, GCMInvocationAction.class, "GCMInvocationAction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getGCMInvocationAction_Base_InvocationAction(), theUMLPackage.getInvocationAction(), null, "base_InvocationAction", null, 1, 1, GCMInvocationAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getGCMInvocationAction_OnFeature(), theUMLPackage.getFeature(), null, "onFeature", null, 1, 1, GCMInvocationAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(dataEventEClass, DataEvent.class, "DataEvent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getDataEvent_Base_AnyReceiveEvent(), theUMLPackage.getAnyReceiveEvent(), null, "base_AnyReceiveEvent", null, 1, 1, DataEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getDataEvent_Classifier(), theUMLPackage.getClassifier(), null, "classifier", null, 1, 1, DataEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(dataPoolEClass, DataPool.class, "DataPool", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getDataPool_Ordering(), this.getDataPoolOrderingKind(), "ordering", "FIFO", 1, 1, DataPool.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getDataPool_Base_Property(), theUMLPackage.getProperty(), null, "base_Property", null, 1, 1, DataPool.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getDataPool_Insertion(), theUMLPackage.getBehavior(), null, "insertion", null, 0, 1, DataPool.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getDataPool_Selection(), theUMLPackage.getBehavior(), null, "selection", null, 0, 1, DataPool.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(gcmInvocatingBehaviorEClass, GCMInvocatingBehavior.class, "GCMInvocatingBehavior", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getGCMInvocatingBehavior_Base_Behavior(), theUMLPackage.getBehavior(), null, "base_Behavior", null, 1, 1, GCMInvocatingBehavior.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getGCMInvocatingBehavior_OnPorts(), theUMLPackage.getPort(), null, "onPorts", null, 0, -1, GCMInvocatingBehavior.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getGCMInvocatingBehavior_OnFeatures(), theUMLPackage.getFeature(), null, "onFeatures", null, 0, -1, GCMInvocatingBehavior.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getGCMInvocatingBehavior_Invocations(), theUMLPackage.getInvocationAction(), null, "invocations", null, 0, -1, GCMInvocatingBehavior.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ // Initialize enums and add enum literals
+ initEEnum(flowDirectionKindEEnum, FlowDirectionKind.class, "FlowDirectionKind");
+ addEEnumLiteral(flowDirectionKindEEnum, FlowDirectionKind.IN);
+ addEEnumLiteral(flowDirectionKindEEnum, FlowDirectionKind.OUT);
+ addEEnumLiteral(flowDirectionKindEEnum, FlowDirectionKind.INOUT);
+
+ initEEnum(portSpecificationKindEEnum, PortSpecificationKind.class, "PortSpecificationKind");
+ addEEnumLiteral(portSpecificationKindEEnum, PortSpecificationKind.ATOMIC);
+ addEEnumLiteral(portSpecificationKindEEnum, PortSpecificationKind.INTERFACE_BASED);
+ addEEnumLiteral(portSpecificationKindEEnum, PortSpecificationKind.FEATURE_BASED);
+
+ initEEnum(clientServerKindEEnum, ClientServerKind.class, "ClientServerKind");
+ addEEnumLiteral(clientServerKindEEnum, ClientServerKind.REQUIRED);
+ addEEnumLiteral(clientServerKindEEnum, ClientServerKind.PROVIDED);
+ addEEnumLiteral(clientServerKindEEnum, ClientServerKind.PROREQ);
+
+ initEEnum(dataPoolOrderingKindEEnum, DataPoolOrderingKind.class, "DataPoolOrderingKind");
+ addEEnumLiteral(dataPoolOrderingKindEEnum, DataPoolOrderingKind.FIFO);
+ addEEnumLiteral(dataPoolOrderingKindEEnum, DataPoolOrderingKind.LIFO);
+ addEEnumLiteral(dataPoolOrderingKindEEnum, DataPoolOrderingKind.USER_DEFINED);
+ }
+
+} //GCMPackageImpl
diff --git a/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/GCMTriggerImpl.java b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/GCMTriggerImpl.java
new file mode 100644
index 00000000000..ad63c228075
--- /dev/null
+++ b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/impl/GCMTriggerImpl.java
@@ -0,0 +1,230 @@
+/*****************************************************************************
+ * Copyright (c) 2010 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:
+ * Chokri MRAIDHA (CEA LIST) chokri.mraidha@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.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.MARTE.MARTE_DesignModel.GCM.GCMPackage;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMTrigger;
+
+import org.eclipse.uml2.uml.Feature;
+import org.eclipse.uml2.uml.Trigger;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Trigger</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMTriggerImpl#getBase_Trigger <em>Base Trigger</em>}</li>
+ * <li>{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.impl.GCMTriggerImpl#getFeature <em>Feature</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class GCMTriggerImpl extends EObjectImpl implements GCMTrigger {
+ /**
+ * The cached value of the '{@link #getBase_Trigger() <em>Base Trigger</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Trigger()
+ * @generated
+ * @ordered
+ */
+ protected Trigger base_Trigger;
+
+ /**
+ * The cached value of the '{@link #getFeature() <em>Feature</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFeature()
+ * @generated
+ * @ordered
+ */
+ protected Feature feature;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GCMTriggerImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return GCMPackage.Literals.GCM_TRIGGER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Trigger getBase_Trigger() {
+ if (base_Trigger != null && base_Trigger.eIsProxy()) {
+ InternalEObject oldBase_Trigger = (InternalEObject)base_Trigger;
+ base_Trigger = (Trigger)eResolveProxy(oldBase_Trigger);
+ if (base_Trigger != oldBase_Trigger) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, GCMPackage.GCM_TRIGGER__BASE_TRIGGER, oldBase_Trigger, base_Trigger));
+ }
+ }
+ return base_Trigger;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Trigger basicGetBase_Trigger() {
+ return base_Trigger;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Trigger(Trigger newBase_Trigger) {
+ Trigger oldBase_Trigger = base_Trigger;
+ base_Trigger = newBase_Trigger;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, GCMPackage.GCM_TRIGGER__BASE_TRIGGER, oldBase_Trigger, base_Trigger));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Feature getFeature() {
+ if (feature != null && feature.eIsProxy()) {
+ InternalEObject oldFeature = (InternalEObject)feature;
+ feature = (Feature)eResolveProxy(oldFeature);
+ if (feature != oldFeature) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, GCMPackage.GCM_TRIGGER__FEATURE, oldFeature, feature));
+ }
+ }
+ return feature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Feature basicGetFeature() {
+ return feature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFeature(Feature newFeature) {
+ Feature oldFeature = feature;
+ feature = newFeature;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, GCMPackage.GCM_TRIGGER__FEATURE, oldFeature, feature));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case GCMPackage.GCM_TRIGGER__BASE_TRIGGER:
+ if (resolve) return getBase_Trigger();
+ return basicGetBase_Trigger();
+ case GCMPackage.GCM_TRIGGER__FEATURE:
+ if (resolve) return getFeature();
+ return basicGetFeature();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case GCMPackage.GCM_TRIGGER__BASE_TRIGGER:
+ setBase_Trigger((Trigger)newValue);
+ return;
+ case GCMPackage.GCM_TRIGGER__FEATURE:
+ setFeature((Feature)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case GCMPackage.GCM_TRIGGER__BASE_TRIGGER:
+ setBase_Trigger((Trigger)null);
+ return;
+ case GCMPackage.GCM_TRIGGER__FEATURE:
+ setFeature((Feature)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case GCMPackage.GCM_TRIGGER__BASE_TRIGGER:
+ return base_Trigger != null;
+ case GCMPackage.GCM_TRIGGER__FEATURE:
+ return feature != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //GCMTriggerImpl
diff --git a/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/util/GCMAdapterFactory.java b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/util/GCMAdapterFactory.java
new file mode 100644
index 00000000000..66bebd8ee98
--- /dev/null
+++ b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/util/GCMAdapterFactory.java
@@ -0,0 +1,311 @@
+/*****************************************************************************
+ * Copyright (c) 2010 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:
+ * Chokri MRAIDHA (CEA LIST) chokri.mraidha@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.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.MARTE.MARTE_DesignModel.GCM.*;
+
+/**
+ * <!-- 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.MARTE.MARTE_DesignModel.GCM.GCMPackage
+ * @generated
+ */
+public class GCMAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static GCMPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GCMAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = GCMPackage.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 GCMSwitch<Adapter> modelSwitch =
+ new GCMSwitch<Adapter>() {
+ @Override
+ public Adapter caseFlowProperty(FlowProperty object) {
+ return createFlowPropertyAdapter();
+ }
+ @Override
+ public Adapter caseFlowPort(FlowPort object) {
+ return createFlowPortAdapter();
+ }
+ @Override
+ public Adapter caseClientServerPort(ClientServerPort object) {
+ return createClientServerPortAdapter();
+ }
+ @Override
+ public Adapter caseClientServerSpecification(ClientServerSpecification object) {
+ return createClientServerSpecificationAdapter();
+ }
+ @Override
+ public Adapter caseFlowSpecification(FlowSpecification object) {
+ return createFlowSpecificationAdapter();
+ }
+ @Override
+ public Adapter caseClientServerFeature(ClientServerFeature object) {
+ return createClientServerFeatureAdapter();
+ }
+ @Override
+ public Adapter caseGCMTrigger(GCMTrigger object) {
+ return createGCMTriggerAdapter();
+ }
+ @Override
+ public Adapter caseGCMInvocationAction(GCMInvocationAction object) {
+ return createGCMInvocationActionAdapter();
+ }
+ @Override
+ public Adapter caseDataEvent(DataEvent object) {
+ return createDataEventAdapter();
+ }
+ @Override
+ public Adapter caseDataPool(DataPool object) {
+ return createDataPoolAdapter();
+ }
+ @Override
+ public Adapter caseGCMInvocatingBehavior(GCMInvocatingBehavior object) {
+ return createGCMInvocatingBehaviorAdapter();
+ }
+ @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.MARTE.MARTE_DesignModel.GCM.FlowProperty <em>Flow 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.MARTE.MARTE_DesignModel.GCM.FlowProperty
+ * @generated
+ */
+ public Adapter createFlowPropertyAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowPort <em>Flow 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.MARTE.MARTE_DesignModel.GCM.FlowPort
+ * @generated
+ */
+ public Adapter createFlowPortAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerPort <em>Client Server 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.MARTE.MARTE_DesignModel.GCM.ClientServerPort
+ * @generated
+ */
+ public Adapter createClientServerPortAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerSpecification <em>Client Server Specification</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.MARTE.MARTE_DesignModel.GCM.ClientServerSpecification
+ * @generated
+ */
+ public Adapter createClientServerSpecificationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.FlowSpecification <em>Flow Specification</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.MARTE.MARTE_DesignModel.GCM.FlowSpecification
+ * @generated
+ */
+ public Adapter createFlowSpecificationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.ClientServerFeature <em>Client Server Feature</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.MARTE.MARTE_DesignModel.GCM.ClientServerFeature
+ * @generated
+ */
+ public Adapter createClientServerFeatureAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMTrigger <em>Trigger</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.MARTE.MARTE_DesignModel.GCM.GCMTrigger
+ * @generated
+ */
+ public Adapter createGCMTriggerAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMInvocationAction <em>Invocation Action</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.MARTE.MARTE_DesignModel.GCM.GCMInvocationAction
+ * @generated
+ */
+ public Adapter createGCMInvocationActionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataEvent <em>Data Event</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.MARTE.MARTE_DesignModel.GCM.DataEvent
+ * @generated
+ */
+ public Adapter createDataEventAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.DataPool <em>Data Pool</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.MARTE.MARTE_DesignModel.GCM.DataPool
+ * @generated
+ */
+ public Adapter createDataPoolAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.GCMInvocatingBehavior <em>Invocating Behavior</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.MARTE.MARTE_DesignModel.GCM.GCMInvocatingBehavior
+ * @generated
+ */
+ public Adapter createGCMInvocatingBehaviorAdapter() {
+ 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;
+ }
+
+} //GCMAdapterFactory
diff --git a/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/util/GCMResourceFactoryImpl.java b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/util/GCMResourceFactoryImpl.java
new file mode 100644
index 00000000000..5cf45997399
--- /dev/null
+++ b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/util/GCMResourceFactoryImpl.java
@@ -0,0 +1,63 @@
+/*****************************************************************************
+ * Copyright (c) 2010 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:
+ * Chokri MRAIDHA (CEA LIST) chokri.mraidha@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.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.MARTE.MARTE_DesignModel.GCM.util.GCMResourceImpl
+ * @generated
+ */
+public class GCMResourceFactoryImpl extends ResourceFactoryImpl {
+ /**
+ * Creates an instance of the resource factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GCMResourceFactoryImpl() {
+ super();
+ }
+
+ /**
+ * Creates an instance of the resource.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Resource createResource(URI uri) {
+ XMLResource result = new GCMResourceImpl(uri);
+ result.getDefaultSaveOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE);
+ result.getDefaultLoadOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE);
+
+ result.getDefaultSaveOptions().put(XMLResource.OPTION_SCHEMA_LOCATION, Boolean.TRUE);
+
+ result.getDefaultLoadOptions().put(XMLResource.OPTION_USE_ENCODED_ATTRIBUTE_STYLE, Boolean.TRUE);
+ result.getDefaultSaveOptions().put(XMLResource.OPTION_USE_ENCODED_ATTRIBUTE_STYLE, Boolean.TRUE);
+
+ result.getDefaultLoadOptions().put(XMLResource.OPTION_USE_LEXICAL_HANDLER, Boolean.TRUE);
+ return result;
+ }
+
+} //GCMResourceFactoryImpl
diff --git a/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/util/GCMResourceImpl.java b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/util/GCMResourceImpl.java
new file mode 100644
index 00000000000..4f345b31d9d
--- /dev/null
+++ b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/util/GCMResourceImpl.java
@@ -0,0 +1,39 @@
+/*****************************************************************************
+ * Copyright (c) 2010 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:
+ * Chokri MRAIDHA (CEA LIST) chokri.mraidha@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.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.MARTE.MARTE_DesignModel.GCM.util.GCMResourceFactoryImpl
+ * @generated
+ */
+public class GCMResourceImpl extends XMLResourceImpl {
+ /**
+ * Creates an instance of the resource.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param uri the URI of the new resource.
+ * @generated
+ */
+ public GCMResourceImpl(URI uri) {
+ super(uri);
+ }
+
+} //GCMResourceImpl
diff --git a/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/util/GCMSwitch.java b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/util/GCMSwitch.java
new file mode 100644
index 00000000000..a3d4038cc8d
--- /dev/null
+++ b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/util/GCMSwitch.java
@@ -0,0 +1,347 @@
+/*****************************************************************************
+ * Copyright (c) 2010 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:
+ * Chokri MRAIDHA (CEA LIST) chokri.mraidha@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.util;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.*;
+
+/**
+ * <!-- 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.MARTE.MARTE_DesignModel.GCM.GCMPackage
+ * @generated
+ */
+public class GCMSwitch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static GCMPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GCMSwitch() {
+ if (modelPackage == null) {
+ modelPackage = GCMPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * 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
+ */
+ public T doSwitch(EObject theEObject) {
+ return doSwitch(theEObject.eClass(), theEObject);
+ }
+
+ /**
+ * 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
+ */
+ protected T doSwitch(EClass theEClass, EObject theEObject) {
+ if (theEClass.eContainer() == modelPackage) {
+ return doSwitch(theEClass.getClassifierID(), theEObject);
+ }
+ else {
+ List<EClass> eSuperTypes = theEClass.getESuperTypes();
+ return
+ eSuperTypes.isEmpty() ?
+ defaultCase(theEObject) :
+ doSwitch(eSuperTypes.get(0), theEObject);
+ }
+ }
+
+ /**
+ * 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
+ */
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case GCMPackage.FLOW_PROPERTY: {
+ FlowProperty flowProperty = (FlowProperty)theEObject;
+ T result = caseFlowProperty(flowProperty);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case GCMPackage.FLOW_PORT: {
+ FlowPort flowPort = (FlowPort)theEObject;
+ T result = caseFlowPort(flowPort);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case GCMPackage.CLIENT_SERVER_PORT: {
+ ClientServerPort clientServerPort = (ClientServerPort)theEObject;
+ T result = caseClientServerPort(clientServerPort);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case GCMPackage.CLIENT_SERVER_SPECIFICATION: {
+ ClientServerSpecification clientServerSpecification = (ClientServerSpecification)theEObject;
+ T result = caseClientServerSpecification(clientServerSpecification);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case GCMPackage.FLOW_SPECIFICATION: {
+ FlowSpecification flowSpecification = (FlowSpecification)theEObject;
+ T result = caseFlowSpecification(flowSpecification);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case GCMPackage.CLIENT_SERVER_FEATURE: {
+ ClientServerFeature clientServerFeature = (ClientServerFeature)theEObject;
+ T result = caseClientServerFeature(clientServerFeature);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case GCMPackage.GCM_TRIGGER: {
+ GCMTrigger gcmTrigger = (GCMTrigger)theEObject;
+ T result = caseGCMTrigger(gcmTrigger);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case GCMPackage.GCM_INVOCATION_ACTION: {
+ GCMInvocationAction gcmInvocationAction = (GCMInvocationAction)theEObject;
+ T result = caseGCMInvocationAction(gcmInvocationAction);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case GCMPackage.DATA_EVENT: {
+ DataEvent dataEvent = (DataEvent)theEObject;
+ T result = caseDataEvent(dataEvent);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case GCMPackage.DATA_POOL: {
+ DataPool dataPool = (DataPool)theEObject;
+ T result = caseDataPool(dataPool);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case GCMPackage.GCM_INVOCATING_BEHAVIOR: {
+ GCMInvocatingBehavior gcmInvocatingBehavior = (GCMInvocatingBehavior)theEObject;
+ T result = caseGCMInvocatingBehavior(gcmInvocatingBehavior);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Flow 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>Flow Property</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFlowProperty(FlowProperty object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Flow 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>Flow Port</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFlowPort(FlowPort object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Client Server 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>Client Server Port</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseClientServerPort(ClientServerPort object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Client Server Specification</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>Client Server Specification</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseClientServerSpecification(ClientServerSpecification object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Flow Specification</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>Flow Specification</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFlowSpecification(FlowSpecification object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Client Server Feature</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>Client Server Feature</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseClientServerFeature(ClientServerFeature object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Trigger</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>Trigger</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseGCMTrigger(GCMTrigger object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Invocation Action</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>Invocation Action</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseGCMInvocationAction(GCMInvocationAction object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Data Event</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>Data Event</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDataEvent(DataEvent object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Data Pool</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>Data Pool</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDataPool(DataPool object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Invocating Behavior</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>Invocating Behavior</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseGCMInvocatingBehavior(GCMInvocatingBehavior 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
+ */
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //GCMSwitch
diff --git a/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/util/GCMXMLProcessor.java b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/util/GCMXMLProcessor.java
new file mode 100644
index 00000000000..0d564740032
--- /dev/null
+++ b/extraplugins/marte/org.eclipse.papyrus.marte.static.profile/src/org/eclipse/papyrus/MARTE/MARTE_DesignModel/GCM/util/GCMXMLProcessor.java
@@ -0,0 +1,61 @@
+/*****************************************************************************
+ * Copyright (c) 2010 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:
+ * Chokri MRAIDHA (CEA LIST) chokri.mraidha@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.MARTE.MARTE_DesignModel.GCM.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.MARTE.MARTE_DesignModel.GCM.GCMPackage;
+
+/**
+ * This class contains helper methods to serialize and deserialize XML documents
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class GCMXMLProcessor extends XMLProcessor {
+
+ /**
+ * Public constructor to instantiate the helper.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GCMXMLProcessor() {
+ super((EPackage.Registry.INSTANCE));
+ GCMPackage.eINSTANCE.eClass();
+ }
+
+ /**
+ * Register for "*" and "xml" file extensions the GCMResourceFactoryImpl 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 GCMResourceFactoryImpl());
+ registrations.put(STAR_EXTENSION, new GCMResourceFactoryImpl());
+ }
+ return registrations;
+ }
+
+} //GCMXMLProcessor

Back to the top