diff --git a/plugins/org.eclipse.uml2.uml.edit/plugin.properties b/plugins/org.eclipse.uml2.uml.edit/plugin.properties
index 90c9de8..27076ee 100644
--- a/plugins/org.eclipse.uml2.uml.edit/plugin.properties
+++ b/plugins/org.eclipse.uml2.uml.edit/plugin.properties
@@ -7,9 +7,8 @@
 # Contributors:
 #   IBM - initial API and implementation
 #   Kenn Hussey (Embarcadero Technologies) - 204200
-#   Kenn Hussey (CEA) - 327039
+#   Kenn Hussey (CEA) - 327039, 351774
 #
-# $Id: plugin.properties,v 1.20 2009/04/30 21:15:26 jbruck Exp $
 
 # NLS_MESSAGEFORMAT_VAR
 
@@ -869,6 +868,8 @@
 _UI_StructuredActivityNode_structuredNodeInput_feature = Structured Node Input
 _UI_StructuredActivityNode_structuredNodeOutput_feature = Structured Node Output
 _UI_WriteStructuralFeatureAction_result_feature = Result
+_UI_Activity_ownedGroup_feature = Group
+_UI_Activity_ownedNode_feature = Node
 _UI_Unknown_feature = Unspecified
 
 _UI_VisibilityKind_public_literal = Public
diff --git a/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/ActivityEdgeItemProvider.java b/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/ActivityEdgeItemProvider.java
index 265940d..a2e187c 100644
--- a/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/ActivityEdgeItemProvider.java
+++ b/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/ActivityEdgeItemProvider.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 215418, 204200
  *   Kenn Hussey - 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ActivityEdgeItemProvider.java,v 1.12 2010/09/28 21:00:19 khussey Exp $
  */
 package org.eclipse.uml2.uml.edit.providers;
 
@@ -71,8 +70,8 @@
 		if (itemPropertyDescriptors == null) {
 			super.getPropertyDescriptors(object);
 
+			addActivityPropertyDescriptor(object);
 			addGuardPropertyDescriptor(object);
-			addInGroupPropertyDescriptor(object);
 			addInPartitionPropertyDescriptor(object);
 			addInStructuredNodePropertyDescriptor(object);
 			addInterruptsPropertyDescriptor(object);
@@ -80,7 +79,7 @@
 			addSourcePropertyDescriptor(object);
 			addTargetPropertyDescriptor(object);
 			addWeightPropertyDescriptor(object);
-			addActivityPropertyDescriptor(object);
+			addInGroupPropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
 	}
diff --git a/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/ActivityGroupItemProvider.java b/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/ActivityGroupItemProvider.java
index 1f56854..0899267 100644
--- a/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/ActivityGroupItemProvider.java
+++ b/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/ActivityGroupItemProvider.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 215418, 204200
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ActivityGroupItemProvider.java,v 1.10 2009/12/02 18:27:49 jbruck Exp $
  */
 package org.eclipse.uml2.uml.edit.providers;
 
@@ -66,11 +65,11 @@
 		if (itemPropertyDescriptors == null) {
 			super.getPropertyDescriptors(object);
 
+			addContainedEdgePropertyDescriptor(object);
 			addContainedNodePropertyDescriptor(object);
 			addInActivityPropertyDescriptor(object);
 			addSubgroupPropertyDescriptor(object);
 			addSuperGroupPropertyDescriptor(object);
-			addContainedEdgePropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
 	}
diff --git a/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/ActivityItemProvider.java b/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/ActivityItemProvider.java
index ca767bd..5354418 100644
--- a/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/ActivityItemProvider.java
+++ b/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/ActivityItemProvider.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 215418, 204200
  *   Kenn Hussey - 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ActivityItemProvider.java,v 1.24 2010/09/28 21:00:19 khussey Exp $
  */
 package org.eclipse.uml2.uml.edit.providers;
 
@@ -81,12 +80,12 @@
 			super.getPropertyDescriptors(object);
 
 			addEdgePropertyDescriptor(object);
-			addGroupPropertyDescriptor(object);
-			addStructuredNodePropertyDescriptor(object);
 			addVariablePropertyDescriptor(object);
+			addGroupPropertyDescriptor(object);
 			addIsReadOnlyPropertyDescriptor(object);
 			addIsSingleExecutionPropertyDescriptor(object);
 			addPartitionPropertyDescriptor(object);
+			addStructuredNodePropertyDescriptor(object);
 			addNodePropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
@@ -128,8 +127,7 @@
 				getString(
 					"_UI_PropertyDescriptor_description", "_UI_Activity_group_feature", "_UI_Activity_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 				UMLPackage.Literals.ACTIVITY__GROUP, true, false, true, null,
-				null, new String[]{"org.eclipse.ui.views.properties.expert" //$NON-NLS-1$
-				}));
+				null, null));
 	}
 
 	/**
@@ -188,8 +186,7 @@
 				getString(
 					"_UI_PropertyDescriptor_description", "_UI_Activity_node_feature", "_UI_Activity_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 				UMLPackage.Literals.ACTIVITY__NODE, true, false, true, null,
-				null, new String[]{"org.eclipse.ui.views.properties.expert" //$NON-NLS-1$
-				}));
+				null, null));
 	}
 
 	/**
@@ -226,8 +223,8 @@
 				getString("_UI_Activity_structuredNode_feature"), //$NON-NLS-1$
 				getString(
 					"_UI_PropertyDescriptor_description", "_UI_Activity_structuredNode_feature", "_UI_Activity_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				UMLPackage.Literals.ACTIVITY__STRUCTURED_NODE, false, false,
-				false, null, null,
+				UMLPackage.Literals.ACTIVITY__STRUCTURED_NODE, true, false,
+				true, null, null,
 				new String[]{"org.eclipse.ui.views.properties.expert" //$NON-NLS-1$
 				}));
 	}
@@ -266,10 +263,10 @@
 			Object object) {
 		if (childrenFeatures == null) {
 			super.getChildrenFeatures(object);
-			childrenFeatures.add(UMLPackage.Literals.ACTIVITY__EDGE);
-			childrenFeatures.add(UMLPackage.Literals.ACTIVITY__GROUP);
+			childrenFeatures.add(UMLPackage.Literals.ACTIVITY__OWNED_GROUP);
 			childrenFeatures.add(UMLPackage.Literals.ACTIVITY__VARIABLE);
-			childrenFeatures.add(UMLPackage.Literals.ACTIVITY__NODE);
+			childrenFeatures.add(UMLPackage.Literals.ACTIVITY__OWNED_NODE);
+			childrenFeatures.add(UMLPackage.Literals.ACTIVITY__STRUCTURED_NODE);
 		}
 		return childrenFeatures;
 	}
@@ -334,17 +331,19 @@
 		updateChildren(notification);
 
 		switch (notification.getFeatureID(Activity.class)) {
-			case UMLPackage.ACTIVITY__STRUCTURED_NODE :
+			case UMLPackage.ACTIVITY__EDGE :
+			case UMLPackage.ACTIVITY__GROUP :
 			case UMLPackage.ACTIVITY__IS_READ_ONLY :
 			case UMLPackage.ACTIVITY__IS_SINGLE_EXECUTION :
 			case UMLPackage.ACTIVITY__PARTITION :
+			case UMLPackage.ACTIVITY__NODE :
 				fireNotifyChanged(new ViewerNotification(notification,
 					notification.getNotifier(), false, true));
 				return;
-			case UMLPackage.ACTIVITY__EDGE :
-			case UMLPackage.ACTIVITY__GROUP :
+			case UMLPackage.ACTIVITY__OWNED_GROUP :
 			case UMLPackage.ACTIVITY__VARIABLE :
-			case UMLPackage.ACTIVITY__NODE :
+			case UMLPackage.ACTIVITY__OWNED_NODE :
+			case UMLPackage.ACTIVITY__STRUCTURED_NODE :
 				fireNotifyChanged(new ViewerNotification(notification,
 					notification.getNotifier(), true, false));
 				return;
@@ -365,6 +364,34 @@
 		super.collectNewChildDescriptors(newChildDescriptors, object);
 
 		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_GROUP,
+			UMLFactory.eINSTANCE.createActivityPartition()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_GROUP,
+			UMLFactory.eINSTANCE.createStructuredActivityNode()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_GROUP,
+			UMLFactory.eINSTANCE.createInterruptibleActivityRegion()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_GROUP,
+			UMLFactory.eINSTANCE.createConditionalNode()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_GROUP,
+			UMLFactory.eINSTANCE.createExpansionRegion()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_GROUP,
+			UMLFactory.eINSTANCE.createLoopNode()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_GROUP,
+			UMLFactory.eINSTANCE.createSequenceNode()));
+
+		newChildDescriptors.add(createChildParameter(
 			UMLPackage.Literals.ACTIVITY__EDGE,
 			UMLFactory.eINSTANCE.createControlFlow()));
 
@@ -373,288 +400,260 @@
 			UMLFactory.eINSTANCE.createObjectFlow()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__GROUP,
-			UMLFactory.eINSTANCE.createActivityPartition()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__GROUP,
-			UMLFactory.eINSTANCE.createStructuredActivityNode()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__GROUP,
-			UMLFactory.eINSTANCE.createInterruptibleActivityRegion()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__GROUP,
-			UMLFactory.eINSTANCE.createConditionalNode()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__GROUP,
-			UMLFactory.eINSTANCE.createExpansionRegion()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__GROUP,
-			UMLFactory.eINSTANCE.createLoopNode()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__GROUP,
-			UMLFactory.eINSTANCE.createSequenceNode()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__STRUCTURED_NODE,
-			UMLFactory.eINSTANCE.createStructuredActivityNode()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__STRUCTURED_NODE,
-			UMLFactory.eINSTANCE.createConditionalNode()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__STRUCTURED_NODE,
-			UMLFactory.eINSTANCE.createExpansionRegion()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__STRUCTURED_NODE,
-			UMLFactory.eINSTANCE.createLoopNode()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__STRUCTURED_NODE,
-			UMLFactory.eINSTANCE.createSequenceNode()));
-
-		newChildDescriptors.add(createChildParameter(
 			UMLPackage.Literals.ACTIVITY__VARIABLE,
 			UMLFactory.eINSTANCE.createVariable()));
 
 		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createAcceptEventAction()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createAcceptCallAction()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createStructuredActivityNode()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createInputPin()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createOutputPin()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createActionInputPin()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createActivityFinalNode()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createActivityParameterNode()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createAddStructuralFeatureValueAction()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createAddVariableValueAction()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createBroadcastSignalAction()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createCallBehaviorAction()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createCallOperationAction()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createCentralBufferNode()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createClearAssociationAction()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createClearStructuralFeatureAction()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createClearVariableAction()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createConditionalNode()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createCreateLinkAction()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createCreateLinkObjectAction()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createCreateObjectAction()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createDataStoreNode()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createDecisionNode()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createDestroyLinkAction()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createDestroyObjectAction()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createExpansionNode()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createExpansionRegion()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createFlowFinalNode()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createForkNode()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createInitialNode()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createJoinNode()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createLoopNode()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createMergeNode()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createOpaqueAction()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createRaiseExceptionAction()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createReadExtentAction()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createReadIsClassifiedObjectAction()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createReadLinkAction()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createReadLinkObjectEndAction()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createReadLinkObjectEndQualifierAction()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createReadSelfAction()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createReadStructuralFeatureAction()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createReadVariableAction()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createReclassifyObjectAction()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createReduceAction()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createRemoveStructuralFeatureValueAction()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createRemoveVariableValueAction()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createReplyAction()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createSendObjectAction()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createSendSignalAction()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createSequenceNode()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createStartClassifierBehaviorAction()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createStartObjectBehaviorAction()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createTestIdentityAction()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createUnmarshallAction()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createValuePin()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+			UMLFactory.eINSTANCE.createValueSpecificationAction()));
+
+		newChildDescriptors.add(createChildParameter(
 			UMLPackage.Literals.ACTIVITY__PARTITION,
 			UMLFactory.eINSTANCE.createActivityPartition()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createAcceptEventAction()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createAcceptCallAction()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
+			UMLPackage.Literals.ACTIVITY__STRUCTURED_NODE,
 			UMLFactory.eINSTANCE.createStructuredActivityNode()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createInputPin()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createOutputPin()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createActionInputPin()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createActivityFinalNode()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createActivityParameterNode()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createAddStructuralFeatureValueAction()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createAddVariableValueAction()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createBroadcastSignalAction()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createCallBehaviorAction()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createCallOperationAction()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createCentralBufferNode()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createClearAssociationAction()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createClearStructuralFeatureAction()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createClearVariableAction()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
+			UMLPackage.Literals.ACTIVITY__STRUCTURED_NODE,
 			UMLFactory.eINSTANCE.createConditionalNode()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createCreateLinkAction()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createCreateLinkObjectAction()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createCreateObjectAction()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createDataStoreNode()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createDecisionNode()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createDestroyLinkAction()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createDestroyObjectAction()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createExpansionNode()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
+			UMLPackage.Literals.ACTIVITY__STRUCTURED_NODE,
 			UMLFactory.eINSTANCE.createExpansionRegion()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createFlowFinalNode()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createForkNode()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createInitialNode()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createJoinNode()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
+			UMLPackage.Literals.ACTIVITY__STRUCTURED_NODE,
 			UMLFactory.eINSTANCE.createLoopNode()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createMergeNode()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createOpaqueAction()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createRaiseExceptionAction()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createReadExtentAction()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createReadIsClassifiedObjectAction()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createReadLinkAction()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createReadLinkObjectEndAction()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createReadLinkObjectEndQualifierAction()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createReadSelfAction()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createReadStructuralFeatureAction()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createReadVariableAction()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createReclassifyObjectAction()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createReduceAction()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createRemoveStructuralFeatureValueAction()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createRemoveVariableValueAction()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createReplyAction()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createSendObjectAction()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createSendSignalAction()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
+			UMLPackage.Literals.ACTIVITY__STRUCTURED_NODE,
 			UMLFactory.eINSTANCE.createSequenceNode()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createStartClassifierBehaviorAction()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createStartObjectBehaviorAction()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createTestIdentityAction()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createUnmarshallAction()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createValuePin()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.ACTIVITY__NODE,
-			UMLFactory.eINSTANCE.createValueSpecificationAction()));
 	}
 
 	/**
@@ -680,10 +679,10 @@
 			|| childFeature == UMLPackage.Literals.ENCAPSULATED_CLASSIFIER__OWNED_PORT
 			|| childFeature == UMLPackage.Literals.BEHAVIORED_CLASSIFIER__CLASSIFIER_BEHAVIOR
 			|| childFeature == UMLPackage.Literals.BEHAVIORED_CLASSIFIER__OWNED_BEHAVIOR
-			|| childFeature == UMLPackage.Literals.ACTIVITY__GROUP
+			|| childFeature == UMLPackage.Literals.ACTIVITY__OWNED_GROUP
 			|| childFeature == UMLPackage.Literals.ACTIVITY__PARTITION
-			|| childFeature == UMLPackage.Literals.ACTIVITY__STRUCTURED_NODE
-			|| childFeature == UMLPackage.Literals.ACTIVITY__NODE;
+			|| childFeature == UMLPackage.Literals.ACTIVITY__OWNED_NODE
+			|| childFeature == UMLPackage.Literals.ACTIVITY__STRUCTURED_NODE;
 
 		if (qualify) {
 			return getString("_UI_CreateChild_text2", //$NON-NLS-1$
@@ -697,16 +696,32 @@
 	 * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#createAddCommand(org.eclipse.emf.edit.domain.EditingDomain, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EStructuralFeature, java.util.Collection, int)
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @generated
+	 * @generated NOT
 	 */
 	@Override
 	protected Command createAddCommand(EditingDomain domain, EObject owner,
 			EStructuralFeature feature, Collection<?> collection, int index) {
-		if (feature == UMLPackage.Literals.ACTIVITY__PARTITION) {
+		if (feature == UMLPackage.Literals.ACTIVITY__OWNED_GROUP) {
 			return new SubsetAddCommand(domain, owner, feature,
 				new EStructuralFeature[]{UMLPackage.Literals.ACTIVITY__GROUP},
 				collection, index);
 		}
+		if (feature == UMLPackage.Literals.ACTIVITY__OWNED_NODE) {
+			return new SubsetAddCommand(domain, owner, feature,
+				new EStructuralFeature[]{UMLPackage.Literals.ACTIVITY__NODE},
+				collection, index);
+		}
+		if (feature == UMLPackage.Literals.ACTIVITY__PARTITION) {
+			return new SubsetAddCommand(domain, owner, feature,
+				new EStructuralFeature[]{UMLPackage.Literals.ACTIVITY__GROUP,
+					UMLPackage.Literals.ACTIVITY__OWNED_GROUP}, collection,
+				index);
+		}
+		if (feature == UMLPackage.Literals.ACTIVITY__STRUCTURED_NODE) {
+			return new SubsetAddCommand(domain, owner, feature,
+				new EStructuralFeature[]{UMLPackage.Literals.ACTIVITY__GROUP,
+					UMLPackage.Literals.ACTIVITY__NODE}, collection, index);
+		}
 		return super
 			.createAddCommand(domain, owner, feature, collection, index);
 	}
@@ -715,12 +730,25 @@
 	 * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#createRemoveCommand(org.eclipse.emf.edit.domain.EditingDomain, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EStructuralFeature, java.util.Collection)
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @generated
+	 * @generated NOT
 	 */
 	@Override
 	protected Command createRemoveCommand(EditingDomain domain, EObject owner,
 			EStructuralFeature feature, Collection<?> collection) {
 		if (feature == UMLPackage.Literals.ACTIVITY__GROUP) {
+			return new SupersetRemoveCommand(domain, owner, feature,
+				new EStructuralFeature[]{
+					UMLPackage.Literals.ACTIVITY__OWNED_GROUP,
+					UMLPackage.Literals.ACTIVITY__PARTITION,
+					UMLPackage.Literals.ACTIVITY__STRUCTURED_NODE}, collection);
+		}
+		if (feature == UMLPackage.Literals.ACTIVITY__NODE) {
+			return new SupersetRemoveCommand(domain, owner, feature,
+				new EStructuralFeature[]{
+					UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+					UMLPackage.Literals.ACTIVITY__STRUCTURED_NODE}, collection);
+		}
+		if (feature == UMLPackage.Literals.ACTIVITY__OWNED_GROUP) {
 			return new SupersetRemoveCommand(
 				domain,
 				owner,
@@ -735,25 +763,46 @@
 	 * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#createReplaceCommand(org.eclipse.emf.edit.domain.EditingDomain, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EStructuralFeature, org.eclipse.emf.ecore.EObject, java.util.Collection)
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @generated
+	 * @generated NOT
 	 */
 	@Override
 	protected Command createReplaceCommand(EditingDomain domain, EObject owner,
 			EStructuralFeature feature, EObject value, Collection<?> collection) {
+		if (feature == UMLPackage.Literals.ACTIVITY__GROUP) {
+			return new SubsetSupersetReplaceCommand(domain, owner, feature,
+				null, new EStructuralFeature[]{
+					UMLPackage.Literals.ACTIVITY__OWNED_GROUP,
+					UMLPackage.Literals.ACTIVITY__PARTITION,
+					UMLPackage.Literals.ACTIVITY__STRUCTURED_NODE}, value,
+				collection);
+		}
+		if (feature == UMLPackage.Literals.ACTIVITY__NODE) {
+			return new SubsetSupersetReplaceCommand(domain, owner, feature,
+				null, new EStructuralFeature[]{
+					UMLPackage.Literals.ACTIVITY__OWNED_NODE,
+					UMLPackage.Literals.ACTIVITY__STRUCTURED_NODE}, value,
+				collection);
+		}
 		if (feature == UMLPackage.Literals.ACTIVITY__PARTITION) {
 			return new SubsetSupersetReplaceCommand(domain, owner, feature,
-				new EStructuralFeature[]{UMLPackage.Literals.ACTIVITY__GROUP},
-				null, value, collection);
+				new EStructuralFeature[]{UMLPackage.Literals.ACTIVITY__GROUP,
+					UMLPackage.Literals.ACTIVITY__OWNED_GROUP}, null, value,
+				collection);
 		}
-		if (feature == UMLPackage.Literals.ACTIVITY__GROUP) {
+		if (feature == UMLPackage.Literals.ACTIVITY__OWNED_GROUP) {
 			return new SubsetSupersetReplaceCommand(
 				domain,
 				owner,
 				feature,
-				null,
+				new EStructuralFeature[]{UMLPackage.Literals.ACTIVITY__GROUP},
 				new EStructuralFeature[]{UMLPackage.Literals.ACTIVITY__PARTITION},
 				value, collection);
 		}
+		if (feature == UMLPackage.Literals.ACTIVITY__OWNED_NODE) {
+			return new SubsetSupersetReplaceCommand(domain, owner, feature,
+				new EStructuralFeature[]{UMLPackage.Literals.ACTIVITY__NODE},
+				null, value, collection);
+		}
 		return super.createReplaceCommand(domain, owner, feature, value,
 			collection);
 	}
diff --git a/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/ActivityNodeItemProvider.java b/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/ActivityNodeItemProvider.java
index 65fd5b2..fe23fd7 100644
--- a/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/ActivityNodeItemProvider.java
+++ b/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/ActivityNodeItemProvider.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 215418, 204200
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ActivityNodeItemProvider.java,v 1.10 2009/12/02 18:27:49 jbruck Exp $
  */
 package org.eclipse.uml2.uml.edit.providers;
 
@@ -67,12 +66,12 @@
 			super.getPropertyDescriptors(object);
 
 			addActivityPropertyDescriptor(object);
-			addInGroupPropertyDescriptor(object);
 			addInPartitionPropertyDescriptor(object);
 			addInStructuredNodePropertyDescriptor(object);
 			addInInterruptibleRegionPropertyDescriptor(object);
 			addOutgoingPropertyDescriptor(object);
 			addIncomingPropertyDescriptor(object);
+			addInGroupPropertyDescriptor(object);
 			addRedefinedNodePropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
diff --git a/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/ClassItemProvider.java b/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/ClassItemProvider.java
index c9df887..9e564d1 100644
--- a/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/ClassItemProvider.java
+++ b/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/ClassItemProvider.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 205188, 215418, 204200
  *   Kenn Hussey - 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ClassItemProvider.java,v 1.19 2010/09/28 21:00:19 khussey Exp $
  */
 package org.eclipse.uml2.uml.edit.providers;
 
@@ -471,10 +470,6 @@
 
 		newChildDescriptors.add(createChildParameter(
 			UMLPackage.Literals.CLASS__NESTED_CLASSIFIER,
-			UMLFactory.eINSTANCE.createDataType()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.CLASS__NESTED_CLASSIFIER,
 			UMLFactory.eINSTANCE.createInterface()));
 
 		newChildDescriptors.add(createChildParameter(
@@ -491,6 +486,10 @@
 
 		newChildDescriptors.add(createChildParameter(
 			UMLPackage.Literals.CLASS__NESTED_CLASSIFIER,
+			UMLFactory.eINSTANCE.createDataType()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.CLASS__NESTED_CLASSIFIER,
 			UMLFactory.eINSTANCE.createEnumeration()));
 
 		newChildDescriptors.add(createChildParameter(
diff --git a/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/ClassifierTemplateParameterItemProvider.java b/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/ClassifierTemplateParameterItemProvider.java
index f6e5588..e5885d5 100644
--- a/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/ClassifierTemplateParameterItemProvider.java
+++ b/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/ClassifierTemplateParameterItemProvider.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2010 IBM Corporation, Embarcadero Technologies, and others.
+ * Copyright (c) 2005, 2011 IBM Corporation, Embarcadero Technologies, CEA, and others.
  * 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
@@ -9,8 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 215418, 204200
  *   Kenn Hussey - 323181
+ *   Kenn Hussey (CEA) - 351774
  *
- * $Id: ClassifierTemplateParameterItemProvider.java,v 1.12 2010/09/28 21:00:19 khussey Exp $
  */
 package org.eclipse.uml2.uml.edit.providers;
 
@@ -195,8 +195,8 @@
 		Object childFeature = feature;
 		Object childObject = child;
 
-		boolean qualify = childFeature == UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT
-			|| childFeature == UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT;
+		boolean qualify = childFeature == UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT
+			|| childFeature == UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT;
 
 		if (qualify) {
 			return getString("_UI_CreateChild_text2", //$NON-NLS-1$
diff --git a/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/CollaborationUseItemProvider.java b/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/CollaborationUseItemProvider.java
index 33a1e88..e08c84a 100644
--- a/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/CollaborationUseItemProvider.java
+++ b/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/CollaborationUseItemProvider.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 215418, 204200
  *   Kenn Hussey - 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: CollaborationUseItemProvider.java,v 1.14 2010/09/28 21:00:18 khussey Exp $
  */
 package org.eclipse.uml2.uml.edit.providers;
 
@@ -233,19 +232,19 @@
 
 		newChildDescriptors.add(createChildParameter(
 			UMLPackage.Literals.COLLABORATION_USE__ROLE_BINDING,
-			UMLFactory.eINSTANCE.createUsage()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.COLLABORATION_USE__ROLE_BINDING,
 			UMLFactory.eINSTANCE.createRealization()));
 
 		newChildDescriptors.add(createChildParameter(
 			UMLPackage.Literals.COLLABORATION_USE__ROLE_BINDING,
-			UMLFactory.eINSTANCE.createSubstitution()));
+			UMLFactory.eINSTANCE.createInterfaceRealization()));
 
 		newChildDescriptors.add(createChildParameter(
 			UMLPackage.Literals.COLLABORATION_USE__ROLE_BINDING,
-			UMLFactory.eINSTANCE.createInterfaceRealization()));
+			UMLFactory.eINSTANCE.createUsage()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.COLLABORATION_USE__ROLE_BINDING,
+			UMLFactory.eINSTANCE.createSubstitution()));
 
 		newChildDescriptors.add(createChildParameter(
 			UMLPackage.Literals.COLLABORATION_USE__ROLE_BINDING,
diff --git a/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/ComponentItemProvider.java b/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/ComponentItemProvider.java
index 47ff492..e639662 100644
--- a/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/ComponentItemProvider.java
+++ b/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/ComponentItemProvider.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 205188, 215418, 204200
  *   Kenn Hussey - 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ComponentItemProvider.java,v 1.20 2010/09/28 21:00:19 khussey Exp $
  */
 package org.eclipse.uml2.uml.edit.providers;
 
@@ -348,11 +347,11 @@
 
 		newChildDescriptors.add(createChildParameter(
 			UMLPackage.Literals.COMPONENT__PACKAGED_ELEMENT,
-			UMLFactory.eINSTANCE.createConstraint()));
+			UMLFactory.eINSTANCE.createRealization()));
 
 		newChildDescriptors.add(createChildParameter(
 			UMLPackage.Literals.COMPONENT__PACKAGED_ELEMENT,
-			UMLFactory.eINSTANCE.createDataType()));
+			UMLFactory.eINSTANCE.createInterfaceRealization()));
 
 		newChildDescriptors.add(createChildParameter(
 			UMLPackage.Literals.COMPONENT__PACKAGED_ELEMENT,
@@ -372,6 +371,14 @@
 
 		newChildDescriptors.add(createChildParameter(
 			UMLPackage.Literals.COMPONENT__PACKAGED_ELEMENT,
+			UMLFactory.eINSTANCE.createConstraint()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.COMPONENT__PACKAGED_ELEMENT,
+			UMLFactory.eINSTANCE.createDataType()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.COMPONENT__PACKAGED_ELEMENT,
 			UMLFactory.eINSTANCE.createModel()));
 
 		newChildDescriptors.add(createChildParameter(
@@ -408,18 +415,10 @@
 
 		newChildDescriptors.add(createChildParameter(
 			UMLPackage.Literals.COMPONENT__PACKAGED_ELEMENT,
-			UMLFactory.eINSTANCE.createRealization()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.COMPONENT__PACKAGED_ELEMENT,
 			UMLFactory.eINSTANCE.createSubstitution()));
 
 		newChildDescriptors.add(createChildParameter(
 			UMLPackage.Literals.COMPONENT__PACKAGED_ELEMENT,
-			UMLFactory.eINSTANCE.createInterfaceRealization()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.COMPONENT__PACKAGED_ELEMENT,
 			UMLFactory.eINSTANCE.createOpaqueExpression()));
 
 		newChildDescriptors.add(createChildParameter(
diff --git a/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/ConnectableElementTemplateParameterItemProvider.java b/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/ConnectableElementTemplateParameterItemProvider.java
index 8130d79..4d459ed 100644
--- a/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/ConnectableElementTemplateParameterItemProvider.java
+++ b/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/ConnectableElementTemplateParameterItemProvider.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2010 IBM Corporation, Embarcadero Technologies, and others.
+ * Copyright (c) 2005, 2011 IBM Corporation, Embarcadero Technologies, CEA, and others.
  * 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
@@ -9,8 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 215418, 204200
  *   Kenn Hussey - 323181
+ *   Kenn Hussey (CEA) - 351774
  *
- * $Id: ConnectableElementTemplateParameterItemProvider.java,v 1.9 2010/09/28 21:00:19 khussey Exp $
  */
 package org.eclipse.uml2.uml.edit.providers;
 
@@ -145,8 +145,8 @@
 		Object childFeature = feature;
 		Object childObject = child;
 
-		boolean qualify = childFeature == UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT
-			|| childFeature == UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT;
+		boolean qualify = childFeature == UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT
+			|| childFeature == UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT;
 
 		if (qualify) {
 			return getString("_UI_CreateChild_text2", //$NON-NLS-1$
diff --git a/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/InterfaceItemProvider.java b/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/InterfaceItemProvider.java
index 3833d40..44bf917 100644
--- a/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/InterfaceItemProvider.java
+++ b/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/InterfaceItemProvider.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 205188, 215418, 204200
  *   Kenn Hussey - 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: InterfaceItemProvider.java,v 1.18 2010/09/28 21:00:20 khussey Exp $
  */
 package org.eclipse.uml2.uml.edit.providers;
 
@@ -79,10 +78,10 @@
 
 			addNestedClassifierPropertyDescriptor(object);
 			addOwnedAttributePropertyDescriptor(object);
+			addOwnedOperationPropertyDescriptor(object);
 			addOwnedReceptionPropertyDescriptor(object);
 			addProtocolPropertyDescriptor(object);
 			addRedefinedInterfacePropertyDescriptor(object);
-			addOwnedOperationPropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
 	}
@@ -229,10 +228,10 @@
 			childrenFeatures
 				.add(UMLPackage.Literals.INTERFACE__OWNED_ATTRIBUTE);
 			childrenFeatures
+				.add(UMLPackage.Literals.INTERFACE__OWNED_OPERATION);
+			childrenFeatures
 				.add(UMLPackage.Literals.INTERFACE__OWNED_RECEPTION);
 			childrenFeatures.add(UMLPackage.Literals.INTERFACE__PROTOCOL);
-			childrenFeatures
-				.add(UMLPackage.Literals.INTERFACE__OWNED_OPERATION);
 		}
 		return childrenFeatures;
 	}
@@ -299,9 +298,9 @@
 		switch (notification.getFeatureID(Interface.class)) {
 			case UMLPackage.INTERFACE__NESTED_CLASSIFIER :
 			case UMLPackage.INTERFACE__OWNED_ATTRIBUTE :
+			case UMLPackage.INTERFACE__OWNED_OPERATION :
 			case UMLPackage.INTERFACE__OWNED_RECEPTION :
 			case UMLPackage.INTERFACE__PROTOCOL :
-			case UMLPackage.INTERFACE__OWNED_OPERATION :
 				fireNotifyChanged(new ViewerNotification(notification,
 					notification.getNotifier(), true, false));
 				return;
@@ -347,10 +346,6 @@
 
 		newChildDescriptors.add(createChildParameter(
 			UMLPackage.Literals.INTERFACE__NESTED_CLASSIFIER,
-			UMLFactory.eINSTANCE.createDataType()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.INTERFACE__NESTED_CLASSIFIER,
 			UMLFactory.eINSTANCE.createInterface()));
 
 		newChildDescriptors.add(createChildParameter(
@@ -367,6 +362,10 @@
 
 		newChildDescriptors.add(createChildParameter(
 			UMLPackage.Literals.INTERFACE__NESTED_CLASSIFIER,
+			UMLFactory.eINSTANCE.createDataType()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.INTERFACE__NESTED_CLASSIFIER,
 			UMLFactory.eINSTANCE.createEnumeration()));
 
 		newChildDescriptors.add(createChildParameter(
@@ -442,16 +441,16 @@
 			UMLFactory.eINSTANCE.createExtensionEnd()));
 
 		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.INTERFACE__OWNED_OPERATION,
+			UMLFactory.eINSTANCE.createOperation()));
+
+		newChildDescriptors.add(createChildParameter(
 			UMLPackage.Literals.INTERFACE__OWNED_RECEPTION,
 			UMLFactory.eINSTANCE.createReception()));
 
 		newChildDescriptors.add(createChildParameter(
 			UMLPackage.Literals.INTERFACE__PROTOCOL,
 			UMLFactory.eINSTANCE.createProtocolStateMachine()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.INTERFACE__OWNED_OPERATION,
-			UMLFactory.eINSTANCE.createOperation()));
 	}
 
 	/**
diff --git a/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/OperationItemProvider.java b/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/OperationItemProvider.java
index 2b074da..46c1a96 100644
--- a/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/OperationItemProvider.java
+++ b/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/OperationItemProvider.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 215418, 204200
  *   Kenn Hussey - 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: OperationItemProvider.java,v 1.19 2010/09/28 21:00:18 khussey Exp $
  */
 package org.eclipse.uml2.uml.edit.providers;
 
@@ -92,10 +91,10 @@
 			addTemplateParameterPropertyDescriptor(object);
 			addOwnedTemplateSignaturePropertyDescriptor(object);
 			addTemplateBindingPropertyDescriptor(object);
+			addInterfacePropertyDescriptor(object);
 			addBodyConditionPropertyDescriptor(object);
 			addClassPropertyDescriptor(object);
 			addDatatypePropertyDescriptor(object);
-			addInterfacePropertyDescriptor(object);
 			addIsOrderedPropertyDescriptor(object);
 			addIsQueryPropertyDescriptor(object);
 			addIsUniquePropertyDescriptor(object);
diff --git a/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/OperationTemplateParameterItemProvider.java b/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/OperationTemplateParameterItemProvider.java
index ccc12f6..be6fd87 100644
--- a/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/OperationTemplateParameterItemProvider.java
+++ b/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/OperationTemplateParameterItemProvider.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2010 IBM Corporation, Embarcadero Technologies, and others.
+ * Copyright (c) 2005, 2011 IBM Corporation, Embarcadero Technologies, CEA, and others.
  * 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
@@ -9,8 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 215418, 204200
  *   Kenn Hussey - 323181
+ *   Kenn Hussey (CEA) - 351774
  *
- * $Id: OperationTemplateParameterItemProvider.java,v 1.9 2010/09/28 21:00:18 khussey Exp $
  */
 package org.eclipse.uml2.uml.edit.providers;
 
@@ -144,8 +144,8 @@
 		Object childFeature = feature;
 		Object childObject = child;
 
-		boolean qualify = childFeature == UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT
-			|| childFeature == UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT;
+		boolean qualify = childFeature == UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT
+			|| childFeature == UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT;
 
 		if (qualify) {
 			return getString("_UI_CreateChild_text2", //$NON-NLS-1$
diff --git a/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/PackageItemProvider.java b/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/PackageItemProvider.java
index 2981aa5..baefdc4 100644
--- a/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/PackageItemProvider.java
+++ b/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/PackageItemProvider.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 205188, 215418, 204200
  *   Kenn Hussey - 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: PackageItemProvider.java,v 1.21 2010/09/28 21:00:19 khussey Exp $
  */
 package org.eclipse.uml2.uml.edit.providers;
 
@@ -548,11 +547,11 @@
 
 		newChildDescriptors.add(createChildParameter(
 			UMLPackage.Literals.PACKAGE__PACKAGED_ELEMENT,
-			UMLFactory.eINSTANCE.createConstraint()));
+			UMLFactory.eINSTANCE.createRealization()));
 
 		newChildDescriptors.add(createChildParameter(
 			UMLPackage.Literals.PACKAGE__PACKAGED_ELEMENT,
-			UMLFactory.eINSTANCE.createDataType()));
+			UMLFactory.eINSTANCE.createInterfaceRealization()));
 
 		newChildDescriptors.add(createChildParameter(
 			UMLPackage.Literals.PACKAGE__PACKAGED_ELEMENT,
@@ -572,6 +571,14 @@
 
 		newChildDescriptors.add(createChildParameter(
 			UMLPackage.Literals.PACKAGE__PACKAGED_ELEMENT,
+			UMLFactory.eINSTANCE.createConstraint()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.PACKAGE__PACKAGED_ELEMENT,
+			UMLFactory.eINSTANCE.createDataType()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.PACKAGE__PACKAGED_ELEMENT,
 			UMLFactory.eINSTANCE.createModel()));
 
 		newChildDescriptors.add(createChildParameter(
@@ -608,18 +615,10 @@
 
 		newChildDescriptors.add(createChildParameter(
 			UMLPackage.Literals.PACKAGE__PACKAGED_ELEMENT,
-			UMLFactory.eINSTANCE.createRealization()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.PACKAGE__PACKAGED_ELEMENT,
 			UMLFactory.eINSTANCE.createSubstitution()));
 
 		newChildDescriptors.add(createChildParameter(
 			UMLPackage.Literals.PACKAGE__PACKAGED_ELEMENT,
-			UMLFactory.eINSTANCE.createInterfaceRealization()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.PACKAGE__PACKAGED_ELEMENT,
 			UMLFactory.eINSTANCE.createOpaqueExpression()));
 
 		newChildDescriptors.add(createChildParameter(
@@ -800,10 +799,6 @@
 
 		newChildDescriptors.add(createChildParameter(
 			UMLPackage.Literals.PACKAGE__OWNED_TYPE,
-			UMLFactory.eINSTANCE.createDataType()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.PACKAGE__OWNED_TYPE,
 			UMLFactory.eINSTANCE.createInterface()));
 
 		newChildDescriptors.add(createChildParameter(
@@ -820,6 +815,10 @@
 
 		newChildDescriptors.add(createChildParameter(
 			UMLPackage.Literals.PACKAGE__OWNED_TYPE,
+			UMLFactory.eINSTANCE.createDataType()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.PACKAGE__OWNED_TYPE,
 			UMLFactory.eINSTANCE.createEnumeration()));
 
 		newChildDescriptors.add(createChildParameter(
diff --git a/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/PropertyItemProvider.java b/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/PropertyItemProvider.java
index e62d9a5..416daa5 100644
--- a/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/PropertyItemProvider.java
+++ b/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/PropertyItemProvider.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 208353, 205188, 215418, 204200
  *   Kenn Hussey - 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: PropertyItemProvider.java,v 1.23 2010/09/28 21:00:18 khussey Exp $
  */
 package org.eclipse.uml2.uml.edit.providers;
 
@@ -91,8 +90,8 @@
 			addEndPropertyDescriptor(object);
 			addDeployedElementPropertyDescriptor(object);
 			addDeploymentPropertyDescriptor(object);
-			addDatatypePropertyDescriptor(object);
 			addInterfacePropertyDescriptor(object);
+			addDatatypePropertyDescriptor(object);
 			addAggregationPropertyDescriptor(object);
 			addAssociationEndPropertyDescriptor(object);
 			addQualifierPropertyDescriptor(object);
diff --git a/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/StructuredActivityNodeItemProvider.java b/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/StructuredActivityNodeItemProvider.java
index ff01d8d..7cf337c 100644
--- a/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/StructuredActivityNodeItemProvider.java
+++ b/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/StructuredActivityNodeItemProvider.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 215418, 204200
  *   Kenn Hussey - 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: StructuredActivityNodeItemProvider.java,v 1.20 2010/09/28 21:00:19 khussey Exp $
  */
 package org.eclipse.uml2.uml.edit.providers;
 
@@ -78,11 +77,11 @@
 			addOwnedMemberPropertyDescriptor(object);
 			addImportedMemberPropertyDescriptor(object);
 			addMemberPropertyDescriptor(object);
+			addContainedEdgePropertyDescriptor(object);
 			addContainedNodePropertyDescriptor(object);
 			addInActivityPropertyDescriptor(object);
 			addSubgroupPropertyDescriptor(object);
 			addSuperGroupPropertyDescriptor(object);
-			addContainedEdgePropertyDescriptor(object);
 			addMustIsolatePropertyDescriptor(object);
 			addNodePropertyDescriptor(object);
 			addStructuredNodeInputPropertyDescriptor(object);
diff --git a/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/TemplateParameterItemProvider.java b/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/TemplateParameterItemProvider.java
index 990822e..da37e75 100644
--- a/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/TemplateParameterItemProvider.java
+++ b/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/TemplateParameterItemProvider.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 205188, 215418, 204200
  *   Kenn Hussey - 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: TemplateParameterItemProvider.java,v 1.21 2010/09/28 21:00:18 khussey Exp $
  */
 package org.eclipse.uml2.uml.edit.providers;
 
@@ -80,9 +79,9 @@
 			super.getPropertyDescriptors(object);
 
 			addDefaultPropertyDescriptor(object);
+			addOwnedDefaultPropertyDescriptor(object);
 			addOwnedParameteredElementPropertyDescriptor(object);
 			addParameteredElementPropertyDescriptor(object);
-			addOwnedDefaultPropertyDescriptor(object);
 			addSignaturePropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
@@ -203,9 +202,9 @@
 		if (childrenFeatures == null) {
 			super.getChildrenFeatures(object);
 			childrenFeatures
-				.add(UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT);
-			childrenFeatures
 				.add(UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT);
+			childrenFeatures
+				.add(UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT);
 		}
 		return childrenFeatures;
 	}
@@ -274,8 +273,8 @@
 				fireNotifyChanged(new ViewerNotification(notification,
 					notification.getNotifier(), false, true));
 				return;
-			case UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT :
 			case UMLPackage.TEMPLATE_PARAMETER__OWNED_DEFAULT :
+			case UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT :
 				fireNotifyChanged(new ViewerNotification(notification,
 					notification.getNotifier(), true, false));
 				return;
@@ -296,611 +295,611 @@
 		super.collectNewChildDescriptors(newChildDescriptors, object);
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createDependency()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createAbstraction()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createClass()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createStereotype()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createExpression()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createStringExpression()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createPackage()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createProfile()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createAssociation()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createExtension()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createProperty()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createDeployment()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createArtifact()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createDeploymentSpecification()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createManifestation()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createOperation()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
-			UMLFactory.eINSTANCE.createParameter()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
-			UMLFactory.eINSTANCE.createConstraint()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
-			UMLFactory.eINSTANCE.createDataType()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
-			UMLFactory.eINSTANCE.createInterface()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
-			UMLFactory.eINSTANCE.createSignal()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
-			UMLFactory.eINSTANCE.createStateMachine()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
-			UMLFactory.eINSTANCE.createProtocolStateMachine()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
-			UMLFactory.eINSTANCE.createPort()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
-			UMLFactory.eINSTANCE.createExtensionEnd()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
-			UMLFactory.eINSTANCE.createModel()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
-			UMLFactory.eINSTANCE.createEnumeration()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
-			UMLFactory.eINSTANCE.createInstanceSpecification()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
-			UMLFactory.eINSTANCE.createEnumerationLiteral()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
-			UMLFactory.eINSTANCE.createPrimitiveType()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
-			UMLFactory.eINSTANCE.createUsage()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
-			UMLFactory.eINSTANCE.createCollaboration()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
-			UMLFactory.eINSTANCE.createGeneralizationSet()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
-			UMLFactory.eINSTANCE.createUseCase()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createRealization()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
-			UMLFactory.eINSTANCE.createSubstitution()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createInterfaceRealization()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLFactory.eINSTANCE.createInterface()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLFactory.eINSTANCE.createSignal()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLFactory.eINSTANCE.createStateMachine()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLFactory.eINSTANCE.createProtocolStateMachine()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLFactory.eINSTANCE.createPort()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLFactory.eINSTANCE.createConstraint()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLFactory.eINSTANCE.createParameter()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLFactory.eINSTANCE.createDataType()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLFactory.eINSTANCE.createExtensionEnd()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLFactory.eINSTANCE.createModel()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLFactory.eINSTANCE.createEnumeration()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLFactory.eINSTANCE.createInstanceSpecification()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLFactory.eINSTANCE.createEnumerationLiteral()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLFactory.eINSTANCE.createPrimitiveType()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLFactory.eINSTANCE.createUsage()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLFactory.eINSTANCE.createCollaboration()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLFactory.eINSTANCE.createGeneralizationSet()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLFactory.eINSTANCE.createUseCase()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLFactory.eINSTANCE.createSubstitution()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createOpaqueExpression()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createActivity()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createVariable()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createInteraction()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createInteractionConstraint()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createActor()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createAnyReceiveEvent()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createAssociationClass()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createCallEvent()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createChangeEvent()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createCommunicationPath()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createComponent()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createComponentRealization()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createNode()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createDevice()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createDuration()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createIntervalConstraint()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createDurationConstraint()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createInterval()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createDurationInterval()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createDurationObservation()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createExecutionEnvironment()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createOpaqueBehavior()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createFunctionBehavior()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createInformationFlow()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createInformationItem()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createInstanceValue()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createLiteralBoolean()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createLiteralInteger()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createLiteralNull()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createLiteralReal()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createLiteralString()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createLiteralUnlimitedNatural()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createSignalEvent()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createTimeConstraint()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createTimeInterval()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createTimeExpression()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createTimeEvent()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
 			UMLFactory.eINSTANCE.createTimeObservation()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createDependency()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createAbstraction()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createClass()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createStereotype()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createExpression()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createStringExpression()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createPackage()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createProfile()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createAssociation()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createExtension()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createProperty()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createDeployment()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createArtifact()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createDeploymentSpecification()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createManifestation()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createOperation()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
-			UMLFactory.eINSTANCE.createParameter()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
-			UMLFactory.eINSTANCE.createConstraint()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
-			UMLFactory.eINSTANCE.createDataType()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
-			UMLFactory.eINSTANCE.createInterface()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
-			UMLFactory.eINSTANCE.createSignal()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
-			UMLFactory.eINSTANCE.createStateMachine()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
-			UMLFactory.eINSTANCE.createProtocolStateMachine()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
-			UMLFactory.eINSTANCE.createPort()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
-			UMLFactory.eINSTANCE.createExtensionEnd()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
-			UMLFactory.eINSTANCE.createModel()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
-			UMLFactory.eINSTANCE.createEnumeration()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
-			UMLFactory.eINSTANCE.createInstanceSpecification()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
-			UMLFactory.eINSTANCE.createEnumerationLiteral()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
-			UMLFactory.eINSTANCE.createPrimitiveType()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
-			UMLFactory.eINSTANCE.createUsage()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
-			UMLFactory.eINSTANCE.createCollaboration()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
-			UMLFactory.eINSTANCE.createGeneralizationSet()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
-			UMLFactory.eINSTANCE.createUseCase()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createRealization()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
-			UMLFactory.eINSTANCE.createSubstitution()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createInterfaceRealization()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLFactory.eINSTANCE.createInterface()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLFactory.eINSTANCE.createSignal()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLFactory.eINSTANCE.createStateMachine()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLFactory.eINSTANCE.createProtocolStateMachine()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLFactory.eINSTANCE.createPort()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLFactory.eINSTANCE.createConstraint()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLFactory.eINSTANCE.createParameter()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLFactory.eINSTANCE.createDataType()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLFactory.eINSTANCE.createExtensionEnd()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLFactory.eINSTANCE.createModel()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLFactory.eINSTANCE.createEnumeration()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLFactory.eINSTANCE.createInstanceSpecification()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLFactory.eINSTANCE.createEnumerationLiteral()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLFactory.eINSTANCE.createPrimitiveType()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLFactory.eINSTANCE.createUsage()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLFactory.eINSTANCE.createCollaboration()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLFactory.eINSTANCE.createGeneralizationSet()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLFactory.eINSTANCE.createUseCase()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
+			UMLFactory.eINSTANCE.createSubstitution()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createOpaqueExpression()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createActivity()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createVariable()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createInteraction()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createInteractionConstraint()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createActor()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createAnyReceiveEvent()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createAssociationClass()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createCallEvent()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createChangeEvent()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createCommunicationPath()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createComponent()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createComponentRealization()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createNode()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createDevice()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createDuration()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createIntervalConstraint()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createDurationConstraint()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createInterval()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createDurationInterval()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createDurationObservation()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createExecutionEnvironment()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createOpaqueBehavior()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createFunctionBehavior()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createInformationFlow()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createInformationItem()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createInstanceValue()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createLiteralBoolean()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createLiteralInteger()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createLiteralNull()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createLiteralReal()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createLiteralString()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createLiteralUnlimitedNatural()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createSignalEvent()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createTimeConstraint()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createTimeInterval()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createTimeExpression()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createTimeEvent()));
 
 		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+			UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 			UMLFactory.eINSTANCE.createTimeObservation()));
 	}
 
@@ -916,8 +915,8 @@
 		Object childFeature = feature;
 		Object childObject = child;
 
-		boolean qualify = childFeature == UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT
-			|| childFeature == UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT;
+		boolean qualify = childFeature == UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT
+			|| childFeature == UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT;
 
 		if (qualify) {
 			return getString("_UI_CreateChild_text2", //$NON-NLS-1$
@@ -936,14 +935,6 @@
 	@Override
 	protected Command createSetCommand(EditingDomain domain, EObject owner,
 			EStructuralFeature feature, Object value) {
-		if (feature == UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT) {
-			return new SubsetSupersetSetCommand(
-				domain,
-				owner,
-				feature,
-				new EStructuralFeature[]{UMLPackage.Literals.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT},
-				null, value);
-		}
 		if (feature == UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT) {
 			return new SubsetSupersetSetCommand(
 				domain,
@@ -952,6 +943,14 @@
 				new EStructuralFeature[]{UMLPackage.Literals.TEMPLATE_PARAMETER__DEFAULT},
 				null, value);
 		}
+		if (feature == UMLPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT) {
+			return new SubsetSupersetSetCommand(
+				domain,
+				owner,
+				feature,
+				new EStructuralFeature[]{UMLPackage.Literals.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT},
+				null, value);
+		}
 		if (feature == UMLPackage.Literals.TEMPLATE_PARAMETER__DEFAULT) {
 			return new SubsetSupersetSetCommand(
 				domain,
diff --git a/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/TemplateParameterSubstitutionItemProvider.java b/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/TemplateParameterSubstitutionItemProvider.java
index b81702d..031ccc3 100644
--- a/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/TemplateParameterSubstitutionItemProvider.java
+++ b/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/TemplateParameterSubstitutionItemProvider.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 205188, 215418, 204200
  *   Kenn Hussey - 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: TemplateParameterSubstitutionItemProvider.java,v 1.22 2010/09/28 21:00:19 khussey Exp $
  */
 package org.eclipse.uml2.uml.edit.providers;
 
@@ -333,15 +332,11 @@
 
 		newChildDescriptors.add(createChildParameter(
 			UMLPackage.Literals.TEMPLATE_PARAMETER_SUBSTITUTION__OWNED_ACTUAL,
-			UMLFactory.eINSTANCE.createParameter()));
+			UMLFactory.eINSTANCE.createRealization()));
 
 		newChildDescriptors.add(createChildParameter(
 			UMLPackage.Literals.TEMPLATE_PARAMETER_SUBSTITUTION__OWNED_ACTUAL,
-			UMLFactory.eINSTANCE.createConstraint()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER_SUBSTITUTION__OWNED_ACTUAL,
-			UMLFactory.eINSTANCE.createDataType()));
+			UMLFactory.eINSTANCE.createInterfaceRealization()));
 
 		newChildDescriptors.add(createChildParameter(
 			UMLPackage.Literals.TEMPLATE_PARAMETER_SUBSTITUTION__OWNED_ACTUAL,
@@ -365,6 +360,18 @@
 
 		newChildDescriptors.add(createChildParameter(
 			UMLPackage.Literals.TEMPLATE_PARAMETER_SUBSTITUTION__OWNED_ACTUAL,
+			UMLFactory.eINSTANCE.createConstraint()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER_SUBSTITUTION__OWNED_ACTUAL,
+			UMLFactory.eINSTANCE.createParameter()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER_SUBSTITUTION__OWNED_ACTUAL,
+			UMLFactory.eINSTANCE.createDataType()));
+
+		newChildDescriptors.add(createChildParameter(
+			UMLPackage.Literals.TEMPLATE_PARAMETER_SUBSTITUTION__OWNED_ACTUAL,
 			UMLFactory.eINSTANCE.createExtensionEnd()));
 
 		newChildDescriptors.add(createChildParameter(
@@ -405,18 +412,10 @@
 
 		newChildDescriptors.add(createChildParameter(
 			UMLPackage.Literals.TEMPLATE_PARAMETER_SUBSTITUTION__OWNED_ACTUAL,
-			UMLFactory.eINSTANCE.createRealization()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER_SUBSTITUTION__OWNED_ACTUAL,
 			UMLFactory.eINSTANCE.createSubstitution()));
 
 		newChildDescriptors.add(createChildParameter(
 			UMLPackage.Literals.TEMPLATE_PARAMETER_SUBSTITUTION__OWNED_ACTUAL,
-			UMLFactory.eINSTANCE.createInterfaceRealization()));
-
-		newChildDescriptors.add(createChildParameter(
-			UMLPackage.Literals.TEMPLATE_PARAMETER_SUBSTITUTION__OWNED_ACTUAL,
 			UMLFactory.eINSTANCE.createOpaqueExpression()));
 
 		newChildDescriptors.add(createChildParameter(
diff --git a/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/UMLItemProviderAdapterFactory.java b/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/UMLItemProviderAdapterFactory.java
index 83f99c4..49357d8 100644
--- a/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/UMLItemProviderAdapterFactory.java
+++ b/plugins/org.eclipse.uml2.uml.edit/src/org/eclipse/uml2/uml/edit/providers/UMLItemProviderAdapterFactory.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 205188, 215418, 204200, 247980
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: UMLItemProviderAdapterFactory.java,v 1.26 2008/12/16 15:52:44 khussey Exp $
  */
 package org.eclipse.uml2.uml.edit.providers;
 
@@ -4798,6 +4797,10 @@
 			classItemProvider.dispose();
 		if (stringExpressionItemProvider != null)
 			stringExpressionItemProvider.dispose();
+		if (expressionItemProvider != null)
+			expressionItemProvider.dispose();
+		if (packageItemProvider != null)
+			packageItemProvider.dispose();
 		if (templateSignatureItemProvider != null)
 			templateSignatureItemProvider.dispose();
 		if (templateParameterItemProvider != null)
@@ -4806,10 +4809,6 @@
 			templateBindingItemProvider.dispose();
 		if (templateParameterSubstitutionItemProvider != null)
 			templateParameterSubstitutionItemProvider.dispose();
-		if (expressionItemProvider != null)
-			expressionItemProvider.dispose();
-		if (packageItemProvider != null)
-			packageItemProvider.dispose();
 		if (packageMergeItemProvider != null)
 			packageMergeItemProvider.dispose();
 		if (profileApplicationItemProvider != null)
@@ -4840,14 +4839,10 @@
 			manifestationItemProvider.dispose();
 		if (operationItemProvider != null)
 			operationItemProvider.dispose();
-		if (parameterItemProvider != null)
-			parameterItemProvider.dispose();
-		if (parameterSetItemProvider != null)
-			parameterSetItemProvider.dispose();
-		if (constraintItemProvider != null)
-			constraintItemProvider.dispose();
-		if (dataTypeItemProvider != null)
-			dataTypeItemProvider.dispose();
+		if (interfaceRealizationItemProvider != null)
+			interfaceRealizationItemProvider.dispose();
+		if (realizationItemProvider != null)
+			realizationItemProvider.dispose();
 		if (interfaceItemProvider != null)
 			interfaceItemProvider.dispose();
 		if (receptionItemProvider != null)
@@ -4870,10 +4865,18 @@
 			triggerItemProvider.dispose();
 		if (portItemProvider != null)
 			portItemProvider.dispose();
+		if (constraintItemProvider != null)
+			constraintItemProvider.dispose();
 		if (transitionItemProvider != null)
 			transitionItemProvider.dispose();
 		if (protocolConformanceItemProvider != null)
 			protocolConformanceItemProvider.dispose();
+		if (parameterItemProvider != null)
+			parameterItemProvider.dispose();
+		if (parameterSetItemProvider != null)
+			parameterSetItemProvider.dispose();
+		if (dataTypeItemProvider != null)
+			dataTypeItemProvider.dispose();
 		if (operationTemplateParameterItemProvider != null)
 			operationTemplateParameterItemProvider.dispose();
 		if (extensionEndItemProvider != null)
@@ -4896,8 +4899,6 @@
 			collaborationUseItemProvider.dispose();
 		if (collaborationItemProvider != null)
 			collaborationItemProvider.dispose();
-		if (connectorItemProvider != null)
-			connectorItemProvider.dispose();
 		if (generalizationItemProvider != null)
 			generalizationItemProvider.dispose();
 		if (generalizationSetItemProvider != null)
@@ -4914,12 +4915,10 @@
 			includeItemProvider.dispose();
 		if (substitutionItemProvider != null)
 			substitutionItemProvider.dispose();
-		if (realizationItemProvider != null)
-			realizationItemProvider.dispose();
 		if (classifierTemplateParameterItemProvider != null)
 			classifierTemplateParameterItemProvider.dispose();
-		if (interfaceRealizationItemProvider != null)
-			interfaceRealizationItemProvider.dispose();
+		if (connectorItemProvider != null)
+			connectorItemProvider.dispose();
 		if (imageItemProvider != null)
 			imageItemProvider.dispose();
 		if (opaqueExpressionItemProvider != null)
diff --git a/plugins/org.eclipse.uml2.uml/.cvsignore b/plugins/org.eclipse.uml2.uml/.cvsignore
deleted file mode 100644
index 0481c92..0000000
--- a/plugins/org.eclipse.uml2.uml/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-bin
-uml2.uml.jar
-org
diff --git a/plugins/org.eclipse.uml2.uml/model/CMOF.ecore b/plugins/org.eclipse.uml2.uml/model/CMOF.ecore
index 23a8b1c..ec20ce0 100644
--- a/plugins/org.eclipse.uml2.uml/model/CMOF.ecore
+++ b/plugins/org.eclipse.uml2.uml/model/CMOF.ecore
@@ -2,7 +2,7 @@
 <ecore:EPackage xmi:version="2.0"
     xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="cmof"
-    nsURI="http://www.omg.org/spec/MOF/20100901/cmof.xmi" nsPrefix="cmof">
+    nsURI="http://www.omg.org/spec/MOF/20110701/cmof.xmi" nsPrefix="cmof">
   <eClassifiers xsi:type="ecore:EClass" name="ReflectiveSequence" eSuperTypes="#//ReflectiveCollection">
     <eOperations name="add" ordered="false" lowerBound="1">
       <eParameters name="index" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer"/>
diff --git a/plugins/org.eclipse.uml2.uml/model/CMOF24.ecore b/plugins/org.eclipse.uml2.uml/model/CMOF24.ecore
new file mode 100644
index 0000000..23a8b1c
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml/model/CMOF24.ecore
@@ -0,0 +1,2612 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0"
+    xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="cmof"
+    nsURI="http://www.omg.org/spec/MOF/20100901/cmof.xmi" nsPrefix="cmof">
+  <eClassifiers xsi:type="ecore:EClass" name="ReflectiveSequence" eSuperTypes="#//ReflectiveCollection">
+    <eOperations name="add" ordered="false" lowerBound="1">
+      <eParameters name="index" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer"/>
+      <eParameters name="object" ordered="false" lowerBound="1" eType="#//Object"/>
+    </eOperations>
+    <eOperations name="get" ordered="false" lowerBound="1" eType="#//Object">
+      <eParameters name="index" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer"/>
+    </eOperations>
+    <eOperations name="remove" ordered="false" lowerBound="1" eType="#//Object">
+      <eParameters name="index" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer"/>
+    </eOperations>
+    <eOperations name="set" ordered="false" lowerBound="1" eType="#//Object">
+      <eParameters name="index" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer"/>
+      <eParameters name="object" ordered="false" lowerBound="1" eType="#//Object"/>
+    </eOperations>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="ReflectiveCollection" eSuperTypes="#//Object">
+    <eOperations name="add" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eParameters name="object" ordered="false" lowerBound="1" eType="#//Object"/>
+    </eOperations>
+    <eOperations name="addAll" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eParameters name="objects" ordered="false" lowerBound="1" eType="#//ReflectiveCollection"/>
+    </eOperations>
+    <eOperations name="clear" ordered="false" lowerBound="1"/>
+    <eOperations name="remove" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eParameters name="object" ordered="false" lowerBound="1" eType="#//Object"/>
+    </eOperations>
+    <eOperations name="size" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Object">
+    <eOperations name="get" ordered="false" lowerBound="1" eType="#//Object">
+      <eParameters name="property" ordered="false" lowerBound="1" eType="#//Property"/>
+    </eOperations>
+    <eOperations name="equals" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eParameters name="element" ordered="false" lowerBound="1" eType="#//Object"/>
+    </eOperations>
+    <eOperations name="set" ordered="false" lowerBound="1">
+      <eParameters name="property" ordered="false" lowerBound="1" eType="#//Property"/>
+      <eParameters name="value" ordered="false" lowerBound="1" eType="#//Object"/>
+    </eOperations>
+    <eOperations name="isSet" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eParameters name="property" ordered="false" lowerBound="1" eType="#//Property"/>
+    </eOperations>
+    <eOperations name="unset" ordered="false" lowerBound="1">
+      <eParameters name="property" ordered="false" lowerBound="1" eType="#//Property"/>
+    </eOperations>
+    <eOperations name="invoke" ordered="false" eType="#//Object">
+      <eParameters name="op" ordered="false" lowerBound="1" eType="#//Operation"/>
+      <eParameters name="arguments" ordered="false" upperBound="-1" eType="#//Argument"/>
+    </eOperations>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Property" eSuperTypes="#//StructuralFeature">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A property is a structural feature of a classifier that characterizes instances of the classifier. A property related by ownedAttribute to a classifier (other than an association) represents an attribute and might also represent an association end. It relates an instance of the class to a value or set of values of the type of the attribute. A property related by memberEnd or its specializations to an association represents an end of the association. The type of the property is the type of the end of the association."/>
+    </eAnnotations>
+    <eAnnotations source="duplicates">
+      <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
+          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The query isConsistentWith() specifies, for any two Properties in a context in which redefinition is possible, whether redefinition would be logically consistent. A redefining property is consistent with a redefined property if the type of the redefining property conforms to the type of the redefined property, and the multiplicity of the redefining property (if specified) is contained in the multiplicity of the redefined property.&#xA;The query isConsistentWith() specifies, for any two Properties in a context in which redefinition is possible, whether redefinition would be logically consistent. A redefining property is consistent with a redefined property if the type of the redefining property conforms to the type of the redefined property, the multiplicity of the redefining property (if specified) is contained in the multiplicity of the redefined property.&#xA;redefinee.isRedefinitionContextValid(self)&#xA;result = redefinee.oclIsKindOf(Property) and &#xA;  let prop : Property = redefinee.oclAsType(Property) in &#xA;  (prop.type.conformsTo(self.type) and &#xA;  ((prop.lowerBound()->notEmpty() and self.lowerBound()->notEmpty()) implies prop.lowerBound() >= self.lowerBound()) and &#xA;  ((prop.upperBound()->notEmpty() and self.upperBound()->notEmpty()) implies prop.lowerBound() &lt;= self.lowerBound()) and &#xA;  (self.isComposite implies prop.isComposite))"/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
+        <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
+      </contents>
+      <contents xsi:type="ecore:EAttribute" name="isReadOnly" ordered="false" lowerBound="1"
+          eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+          defaultValueLiteral="false">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="If isReadOnly is true, the attribute may not be written to after initialization.&#xA;If true, the attribute may only be read, and not written."/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//StructuralFeature/isReadOnly"/>
+      </contents>
+    </eAnnotations>
+    <eOperations name="multiplicity_of_composite" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A multiplicity of a composite aggregation must not have an upper bound greater than 1.&#xA;A multiplicity on an aggregate end of a composite aggregation must not have an upper bound greater than 1.&#xA;isComposite implies (upperBound()->isEmpty() or upperBound() &lt;= 1)"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="subsetting_context_conforms" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Subsetting may only occur when the context of the subsetting property conforms to the context of the subsetted property.&#xA;self.subsettedProperty->notEmpty() implies&#xA;  (self.subsettingContext()->notEmpty() and self.subsettingContext()->forAll (sc |&#xA;    self.subsettedProperty->forAll(sp |&#xA;      sp.subsettingContext()->exists(c | sc.conformsTo(c)))))"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="derived_union_is_read_only" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A derived union is read only.&#xA;isDerivedUnion implies isReadOnly"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="redefined_property_inherited" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A redefined property must be inherited from a more general classifier containing the redefining property.&#xA;if (redefinedProperty->notEmpty()) then&#xA;  (redefinitionContext->notEmpty() and&#xA;      redefinedProperty->forAll(rp|&#xA;        ((redefinitionContext->collect(fc|&#xA;          fc.allParents()))->asSet())->collect(c| c.allFeatures())->asSet()->includes(rp))"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="subsetted_property_names" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A property may not subset a property with the same name.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="derived_union_is_derived" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A derived union is derived.&#xA;isDerivedUnion implies isDerived"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="subsetting_rules" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A subsetting property may strengthen the type of the subsetted property, and its upper bound may be less.&#xA;self.subsettedProperty->forAll(sp |&#xA;  self.type.conformsTo(sp.type) and&#xA;    ((self.upperBound()->notEmpty() and sp.upperBound()->notEmpty()) implies&#xA;      self.upperBound()&lt;=sp.upperBound() ))"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="default" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Missing derivation for Property::/default : String&#xA;true"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="isAttribute" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query isAttribute() is true if the Property is defined as an attribute of some classifier.&#xA;result = Classifier.allInstances->exists(c | c.attribute->includes(p))"/>
+      </eAnnotations>
+      <eParameters name="p" ordered="false" lowerBound="1" eType="#//Property"/>
+    </eOperations>
+    <eOperations name="isComposite" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The value of isComposite is true only if aggregation is composite.&#xA;result = (self.aggregation = #composite)"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="isNavigable" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query isNavigable() indicates whether it is possible to navigate across the property.&#xA;result = not classifier->isEmpty() or association.owningAssociation.navigableOwnedEnd->includes(self)"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="opposite" ordered="false" lowerBound="1" eType="#//Property">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="If this property is owned by a class, associated with a binary association, and the other end of the association is also owned by a class, then opposite gives the other end.&#xA;result = if owningAssociation->isEmpty() and association.memberEnd->size() = 2&#xA;  then&#xA;    let otherEnd = (association.memberEnd - self)->any() in&#xA;      if otherEnd.owningAssociation->isEmpty() then otherEnd else Set{} endif&#xA;    else Set {}&#xA;    endif"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="subsettingContext" ordered="false" upperBound="-1" eType="#//Type">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query subsettingContext() gives the context for subsetting a property. It consists, in the case of an attribute, of the corresponding classifier, and in the case of an association end, all of the classifiers at the other ends.&#xA;result = if association->notEmpty()&#xA;then association.endType-type&#xA;else if classifier->notEmpty() then Set{classifier} else Set{} endif&#xA;endif"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="class" ordered="false"
+        eType="#//Class" eOpposite="#//Class/ownedAttribute">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="References the Class that owns the Property.&#xA;References the Class that owns the Property."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" ordered="false"
+        eType="#//DataType" eOpposite="#//DataType/ownedAttribute">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The DataType that owns this Property."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="aggregation" ordered="false"
+        lowerBound="1" eType="#//AggregationKind" defaultValueLiteral="none">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies the kind of aggregation that applies to the Property."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="association" ordered="false"
+        eType="#//Association" eOpposite="#//Association/memberEnd">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="References the association of which this property is a member, if any."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="owningAssociation" ordered="false"
+        eType="#//Association" eOpposite="#//Association/ownedEnd">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="References the owning association of this property, if any."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//NamedElement/namespace #//Feature/featuringClassifier #//Property/association #//RedefinableElement/redefinitionContext"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" ordered="false"
+        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String" volatile="true"
+        transient="true" derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies a String that represents a value to be used when no argument is supplied for the Property.&#xA;A String that is evaluated to give a default value for the Property when an object of the owning Classifier is instantiated."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="defaultValue" ordered="false"
+        eType="#//ValueSpecification" containment="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A ValueSpecification that is evaluated to give a default value for the Property when an object of the owning Classifier is instantiated."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isComposite" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+        volatile="true" transient="true" defaultValueLiteral="false" derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="If isComposite is true, the object containing the attribute is a container for the object or value contained in the attribute.&#xA;This is a derived value, indicating whether the aggregation of the Property is composite or not."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isDerived" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+        defaultValueLiteral="false">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="If isDerived is true, the value of the attribute is derived from information elsewhere.&#xA;Specifies whether the Property is derived, i.e., whether its value or values can be computed from other information."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isDerivedUnion" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+        defaultValueLiteral="false">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies whether the property is derived as the union of all of the properties that are constrained to subset it."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isID" ordered="false" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+        defaultValueLiteral="false">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="True indicates this property can be used to uniquely identify an instance of the containing Class."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="opposite" ordered="false"
+        eType="#//Property" volatile="true" transient="true" derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="In the case where the property is one navigable end of a binary association with both ends navigable, this gives the other end."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedProperty" ordered="false"
+        upperBound="-1" eType="#//Property">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="References the properties that are redefined by this property."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="subsettedProperty" ordered="false"
+        upperBound="-1" eType="#//Property">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="References the properties of which this property is constrained to be a subset."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="StructuralFeature" abstract="true" eSuperTypes="#//Feature #//MultiplicityElement #//TypedElement">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A structural feature is a typed feature of a classifier that specifies the structure of instances of the classifier.&#xA;By specializing multiplicity element, it supports a multiplicity that specifies valid cardinalities for the collection of values associated with an instantiation of the structural feature."/>
+    </eAnnotations>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isReadOnly" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+        defaultValueLiteral="false">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="States whether the feature's value may be modified by a client."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Feature" abstract="true" eSuperTypes="#//RedefinableElement">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A feature declares a behavioral or structural characteristic of instances of classifiers."/>
+    </eAnnotations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="featuringClassifier" ordered="false"
+        upperBound="-1" eType="#//Classifier" changeable="false" volatile="true" transient="true"
+        derived="true" eOpposite="#//Classifier/feature">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The Classifiers that have this Feature as a feature."/>
+      </eAnnotations>
+      <eAnnotations source="union"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isStatic" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+        defaultValueLiteral="false">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies whether this feature characterizes individual instances classified by the classifier (false) or the classifier itself (true)."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="RedefinableElement" abstract="true"
+      eSuperTypes="#//NamedElement">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A redefinable element is an element that, when defined in the context of a classifier, can be redefined more specifically or differently in the context of another classifier that specializes (directly or indirectly) the context classifier."/>
+    </eAnnotations>
+    <eOperations name="redefinition_consistent" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A redefining element must be consistent with each redefined element.&#xA;self.redefinedElement->forAll(re | re.isConsistentWith(self))"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="non_leaf_redefinition" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A redefinable element can only redefine non-leaf redefinable elements&#xA;self.redefinedElement->forAll(not isLeaf)"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="redefinition_context_valid" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="At least one of the redefinition contexts of the redefining element must be a specialization of at least one of the redefinition contexts for each redefined element.&#xA;self.redefinedElement->forAll(e | self.isRedefinitionContextValid(e))"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="isConsistentWith" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query isConsistentWith() specifies, for any two RedefinableElements in a context in which redefinition is possible, whether redefinition would be logically consistent. By default, this is false; this operation must be overridden for subclasses of RedefinableElement to define the consistency conditions.&#xA;redefinee.isRedefinitionContextValid(self)&#xA;result = false"/>
+      </eAnnotations>
+      <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
+    </eOperations>
+    <eOperations name="isRedefinitionContextValid" ordered="false" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.&#xA;result = redefinitionContext->exists(c | c.allParents()->includes(redefined.redefinitionContext)))"/>
+      </eAnnotations>
+      <eParameters name="redefined" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isLeaf" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+        defaultValueLiteral="false">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedElement" ordered="false"
+        upperBound="-1" eType="#//RedefinableElement" changeable="false" volatile="true"
+        transient="true" derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The redefinable element that is being redefined by this element."/>
+      </eAnnotations>
+      <eAnnotations source="union"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="redefinitionContext" ordered="false"
+        upperBound="-1" eType="#//Classifier" changeable="false" volatile="true" transient="true"
+        derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="References the contexts that this element may be redefined from."/>
+      </eAnnotations>
+      <eAnnotations source="union"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="NamedElement" abstract="true" eSuperTypes="#//Element">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A named element is an element in a model that may have a name."/>
+    </eAnnotations>
+    <eOperations name="visibility_needs_ownership" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="If a NamedElement is not owned by a Namespace, it does not have a visibility.&#xA;namespace->isEmpty() implies visibility->isEmpty()"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="has_no_qualified_name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="If there is no name, or one of the containing namespaces has no name, there is no qualified name.&#xA;(self.name->isEmpty() or self.allNamespaces()->select(ns | ns.name->isEmpty())->notEmpty())&#xA;  implies self.qualifiedName->isEmpty()"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="has_qualified_name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="When there is a name, and all of the containing namespaces have a name, the qualified name is constructed from the names of the containing namespaces.&#xA;(self.name->notEmpty() and self.allNamespaces()->select(ns | ns.name->isEmpty())->isEmpty()) implies&#xA;  self.qualifiedName = self.allNamespaces()->iterate( ns : Namespace; result: String = self.name | ns.name->union(self.separator())->union(result))"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="allNamespaces" upperBound="-1" eType="#//Namespace">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.&#xA;result = if self.namespace->isEmpty()&#xA;then Sequence{}&#xA;else self.namespace.allNamespaces()->prepend(self.namespace)&#xA;endif"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="isDistinguishableFrom" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query isDistinguishableFrom() determines whether two NamedElements may logically co-exist within a Namespace. By default, two named elements are distinguishable if (a) they have unrelated types or (b) they have related types but different names.&#xA;result = if self.oclIsKindOf(n.oclType) or n.oclIsKindOf(self.oclType)&#xA;then ns.getNamesOfMember(self)->intersection(ns.getNamesOfMember(n))->isEmpty()&#xA;else true&#xA;endif"/>
+      </eAnnotations>
+      <eParameters name="n" ordered="false" lowerBound="1" eType="#//NamedElement"/>
+      <eParameters name="ns" ordered="false" lowerBound="1" eType="#//Namespace"/>
+    </eOperations>
+    <eOperations name="qualifiedName" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="When there is a name, and all of the containing namespaces have a name, the qualified name is constructed from the names of the containing namespaces.&#xA;result = if self.name->notEmpty() and self.allNamespaces()->select(ns | ns.name->isEmpty())->isEmpty()&#xA;then &#xA;    self.allNamespaces()->iterate( ns : Namespace; result: String = self.name | ns.name->union(self.separator())->union(result))&#xA;else&#xA;    Set{}&#xA;endif"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="separator" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query separator() gives the string that is used to separate names when constructing a qualified name.&#xA;result = '::'"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="namespace" ordered="false"
+        eType="#//Namespace" changeable="false" volatile="true" transient="true" derived="true"
+        eOpposite="#//Namespace/ownedMember">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies the namespace that owns the NamedElement."/>
+      </eAnnotations>
+      <eAnnotations source="union"/>
+      <eAnnotations source="subsets" references="#//Element/owner"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The name of the NamedElement."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="qualifiedName" ordered="false"
+        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String" changeable="false"
+        volatile="true" transient="true" derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A name which allows the NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from the names of the containing namespaces starting at the root of the hierarchy and ending with the name of the NamedElement itself."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="visibility" ordered="false"
+        eType="#//VisibilityKind">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Element" abstract="true" eSuperTypes="#//Object">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="An element is a constituent of a model. As such, it has the capability of owning other elements."/>
+    </eAnnotations>
+    <eOperations name="has_owner" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Elements that must be owned must have an owner.&#xA;self.mustBeOwned() implies owner->notEmpty()"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="not_own_self" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="An element may not directly or indirectly own itself.&#xA;not self.allOwnedElements()->includes(self)"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="allOwnedElements" ordered="false" upperBound="-1" eType="#//Element">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query allOwnedElements() gives all of the direct and indirect owned elements of an element.&#xA;result = ownedElement->union(ownedElement->collect(e | e.allOwnedElements()))"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="mustBeOwned" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query mustBeOwned() indicates whether elements of this type must have an owner. Subclasses of Element that do not require an owner must override this operation.&#xA;result = true"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="getMetaClass" ordered="false" lowerBound="1" eType="#//Class"/>
+    <eOperations name="container" ordered="false" lowerBound="1" eType="#//Element"/>
+    <eOperations name="isInstanceOfType" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eParameters name="type" ordered="false" lowerBound="1" eType="#//Class"/>
+      <eParameters name="includesSubtypes" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"/>
+    </eOperations>
+    <eOperations name="delete" ordered="false" lowerBound="1"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedComment" ordered="false"
+        upperBound="-1" eType="#//Comment" containment="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The Comments owned by this element."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedElement" ordered="false"
+        upperBound="-1" eType="#//Element" changeable="false" volatile="true" transient="true"
+        derived="true" eOpposite="#//Element/owner">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The Elements owned by this element."/>
+      </eAnnotations>
+      <eAnnotations source="union"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="owner" ordered="false"
+        eType="#//Element" changeable="false" volatile="true" transient="true" derived="true"
+        eOpposite="#//Element/ownedElement">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The Element that owns this element."/>
+      </eAnnotations>
+      <eAnnotations source="union"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="metaclass" ordered="false"
+        lowerBound="1" eType="#//Class" volatile="true" transient="true" derived="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Comment" eSuperTypes="#//Element">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A comment is a textual annotation that can be attached to a set of elements."/>
+    </eAnnotations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="annotatedElement" ordered="false"
+        upperBound="-1" eType="#//Element">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="References the Element(s) being commented."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies a string that is the comment."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Class" eSuperTypes="#//Classifier">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A class describes a set of objects that share the same specifications of features, constraints, and semantics."/>
+    </eAnnotations>
+    <eAnnotations source="duplicates">
+      <contents xsi:type="ecore:EOperation" name="inherit" ordered="false" upperBound="-1"
+          eType="#//NamedElement">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The inherit operation is overridden to exclude redefined properties.&#xA;result = inhs->excluding(inh | ownedMember->select(oclIsKindOf(RedefinableElement))->select(redefinedElement->includes(inh)))"/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//Classifier/inherit"/>
+        <eParameters name="inhs" ordered="false" upperBound="-1" eType="#//NamedElement"/>
+      </contents>
+      <contents xsi:type="ecore:EAttribute" name="isAbstract" ordered="false" lowerBound="1"
+          eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+          defaultValueLiteral="false">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="True when a class is abstract.&#xA;If true, the Classifier does not provide a complete declaration and can typically not be instantiated. An abstract classifier is intended to be used by other classifiers e.g. as the target of general metarelationships or generalization relationships."/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//Classifier/isAbstract"/>
+      </contents>
+    </eAnnotations>
+    <eOperations name="superClass" ordered="false" upperBound="-1" eType="#//Class">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Missing derivation for Class::/superClass : Class&#xA;true"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="nestedClassifier" upperBound="-1"
+        eType="#//Classifier" containment="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="References all the Classifiers that are defined (nested) within the Class."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
+        eType="#//Property" containment="true" eOpposite="#//Property/class">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The attributes (i.e. the properties) owned by the class."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Classifier/attribute #//Namespace/ownedMember"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedOperation" upperBound="-1"
+        eType="#//Operation" containment="true" eOpposite="#//Operation/class">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The operations owned by the class."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Namespace/ownedMember #//Classifier/feature"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="superClass" ordered="false"
+        upperBound="-1" eType="#//Class" volatile="true" transient="true" derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="This gives the superclasses of a class."/>
+      </eAnnotations>
+      <eAnnotations source="redefines" references="#//Classifier/general.1"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Classifier" abstract="true" eSuperTypes="#//Namespace #//RedefinableElement #//Type">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A classifier is a classification of instances - it describes a set of instances that have features in common. A classifier can specify a generalization hierarchy by referencing its general classifiers."/>
+    </eAnnotations>
+    <eOperations name="non_final_parents" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The parents of a classifier must be non-final.&#xA;self.parents()->forAll(not isFinalSpecialization)"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="specialize_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A classifier may only specialize classifiers of a valid type.&#xA;self.parents()->forAll(c | self.maySpecializeType(c))"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="no_cycles_in_generalization" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Generalization hierarchies must be directed and acyclical. A classifier can not be both a transitively general and transitively specific classifier of the same classifier.&#xA;not self.allParents()->includes(self)"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="allFeatures" ordered="false" upperBound="-1" eType="#//Feature">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query allFeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as inheritance, this will be a larger set than feature.&#xA;result = member->select(oclIsKindOf(Feature))"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="allParents" ordered="false" upperBound="-1" eType="#//Classifier">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.&#xA;result = self.parents()->union(self.parents()->collect(p | p.allParents())"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="conformsTo" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query conformsTo() gives true for a classifier that defines a type that conforms to another. This is used, for example, in the specification of signature conformance for operations.&#xA;result = (self=other) or (self.allParents()->includes(other))"/>
+      </eAnnotations>
+      <eAnnotations source="redefines" references="#//Type/conformsTo"/>
+      <eParameters name="other" ordered="false" lowerBound="1" eType="#//Classifier"/>
+    </eOperations>
+    <eOperations name="general" ordered="false" upperBound="-1" eType="#//Classifier">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The general classifiers are the classifiers referenced by the generalization relationships.&#xA;result = self.parents()"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="hasVisibilityOf" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query hasVisibilityOf() determines whether a named element is visible in the classifier. By default all are visible. It is only called when the argument is something owned by a parent.&#xA;result = (n.visibility &lt;> VisibilityKind::private)&#xA;self.allParents()->including(self)->collect(c | c.member)->includes(n)"/>
+      </eAnnotations>
+      <eParameters name="n" ordered="false" lowerBound="1" eType="#//NamedElement"/>
+    </eOperations>
+    <eOperations name="inherit" ordered="false" upperBound="-1" eType="#//NamedElement">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The inherit operation is overridden to exclude redefined properties.&#xA;The query inherit() defines how to inherit a set of elements. Here the operation is defined to inherit them all. It is intended to be redefined in circumstances where inheritance is affected by redefinition.&#xA;result = inhs"/>
+      </eAnnotations>
+      <eParameters name="inhs" ordered="false" upperBound="-1" eType="#//NamedElement"/>
+    </eOperations>
+    <eOperations name="inheritableMembers" ordered="false" upperBound="-1" eType="#//NamedElement">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query inheritableMembers() gives all of the members of a classifier that may be inherited in one of its descendants, subject to whatever visibility restrictions apply.&#xA;c.allParents()->includes(self)&#xA;result = member->select(m | c.hasVisibilityOf(m))"/>
+      </eAnnotations>
+      <eParameters name="c" ordered="false" lowerBound="1" eType="#//Classifier"/>
+    </eOperations>
+    <eOperations name="inheritedMember" ordered="false" upperBound="-1" eType="#//NamedElement">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="&#xA;The inheritedMember association is derived by inheriting the inheritable members of the parents.&#xA;&#xA;The inheritedMember association is derived by inheriting the inheritable members of the parents.&#xA;result = self.inherit(self.parents()->collect(p|p.inheritableMembers(self))->asSet())"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="maySpecializeType" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query maySpecializeType() determines whether this classifier may have a generalization relationship to classifiers of the specified type. By default a classifier may specialize classifiers of the same or a more general type. It is intended to be redefined by classifiers that have different specialization constraints.&#xA;result = self.oclIsKindOf(c.oclType)"/>
+      </eAnnotations>
+      <eParameters name="c" ordered="false" lowerBound="1" eType="#//Classifier"/>
+    </eOperations>
+    <eOperations name="parents" ordered="false" upperBound="-1" eType="#//Classifier">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query parents() gives all of the immediate ancestors of a generalized Classifier.&#xA;result = generalization.general"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="attribute" ordered="false"
+        upperBound="-1" eType="#//Property" changeable="false" volatile="true" transient="true"
+        derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier."/>
+      </eAnnotations>
+      <eAnnotations source="union"/>
+      <eAnnotations source="subsets" references="#//Classifier/feature"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="feature" ordered="false"
+        upperBound="-1" eType="#//Feature" changeable="false" volatile="true" transient="true"
+        derived="true" eOpposite="#//Feature/featuringClassifier">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Note that there may be members of the Classifier that are of the type Feature but are not included in this association, e.g. inherited features.&#xA;Specifies each feature defined in the classifier."/>
+      </eAnnotations>
+      <eAnnotations source="union"/>
+      <eAnnotations source="subsets" references="#//Namespace/member"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="general" ordered="false"
+        upperBound="-1" eType="#//Classifier" volatile="true" transient="true" derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="References the general classifier in the Generalization relationship.&#xA;Specifies the general Classifiers for this Classifier."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="generalization" ordered="false"
+        upperBound="-1" eType="#//Generalization" containment="true" eOpposite="#//Generalization/specific">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="inheritedMember" ordered="false"
+        upperBound="-1" eType="#//NamedElement" changeable="false" volatile="true"
+        transient="true" derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies all elements inherited by this classifier from the general classifiers."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Namespace/member"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isAbstract" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+        defaultValueLiteral="false">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="If true, the Classifier does not provide a complete declaration and can typically not be instantiated. An abstract classifier is intended to be used by other classifiers e.g. as the target of general metarelationships or generalization relationships."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isFinalSpecialization"
+        ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+        defaultValueLiteral="false">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedClassifier" ordered="false"
+        upperBound="-1" eType="#//Classifier">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="References the Classifiers that are redefined by this Classifier."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Type" abstract="true" eSuperTypes="#//PackageableElement">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A type is a named element that is used as the type for a typed element. A type can be contained in a package.&#xA;A type constrains the values represented by a typed element."/>
+    </eAnnotations>
+    <eOperations name="conformsTo" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query conformsTo() gives true for a type that conforms to another. By default, two types do not conform to each other. This query is intended to be redefined for specific conformance situations.&#xA;result = false"/>
+      </eAnnotations>
+      <eParameters name="other" ordered="false" lowerBound="1" eType="#//Type"/>
+    </eOperations>
+    <eOperations name="isInstance" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eParameters name="object" ordered="false" lowerBound="1" eType="#//Object"/>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="package" ordered="false"
+        eType="#//Package" volatile="true" transient="true" derived="true" eOpposite="#//Package/ownedType.1">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies the owning package of this classifier, if any."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="PackageableElement" abstract="true"
+      eSuperTypes="#//NamedElement">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A packageable element indicates a named element that may be owned directly by a package."/>
+    </eAnnotations>
+    <eAnnotations source="duplicates">
+      <contents xsi:type="ecore:EAttribute" name="visibility" ordered="false" eType="#//VisibilityKind"
+          defaultValueLiteral="public">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="Indicates that packageable elements must always have a visibility, i.e., visibility is not optional."/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//NamedElement/visibility"/>
+      </contents>
+    </eAnnotations>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="VisibilityKind">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="VisibilityKind is an enumeration type that defines literals to determine the visibility of elements in a model."/>
+    </eAnnotations>
+    <eLiterals name="public">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A public element is visible to all elements that can access the contents of the namespace that owns it."/>
+      </eAnnotations>
+    </eLiterals>
+    <eLiterals name="private" value="1">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A private element is only visible inside the namespace that owns it."/>
+      </eAnnotations>
+    </eLiterals>
+    <eLiterals name="protected" value="2">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A protected element is visible to elements that have a generalization relationship to the namespace that owns it."/>
+      </eAnnotations>
+    </eLiterals>
+    <eLiterals name="package" value="3">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A package element is owned by a namespace that is not a package, and is visible to elements that are in the same package as its owning namespace. Only named elements that are not owned by packages can be marked as having package visibility. Any element marked as having package visibility is visible to all elements within the nearest enclosing package (given that other owning elements have proper visibility). Outside the nearest enclosing package, an element marked as having package visibility is not visible."/>
+      </eAnnotations>
+    </eLiterals>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Package" eSuperTypes="#//Namespace #//PackageableElement">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A package is used to group elements, and provides a namespace for the grouped elements."/>
+    </eAnnotations>
+    <eAnnotations source="duplicates">
+      <contents xsi:type="ecore:EOperation" name="mustBeOwned" ordered="false" lowerBound="1"
+          eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The query mustBeOwned() indicates whether elements of this type must have an owner.&#xA;result = false"/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//Element/mustBeOwned"/>
+      </contents>
+    </eAnnotations>
+    <eOperations name="elements_public_or_private" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="If an element that is owned by a package has visibility, it is public or private.&#xA;self.ownedElements->forAll(e | e.visibility->notEmpty() implies e.visbility = #public or e.visibility = #private)"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="makesVisible" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query makesVisible() defines whether a Package makes an element visible outside itself. Elements with no visibility and elements with public visibility are made visible.&#xA;result = (ownedMember->includes(el)) or&#xA;(elementImport->select(ei|ei.importedElement = #public)->collect(ei|ei.importedElement)->includes(el)) or&#xA;(packageImport->select(pi|pi.visibility = #public)->collect(pi|pi.importedPackage.member->includes(el))->notEmpty())&#xA;self.member->includes(el)"/>
+      </eAnnotations>
+      <eParameters name="el" ordered="false" lowerBound="1" eType="#//NamedElement"/>
+    </eOperations>
+    <eOperations name="nestedPackage" ordered="false" upperBound="-1" eType="#//Package">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Missing derivation for Package::/nestedPackage : Package&#xA;true"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="ownedType" ordered="false" upperBound="-1" eType="#//Type">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Missing derivation for Package::/ownedType : Type&#xA;true"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="visibleMembers" ordered="false" upperBound="-1" eType="#//PackageableElement">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query visibleMembers() defines which members of a Package can be accessed outside it.&#xA;result = member->select( m | self.makesVisible(m))"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="URI" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Provides an identifier for the package that can be used for many purposes. A URI is the universally unique identification of the package following the IETF URI specification, RFC 2396 http://www.ietf.org/rfc/rfc2396.txt and it must comply with those syntax rules."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="nestedPackage" ordered="false"
+        upperBound="-1" eType="#//Package" volatile="true" transient="true" derived="true"
+        eOpposite="#//Package/nestingPackage">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="References the packaged elements that are Packages."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Package/packagedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="nestingPackage" ordered="false"
+        eType="#//Package" volatile="true" transient="true" derived="true" eOpposite="#//Package/nestedPackage.1">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="References the Package that owns this Package."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="packageMerge" ordered="false"
+        upperBound="-1" eType="#//PackageMerge" containment="true" eOpposite="#//PackageMerge/receivingPackage">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="References the PackageMerges that are owned by this Package."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="packagedElement" ordered="false"
+        upperBound="-1" eType="#//PackageableElement" containment="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies the packageable elements that are owned by this Package."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedType" ordered="false"
+        upperBound="-1" eType="#//Type" volatile="true" transient="true" derived="true"
+        eOpposite="#//Type/package">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="References the packaged elements that are Types."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Package/packagedElement"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Namespace" abstract="true" eSuperTypes="#//NamedElement">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A namespace is an element in a model that contains a set of named elements that can be identified by name."/>
+    </eAnnotations>
+    <eOperations name="members_distinguishable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="All the members of a Namespace are distinguishable within it.&#xA;membersAreDistinguishable()"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="excludeCollisions" ordered="false" upperBound="-1" eType="#//PackageableElement">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.&#xA;result = imps->reject(imp1 | imps.exists(imp2 | not imp1.isDistinguishableFrom(imp2, self)))"/>
+      </eAnnotations>
+      <eParameters name="imps" ordered="false" upperBound="-1" eType="#//PackageableElement"/>
+    </eOperations>
+    <eOperations name="getNamesOfMember" ordered="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query getNamesOfMember() takes importing into account. It gives back the set of names that an element would have in an importing namespace, either because it is owned, or if not owned then imported individually, or if not individually then from a package.&#xA;The query getNamesOfMember() gives a set of all of the names that a member would have in a Namespace. In general a member can have multiple names in a Namespace if it is imported more than once with different aliases. The query takes account of importing. It gives back the set of names that an element would have in an importing namespace, either because it is owned, or if not owned then imported individually, or if not individually then from a package.&#xA;result = if self.ownedMember ->includes(element)&#xA;then Set{}->include(element.name)&#xA;else let elementImports: ElementImport = self.elementImport->select(ei | ei.importedElement = element) in&#xA;  if elementImports->notEmpty()&#xA;  then elementImports->collect(el | el.getName())&#xA;  else self.packageImport->select(pi | pi.importedPackage.visibleMembers()->includes(element))-> collect(pi | pi.importedPackage.getNamesOfMember(element))&#xA;  endif&#xA;endif"/>
+      </eAnnotations>
+      <eParameters name="element" ordered="false" lowerBound="1" eType="#//NamedElement"/>
+    </eOperations>
+    <eOperations name="importMembers" ordered="false" upperBound="-1" eType="#//PackageableElement">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query importMembers() defines which of a set of PackageableElements are actually imported into the namespace. This excludes hidden ones, i.e., those which have names that conflict with names of owned members, and also excludes elements which would have the same name when imported.&#xA;result = self.excludeCollisions(imps)->select(imp | self.ownedMember->forAll(mem |&#xA;mem.imp.isDistinguishableFrom(mem, self)))"/>
+      </eAnnotations>
+      <eParameters name="imps" ordered="false" upperBound="-1" eType="#//PackageableElement"/>
+    </eOperations>
+    <eOperations name="importedMember" ordered="false" upperBound="-1" eType="#//PackageableElement">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The importedMember property is derived from the ElementImports and the PackageImports. References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.&#xA;result = self.importMembers(self.elementImport.importedElement.asSet()-&#xA;>union(self.packageImport.importedPackage->collect(p | p.visibleMembers())))"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="membersAreDistinguishable" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.&#xA;result = self.member->forAll( memb |&#xA;self.member->excluding(memb)->forAll(other |&#xA;memb.isDistinguishableFrom(other, self)))"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="elementImport" ordered="false"
+        upperBound="-1" eType="#//ElementImport" containment="true" eOpposite="#//ElementImport/importingNamespace">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="References the ElementImports owned by the Namespace."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="importedMember" ordered="false"
+        upperBound="-1" eType="#//PackageableElement" changeable="false" volatile="true"
+        transient="true" derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Namespace/member"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="member" ordered="false"
+        upperBound="-1" eType="#//NamedElement" changeable="false" volatile="true"
+        transient="true" derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance."/>
+      </eAnnotations>
+      <eAnnotations source="union"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedMember" ordered="false"
+        upperBound="-1" eType="#//NamedElement" changeable="false" volatile="true"
+        transient="true" derived="true" eOpposite="#//NamedElement/namespace">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A collection of NamedElements owned by the Namespace."/>
+      </eAnnotations>
+      <eAnnotations source="union"/>
+      <eAnnotations source="subsets" references="#//Element/ownedElement #//Namespace/member"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedRule" ordered="false"
+        upperBound="-1" eType="#//Constraint" containment="true" eOpposite="#//Constraint/context">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies a set of Constraints owned by this Namespace."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="packageImport" ordered="false"
+        upperBound="-1" eType="#//PackageImport" containment="true" eOpposite="#//PackageImport/importingNamespace">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="References the PackageImports owned by the Namespace."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="ElementImport" eSuperTypes="#//DirectedRelationship">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="An element import identifies an element in another package, and allows the element to be referenced using its name without a qualifier."/>
+    </eAnnotations>
+    <eOperations name="visibility_public_or_private" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The visibility of an ElementImport is either public or private.&#xA;self.visibility = #public or self.visibility = #private"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="imported_element_is_public" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="An importedElement has either public visibility or no visibility at all.&#xA;self.importedElement.visibility.notEmpty() implies self.importedElement.visibility = #public"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="getName" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query getName() returns the name under which the imported PackageableElement will be known in the importing namespace.&#xA;result = if self.alias->notEmpty() then&#xA;  self.alias&#xA;else&#xA;  self.importedElement.name&#xA;endif"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="alias" ordered="false"
+        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies the name that should be added to the namespace of the importing package in lieu of the name of the imported packagable element. The aliased name must not clash with any other member name in the importing package. By default, no alias is used."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="importedElement" ordered="false"
+        lowerBound="1" eType="#//PackageableElement">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies the PackageableElement whose name is to be added to a Namespace."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="visibility" ordered="false"
+        lowerBound="1" eType="#//VisibilityKind" defaultValueLiteral="public">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies the visibility of the imported PackageableElement within the importing Package. The default visibility is the same as that of the imported element. If the imported element does not have a visibility, it is possible to add visibility to the element import."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="importingNamespace" ordered="false"
+        lowerBound="1" eType="#//Namespace" eOpposite="#//Namespace/elementImport">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies the Namespace that imports a PackageableElement from another Package."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/owner #//DirectedRelationship/source"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="DirectedRelationship" abstract="true"
+      eSuperTypes="#//Relationship">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A directed relationship represents a relationship between a collection of source model elements and a collection of target model elements."/>
+    </eAnnotations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="source" ordered="false"
+        lowerBound="1" upperBound="-1" eType="#//Element" changeable="false" volatile="true"
+        transient="true" derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies the sources of the DirectedRelationship."/>
+      </eAnnotations>
+      <eAnnotations source="union"/>
+      <eAnnotations source="subsets" references="#//Relationship/relatedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="target" ordered="false"
+        lowerBound="1" upperBound="-1" eType="#//Element" changeable="false" volatile="true"
+        transient="true" derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies the targets of the DirectedRelationship."/>
+      </eAnnotations>
+      <eAnnotations source="union"/>
+      <eAnnotations source="subsets" references="#//Relationship/relatedElement"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Relationship" abstract="true" eSuperTypes="#//Element">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="Relationship is an abstract concept that specifies some kind of relationship between elements."/>
+    </eAnnotations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="relatedElement" ordered="false"
+        lowerBound="1" upperBound="-1" eType="#//Element" changeable="false" volatile="true"
+        transient="true" derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies the elements related by the Relationship."/>
+      </eAnnotations>
+      <eAnnotations source="union"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Constraint" eSuperTypes="#//PackageableElement">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A constraint is a condition or restriction expressed in natural language text or in a machine readable language for the purpose of declaring some of the semantics of an element."/>
+    </eAnnotations>
+    <eOperations name="value_specification_boolean" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The value specification for a constraint must evaluate to a Boolean value.&#xA;self.specification().booleanValue().isOclKindOf(Boolean)"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="boolean_value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The value specification for a constraint must evaluate to a Boolean value.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="not_apply_to_self" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A constraint cannot be applied to itself.&#xA;not constrainedElement->includes(self)"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="no_side_effects" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Evaluating the value specification for a constraint must not have side effects.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="constrainedElement" upperBound="-1"
+        eType="#//Element">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The ordered set of Elements referenced by this Constraint."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="specification" ordered="false"
+        lowerBound="1" eType="#//ValueSpecification" containment="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A condition that must be true when evaluated in order for the constraint to be satisfied."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="context" ordered="false"
+        eType="#//Namespace" eOpposite="#//Namespace/ownedRule">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies the namespace that owns the NamedElement."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="ValueSpecification" abstract="true"
+      eSuperTypes="#//TypedElement #//PackageableElement">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A value specification is the specification of a (possibly empty) set of instances, including both objects and data values."/>
+    </eAnnotations>
+    <eOperations name="booleanValue" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query booleanValue() gives a single Boolean value when one can be computed.&#xA;result = Set{}"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="integerValue" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query integerValue() gives a single Integer value when one can be computed.&#xA;result = Set{}"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="isComputable" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query isComputable() determines whether a value specification can be computed in a model. This operation cannot be fully defined in OCL. A conforming implementation is expected to deliver true for this operation for all value specifications that it can compute, and to compute all of those for which the operation is true. A conforming implementation is expected to be able to compute the value of all literals.&#xA;result = false"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="isNull" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query isNull() returns true when it can be computed that the value is null.&#xA;result = false"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="realValue" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Real">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query realValue() gives a single Real value when one can be computed.&#xA;result = Set{}"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="stringValue" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query stringValue() gives a single String value when one can be computed.&#xA;result = Set{}"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="unlimitedValue" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//UnlimitedNatural">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query unlimitedValue() gives a single UnlimitedNatural value when one can be computed.&#xA;result = Set{}"/>
+      </eAnnotations>
+    </eOperations>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="TypedElement" abstract="true" eSuperTypes="#//NamedElement">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A typed element is a kind of named element that represents an element with a type.&#xA;A typed element has a type."/>
+    </eAnnotations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" eType="#//Type">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="This information is derived from the return result for this Operation.&#xA;The type of the TypedElement."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="PackageImport" eSuperTypes="#//DirectedRelationship">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A package import is a relationship that allows the use of unqualified names to refer to package members from other namespaces."/>
+    </eAnnotations>
+    <eOperations name="public_or_private" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The visibility of a PackageImport is either public or private.&#xA;self.visibility = #public or self.visibility = #private"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="importedPackage" ordered="false"
+        lowerBound="1" eType="#//Package">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies the Package whose members are imported into a Namespace."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="visibility" ordered="false"
+        lowerBound="1" eType="#//VisibilityKind" defaultValueLiteral="public">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies the visibility of the imported PackageableElements within the importing Namespace, i.e., whether imported elements will in turn be visible to other packages that use that importingPackage as an importedPackage. If the PackageImport is public, the imported elements will be visible outside the package, while if it is private they will not."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="importingNamespace" ordered="false"
+        lowerBound="1" eType="#//Namespace" eOpposite="#//Namespace/packageImport">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies the Namespace that imports the members from a Package."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/owner #//DirectedRelationship/source"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="PackageMerge" eSuperTypes="#//DirectedRelationship">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A package merge defines how the contents of one package are extended by the contents of another package."/>
+    </eAnnotations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="mergedPackage" ordered="false"
+        lowerBound="1" eType="#//Package">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="References the Package that is to be merged with the receiving package of the PackageMerge."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="receivingPackage" ordered="false"
+        lowerBound="1" eType="#//Package" eOpposite="#//Package/packageMerge">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="References the Package that is being extended with the contents of the merged package of the PackageMerge."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/owner #//DirectedRelationship/source"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Generalization" eSuperTypes="#//DirectedRelationship">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A generalization is a taxonomic relationship between a more general classifier and a more specific classifier. Each instance of the specific classifier is also an indirect instance of the general classifier. Thus, the specific classifier inherits the features of the more general classifier."/>
+    </eAnnotations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="general" ordered="false"
+        lowerBound="1" eType="#//Classifier">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="References the general classifier in the Generalization relationship."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isSubstitutable" ordered="false"
+        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+        defaultValueLiteral="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Indicates whether the specific classifier can be used wherever the general classifier can be used. If true, the execution traces of the specific classifier will be a superset of the execution traces of the general classifier."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="specific" ordered="false"
+        lowerBound="1" eType="#//Classifier" eOpposite="#//Classifier/generalization">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="References the specializing classifier in the Generalization relationship."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//DirectedRelationship/source #//Element/owner"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Operation" eSuperTypes="#//BehavioralFeature">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="An operation is a behavioral feature of a classifier that specifies the name, type, parameters, and constraints for invoking an associated behavior."/>
+    </eAnnotations>
+    <eAnnotations source="duplicates">
+      <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
+          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The query isConsistentWith() specifies, for any two Operations in a context in which redefinition is possible, whether redefinition would be consistent in the sense of maintaining type covariance. Other senses of consistency may be required, for example to determine consistency in the sense of contravariance. Users may define alternative queries under names different from 'isConsistentWith()', as for example, users may define a query named 'isContravariantWith()'.&#xA;A redefining operation is consistent with a redefined operation if it has the same number of owned parameters, and the type of each owned parameter conforms to the type of the corresponding redefined parameter.&#xA;result = redefinee.oclIsKindOf(Operation) and&#xA;let op : Operation = redefinee.oclAsType(Operation) in&#xA;&#x9;self.ownedParameter->size() = op.ownedParameter->size() and&#xA;&#x9;Sequence{1..self.ownedParameter->size()}->&#xA;&#x9;&#x9;forAll(i |op.ownedParameter->at(1).type.conformsTo(self.ownedParameter->at(i).type))&#xA;redefinee.isRedefinitionContextValid(self)"/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
+        <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
+      </contents>
+      <contents xsi:type="ecore:EReference" name="ownedParameter" upperBound="-1"
+          eType="#//Parameter" containment="true" eOpposite="#//Parameter/operation">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="Specifies the ordered set of formal parameters of this BehavioralFeature.&#xA;Specifies the parameters owned by this Operation."/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//BehavioralFeature/ownedParameter"/>
+      </contents>
+      <contents xsi:type="ecore:EReference" name="raisedException" ordered="false"
+          upperBound="-1" eType="#//Type">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="References the Types representing exceptions that may be raised during an invocation of this operation."/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//BehavioralFeature/raisedException"/>
+      </contents>
+    </eAnnotations>
+    <eOperations name="only_body_for_query" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A bodyCondition can only be specified for a query operation.&#xA;bodyCondition->notEmpty() implies isQuery"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="at_most_one_return" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="An operation can have at most one return parameter; i.e., an owned parameter with the direction set to 'return'&#xA;self.ownedParameter->select(par | par.direction = #return)->size() &lt;= 1"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="isOrdered" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="If this operation has a return parameter, isOrdered equals the value of isOrdered for that parameter. Otherwise isOrdered is false.&#xA;result = if returnResult()->notEmpty() then returnResult()->any().isOrdered else false endif"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="isUnique" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="If this operation has a return parameter, isUnique equals the value of isUnique for that parameter. Otherwise isUnique is true.&#xA;result = if returnResult()->notEmpty() then returnResult()->any().isUnique else true endif"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="lower" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="If this operation has a return parameter, lower equals the value of lower for that parameter. Otherwise lower is not defined.&#xA;result = if returnResult()->notEmpty() then returnResult()->any().lower else Set{} endif"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="returnResult" ordered="false" upperBound="-1" eType="#//Parameter">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query returnResult() returns the set containing the return parameter of the Operation if one exists, otherwise, it returns an empty set&#xA;result = ownedParameter->select (par | par.direction = #return)"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="type" ordered="false" lowerBound="1" eType="#//Type">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="If this operation has a return parameter, type equals the value of type for that parameter. Otherwise type is not defined.&#xA;result = if returnResult()->notEmpty() then returnResult()->any().type else Set{} endif"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="upper" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//UnlimitedNatural">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="If this operation has a return parameter, upper equals the value of upper for that parameter. Otherwise upper is not defined.&#xA;result = if returnResult()->notEmpty() then returnResult()->any().upper else Set{} endif"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="bodyCondition" ordered="false"
+        eType="#//Constraint">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="An optional Constraint on the result values of an invocation of this Operation."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Namespace/ownedRule"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" ordered="false"
+        eType="#//DataType" eOpposite="#//DataType/ownedOperation">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The DataType that owns this Operation."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//NamedElement/namespace #//Feature/featuringClassifier #//RedefinableElement/redefinitionContext"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isOrdered" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+        changeable="false" volatile="true" transient="true" defaultValueLiteral="false"
+        derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="This information is derived from the return result for this Operation.&#xA;Specifies whether the return parameter is ordered or not, if present."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isQuery" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+        defaultValueLiteral="false">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies whether an execution of the BehavioralFeature leaves the state of the system unchanged (isQuery=true) or whether side effects may occur (isQuery=false)."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isUnique" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+        changeable="false" volatile="true" transient="true" defaultValueLiteral="true"
+        derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="This information is derived from the return result for this Operation.&#xA;Specifies whether the return parameter is unique or not, if present."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="lower" ordered="false"
+        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer"
+        changeable="false" volatile="true" transient="true" defaultValueLiteral="1"
+        derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="This information is derived from the return result for this Operation.&#xA;Specifies the lower multiplicity of the return parameter, if present."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="postcondition" ordered="false"
+        upperBound="-1" eType="#//Constraint">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="An optional set of Constraints specifying the state of the system when the Operation is completed."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Namespace/ownedRule"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="precondition" ordered="false"
+        upperBound="-1" eType="#//Constraint">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="An optional set of Constraints on the state of the system when the Operation is invoked."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Namespace/ownedRule"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedOperation" ordered="false"
+        upperBound="-1" eType="#//Operation">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="References the Operations that are redefined by this Operation."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" eType="#//Type"
+        changeable="false" volatile="true" transient="true" derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="This information is derived from the return result for this Operation.&#xA;Specifies the return result of the operation, if present."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="upper" ordered="false"
+        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//UnlimitedNatural"
+        changeable="false" volatile="true" transient="true" defaultValueLiteral="1"
+        derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="This information is derived from the return result for this Operation.&#xA;Specifies the upper multiplicity of the return parameter, if present."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="class" ordered="false"
+        eType="#//Class" eOpposite="#//Class/ownedOperation">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The class that owns the operation."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//NamedElement/namespace #//Feature/featuringClassifier #//RedefinableElement/redefinitionContext"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="BehavioralFeature" abstract="true" eSuperTypes="#//Namespace #//Feature">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A behavioral feature is a feature of a classifier that specifies an aspect of the behavior of its instances."/>
+    </eAnnotations>
+    <eAnnotations source="duplicates">
+      <contents xsi:type="ecore:EOperation" name="isDistinguishableFrom" ordered="false"
+          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The query isDistinguishableFrom() determines whether two BehavioralFeatures may coexist in the same Namespace. It specifies that they have to have different signatures.&#xA;result = if n.oclIsKindOf(BehavioralFeature)&#xA;then&#xA;  if ns.getNamesOfMember(self)->intersection(ns.getNamesOfMember(n))->notEmpty()&#xA;  then Set{}->including(self)->including(n)->isUnique(bf | bf.ownedParameter->collect(type))&#xA;  else true&#xA;  endif&#xA;else true&#xA;endif"/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//NamedElement/isDistinguishableFrom"/>
+        <eParameters name="n" ordered="false" lowerBound="1" eType="#//NamedElement"/>
+        <eParameters name="ns" ordered="false" lowerBound="1" eType="#//Namespace"/>
+      </contents>
+    </eAnnotations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedParameter" upperBound="-1"
+        eType="#//Parameter" containment="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies the ordered set of formal parameters of this BehavioralFeature."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="raisedException" ordered="false"
+        upperBound="-1" eType="#//Type">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="References the Types representing exceptions that may be raised during an invocation of this feature."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Parameter" eSuperTypes="#//MultiplicityElement #//TypedElement">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A parameter is a specification of an argument used to pass information into or out of an invocation of a behavioral feature."/>
+    </eAnnotations>
+    <eOperations name="default" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Missing derivation for Parameter::/default : String&#xA;true"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" ordered="false"
+        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String" volatile="true"
+        transient="true" derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies a String that represents a value to be used when no argument is supplied for the Parameter."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="defaultValue" ordered="false"
+        eType="#//ValueSpecification" containment="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies a ValueSpecification that represents a value to be used when no argument is supplied for the Parameter."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="direction" ordered="false"
+        lowerBound="1" eType="#//ParameterDirectionKind" defaultValueLiteral="in">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Indicates whether a parameter is being sent into or out of a behavioral element."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="operation" ordered="false"
+        eType="#//Operation" changeable="false" volatile="true" transient="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="References the Operation owning this parameter."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="MultiplicityElement" abstract="true"
+      eSuperTypes="#//Element">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A multiplicity is a definition of an inclusive interval of non-negative integers beginning with a lower bound and ending with a (possibly infinite) upper bound. A multiplicity element embeds this information to specify the allowable cardinalities for an instantiation of this element."/>
+    </eAnnotations>
+    <eOperations name="lower_ge_0" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The lower bound must be a non-negative integer literal.&#xA;lowerBound()->notEmpty() implies lowerBound() >= 0"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="value_specification_no_side_effects" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="If a non-literal ValueSpecification is used for the lower or upper bound, then evaluating that specification must not have side effects.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="upper_ge_lower" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The upper bound must be greater than or equal to the lower bound.&#xA;(upperBound()->notEmpty() and lowerBound()->notEmpty()) implies upperBound() >= lowerBound()"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="value_specification_constant" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="If a non-literal ValueSpecification is used for the lower or upper bound, then that specification must be a constant expression.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="includesCardinality" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query includesCardinality() checks whether the specified cardinality is valid for this multiplicity.&#xA;result = (lowerBound() &lt;= C) and (upperBound() >= C)&#xA;upperBound()->notEmpty() and lowerBound()->notEmpty()"/>
+      </eAnnotations>
+      <eParameters name="C" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer"/>
+    </eOperations>
+    <eOperations name="includesMultiplicity" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query includesMultiplicity() checks whether this multiplicity includes all the cardinalities allowed by the specified multiplicity.&#xA;result = (self.lowerBound() &lt;= M.lowerBound()) and (self.upperBound() >= M.upperBound())&#xA;self.upperBound()->notEmpty() and self.lowerBound()->notEmpty() and M.upperBound()->notEmpty() and M.lowerBound()->notEmpty()"/>
+      </eAnnotations>
+      <eParameters name="M" ordered="false" lowerBound="1" eType="#//MultiplicityElement"/>
+    </eOperations>
+    <eOperations name="isMultivalued" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query isMultivalued() checks whether this multiplicity has an upper bound greater than one.&#xA;upperBound()->notEmpty()&#xA;result = upperBound() > 1"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="lower" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The derived lower attribute must equal the lowerBound.&#xA;result = lowerBound()"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="lowerBound" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query lowerBound() returns the lower bound of the multiplicity as an integer.&#xA;result = if lowerValue->isEmpty() then 1 else lowerValue.integerValue() endif"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="upper" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//UnlimitedNatural">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The derived upper attribute must equal the upperBound.&#xA;result = upperBound()"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="upperBound" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//UnlimitedNatural">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query upperBound() returns the upper bound of the multiplicity for a bounded multiplicity as an unlimited natural.&#xA;result = if upperValue->isEmpty() then 1 else upperValue.unlimitedValue() endif"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isOrdered" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+        defaultValueLiteral="false">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isUnique" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+        defaultValueLiteral="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="For a multivalued multiplicity, this attributes specifies whether the values in an instantiation of this element are unique."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="lower" ordered="false"
+        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer"
+        volatile="true" transient="true" defaultValueLiteral="1" derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies the lower bound of the multiplicity interval."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="lowerValue" ordered="false"
+        eType="#//ValueSpecification" containment="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The specification of the lower bound for this multiplicity."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="upper" ordered="false"
+        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//UnlimitedNatural"
+        volatile="true" transient="true" defaultValueLiteral="1" derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies the upper bound of the multiplicity interval."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="upperValue" ordered="false"
+        eType="#//ValueSpecification" containment="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The specification of the upper bound for this multiplicity."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="ParameterDirectionKind">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="Parameter direction kind is an enumeration type that defines literals used to specify direction of parameters."/>
+    </eAnnotations>
+    <eLiterals name="in">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Indicates that parameter values are passed into the behavioral element by the caller."/>
+      </eAnnotations>
+    </eLiterals>
+    <eLiterals name="inout" value="1">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Indicates that parameter values are passed into a behavioral element by the caller and then back out to the caller from the behavioral element."/>
+      </eAnnotations>
+    </eLiterals>
+    <eLiterals name="out" value="2">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Indicates that parameter values are passed from a behavioral element out to the caller."/>
+      </eAnnotations>
+    </eLiterals>
+    <eLiterals name="return" value="3">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Indicates that parameter values are passed as return values from a behavioral element back to the caller."/>
+      </eAnnotations>
+    </eLiterals>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="DataType" eSuperTypes="#//Classifier">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A data type is a type whose instances are identified only by their value. A data type may contain attributes to support the modeling of structured data types."/>
+    </eAnnotations>
+    <eAnnotations source="duplicates">
+      <contents xsi:type="ecore:EOperation" name="inherit" ordered="false" upperBound="-1"
+          eType="#//NamedElement">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The inherit operation is overridden to exclude redefined properties.&#xA;result = inhs->excluding(inh | ownedMember->select(oclIsKindOf(RedefinableElement))->select(redefinedElement->includes(inh)))"/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//Classifier/inherit"/>
+        <eParameters name="inhs" ordered="false" upperBound="-1" eType="#//NamedElement"/>
+      </contents>
+    </eAnnotations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
+        eType="#//Property" containment="true" eOpposite="#//Property/datatype">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The Attributes owned by the DataType."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Classifier/attribute #//Namespace/ownedMember"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedOperation" upperBound="-1"
+        eType="#//Operation" containment="true" eOpposite="#//Operation/datatype">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The Operations owned by the DataType."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Namespace/ownedMember #//Classifier/feature"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="AggregationKind">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="AggregationKind is an enumeration type that specifies the literals for defining the kind of aggregation of a property."/>
+    </eAnnotations>
+    <eLiterals name="none">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Indicates that the property has no aggregation."/>
+      </eAnnotations>
+    </eLiterals>
+    <eLiterals name="shared" value="1">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Indicates that the property has a shared aggregation."/>
+      </eAnnotations>
+    </eLiterals>
+    <eLiterals name="composite" value="2">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Indicates that the property is aggregated compositely, i.e., the composite object has responsibility for the existence and storage of the composed objects (parts)."/>
+      </eAnnotations>
+    </eLiterals>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Association" eSuperTypes="#//Classifier #//Relationship">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="An association describes a set of tuples whose values refer to typed instances. An instance of an association is called a link.A link is a tuple with one value for each end of the association, where each value is an instance of the type of the end.&#xA;An association describes a set of tuples whose values refer to typed instances. An instance of an association is called a link. A link is a tuple with one value for each end of the association, where each value is an instance of the type of the end."/>
+    </eAnnotations>
+    <eOperations name="binary_associations" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Only binary associations can be aggregations.&#xA;self.memberEnd->exists(aggregation &lt;> Aggregation::none) implies self.memberEnd->size() = 2"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="specialized_end_number" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="An association specializing another association has the same number of ends as the other association.&#xA;parents()->select(oclIsKindOf(Association)).oclAsType(Association)->forAll(p | p.memberEnd->size() = self.memberEnd->size())"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="association_ends" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Association ends of associations with more than two ends must be owned by the association.&#xA;if memberEnd->size() > 2 then ownedEnd->includesAll(memberEnd)"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="specialized_end_types" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="When an association specializes another association, every end of the specific association corresponds to an end of the general association, and the specific end reaches the same type or a subtype of the more general end.&#xA;Sequence{1..self.memberEnd->size()}->&#xA;&#x9;forAll(i | self.general->select(oclIsKindOf(Association)).oclAsType(Association)->&#xA;&#x9;&#x9;forAll(ga |self.memberEnd->at(i).type.conformsTo(ga.memberEnd->at(i).type)))"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="endType" upperBound="-1" eType="#//Type">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="endType is derived from the types of the member ends.&#xA;result = self.memberEnd->collect(e | e.type)"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="endType" lowerBound="1"
+        upperBound="-1" eType="#//Type" changeable="false" volatile="true" transient="true"
+        derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="References the classifiers that are used as types of the ends of the association."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Relationship/relatedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isDerived" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+        defaultValueLiteral="false">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies whether the association is derived from other model elements such as other associations or constraints."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="navigableOwnedEnd" ordered="false"
+        upperBound="-1" eType="#//Property">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The navigable ends that are owned by the association itself."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Association/ownedEnd"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedEnd" upperBound="-1"
+        eType="#//Property" containment="true" eOpposite="#//Property/owningAssociation">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The ends that are owned by the association itself."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Association/memberEnd #//Namespace/ownedMember #//Classifier/feature"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="memberEnd" lowerBound="2"
+        upperBound="-1" eType="#//Property" eOpposite="#//Property/association">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Each end represents participation of instances of the classifier connected to the end in links of the association."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Namespace/member"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Argument">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="value" ordered="false"
+        lowerBound="1" eType="#//Object"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Enumeration" eSuperTypes="#//DataType">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="An enumeration is a data type whose values are enumerated in the model as enumeration literals."/>
+    </eAnnotations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedLiteral" upperBound="-1"
+        eType="#//EnumerationLiteral" containment="true" eOpposite="#//EnumerationLiteral/enumeration">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The ordered set of literals for this Enumeration."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="EnumerationLiteral" eSuperTypes="#//InstanceSpecification">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="An enumeration literal is a user-defined data value for an enumeration."/>
+    </eAnnotations>
+    <eAnnotations source="duplicates">
+      <contents xsi:type="ecore:EReference" name="classifier" ordered="false" upperBound="-1"
+          eType="#//Enumeration" changeable="false" volatile="true" transient="true"
+          derived="true">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The classifier of this EnumerationLiteral derived to be equal to its enumeration."/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//InstanceSpecification/classifier"/>
+      </contents>
+    </eAnnotations>
+    <eOperations name="classifier_equals_owning_enumeration" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="classifier = enumeration"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="classifier" ordered="false" lowerBound="1" eType="#//Enumeration">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Missing derivation for EnumerationLiteral::/classifier : Enumeration&#xA;true"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="enumeration" ordered="false"
+        eType="#//Enumeration" eOpposite="#//Enumeration/ownedLiteral">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The Enumeration that this EnumerationLiteral is a member of."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="InstanceSpecification" eSuperTypes="#//PackageableElement">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="An instance specification is a model element that represents an instance in a modeled system."/>
+    </eAnnotations>
+    <eOperations name="structural_feature" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="One structural feature (including the same feature inherited from multiple classifiers) is the defining feature of at most one slot in an instance specification.&#xA;classifier->forAll(c | (c.allFeatures()->forAll(f | slot->select(s | s.definingFeature = f)->size() &lt;= 1)))"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="defining_feature" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The defining feature of each slot is a structural feature (directly or inherited) of a classifier of the instance specification.&#xA;slot->forAll(s | classifier->exists (c | c.allFeatures()->includes (s.definingFeature)))"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="classifier" ordered="false"
+        upperBound="-1" eType="#//Classifier">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The classifier or classifiers of the represented instance. If multiple classifiers are specified, the instance is classified by all of them."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="slot" ordered="false" upperBound="-1"
+        eType="#//Slot" containment="true" eOpposite="#//Slot/owningInstance">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A slot giving the value or values of a structural feature of the instance. An instance specification can have one slot per structural feature of its classifiers, including inherited features. It is not necessary to model a slot for each structural feature, in which case the instance specification is a partial description."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="specification" ordered="false"
+        eType="#//ValueSpecification" containment="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A specification of how to compute, derive, or construct the instance."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Slot" eSuperTypes="#//Element">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A slot specifies that an entity modeled by an instance specification has a value or values for a specific structural feature."/>
+    </eAnnotations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="definingFeature" ordered="false"
+        lowerBound="1" eType="#//StructuralFeature">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The structural feature that specifies the values that may be held by the slot."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="value" upperBound="-1"
+        eType="#//ValueSpecification" containment="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The value or values corresponding to the defining feature for the owning instance specification."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="owningInstance" ordered="false"
+        lowerBound="1" eType="#//InstanceSpecification" eOpposite="#//InstanceSpecification/slot">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The instance specification that owns this slot."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/owner"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Expression" eSuperTypes="#//ValueSpecification">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="An expression is a structured tree of symbols that denotes a (possibly empty) set of values when evaluated in a context.&#xA;An expression represents a node in an expression tree, which may be non-terminal or terminal. It defines a symbol, and has a possibly empty sequence of operands which are value specifications."/>
+    </eAnnotations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="operand" upperBound="-1"
+        eType="#//ValueSpecification" containment="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies a sequence of operands."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="symbol" ordered="false"
+        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The symbol associated with the node in the expression tree."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="InstanceValue" eSuperTypes="#//ValueSpecification">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="An instance value is a value specification that identifies an instance."/>
+    </eAnnotations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="instance" ordered="false"
+        lowerBound="1" eType="#//InstanceSpecification">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The instance that is the specified value."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="LiteralBoolean" eSuperTypes="#//LiteralSpecification">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A literal Boolean is a specification of a Boolean value."/>
+    </eAnnotations>
+    <eAnnotations source="duplicates">
+      <contents xsi:type="ecore:EOperation" name="booleanValue" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The query booleanValue() gives the value.&#xA;result = value"/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//ValueSpecification/booleanValue"/>
+      </contents>
+      <contents xsi:type="ecore:EOperation" name="isComputable" ordered="false" lowerBound="1"
+          eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The query isComputable() is redefined to be true.&#xA;result = true"/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//ValueSpecification/isComputable"/>
+      </contents>
+    </eAnnotations>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+        defaultValueLiteral="false">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The specified Boolean value."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="LiteralSpecification" abstract="true"
+      eSuperTypes="#//ValueSpecification">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A literal specification identifies a literal constant being modeled."/>
+    </eAnnotations>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="LiteralInteger" eSuperTypes="#//LiteralSpecification">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A literal integer is a specification of an integer value."/>
+    </eAnnotations>
+    <eAnnotations source="duplicates">
+      <contents xsi:type="ecore:EOperation" name="integerValue" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The query integerValue() gives the value.&#xA;result = value"/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//ValueSpecification/integerValue"/>
+      </contents>
+      <contents xsi:type="ecore:EOperation" name="isComputable" ordered="false" lowerBound="1"
+          eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The query isComputable() is redefined to be true.&#xA;result = true"/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//ValueSpecification/isComputable"/>
+      </contents>
+    </eAnnotations>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer"
+        defaultValueLiteral="0">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The specified Integer value."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="LiteralNull" eSuperTypes="#//LiteralSpecification">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A literal null specifies the lack of a value."/>
+    </eAnnotations>
+    <eAnnotations source="duplicates">
+      <contents xsi:type="ecore:EOperation" name="isComputable" ordered="false" lowerBound="1"
+          eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The query isComputable() is redefined to be true.&#xA;result = true"/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//ValueSpecification/isComputable"/>
+      </contents>
+      <contents xsi:type="ecore:EOperation" name="isNull" ordered="false" lowerBound="1"
+          eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The query isNull() returns true.&#xA;result = true"/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//ValueSpecification/isNull"/>
+      </contents>
+    </eAnnotations>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="LiteralReal" eSuperTypes="#//LiteralSpecification">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A literal real is a specification of a real value."/>
+    </eAnnotations>
+    <eAnnotations source="duplicates">
+      <contents xsi:type="ecore:EOperation" name="isComputable" ordered="false" lowerBound="1"
+          eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The query isComputable() is redefined to be true.&#xA;result = true"/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//ValueSpecification/isComputable"/>
+      </contents>
+      <contents xsi:type="ecore:EOperation" name="realValue" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Real">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The query realValue() gives the value.&#xA;result = value"/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//ValueSpecification/realValue"/>
+      </contents>
+    </eAnnotations>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Real"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="LiteralString" eSuperTypes="#//LiteralSpecification">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A literal string is a specification of a string value."/>
+    </eAnnotations>
+    <eAnnotations source="duplicates">
+      <contents xsi:type="ecore:EOperation" name="isComputable" ordered="false" lowerBound="1"
+          eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The query isComputable() is redefined to be true.&#xA;result = true"/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//ValueSpecification/isComputable"/>
+      </contents>
+      <contents xsi:type="ecore:EOperation" name="stringValue" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The query stringValue() gives the value.&#xA;result = value"/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//ValueSpecification/stringValue"/>
+      </contents>
+    </eAnnotations>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" ordered="false"
+        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The specified String value."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="LiteralUnlimitedNatural" eSuperTypes="#//LiteralSpecification">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A literal unlimited natural is a specification of an unlimited natural number."/>
+    </eAnnotations>
+    <eAnnotations source="duplicates">
+      <contents xsi:type="ecore:EOperation" name="isComputable" ordered="false" lowerBound="1"
+          eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The query isComputable() is redefined to be true.&#xA;result = true"/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//ValueSpecification/isComputable"/>
+      </contents>
+      <contents xsi:type="ecore:EOperation" name="unlimitedValue" ordered="false"
+          eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//UnlimitedNatural">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The query unlimitedValue() gives the value.&#xA;result = value"/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//ValueSpecification/unlimitedValue"/>
+      </contents>
+    </eAnnotations>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//UnlimitedNatural"
+        defaultValueLiteral="0">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The specified UnlimitedNatural value."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="OpaqueExpression" eSuperTypes="#//ValueSpecification">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="An opaque expression is an uninterpreted textual statement that denotes a (possibly empty) set of values when evaluated in a context."/>
+    </eAnnotations>
+    <eOperations name="language_body_size" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="If the language attribute is not empty, then the size of the body and language arrays must be the same.&#xA;language->notEmpty() implies (body->size() = language->size())"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="isIntegral" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query isIntegral() tells whether an expression is intended to produce an integer.&#xA;result = false"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="isNonNegative" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query isNonNegative() tells whether an integer expression has a non-negative value.&#xA;self.isIntegral()&#xA;result = false"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="isPositive" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query isPositive() tells whether an integer expression has a positive value.&#xA;self.isIntegral()&#xA;result = false"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="value" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query value() gives an integer value for an expression intended to produce one.&#xA;true&#xA;self.isIntegral()"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" unique="false" upperBound="-1"
+        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The text of the expression, possibly in multiple languages."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="language" upperBound="-1"
+        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies the languages in which the expression is stated. The interpretation of the expression body depends on the languages. If the languages are unspecified, they might be implicit from the expression body or the context. Languages are matched to body strings by order."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="PrimitiveType" eSuperTypes="#//DataType">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A primitive type defines a predefined data type, without any relevant substructure (i.e., it has no parts in the context of UML). A primitive datatype may have an algebra and operations defined outside of UML, for example, mathematically."/>
+    </eAnnotations>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="URIExtent" eSuperTypes="#//Extent">
+    <eOperations name="contextURI" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String"/>
+    <eOperations name="uri" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
+      <eParameters name="object" ordered="false" lowerBound="1" eType="#//Element"/>
+    </eOperations>
+    <eOperations name="element" ordered="false" lowerBound="1" eType="#//Element">
+      <eParameters name="uri" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String"/>
+    </eOperations>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Extent" eSuperTypes="#//Object">
+    <eOperations name="useContainment" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"/>
+    <eOperations name="elements" ordered="false" lowerBound="1" eType="#//ReflectiveSequence"/>
+    <eOperations name="elementsOfType" ordered="false" upperBound="-1" eType="#//Element">
+      <eParameters name="type" ordered="false" lowerBound="1" eType="#//Class"/>
+      <eParameters name="includesSubtypes" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"/>
+    </eOperations>
+    <eOperations name="linksOfType" ordered="false" upperBound="-1" eType="#//Link">
+      <eParameters name="type" ordered="false" lowerBound="1" eType="#//Association"/>
+    </eOperations>
+    <eOperations name="linkedElements" ordered="false" upperBound="-1" eType="#//Element">
+      <eParameters name="association" ordered="false" lowerBound="1" eType="#//Association"/>
+      <eParameters name="endElement" ordered="false" lowerBound="1" eType="#//Element"/>
+      <eParameters name="end1ToEnd2Direction" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"/>
+    </eOperations>
+    <eOperations name="linkExists" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eParameters name="association" ordered="false" lowerBound="1" eType="#//Association"/>
+      <eParameters name="firstElement" ordered="false" lowerBound="1" eType="#//Element"/>
+      <eParameters name="secondElement" ordered="false" lowerBound="1" eType="#//Element"/>
+    </eOperations>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Link" eSuperTypes="#//Object">
+    <eOperations name="equals" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="redefines" references="#//Object/equals"/>
+      <eParameters name="otherLink" ordered="false" lowerBound="1" eType="#//Link"/>
+    </eOperations>
+    <eOperations name="delete" ordered="false" lowerBound="1"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="firstElement" ordered="false"
+        lowerBound="1" eType="#//Element"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="secondElement" ordered="false"
+        lowerBound="1" eType="#//Element"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="association" ordered="false"
+        lowerBound="1" eType="#//Association"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Factory" eSuperTypes="#//Element">
+    <eOperations name="createFromString" ordered="false" lowerBound="1" eType="#//Object">
+      <eParameters name="dataType" ordered="false" lowerBound="1" eType="#//DataType"/>
+      <eParameters name="string" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String"/>
+    </eOperations>
+    <eOperations name="convertToString" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
+      <eParameters name="dataType" ordered="false" lowerBound="1" eType="#//DataType"/>
+      <eParameters name="object" ordered="false" lowerBound="1" eType="#//Object"/>
+    </eOperations>
+    <eOperations name="create" ordered="false" lowerBound="1" eType="#//Element">
+      <eParameters name="metaClass" ordered="false" lowerBound="1" eType="#//Class"/>
+    </eOperations>
+    <eOperations name="createElement" ordered="false" lowerBound="1" eType="#//Element">
+      <eParameters name="class" ordered="false" lowerBound="1" eType="#//Class"/>
+      <eParameters name="arguments" ordered="false" upperBound="-1" eType="#//Argument"/>
+    </eOperations>
+    <eOperations name="createLink" ordered="false" lowerBound="1" eType="#//Link">
+      <eParameters name="association" ordered="false" lowerBound="1" eType="#//Association"/>
+      <eParameters name="firstElement" ordered="false" lowerBound="1" eType="#//Element"/>
+      <eParameters name="secondElement" ordered="false" lowerBound="1" eType="#//Element"/>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="package" ordered="false"
+        lowerBound="1" eType="#//Package"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Exception">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="objectInError" ordered="false"
+        lowerBound="1" eType="#//Element"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="elementInError" ordered="false"
+        lowerBound="1" eType="#//Element"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Tag" eSuperTypes="#//Element">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="element" ordered="false"
+        upperBound="-1" eType="#//Element"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="tagOwner" ordered="false"
+        eType="#//Element">
+      <eAnnotations source="subsets" references="#//Element/owner"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.uml2.uml/model/CMOF24_2_UML.ecore2ecore b/plugins/org.eclipse.uml2.uml/model/CMOF24_2_UML.ecore2ecore
new file mode 100644
index 0000000..89a2f34
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml/model/CMOF24_2_UML.ecore2ecore
@@ -0,0 +1,761 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore2ecore:Ecore2EcoreMappingRoot xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore2ecore="http://www.eclipse.org/emf/2004/Ecore2Ecore" topToBottom="true">
+  <nested>
+    <outputs href="UML.ecore#//Property/interface"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Property/associationEnd"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Property/qualifier"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ConnectableElement/end"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ParameterableElement/owningTemplateParameter"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ParameterableElement/templateParameter"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//DeploymentTarget/deployedElement"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//DeploymentTarget/deployment"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//NamedElement/clientDependency"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//NamedElement/nameExpression"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Class/extension"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Class/isActive"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Class/ownedReception"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//StructuredClassifier/part"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//StructuredClassifier/role"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//BehavioredClassifier/classifierBehavior"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//BehavioredClassifier/interfaceRealization"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//BehavioredClassifier/ownedBehavior"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Classifier/collaborationUse"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Classifier/powertypeExtent"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Classifier/ownedUseCase"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Classifier/useCase"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Classifier/representation"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Classifier/substitution"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//TemplateableElement/ownedTemplateSignature"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//TemplateableElement/templateBinding"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Package/ownedStereotype"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Package/profileApplication"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Generalization/generalizationSet"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Operation/interface"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//BehavioralFeature/concurrency"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//BehavioralFeature/isAbstract"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//BehavioralFeature/method"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//BehavioralFeature/ownedParameterSet"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Parameter/effect"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Parameter/isException"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Parameter/isStream"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Parameter/parameterSet"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//OpaqueExpression/behavior"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//OpaqueExpression/result"/>
+  </nested>
+  <nested>
+    <inputs href="CMOF.ecore#//ReflectiveSequence"/>
+  </nested>
+  <nested>
+    <inputs href="CMOF.ecore#//ReflectiveCollection"/>
+  </nested>
+  <nested>
+    <inputs href="CMOF.ecore#//Object"/>
+  </nested>
+  <nested>
+    <inputs href="CMOF.ecore#//URIExtent"/>
+  </nested>
+  <nested>
+    <inputs href="CMOF.ecore#//Extent"/>
+  </nested>
+  <nested>
+    <inputs href="CMOF.ecore#//Link"/>
+  </nested>
+  <nested>
+    <inputs href="CMOF.ecore#//Factory"/>
+  </nested>
+  <nested>
+    <inputs href="CMOF.ecore#//Exception"/>
+  </nested>
+  <nested>
+    <inputs href="CMOF.ecore#//Tag"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Abstraction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Dependency"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Stereotype"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//StringExpression"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//TemplateSignature"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//TemplateParameter"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//TemplateBinding"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//TemplateParameterSubstitution"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ProfileApplication"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Profile"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Extension"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ConnectorEnd"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ConnectableElementTemplateParameter"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Deployment"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//DeploymentSpecification"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Artifact"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Manifestation"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//CallConcurrencyKind"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Behavior"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ParameterEffectKind"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ParameterSet"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Interface"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Reception"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Signal"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ProtocolStateMachine"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//StateMachine"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Pseudostate"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Vertex"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Region"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//State"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ConnectionPointReference"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Trigger"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Event"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Port"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Transition"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//TransitionKind"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//PseudostateKind"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ProtocolConformance"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//OperationTemplateParameter"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ExtensionEnd"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Model"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Usage"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//CollaborationUse"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Collaboration"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Connector"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ConnectorKind"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//GeneralizationSet"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//RedefinableTemplateSignature"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//UseCase"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Extend"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ExtensionPoint"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Include"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Substitution"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Realization"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ClassifierTemplateParameter"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//InterfaceRealization"/>
+  </nested>
+  <nested>
+    <nested>
+      <outputs href="UML.ecore#//EncapsulatedClassifier/ownedPort"/>
+    </nested>
+    <outputs href="UML.ecore#//EncapsulatedClassifier"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Image"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//AcceptCallAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//AcceptEventAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Action"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ExecutableNode"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ActivityNode"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Activity"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ActivityEdge"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ActivityGroup"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ActivityPartition"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//StructuredActivityNode"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//InputPin"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Pin"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ObjectNode"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ObjectNodeOrderingKind"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//OutputPin"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Variable"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//InterruptibleActivityRegion"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ExceptionHandler"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ActionExecutionSpecification"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ExecutionSpecification"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//InteractionFragment"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Lifeline"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//PartDecomposition"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//InteractionUse"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Gate"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//MessageEnd"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Message"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Interaction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//MessageKind"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//MessageSort"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//InteractionOperand"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//InteractionConstraint"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//GeneralOrdering"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//OccurrenceSpecification"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ActionInputPin"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ActivityFinalNode"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//FinalNode"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ControlNode"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ActivityParameterNode"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Actor"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//AddStructuralFeatureValueAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//WriteStructuralFeatureAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//StructuralFeatureAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//AddVariableValueAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//WriteVariableAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//VariableAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//AnyReceiveEvent"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//MessageEvent"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//AssociationClass"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//BehaviorExecutionSpecification"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//BroadcastSignalAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//InvocationAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//CallAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//CallBehaviorAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//CallEvent"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//CallOperationAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//CentralBufferNode"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ChangeEvent"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Clause"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ClearAssociationAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ClearStructuralFeatureAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ClearVariableAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//CombinedFragment"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//InteractionOperatorKind"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//CommunicationPath"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Component"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ComponentRealization"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ConditionalNode"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ConsiderIgnoreFragment"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Continuation"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ControlFlow"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//CreateLinkAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//WriteLinkAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//LinkAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//LinkEndData"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//QualifierValue"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//LinkEndCreationData"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//CreateLinkObjectAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//CreateObjectAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//DataStoreNode"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//DecisionNode"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ObjectFlow"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//DestroyLinkAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//LinkEndDestructionData"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//DestroyObjectAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//DestructionOccurrenceSpecification"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//MessageOccurrenceSpecification"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Device"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Node"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Duration"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Observation"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//DurationConstraint"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//IntervalConstraint"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//Interval"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//DurationInterval"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//DurationObservation"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ExecutionEnvironment"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ExecutionOccurrenceSpecification"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ExpansionNode"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ExpansionRegion"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ExpansionKind"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//FinalState"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//FlowFinalNode"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ForkNode"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//FunctionBehavior"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//OpaqueBehavior"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//InformationFlow"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//InformationItem"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//InitialNode"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//InstanceValue"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//LoopNode"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//MergeNode"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//OpaqueAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ProtocolTransition"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//RaiseExceptionAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ReadExtentAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ReadIsClassifiedObjectAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ReadLinkAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ReadLinkObjectEndAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ReadLinkObjectEndQualifierAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ReadSelfAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ReadStructuralFeatureAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ReadVariableAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ReclassifyObjectAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ReduceAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//RemoveStructuralFeatureValueAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//RemoveVariableValueAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ReplyAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//SendObjectAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//SendSignalAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//SequenceNode"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//SignalEvent"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//StartClassifierBehaviorAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//StartObjectBehaviorAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//StateInvariant"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//TestIdentityAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//TimeConstraint"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//TimeInterval"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//TimeExpression"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//TimeEvent"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//TimeObservation"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//UnmarshallAction"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ValuePin"/>
+  </nested>
+  <nested>
+    <outputs href="UML.ecore#//ValueSpecificationAction"/>
+  </nested>
+  <inputs href="CMOF24.ecore#/"/>
+  <outputs href="UML.ecore#/"/>
+</ecore2ecore:Ecore2EcoreMappingRoot>
diff --git a/plugins/org.eclipse.uml2.uml/model/CMOF24_2_UML.ecore2xml b/plugins/org.eclipse.uml2.uml/model/CMOF24_2_UML.ecore2xml
new file mode 100644
index 0000000..210a150
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml/model/CMOF24_2_UML.ecore2xml
@@ -0,0 +1,979 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore2xml:XMLMap xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:ecore2xml="http://www.eclipse.org/emf/2005/Ecore2XML">
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EPackage" href="UML.ecore#/"/>
+    <value name="cmof" targetNamespace="http://www.omg.org/spec/MOF/20100901/cmof.xmi"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EReference" href="UML.ecore#//Property/interface"/>
+    <value xMLRepresentation="1"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EReference" href="UML.ecore#//Property/associationEnd"/>
+    <value xMLRepresentation="1"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EReference" href="UML.ecore#//Property/qualifier"/>
+    <value xMLRepresentation="0"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EReference" href="UML.ecore#//ConnectableElement/end"/>
+    <value xMLRepresentation="1"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EReference" href="UML.ecore#//ParameterableElement/owningTemplateParameter"/>
+    <value xMLRepresentation="1"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EReference" href="UML.ecore#//ParameterableElement/templateParameter"/>
+    <value xMLRepresentation="1"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EReference" href="UML.ecore#//DeploymentTarget/deployedElement"/>
+    <value xMLRepresentation="1"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EReference" href="UML.ecore#//DeploymentTarget/deployment"/>
+    <value xMLRepresentation="0"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EReference" href="UML.ecore#//NamedElement/clientDependency"/>
+    <value xMLRepresentation="1"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EReference" href="UML.ecore#//NamedElement/nameExpression"/>
+    <value xMLRepresentation="0"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EReference" href="UML.ecore#//Class/extension"/>
+    <value xMLRepresentation="1"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EAttribute" href="UML.ecore#//Class/isActive"/>
+    <value xMLRepresentation="1"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EReference" href="UML.ecore#//Class/ownedReception"/>
+    <value xMLRepresentation="0"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EReference" href="UML.ecore#//StructuredClassifier/part"/>
+    <value xMLRepresentation="1"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EReference" href="UML.ecore#//StructuredClassifier/role"/>
+    <value xMLRepresentation="1"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EReference" href="UML.ecore#//BehavioredClassifier/classifierBehavior"/>
+    <value xMLRepresentation="1"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EReference" href="UML.ecore#//BehavioredClassifier/interfaceRealization"/>
+    <value xMLRepresentation="0"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EReference" href="UML.ecore#//BehavioredClassifier/ownedBehavior"/>
+    <value xMLRepresentation="0"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EReference" href="UML.ecore#//Classifier/collaborationUse"/>
+    <value xMLRepresentation="0"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EReference" href="UML.ecore#//Classifier/powertypeExtent"/>
+    <value xMLRepresentation="1"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EReference" href="UML.ecore#//Classifier/ownedUseCase"/>
+    <value xMLRepresentation="0"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EReference" href="UML.ecore#//Classifier/useCase"/>
+    <value xMLRepresentation="1"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EReference" href="UML.ecore#//Classifier/representation"/>
+    <value xMLRepresentation="1"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EReference" href="UML.ecore#//Classifier/substitution"/>
+    <value xMLRepresentation="0"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EReference" href="UML.ecore#//TemplateableElement/ownedTemplateSignature"/>
+    <value xMLRepresentation="0"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EReference" href="UML.ecore#//TemplateableElement/templateBinding"/>
+    <value xMLRepresentation="0"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EReference" href="UML.ecore#//Package/ownedStereotype"/>
+    <value xMLRepresentation="1"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EReference" href="UML.ecore#//Package/profileApplication"/>
+    <value xMLRepresentation="0"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EReference" href="UML.ecore#//Generalization/generalizationSet"/>
+    <value xMLRepresentation="1"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EReference" href="UML.ecore#//Operation/interface"/>
+    <value xMLRepresentation="1"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EAttribute" href="UML.ecore#//BehavioralFeature/concurrency"/>
+    <value xMLRepresentation="1"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EAttribute" href="UML.ecore#//BehavioralFeature/isAbstract"/>
+    <value xMLRepresentation="1"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EReference" href="UML.ecore#//BehavioralFeature/method"/>
+    <value xMLRepresentation="1"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EReference" href="UML.ecore#//BehavioralFeature/ownedParameterSet"/>
+    <value xMLRepresentation="0"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EAttribute" href="UML.ecore#//Parameter/effect"/>
+    <value xMLRepresentation="1"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EAttribute" href="UML.ecore#//Parameter/isException"/>
+    <value xMLRepresentation="1"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EAttribute" href="UML.ecore#//Parameter/isStream"/>
+    <value xMLRepresentation="1"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EReference" href="UML.ecore#//Parameter/parameterSet"/>
+    <value xMLRepresentation="1"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EReference" href="UML.ecore#//OpaqueExpression/behavior"/>
+    <value xMLRepresentation="1"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EReference" href="UML.ecore#//OpaqueExpression/result"/>
+    <value xMLRepresentation="1"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Abstraction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Dependency"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Stereotype"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//StringExpression"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//TemplateSignature"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//TemplateParameter"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//TemplateBinding"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//TemplateParameterSubstitution"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ProfileApplication"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Profile"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Extension"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ConnectorEnd"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ConnectableElementTemplateParameter"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Deployment"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//DeploymentSpecification"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Artifact"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Manifestation"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EEnum" href="UML.ecore#//CallConcurrencyKind"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Behavior"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EEnum" href="UML.ecore#//ParameterEffectKind"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ParameterSet"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Interface"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Reception"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Signal"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ProtocolStateMachine"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//StateMachine"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Pseudostate"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Vertex"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Region"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//State"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ConnectionPointReference"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Trigger"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Event"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Port"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Transition"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EEnum" href="UML.ecore#//TransitionKind"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EEnum" href="UML.ecore#//PseudostateKind"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ProtocolConformance"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//OperationTemplateParameter"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ExtensionEnd"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Model"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Usage"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//CollaborationUse"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Collaboration"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Connector"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EEnum" href="UML.ecore#//ConnectorKind"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//GeneralizationSet"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//RedefinableTemplateSignature"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//UseCase"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Extend"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ExtensionPoint"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Include"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Substitution"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Realization"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ClassifierTemplateParameter"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//InterfaceRealization"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//EncapsulatedClassifier"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EReference" href="UML.ecore#//EncapsulatedClassifier/ownedPort"/>
+    <value xMLRepresentation="1"/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Image"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//AcceptCallAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//AcceptEventAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Action"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ExecutableNode"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ActivityNode"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Activity"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ActivityEdge"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ActivityGroup"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ActivityPartition"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//StructuredActivityNode"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//InputPin"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Pin"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ObjectNode"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EEnum" href="UML.ecore#//ObjectNodeOrderingKind"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//OutputPin"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Variable"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//InterruptibleActivityRegion"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ExceptionHandler"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ActionExecutionSpecification"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ExecutionSpecification"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//InteractionFragment"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Lifeline"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//PartDecomposition"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//InteractionUse"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Gate"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//MessageEnd"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Message"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Interaction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EEnum" href="UML.ecore#//MessageKind"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EEnum" href="UML.ecore#//MessageSort"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//InteractionOperand"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//InteractionConstraint"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//GeneralOrdering"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//OccurrenceSpecification"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ActionInputPin"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ActivityFinalNode"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//FinalNode"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ControlNode"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ActivityParameterNode"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Actor"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//AddStructuralFeatureValueAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//WriteStructuralFeatureAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//StructuralFeatureAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//AddVariableValueAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//WriteVariableAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//VariableAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//AnyReceiveEvent"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//MessageEvent"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//AssociationClass"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//BehaviorExecutionSpecification"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//BroadcastSignalAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//InvocationAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//CallAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//CallBehaviorAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//CallEvent"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//CallOperationAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//CentralBufferNode"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ChangeEvent"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Clause"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ClearAssociationAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ClearStructuralFeatureAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ClearVariableAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//CombinedFragment"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EEnum" href="UML.ecore#//InteractionOperatorKind"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//CommunicationPath"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Component"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ComponentRealization"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ConditionalNode"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ConsiderIgnoreFragment"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Continuation"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ControlFlow"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//CreateLinkAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//WriteLinkAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//LinkAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//LinkEndData"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//QualifierValue"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//LinkEndCreationData"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//CreateLinkObjectAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//CreateObjectAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//DataStoreNode"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//DecisionNode"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ObjectFlow"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//DestroyLinkAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//LinkEndDestructionData"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//DestroyObjectAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//DestructionOccurrenceSpecification"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//MessageOccurrenceSpecification"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Device"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Node"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Duration"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Observation"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//DurationConstraint"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//IntervalConstraint"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//Interval"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//DurationInterval"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//DurationObservation"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ExecutionEnvironment"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ExecutionOccurrenceSpecification"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ExpansionNode"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ExpansionRegion"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EEnum" href="UML.ecore#//ExpansionKind"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//FinalState"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//FlowFinalNode"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ForkNode"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//FunctionBehavior"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//OpaqueBehavior"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//InformationFlow"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//InformationItem"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//InitialNode"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//InstanceValue"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//LoopNode"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//MergeNode"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//OpaqueAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ProtocolTransition"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//RaiseExceptionAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ReadExtentAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ReadIsClassifiedObjectAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ReadLinkAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ReadLinkObjectEndAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ReadLinkObjectEndQualifierAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ReadSelfAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ReadStructuralFeatureAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ReadVariableAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ReclassifyObjectAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ReduceAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//RemoveStructuralFeatureValueAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//RemoveVariableValueAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ReplyAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//SendObjectAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//SendSignalAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//SequenceNode"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//SignalEvent"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//StartClassifierBehaviorAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//StartObjectBehaviorAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//StateInvariant"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//TestIdentityAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//TimeConstraint"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//TimeInterval"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//TimeExpression"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//TimeEvent"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//TimeObservation"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//UnmarshallAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ValuePin"/>
+    <value/>
+  </ecoreToXMLInfo>
+  <ecoreToXMLInfo>
+    <key xsi:type="ecore:EClass" href="UML.ecore#//ValueSpecificationAction"/>
+    <value/>
+  </ecoreToXMLInfo>
+</ecore2xml:XMLMap>
diff --git a/plugins/org.eclipse.uml2.uml/model/CMOF_2_UML.ecore2xml b/plugins/org.eclipse.uml2.uml/model/CMOF_2_UML.ecore2xml
index 210a150..9e28467 100644
--- a/plugins/org.eclipse.uml2.uml/model/CMOF_2_UML.ecore2xml
+++ b/plugins/org.eclipse.uml2.uml/model/CMOF_2_UML.ecore2xml
@@ -2,7 +2,7 @@
 <ecore2xml:XMLMap xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:ecore2xml="http://www.eclipse.org/emf/2005/Ecore2XML">
   <ecoreToXMLInfo>
     <key xsi:type="ecore:EPackage" href="UML.ecore#/"/>
-    <value name="cmof" targetNamespace="http://www.omg.org/spec/MOF/20100901/cmof.xmi"/>
+    <value name="cmof" targetNamespace="http://www.omg.org/spec/MOF/20110701/cmof.xmi"/>
   </ecoreToXMLInfo>
   <ecoreToXMLInfo>
     <key xsi:type="ecore:EReference" href="UML.ecore#//Property/interface"/>
diff --git a/plugins/org.eclipse.uml2.uml/model/Ecore.uml b/plugins/org.eclipse.uml2.uml/model/Ecore.uml
index d6bd817..51b3e76 100644
--- a/plugins/org.eclipse.uml2.uml/model/Ecore.uml
+++ b/plugins/org.eclipse.uml2.uml/model/Ecore.uml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<xmi:XMI xmi:version="20100901" xmlns:xmi="http://www.omg.org/spec/XMI/20100901" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/5" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
+<xmi:XMI xmi:version="20110701" xmlns:xmi="http://www.omg.org/spec/XMI/20110701" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/5" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
   <uml:Model xmi:id="_SeWiQMX_EduPJbEsMYXjUQ" name="Ecore">
     <packagedElement xmi:type="uml:Class" xmi:id="_SeWj6cX_EduPJbEsMYXjUQ" name="EAnnotation">
       <eAnnotations xmi:id="_SeWj6sX_EduPJbEsMYXjUQ" source="http://www.eclipse.org/emf/2002/Ecore">
diff --git a/plugins/org.eclipse.uml2.uml/model/UML.ecore b/plugins/org.eclipse.uml2.uml/model/UML.ecore
index f7df411..67b88f1 100644
--- a/plugins/org.eclipse.uml2.uml/model/UML.ecore
+++ b/plugins/org.eclipse.uml2.uml/model/UML.ecore
@@ -1,8 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<ecore:EPackage xmi:version="2.0"
-    xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="uml"
-    nsURI="http://www.eclipse.org/uml2/4.0.0/UML" nsPrefix="uml">
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="uml" nsURI="http://www.eclipse.org/uml2/4.0.0/UML" nsPrefix="uml">
   <eClassifiers xsi:type="ecore:EClass" name="Abstraction" eSuperTypes="#//Dependency">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="An abstraction is a relationship that relates two elements or sets of elements that represent the same concept at different levels of abstraction or from different viewpoints."/>
@@ -34,41 +32,49 @@
       <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="DirectedRelationship" abstract="true"
-      eSuperTypes="#//Relationship">
+  <eClassifiers xsi:type="ecore:EClass" name="PackageableElement" abstract="true"
+      eSuperTypes="#//NamedElement #//ParameterableElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A directed relationship represents a relationship between a collection of source model elements and a collection of target model elements."/>
+      <details key="documentation" value="Packageable elements are able to serve as a template parameter.&#xA;A packageable element indicates a named element that may be owned directly by a package."/>
     </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="source" ordered="false"
-        lowerBound="1" upperBound="-1" eType="#//Element" changeable="false" volatile="true"
-        transient="true" derived="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the sources of the DirectedRelationship."/>
-      </eAnnotations>
-      <eAnnotations source="union"/>
-      <eAnnotations source="subsets" references="#//Relationship/relatedElement"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="target" ordered="false"
-        lowerBound="1" upperBound="-1" eType="#//Element" changeable="false" volatile="true"
-        transient="true" derived="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the targets of the DirectedRelationship."/>
-      </eAnnotations>
-      <eAnnotations source="union"/>
-      <eAnnotations source="subsets" references="#//Relationship/relatedElement"/>
-    </eStructuralFeatures>
+    <eAnnotations source="duplicates">
+      <contents xsi:type="ecore:EAttribute" name="visibility" ordered="false" eType="#//VisibilityKind"
+          defaultValueLiteral="public">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="Indicates that packageable elements must always have a visibility, i.e., visibility is not optional."/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//NamedElement/visibility"/>
+      </contents>
+    </eAnnotations>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Relationship" abstract="true" eSuperTypes="#//Element">
+  <eClassifiers xsi:type="ecore:EClass" name="ParameterableElement" abstract="true"
+      eSuperTypes="#//Element">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="Relationship is an abstract concept that specifies some kind of relationship between elements."/>
+      <details key="documentation" value="A parameterable element is an element that can be exposed as a formal template parameter for a template, or specified as an actual parameter in a binding of a template."/>
     </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="relatedElement" ordered="false"
-        lowerBound="1" upperBound="-1" eType="#//Element" changeable="false" volatile="true"
-        transient="true" derived="true">
+    <eOperations name="isCompatibleWith" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the elements related by the Relationship."/>
+        <details key="documentation" value="The query isCompatibleWith() determines if this parameterable element is compatible with the specified parameterable element. By default parameterable element P is compatible with parameterable element Q if the kind of P is the same or a subtype as the kind of Q. Subclasses should override this operation to specify different compatibility constraints.&#xA;result = p->oclIsKindOf(self.oclType)"/>
       </eAnnotations>
-      <eAnnotations source="union"/>
+      <eParameters name="p" ordered="false" lowerBound="1" eType="#//ParameterableElement"/>
+    </eOperations>
+    <eOperations name="isTemplateParameter" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.&#xA;result = templateParameter->notEmpty()"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="owningTemplateParameter"
+        ordered="false" eType="#//TemplateParameter" eOpposite="#//TemplateParameter/ownedParameteredElement">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The formal template parameter that owns this element."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//ParameterableElement/templateParameter #//Element/owner"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="templateParameter" ordered="false"
+        eType="#//TemplateParameter" eOpposite="#//TemplateParameter/parameteredElement">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The template parameter that exposes this element as a formal parameter."/>
+      </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Element" abstract="true" eSuperTypes="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EModelElement">
@@ -466,28 +472,9 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A stereotype defines how an existing metaclass may be extended, and enables the use of platform or domain specific terminology or notation in place of, or in addition to, the ones used for the extended metaclass."/>
     </eAnnotations>
-    <eOperations name="binaryAssociationsOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="associationEndOwnership" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Stereotypes may only participate in binary associations.&#xA;ownedAttribute.association->forAll(memberEnd->size()=2)"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="generalize" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A Stereotype may only generalize or specialize another Stereotype.&#xA;generalization.general->forAll(e |e.oclIsKindOf(Stereotype)) and generalization.specific->forAll(e | e.oclIsKindOf(Stereotype)) "/>
+        <details key="documentation" value="Where a stereotype’s property is an association end for an association other than a kind of extension, and the other end is not a stereotype, the other end must be owned by the association itself.&#xA;ownedAttribute&#xA;->select(association->notEmpty() and not association.oclIsKindOf(Extension) and not type.oclIsKindOf(Stereotype))&#xA;->forAll(opposite.owner = association)"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -523,9 +510,28 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="associationEndOwnership" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="binaryAssociationsOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Where a stereotype’s property is an association end for an association other than a kind of extension, and the other end is not a stereotype, the other end must be owned by the association itself.&#xA;ownedAttribute&#xA;->select(association->notEmpty() and not association.oclIsKindOf(Extension) and not type.oclIsKindOf(Stereotype))&#xA;->forAll(opposite.owner = association)"/>
+        <details key="documentation" value="Stereotypes may only participate in binary associations.&#xA;ownedAttribute.association->forAll(memberEnd->size()=2)"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="generalize" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A Stereotype may only generalize or specialize another Stereotype.&#xA;generalization.general->forAll(e |e.oclIsKindOf(Stereotype)) and generalization.specific->forAll(e | e.oclIsKindOf(Stereotype)) "/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -641,7 +647,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Class" eSuperTypes="#//EncapsulatedClassifier #//BehavioredClassifier">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A class describes a set of objects that share the same specifications of features, constraints, and semantics.&#xA;A class has the capability to have an internal structure and ports.&#xA;Class has derived association that indicates how it may be extended through one or more stereotypes. Stereotype is the only kind of metaclass that cannot be extended by stereotypes.&#xA;A class may be designated as active (i.e., each of its instances having its own thread of control) or passive (i.e., each of its instances executing within the context of some other object). A class may also specify which signals the instances of this class handle."/>
+      <details key="documentation" value="A class may be designated as active (i.e., each of its instances having its own thread of control) or passive (i.e., each of its instances executing within the context of some other object). A class may also specify which signals the instances of this class handle.&#xA;A class describes a set of objects that share the same specifications of features, constraints, and semantics.&#xA;A class has the capability to have an internal structure and ports.&#xA;Class has derived association that indicates how it may be extended through one or more stereotypes. Stereotype is the only kind of metaclass that cannot be extended by stereotypes."/>
     </eAnnotations>
     <eAnnotations source="duplicates">
       <contents xsi:type="ecore:EOperation" name="inherit" ordered="false" upperBound="-1"
@@ -658,13 +664,13 @@
           <details key="documentation" value="The attributes (i.e. the properties) owned by the class."/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//StructuredClassifier/ownedAttribute"/>
-        <eAnnotations source="subsets" references="#//Classifier/attribute #//Namespace/ownedMember"/>
+        <eAnnotations source="subsets" references="#//Namespace/ownedMember #//Classifier/attribute"/>
       </contents>
       <contents xsi:type="ecore:EAttribute" name="isAbstract" ordered="false" lowerBound="1"
           eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
           defaultValueLiteral="false">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="True when a class is abstract.&#xA;If true, the Classifier does not provide a complete declaration and can typically not be instantiated. An abstract classifier is intended to be used by other classifiers e.g. as the target of general metarelationships or generalization relationships."/>
+          <details key="documentation" value="If true, the Classifier does not provide a complete declaration and can typically not be instantiated. An abstract classifier is intended to be used by other classifiers e.g. as the target of general metarelationships or generalization relationships.&#xA;True when a class is abstract."/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//Classifier/isAbstract"/>
       </contents>
@@ -773,14 +779,34 @@
       <eAnnotations source="redefines" references="#//Classifier/general"/>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="BehavioredClassifier" abstract="true"
+  <eClassifiers xsi:type="ecore:EClass" name="EncapsulatedClassifier" abstract="true"
+      eSuperTypes="#//StructuredClassifier">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A classifier has the ability to own ports as specific and type checked interaction points."/>
+    </eAnnotations>
+    <eOperations name="getOwnedPorts" ordered="false" upperBound="-1" eType="#//Port">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Missing derivation for EncapsulatedClassifier::/ownedPort : Port&#xA;true"/>
+        <details key="suppressedVisibility" value="true"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedPort" ordered="false"
+        upperBound="-1" eType="#//Port" changeable="false" volatile="true" transient="true"
+        derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="References a set of ports that an encapsulated classifier owns."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//StructuredClassifier/ownedAttribute"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="StructuredClassifier" abstract="true"
       eSuperTypes="#//Classifier">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A behaviored classifier may have an interface realization.&#xA;A classifier can have behavior specifications defined in its namespace. One of these may specify the behavior of the classifier itself."/>
+      <details key="documentation" value="A structured classifier is an abstract metaclass that represents any classifier whose behavior can be fully or partly described by the collaboration of owned or referenced instances."/>
     </eAnnotations>
-    <eOperations name="class_behavior" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="multiplicities" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If a behavior is classifier behavior, it does not have a specification.&#xA;self.classifierBehavior->notEmpty() implies self.classifierBehavior.specification->isEmpty()"/>
+        <details key="documentation" value="The multiplicities on connected elements must be consistent.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -797,42 +823,70 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="getAllImplementedInterfaces" ordered="false" upperBound="-1"
-        eType="#//Interface">
+    <eOperations name="createOwnedAttribute" ordered="false" lowerBound="1" eType="#//Property">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Retrieves all the interfaces on which this behaviored classifier or any of its parents has an interface realization dependency."/>
+        <details key="documentation" value="Creates a property with the specified name, type, lower bound, and upper bound as an owned attribute of this structured classifier."/>
+      </eAnnotations>
+      <eParameters name="name" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The name for the new attribute, or null."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="type" ordered="false" eType="#//Type">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The type for the new attribute, or null."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="lower" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The lower bound for the new attribute."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="upper" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//UnlimitedNatural">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The upper bound for the new attribute."/>
+        </eAnnotations>
+      </eParameters>
+    </eOperations>
+    <eOperations name="getParts" ordered="false" upperBound="-1" eType="#//Property">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Missing derivation for StructuredClassifier::/part : Property&#xA;true"/>
+        <details key="suppressedVisibility" value="true"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="getImplementedInterfaces" ordered="false" upperBound="-1" eType="#//Interface">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
+        eType="#//Property" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Retrieves the interfaces on which this behaviored classifier has an interface realization dependency."/>
+        <details key="documentation" value="References the properties owned by the classifier."/>
       </eAnnotations>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="classifierBehavior" ordered="false"
-        eType="#//Behavior">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A behavior specification that specifies the behavior of the classifier itself."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//BehavioredClassifier/ownedBehavior"/>
+      <eAnnotations source="subsets" references="#//Classifier/attribute #//Namespace/ownedMember #//StructuredClassifier/role"/>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="interfaceRealization" ordered="false"
-        upperBound="-1" eType="#//InterfaceRealization" containment="true" eOpposite="#//InterfaceRealization/implementingClassifier">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedConnector" ordered="false"
+        upperBound="-1" eType="#//Connector" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The set of InterfaceRealizations owned by the BehavioredClassifier. Interface realizations reference the Interfaces of which the BehavioredClassifier is an implementation."/>
+        <details key="documentation" value="References the connectors owned by the classifier."/>
       </eAnnotations>
-      <eAnnotations source="subsets" references="#//Element/ownedElement #//NamedElement/clientDependency"/>
+      <eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/ownedMember"/>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedBehavior" ordered="false"
-        upperBound="-1" eType="#//Behavior" containment="true">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="part" ordered="false" upperBound="-1"
+        eType="#//Property" changeable="false" volatile="true" transient="true" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References behavior specifications owned by a classifier."/>
+        <details key="documentation" value="References the properties specifying instances that the classifier owns by composition. This association is derived, selecting those owned properties where isComposite is true."/>
       </eAnnotations>
-      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="role" ordered="false" upperBound="-1"
+        eType="#//ConnectableElement" changeable="false" volatile="true" transient="true"
+        derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="References the roles that instances may play in this classifier."/>
+      </eAnnotations>
+      <eAnnotations source="union"/>
+      <eAnnotations source="subsets" references="#//Namespace/member"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Classifier" abstract="true" eSuperTypes="#//Namespace #//RedefinableElement #//Type #//TemplateableElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A classifier is a classification of instances - it describes a set of instances that have features in common. A classifier can specify a generalization hierarchy by referencing its general classifiers.&#xA;A classifier has the capability to own collaboration uses. These collaboration uses link a collaboration with the classifier to give a description of the workings of the classifier.&#xA;Classifier is defined to be a kind of templateable element so that a classifier can be parameterized. It is also defined to be a kind of parameterable element so that a classifier can be a formal template parameter.&#xA;A classifier has the capability to own use cases. Although the owning classifier typically represents the subject to which the owned use cases apply, this is not necessarily the case. In principle, the same use case can be applied to multiple subjects, as identified by the subject association role of a use case."/>
+      <details key="documentation" value="A classifier is a classification of instances - it describes a set of instances that have features in common. A classifier can specify a generalization hierarchy by referencing its general classifiers.&#xA;A classifier has the capability to own use cases. Although the owning classifier typically represents the subject to which the owned use cases apply, this is not necessarily the case. In principle, the same use case can be applied to multiple subjects, as identified by the subject association role of a use case.&#xA;Classifier is defined to be a kind of templateable element so that a classifier can be parameterized. It is also defined to be a kind of parameterable element so that a classifier can be a formal template parameter.&#xA;A classifier has the capability to own collaboration uses. These collaboration uses link a collaboration with the classifier to give a description of the workings of the classifier."/>
     </eAnnotations>
     <eAnnotations source="duplicates">
       <contents xsi:type="ecore:EOperation" name="isTemplate" ordered="false" lowerBound="1"
@@ -857,44 +911,6 @@
         <eAnnotations source="redefines" references="#//ParameterableElement/templateParameter"/>
       </contents>
     </eAnnotations>
-    <eOperations name="specialize_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A classifier may only specialize classifiers of a valid type.&#xA;self.parents()->forAll(c | self.maySpecializeType(c))"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="maps_to_generalization_set" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The Classifier that maps to a GeneralizationSet may neither be a specific nor a general Classifier in any of the Generalization relationships defined for that GeneralizationSet. In other words, a power type may not be an instance of itself nor may its instances also be its subclasses.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="non_final_parents" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="The parents of a classifier must be non-final.&#xA;self.parents()->forAll(not isFinalSpecialization)"/>
@@ -933,6 +949,44 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="specialize_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A classifier may only specialize classifiers of a valid type.&#xA;self.parents()->forAll(c | self.maySpecializeType(c))"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="maps_to_generalization_set" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The Classifier that maps to a GeneralizationSet may neither be a specific nor a general Classifier in any of the Generalization relationships defined for that GeneralizationSet. In other words, a power type may not be an instance of itself nor may its instances also be its subclasses.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eOperations name="getAllAttributes" ordered="false" upperBound="-1" eType="#//Property">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Retrieves all the attributes of this classifier, including those inherited from its parents."/>
@@ -1034,7 +1088,7 @@
     </eOperations>
     <eOperations name="inherit" ordered="false" upperBound="-1" eType="#//NamedElement">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query inherit() defines how to inherit a set of elements. Here the operation is defined to inherit them all. It is intended to be redefined in circumstances where inheritance is affected by redefinition.&#xA;The inherit operation is overridden to exclude redefined properties.&#xA;result = inhs"/>
+        <details key="documentation" value="The inherit operation is overridden to exclude redefined properties.&#xA;The query inherit() defines how to inherit a set of elements. Here the operation is defined to inherit them all. It is intended to be redefined in circumstances where inheritance is affected by redefinition.&#xA;result = inhs"/>
       </eAnnotations>
       <eParameters name="inhs" ordered="false" upperBound="-1" eType="#//NamedElement"/>
     </eOperations>
@@ -1233,7 +1287,7 @@
     </eOperations>
     <eOperations name="getNamesOfMember" ordered="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query getNamesOfMember() takes importing into account. It gives back the set of names that an element would have in an importing namespace, either because it is owned, or if not owned then imported individually, or if not individually then from a package.&#xA;The query getNamesOfMember() gives a set of all of the names that a member would have in a Namespace. In general a member can have multiple names in a Namespace if it is imported more than once with different aliases. The query takes account of importing. It gives back the set of names that an element would have in an importing namespace, either because it is owned, or if not owned then imported individually, or if not individually then from a package.&#xA;result = if self.ownedMember ->includes(element)&#xA;then Set{}->include(element.name)&#xA;else let elementImports: ElementImport = self.elementImport->select(ei | ei.importedElement = element) in&#xA;  if elementImports->notEmpty()&#xA;  then elementImports->collect(el | el.getName())&#xA;  else self.packageImport->select(pi | pi.importedPackage.visibleMembers()->includes(element))-> collect(pi | pi.importedPackage.getNamesOfMember(element))&#xA;  endif&#xA;endif"/>
+        <details key="documentation" value="The query getNamesOfMember() gives a set of all of the names that a member would have in a Namespace. In general a member can have multiple names in a Namespace if it is imported more than once with different aliases. The query takes account of importing. It gives back the set of names that an element would have in an importing namespace, either because it is owned, or if not owned then imported individually, or if not individually then from a package.&#xA;The query getNamesOfMember() takes importing into account. It gives back the set of names that an element would have in an importing namespace, either because it is owned, or if not owned then imported individually, or if not individually then from a package.&#xA;result = if self.ownedMember ->includes(element)&#xA;then Set{}->include(element.name)&#xA;else let elementImports: ElementImport = self.elementImport->select(ei | ei.importedElement = element) in&#xA;  if elementImports->notEmpty()&#xA;  then elementImports->collect(el | el.getName())&#xA;  else self.packageImport->select(pi | pi.importedPackage.visibleMembers()->includes(element))-> collect(pi | pi.importedPackage.getNamesOfMember(element))&#xA;  endif&#xA;endif"/>
       </eAnnotations>
       <eParameters name="element" ordered="false" lowerBound="1" eType="#//NamedElement"/>
     </eOperations>
@@ -1311,25 +1365,6 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A named element supports using a string expression to specify its name. This allows names of model elements to involve template parameters. The actual name is evaluated from the string expression only when it is sensible to do so (e.g., when a template is bound).&#xA;A named element is an element in a model that may have a name."/>
     </eAnnotations>
-    <eOperations name="visibility_needs_ownership" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If a NamedElement is not owned by a Namespace, it does not have a visibility.&#xA;namespace->isEmpty() implies visibility->isEmpty()"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="has_qualified_name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="When there is a name, and all of the containing namespaces have a name, the qualified name is constructed from the names of the containing namespaces.&#xA;(self.name->notEmpty() and self.allNamespaces()->select(ns | ns.name->isEmpty())->isEmpty()) implies&#xA;  self.qualifiedName = self.allNamespaces()->iterate( ns : Namespace; result: String = self.name | ns.name->union(self.separator())->union(result))"/>
@@ -1368,6 +1403,25 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="visibility_needs_ownership" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="If a NamedElement is not owned by a Namespace, it does not have a visibility.&#xA;namespace->isEmpty() implies visibility->isEmpty()"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eOperations name="createDependency" ordered="false" lowerBound="1" eType="#//Dependency">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Creates a dependency between this named element and the specified supplier, owned by this named element's nearest package."/>
@@ -1491,9 +1545,9 @@
         <eAnnotations source="redefines" references="#//ValueSpecification/stringValue"/>
       </contents>
     </eAnnotations>
-    <eOperations name="operands" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="subexpressions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="All the operands of a StringExpression must be LiteralStrings&#xA;operand->forAll (op | op.oclIsKindOf (LiteralString))"/>
+        <details key="documentation" value="If a StringExpression has sub-expressions, it cannot have operands and vice versa (this avoids the problem of having to define a collating sequence between operands and subexpressions).&#xA;if subExpression->notEmpty() then operand->isEmpty() else operand->notEmpty()"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -1510,9 +1564,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="subexpressions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="operands" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If a StringExpression has sub-expressions, it cannot have operands and vice versa (this avoids the problem of having to define a collating sequence between operands and subexpressions).&#xA;if subExpression->notEmpty() then operand->isEmpty() else operand->notEmpty()"/>
+        <details key="documentation" value="All the operands of a StringExpression must be LiteralStrings&#xA;operand->forAll (op | op.oclIsKindOf (LiteralString))"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -1544,285 +1598,9 @@
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="TemplateableElement" abstract="true"
-      eSuperTypes="#//Element">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A templateable element is an element that can optionally be defined as a template and bound to other templates."/>
-    </eAnnotations>
-    <eOperations name="isTemplate" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query isTemplate() returns whether this templateable element is actually a template.&#xA;result = ownedTemplateSignature->notEmpty()"/>
-      </eAnnotations>
-    </eOperations>
-    <eOperations name="parameterableElements" ordered="false" upperBound="-1" eType="#//ParameterableElement">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query parameterableElements() returns the set of elements that may be used as the parametered elements for a template parameter of this templateable element. By default, this set includes all the owned elements. Subclasses may override this operation if they choose to restrict the set of parameterable elements.&#xA;result = allOwnedElements->select(oclIsKindOf(ParameterableElement))"/>
-      </eAnnotations>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedTemplateSignature"
-        ordered="false" eType="#//TemplateSignature" containment="true" eOpposite="#//TemplateSignature/template">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The optional template signature specifying the formal template parameters."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="templateBinding" ordered="false"
-        upperBound="-1" eType="#//TemplateBinding" containment="true" eOpposite="#//TemplateBinding/boundElement">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The optional bindings from this element to templates."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="TemplateSignature" eSuperTypes="#//Element">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A template signature bundles the set of formal template parameters for a templated element."/>
-    </eAnnotations>
-    <eOperations name="own_elements" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Parameters must own the elements they parameter or those elements must be owned by the element being templated.&#xA;templatedElement.ownedElement->includesAll(parameter.parameteredElement - parameter.ownedParameteredElement)"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedParameter" upperBound="-1"
-        eType="#//TemplateParameter" containment="true" eOpposite="#//TemplateParameter/signature">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The formal template parameters that are owned by this template signature."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Element/ownedElement #//TemplateSignature/parameter"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="parameter" lowerBound="1"
-        upperBound="-1" eType="#//TemplateParameter">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The ordered set of all formal template parameters for this template signature."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="template" ordered="false"
-        lowerBound="1" eType="#//TemplateableElement" eOpposite="#//TemplateableElement/ownedTemplateSignature">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The element that owns this template signature."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Element/owner"/>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="TemplateParameter" eSuperTypes="#//Element">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A template parameter exposes a parameterable element as a formal template parameter of a template."/>
-    </eAnnotations>
-    <eOperations name="must_be_compatible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The default must be compatible with the formal template parameter.&#xA;default->notEmpty() implies default->isCompatibleWith(parameteredElement)"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="default" ordered="false"
-        eType="#//ParameterableElement">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The element that is the default for this formal template parameter."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedParameteredElement"
-        ordered="false" eType="#//ParameterableElement" containment="true" eOpposite="#//ParameterableElement/owningTemplateParameter">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The element that is owned by this template parameter."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Element/ownedElement #//TemplateParameter/parameteredElement"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="parameteredElement" ordered="false"
-        lowerBound="1" eType="#//ParameterableElement" eOpposite="#//ParameterableElement/templateParameter">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The element exposed by this template parameter."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedDefault" ordered="false"
-        eType="#//ParameterableElement" containment="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The element that is owned by this template parameter for the purpose of providing a default."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Element/ownedElement #//TemplateParameter/default"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="signature" ordered="false"
-        lowerBound="1" eType="#//TemplateSignature" eOpposite="#//TemplateSignature/ownedParameter">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The template signature that owns this template parameter."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Element/owner"/>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ParameterableElement" abstract="true"
-      eSuperTypes="#//Element">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A parameterable element is an element that can be exposed as a formal template parameter for a template, or specified as an actual parameter in a binding of a template."/>
-    </eAnnotations>
-    <eOperations name="isCompatibleWith" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query isCompatibleWith() determines if this parameterable element is compatible with the specified parameterable element. By default parameterable element P is compatible with parameterable element Q if the kind of P is the same or a subtype as the kind of Q. Subclasses should override this operation to specify different compatibility constraints.&#xA;result = p->oclIsKindOf(self.oclType)"/>
-      </eAnnotations>
-      <eParameters name="p" ordered="false" lowerBound="1" eType="#//ParameterableElement"/>
-    </eOperations>
-    <eOperations name="isTemplateParameter" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.&#xA;result = templateParameter->notEmpty()"/>
-      </eAnnotations>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningTemplateParameter"
-        ordered="false" eType="#//TemplateParameter" eOpposite="#//TemplateParameter/ownedParameteredElement">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The formal template parameter that owns this element."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//ParameterableElement/templateParameter #//Element/owner"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="templateParameter" ordered="false"
-        eType="#//TemplateParameter" eOpposite="#//TemplateParameter/parameteredElement">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The template parameter that exposes this element as a formal parameter."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="TemplateBinding" eSuperTypes="#//DirectedRelationship">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A template binding represents a relationship between a templateable element and a template. A template binding specifies the substitutions of actual parameters for the formal parameters of the template."/>
-    </eAnnotations>
-    <eOperations name="parameter_substitution_formal" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Each parameter substitution must refer to a formal template parameter of the target template signature.&#xA;parameterSubstitution->forAll(b | template.parameter->includes(b.formal))"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="one_parameter_substitution" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A binding contains at most one parameter substitution for each formal template parameter of the target template signature.&#xA;template.parameter->forAll(p | parameterSubstitution->select(b | b.formal = p)->size() &lt;= 1)"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="parameterSubstitution"
-        ordered="false" upperBound="-1" eType="#//TemplateParameterSubstitution" containment="true"
-        eOpposite="#//TemplateParameterSubstitution/templateBinding">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The parameter substitutions owned by this template binding."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="signature" ordered="false"
-        lowerBound="1" eType="#//TemplateSignature">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The template signature for the template that is the target of the binding."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="boundElement" ordered="false"
-        lowerBound="1" eType="#//TemplateableElement" eOpposite="#//TemplateableElement/templateBinding">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The element that is bound by this binding."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//DirectedRelationship/source #//Element/owner"/>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="TemplateParameterSubstitution" eSuperTypes="#//Element">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A template parameter substitution relates the actual parameter to a formal template parameter as part of a template binding."/>
-    </eAnnotations>
-    <eOperations name="must_be_compatible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The actual parameter must be compatible with the formal template parameter, e.g. the actual parameter for a class template parameter must be a class.&#xA;actual->forAll(a | a.isCompatibleWith(formal.parameteredElement))"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="actual" ordered="false"
-        lowerBound="1" eType="#//ParameterableElement">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The element that is the actual parameter for this substitution."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="formal" ordered="false"
-        lowerBound="1" eType="#//TemplateParameter">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The formal template parameter that is associated with this substitution."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedActual" ordered="false"
-        eType="#//ParameterableElement" containment="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The actual parameter that is owned by this substitution."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Element/ownedElement #//TemplateParameterSubstitution/actual"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="templateBinding" ordered="false"
-        lowerBound="1" eType="#//TemplateBinding" eOpposite="#//TemplateBinding/parameterSubstitution">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The optional bindings from this element to templates."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Element/owner"/>
-    </eStructuralFeatures>
-  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Expression" eSuperTypes="#//ValueSpecification">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An expression represents a node in an expression tree, which may be non-terminal or terminal. It defines a symbol, and has a possibly empty sequence of operands which are value specifications.&#xA;An expression is a structured tree of symbols that denotes a (possibly empty) set of values when evaluated in a context."/>
+      <details key="documentation" value="An expression is a structured tree of symbols that denotes a (possibly empty) set of values when evaluated in a context.&#xA;An expression represents a node in an expression tree, which may be non-terminal or terminal. It defines a symbol, and has a possibly empty sequence of operands which are value specifications."/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="operand" upperBound="-1"
         eType="#//ValueSpecification" containment="true">
@@ -1891,11 +1669,11 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="TypedElement" abstract="true" eSuperTypes="#//NamedElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A typed element has a type.&#xA;A typed element is a kind of named element that represents an element with a type."/>
+      <details key="documentation" value="A typed element is a kind of named element that represents an element with a type.&#xA;A typed element has a type."/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" eType="#//Type">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The type of the TypedElement.&#xA;This information is derived from the return result for this Operation."/>
+        <details key="documentation" value="This information is derived from the return result for this Operation.&#xA;The type of the TypedElement."/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
@@ -1982,46 +1760,6 @@
       <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="PackageableElement" abstract="true"
-      eSuperTypes="#//NamedElement #//ParameterableElement">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A packageable element indicates a named element that may be owned directly by a package.&#xA;Packageable elements are able to serve as a template parameter."/>
-    </eAnnotations>
-    <eAnnotations source="duplicates">
-      <contents xsi:type="ecore:EAttribute" name="visibility" ordered="false" eType="#//VisibilityKind"
-          defaultValueLiteral="public">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="Indicates that packageable elements must always have a visibility, i.e., visibility is not optional."/>
-        </eAnnotations>
-        <eAnnotations source="redefines" references="#//NamedElement/visibility"/>
-      </contents>
-    </eAnnotations>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EEnum" name="VisibilityKind">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="VisibilityKind is an enumeration type that defines literals to determine the visibility of elements in a model."/>
-    </eAnnotations>
-    <eLiterals name="public">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A public element is visible to all elements that can access the contents of the namespace that owns it."/>
-      </eAnnotations>
-    </eLiterals>
-    <eLiterals name="private" value="1">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A private element is only visible inside the namespace that owns it."/>
-      </eAnnotations>
-    </eLiterals>
-    <eLiterals name="protected" value="2">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A protected element is visible to elements that have a generalization relationship to the namespace that owns it."/>
-      </eAnnotations>
-    </eLiterals>
-    <eLiterals name="package" value="3">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A package element is owned by a namespace that is not a package, and is visible to elements that are in the same package as its owning namespace. Only named elements that are not owned by packages can be marked as having package visibility. Any element marked as having package visibility is visible to all elements within the nearest enclosing package (given that other owning elements have proper visibility). Outside the nearest enclosing package, an element marked as having package visibility is not visible."/>
-      </eAnnotations>
-    </eLiterals>
-  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Package" eSuperTypes="#//Namespace #//PackageableElement #//TemplateableElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A package can have one or more profile applications to indicate which profiles have been applied. Because a profile is a package, it is possible to apply a profile not only to packages, but also to profiles.&#xA;Package specializes TemplateableElement and PackageableElement specializes ParameterableElement to specify that a package can be used as a template and a PackageableElement as a template parameter.&#xA;A package is used to group elements, and provides a namespace for the grouped elements."/>
@@ -2227,7 +1965,7 @@
     </eOperations>
     <eOperations name="makesVisible" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query makesVisible() defines whether a Package makes an element visible outside itself. Elements with no visibility and elements with public visibility are made visible.&#xA;self.member->includes(el)&#xA;result = (ownedMember->includes(el)) or&#xA;(elementImport->select(ei|ei.importedElement = #public)->collect(ei|ei.importedElement)->includes(el)) or&#xA;(packageImport->select(pi|pi.visibility = #public)->collect(pi|pi.importedPackage.member->includes(el))->notEmpty())"/>
+        <details key="documentation" value="The query makesVisible() defines whether a Package makes an element visible outside itself. Elements with no visibility and elements with public visibility are made visible.&#xA;result = (ownedMember->includes(el)) or&#xA;(elementImport->select(ei|ei.importedElement = #public)->collect(ei|ei.importedElement)->includes(el)) or&#xA;(packageImport->select(pi|pi.visibility = #public)->collect(pi|pi.importedPackage.member->includes(el))->notEmpty())&#xA;self.member->includes(el)"/>
       </eAnnotations>
       <eParameters name="el" ordered="false" lowerBound="1" eType="#//NamedElement"/>
     </eOperations>
@@ -2312,6 +2050,289 @@
       <eAnnotations source="subsets" references="#//Package/packagedElement"/>
     </eStructuralFeatures>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="TemplateableElement" abstract="true"
+      eSuperTypes="#//Element">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A templateable element is an element that can optionally be defined as a template and bound to other templates."/>
+    </eAnnotations>
+    <eOperations name="isTemplate" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query isTemplate() returns whether this templateable element is actually a template.&#xA;result = ownedTemplateSignature->notEmpty()"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="parameterableElements" ordered="false" upperBound="-1" eType="#//ParameterableElement">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query parameterableElements() returns the set of elements that may be used as the parametered elements for a template parameter of this templateable element. By default, this set includes all the owned elements. Subclasses may override this operation if they choose to restrict the set of parameterable elements.&#xA;result = allOwnedElements->select(oclIsKindOf(ParameterableElement))"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedTemplateSignature"
+        ordered="false" eType="#//TemplateSignature" containment="true" eOpposite="#//TemplateSignature/template">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The optional template signature specifying the formal template parameters."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="templateBinding" ordered="false"
+        upperBound="-1" eType="#//TemplateBinding" containment="true" eOpposite="#//TemplateBinding/boundElement">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The optional bindings from this element to templates."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="TemplateSignature" eSuperTypes="#//Element">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A template signature bundles the set of formal template parameters for a templated element."/>
+    </eAnnotations>
+    <eOperations name="own_elements" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Parameters must own the elements they parameter or those elements must be owned by the element being templated.&#xA;templatedElement.ownedElement->includesAll(parameter.parameteredElement - parameter.ownedParameteredElement)"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedParameter" upperBound="-1"
+        eType="#//TemplateParameter" containment="true" eOpposite="#//TemplateParameter/signature">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The formal template parameters that are owned by this template signature."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//TemplateSignature/parameter #//Element/ownedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parameter" lowerBound="1"
+        upperBound="-1" eType="#//TemplateParameter">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The ordered set of all formal template parameters for this template signature."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="template" ordered="false"
+        lowerBound="1" eType="#//TemplateableElement" eOpposite="#//TemplateableElement/ownedTemplateSignature">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The element that owns this template signature."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/owner"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="TemplateParameter" eSuperTypes="#//Element">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A template parameter exposes a parameterable element as a formal template parameter of a template."/>
+    </eAnnotations>
+    <eOperations name="must_be_compatible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The default must be compatible with the formal template parameter.&#xA;default->notEmpty() implies default->isCompatibleWith(parameteredElement)"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="default" ordered="false"
+        eType="#//ParameterableElement">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The element that is the default for this formal template parameter."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedDefault" ordered="false"
+        eType="#//ParameterableElement" containment="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The element that is owned by this template parameter for the purpose of providing a default."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/ownedElement #//TemplateParameter/default"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedParameteredElement"
+        ordered="false" eType="#//ParameterableElement" containment="true" eOpposite="#//ParameterableElement/owningTemplateParameter">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The element that is owned by this template parameter."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//TemplateParameter/parameteredElement #//Element/ownedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parameteredElement" ordered="false"
+        lowerBound="1" eType="#//ParameterableElement" eOpposite="#//ParameterableElement/templateParameter">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The element exposed by this template parameter."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="signature" ordered="false"
+        lowerBound="1" eType="#//TemplateSignature" eOpposite="#//TemplateSignature/ownedParameter">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The template signature that owns this template parameter."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/owner"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="TemplateBinding" eSuperTypes="#//DirectedRelationship">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A template binding represents a relationship between a templateable element and a template. A template binding specifies the substitutions of actual parameters for the formal parameters of the template."/>
+    </eAnnotations>
+    <eOperations name="parameter_substitution_formal" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Each parameter substitution must refer to a formal template parameter of the target template signature.&#xA;parameterSubstitution->forAll(b | template.parameter->includes(b.formal))"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="one_parameter_substitution" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A binding contains at most one parameter substitution for each formal template parameter of the target template signature.&#xA;template.parameter->forAll(p | parameterSubstitution->select(b | b.formal = p)->size() &lt;= 1)"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parameterSubstitution"
+        ordered="false" upperBound="-1" eType="#//TemplateParameterSubstitution" containment="true"
+        eOpposite="#//TemplateParameterSubstitution/templateBinding">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The parameter substitutions owned by this template binding."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="signature" ordered="false"
+        lowerBound="1" eType="#//TemplateSignature">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The template signature for the template that is the target of the binding."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="boundElement" ordered="false"
+        lowerBound="1" eType="#//TemplateableElement" eOpposite="#//TemplateableElement/templateBinding">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The element that is bound by this binding."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/owner #//DirectedRelationship/source"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="DirectedRelationship" abstract="true"
+      eSuperTypes="#//Relationship">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A directed relationship represents a relationship between a collection of source model elements and a collection of target model elements."/>
+    </eAnnotations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="source" ordered="false"
+        lowerBound="1" upperBound="-1" eType="#//Element" changeable="false" volatile="true"
+        transient="true" derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies the sources of the DirectedRelationship."/>
+      </eAnnotations>
+      <eAnnotations source="union"/>
+      <eAnnotations source="subsets" references="#//Relationship/relatedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="target" ordered="false"
+        lowerBound="1" upperBound="-1" eType="#//Element" changeable="false" volatile="true"
+        transient="true" derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies the targets of the DirectedRelationship."/>
+      </eAnnotations>
+      <eAnnotations source="union"/>
+      <eAnnotations source="subsets" references="#//Relationship/relatedElement"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Relationship" abstract="true" eSuperTypes="#//Element">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="Relationship is an abstract concept that specifies some kind of relationship between elements."/>
+    </eAnnotations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="relatedElement" ordered="false"
+        lowerBound="1" upperBound="-1" eType="#//Element" changeable="false" volatile="true"
+        transient="true" derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies the elements related by the Relationship."/>
+      </eAnnotations>
+      <eAnnotations source="union"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="TemplateParameterSubstitution" eSuperTypes="#//Element">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A template parameter substitution relates the actual parameter to a formal template parameter as part of a template binding."/>
+    </eAnnotations>
+    <eOperations name="must_be_compatible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The actual parameter must be compatible with the formal template parameter, e.g. the actual parameter for a class template parameter must be a class.&#xA;actual->forAll(a | a.isCompatibleWith(formal.parameteredElement))"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="actual" ordered="false"
+        lowerBound="1" eType="#//ParameterableElement">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The element that is the actual parameter for this substitution."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="formal" ordered="false"
+        lowerBound="1" eType="#//TemplateParameter">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The formal template parameter that is associated with this substitution."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedActual" ordered="false"
+        eType="#//ParameterableElement" containment="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The actual parameter that is owned by this substitution."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/ownedElement #//TemplateParameterSubstitution/actual"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="templateBinding" ordered="false"
+        lowerBound="1" eType="#//TemplateBinding" eOpposite="#//TemplateBinding/parameterSubstitution">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The optional bindings from this element to templates."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/owner"/>
+    </eStructuralFeatures>
+  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="PackageMerge" eSuperTypes="#//DirectedRelationship">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A package merge defines how the contents of one package are extended by the contents of another package."/>
@@ -2328,7 +2349,7 @@
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="References the Package that is being extended with the contents of the merged package of the PackageMerge."/>
       </eAnnotations>
-      <eAnnotations source="subsets" references="#//DirectedRelationship/source #//Element/owner"/>
+      <eAnnotations source="subsets" references="#//Element/owner #//DirectedRelationship/source"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ProfileApplication" eSuperTypes="#//DirectedRelationship">
@@ -2369,7 +2390,7 @@
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="The package that owns the profile application."/>
       </eAnnotations>
-      <eAnnotations source="subsets" references="#//DirectedRelationship/source #//Element/owner"/>
+      <eAnnotations source="subsets" references="#//Element/owner #//DirectedRelationship/source"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Profile" eSuperTypes="#//Package">
@@ -2516,9 +2537,9 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="An element import identifies an element in another package, and allows the element to be referenced using its name without a qualifier."/>
     </eAnnotations>
-    <eOperations name="imported_element_is_public" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="visibility_public_or_private" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An importedElement has either public visibility or no visibility at all.&#xA;self.importedElement.visibility.notEmpty() implies self.importedElement.visibility = #public"/>
+        <details key="documentation" value="The visibility of an ElementImport is either public or private.&#xA;self.visibility = #public or self.visibility = #private"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -2535,9 +2556,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="visibility_public_or_private" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="imported_element_is_public" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The visibility of an ElementImport is either public or private.&#xA;self.visibility = #public or self.visibility = #private"/>
+        <details key="documentation" value="An importedElement has either public visibility or no visibility at all.&#xA;self.importedElement.visibility.notEmpty() implies self.importedElement.visibility = #public"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -2577,7 +2598,7 @@
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Specifies the Namespace that imports a PackageableElement from another Package."/>
       </eAnnotations>
-      <eAnnotations source="subsets" references="#//DirectedRelationship/source #//Element/owner"/>
+      <eAnnotations source="subsets" references="#//Element/owner #//DirectedRelationship/source"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="visibility" ordered="false"
         lowerBound="1" eType="#//VisibilityKind" defaultValueLiteral="public">
@@ -2586,6 +2607,31 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="VisibilityKind">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="VisibilityKind is an enumeration type that defines literals to determine the visibility of elements in a model."/>
+    </eAnnotations>
+    <eLiterals name="public">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A public element is visible to all elements that can access the contents of the namespace that owns it."/>
+      </eAnnotations>
+    </eLiterals>
+    <eLiterals name="private" value="1">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A private element is only visible inside the namespace that owns it."/>
+      </eAnnotations>
+    </eLiterals>
+    <eLiterals name="protected" value="2">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A protected element is visible to elements that have a generalization relationship to the namespace that owns it."/>
+      </eAnnotations>
+    </eLiterals>
+    <eLiterals name="package" value="3">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A package element is owned by a namespace that is not a package, and is visible to elements that are in the same package as its owning namespace. Only named elements that are not owned by packages can be marked as having package visibility. Any element marked as having package visibility is visible to all elements within the nearest enclosing package (given that other owning elements have proper visibility). Outside the nearest enclosing package, an element marked as having package visibility is not visible."/>
+      </eAnnotations>
+    </eLiterals>
+  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="PackageImport" eSuperTypes="#//DirectedRelationship">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A package import is a relationship that allows the use of unqualified names to refer to package members from other namespaces."/>
@@ -2621,7 +2667,7 @@
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Specifies the Namespace that imports the members from a Package."/>
       </eAnnotations>
-      <eAnnotations source="subsets" references="#//DirectedRelationship/source #//Element/owner"/>
+      <eAnnotations source="subsets" references="#//Element/owner #//DirectedRelationship/source"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="visibility" ordered="false"
         lowerBound="1" eType="#//VisibilityKind" defaultValueLiteral="public">
@@ -2725,7 +2771,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Association" eSuperTypes="#//Classifier #//Relationship">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An association describes a set of tuples whose values refer to typed instances. An instance of an association is called a link. A link is a tuple with one value for each end of the association, where each value is an instance of the type of the end."/>
+      <details key="documentation" value="An association describes a set of tuples whose values refer to typed instances. An instance of an association is called a link.A link is a tuple with one value for each end of the association, where each value is an instance of the type of the end.&#xA;An association describes a set of tuples whose values refer to typed instances. An instance of an association is called a link. A link is a tuple with one value for each end of the association, where each value is an instance of the type of the end."/>
     </eAnnotations>
     <eOperations name="specialized_end_number" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -2746,9 +2792,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="specialized_end_types" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="association_ends" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="When an association specializes another association, every end of the specific association corresponds to an end of the general association, and the specific end reaches the same type or a subtype of the more general end.&#xA;Sequence{1..self.memberEnd->size()}->&#xA;&#x9;forAll(i | self.general->select(oclIsKindOf(Association)).oclAsType(Association)->&#xA;&#x9;&#x9;forAll(ga |self.memberEnd->at(i).type.conformsTo(ga.memberEnd->at(i).type)))"/>
+        <details key="documentation" value="Association ends of associations with more than two ends must be owned by the association.&#xA;if memberEnd->size() > 2 then ownedEnd->includesAll(memberEnd)"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -2784,9 +2830,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="association_ends" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="specialized_end_types" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Association ends of associations with more than two ends must be owned by the association.&#xA;if memberEnd->size() > 2 then ownedEnd->includesAll(memberEnd)"/>
+        <details key="documentation" value="When an association specializes another association, every end of the specific association corresponds to an end of the general association, and the specific end reaches the same type or a subtype of the more general end.&#xA;Sequence{1..self.memberEnd->size()}->&#xA;&#x9;forAll(i | self.general->select(oclIsKindOf(Association)).oclAsType(Association)->&#xA;&#x9;&#x9;forAll(ga |self.memberEnd->at(i).type.conformsTo(ga.memberEnd->at(i).type)))"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -2841,7 +2887,7 @@
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="The ends that are owned by the association itself."/>
       </eAnnotations>
-      <eAnnotations source="subsets" references="#//Classifier/feature #//Association/memberEnd #//Namespace/ownedMember"/>
+      <eAnnotations source="subsets" references="#//Association/memberEnd #//Classifier/feature #//Namespace/ownedMember"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="navigableOwnedEnd" ordered="false"
         upperBound="-1" eType="#//Property">
@@ -2853,7 +2899,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Property" eSuperTypes="#//StructuralFeature #//ConnectableElement #//DeploymentTarget">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="Property represents a declared state of one or more instances in terms of a named relationship to a value or values. When a property is an attribute of a classifier, the value or values are related to the instance of the classifier by being held in slots of the instance. When a property is an association end, the value or values are related to the instance or instances at the other end(s) of the association. The range of valid values represented by the property can be controlled by setting the property's type.&#xA;A property has the capability of being a deployment target in a deployment relationship. This enables modeling the deployment to hierarchical nodes that have properties functioning as internal parts.&#xA;Property specializes ParameterableElement to specify that a property can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template.&#xA;A property represents a set of instances that are owned by a containing classifier instance.&#xA;A property is a structural feature of a classifier that characterizes instances of the classifier. A property related by ownedAttribute to a classifier (other than an association) represents an attribute and might also represent an association end. It relates an instance of the class to a value or set of values of the type of the attribute. A property related by memberEnd or its specializations to an association represents an end of the association. The type of the property is the type of the end of the association."/>
+      <details key="documentation" value="Property represents a declared state of one or more instances in terms of a named relationship to a value or values. When a property is an attribute of a classifier, the value or values are related to the instance of the classifier by being held in slots of the instance. When a property is an association end, the value or values are related to the instance or instances at the other end(s) of the association. The range of valid values represented by the property can be controlled by setting the property's type.&#xA;A property is a structural feature of a classifier that characterizes instances of the classifier. A property related by ownedAttribute to a classifier (other than an association) represents an attribute and might also represent an association end. It relates an instance of the class to a value or set of values of the type of the attribute. A property related by memberEnd or its specializations to an association represents an end of the association. The type of the property is the type of the end of the association.&#xA;A property has the capability of being a deployment target in a deployment relationship. This enables modeling the deployment to hierarchical nodes that have properties functioning as internal parts.&#xA;Property specializes ParameterableElement to specify that a property can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template.&#xA;A property represents a set of instances that are owned by a containing classifier instance."/>
     </eAnnotations>
     <eAnnotations source="duplicates">
       <contents xsi:type="ecore:EOperation" name="isCompatibleWith" ordered="false"
@@ -2867,7 +2913,7 @@
       <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
           lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The query isConsistentWith() specifies, for any two Properties in a context in which redefinition is possible, whether redefinition would be logically consistent. A redefining property is consistent with a redefined property if the type of the redefining property conforms to the type of the redefined property, and the multiplicity of the redefining property (if specified) is contained in the multiplicity of the redefined property.&#xA;redefinee.isRedefinitionContextValid(self)&#xA;result = redefinee.oclIsKindOf(Property) and &#xA;  let prop : Property = redefinee.oclAsType(Property) in &#xA;  (prop.type.conformsTo(self.type) and &#xA;  ((prop.lowerBound()->notEmpty() and self.lowerBound()->notEmpty()) implies prop.lowerBound() >= self.lowerBound()) and &#xA;  ((prop.upperBound()->notEmpty() and self.upperBound()->notEmpty()) implies prop.lowerBound() &lt;= self.lowerBound()) and &#xA;  (self.isComposite implies prop.isComposite))"/>
+          <details key="documentation" value="The query isConsistentWith() specifies, for any two Properties in a context in which redefinition is possible, whether redefinition would be logically consistent. A redefining property is consistent with a redefined property if the type of the redefining property conforms to the type of the redefined property, the multiplicity of the redefining property (if specified) is contained in the multiplicity of the redefined property.&#xA;The query isConsistentWith() specifies, for any two Properties in a context in which redefinition is possible, whether redefinition would be logically consistent. A redefining property is consistent with a redefined property if the type of the redefining property conforms to the type of the redefined property, and the multiplicity of the redefining property (if specified) is contained in the multiplicity of the redefined property.&#xA;redefinee.isRedefinitionContextValid(self)&#xA;result = redefinee.oclIsKindOf(Property) and &#xA;  let prop : Property = redefinee.oclAsType(Property) in &#xA;  (prop.type.conformsTo(self.type) and &#xA;  ((prop.lowerBound()->notEmpty() and self.lowerBound()->notEmpty()) implies prop.lowerBound() >= self.lowerBound()) and &#xA;  ((prop.upperBound()->notEmpty() and self.upperBound()->notEmpty()) implies prop.lowerBound() &lt;= self.lowerBound()) and &#xA;  (self.isComposite implies prop.isComposite))"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
         <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
@@ -2876,71 +2922,14 @@
           eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
           defaultValueLiteral="false">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="If isReadOnly is true, the attribute may not be written to after initialization.&#xA;If true, the attribute may only be read, and not written."/>
+          <details key="documentation" value="If true, the attribute may only be read, and not written.&#xA;If isReadOnly is true, the attribute may not be written to after initialization."/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//StructuralFeature/isReadOnly"/>
       </contents>
     </eAnnotations>
-    <eOperations name="subsetting_context_conforms" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="subsetted_property_names" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Subsetting may only occur when the context of the subsetting property conforms to the context of the subsetted property.&#xA;self.subsettedProperty->notEmpty() implies&#xA;  (self.subsettingContext()->notEmpty() and self.subsettingContext()->forAll (sc |&#xA;    self.subsettedProperty->forAll(sp |&#xA;      sp.subsettingContext()->exists(c | sc.conformsTo(c)))))"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="derived_union_is_read_only" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A derived union is read only.&#xA;isDerivedUnion implies isReadOnly"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="multiplicity_of_composite" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A multiplicity on an aggregate end of a composite aggregation must not have an upper bound greater than 1.&#xA;A multiplicity of a composite aggregation must not have an upper bound greater than 1.&#xA;isComposite implies (upperBound()->isEmpty() or upperBound() &lt;= 1)"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="redefined_property_inherited" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A redefined property must be inherited from a more general classifier containing the redefining property.&#xA;if (redefinedProperty->notEmpty()) then&#xA;  (redefinitionContext->notEmpty() and&#xA;      redefinedProperty->forAll(rp|&#xA;        ((redefinitionContext->collect(fc|&#xA;          fc.allParents()))->asSet())->collect(c| c.allFeatures())->asSet()->includes(rp))"/>
+        <details key="documentation" value="A property may not subset a property with the same name.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -2976,6 +2965,25 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="multiplicity_of_composite" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A multiplicity on an aggregate end of a composite aggregation must not have an upper bound greater than 1.&#xA;A multiplicity of a composite aggregation must not have an upper bound greater than 1.&#xA;isComposite implies (upperBound()->isEmpty() or upperBound() &lt;= 1)"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eOperations name="binding_to_attribute" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="A binding of a property template parameter representing an attribute must be to an attribute.&#xA;(isAttribute(self) and (templateParameterSubstitution->notEmpty())&#xA;  implies (templateParameterSubstitution->forAll(ts | isAttribute(ts.formal)))"/>
@@ -2995,9 +3003,28 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="derived_union_is_derived" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="redefined_property_inherited" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A derived union is derived.&#xA;isDerivedUnion implies isDerived"/>
+        <details key="documentation" value="A redefined property must be inherited from a more general classifier containing the redefining property.&#xA;if (redefinedProperty->notEmpty()) then&#xA;  (redefinitionContext->notEmpty() and&#xA;      redefinedProperty->forAll(rp|&#xA;        ((redefinitionContext->collect(fc|&#xA;          fc.allParents()))->asSet())->collect(c| c.allFeatures())->asSet()->includes(rp))"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="subsetting_context_conforms" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Subsetting may only occur when the context of the subsetting property conforms to the context of the subsetted property.&#xA;self.subsettedProperty->notEmpty() implies&#xA;  (self.subsettingContext()->notEmpty() and self.subsettingContext()->forAll (sc |&#xA;    self.subsettedProperty->forAll(sp |&#xA;      sp.subsettingContext()->exists(c | sc.conformsTo(c)))))"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -3033,9 +3060,28 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="subsetted_property_names" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="derived_union_is_derived" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A property may not subset a property with the same name.&#xA;true"/>
+        <details key="documentation" value="A derived union is derived.&#xA;isDerivedUnion implies isDerived"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="derived_union_is_read_only" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A derived union is read only.&#xA;isDerivedUnion implies isReadOnly"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -3183,13 +3229,6 @@
         <details key="documentation" value="The query subsettingContext() gives the context for subsetting a property. It consists, in the case of an attribute, of the corresponding classifier, and in the case of an association end, all of the classifiers at the other ends.&#xA;result = if association->notEmpty()&#xA;then association.endType-type&#xA;else if classifier->notEmpty() then Set{classifier} else Set{} endif&#xA;endif"/>
       </eAnnotations>
     </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" ordered="false"
-        eType="#//DataType" eOpposite="#//DataType/ownedAttribute">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The DataType that owns this Property."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//NamedElement/namespace #//Feature/featuringClassifier #//RedefinableElement/redefinitionContext"/>
-    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="interface" ordered="false"
         eType="#//Interface" eOpposite="#//Interface/ownedAttribute">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -3197,6 +3236,13 @@
       </eAnnotations>
       <eAnnotations source="subsets" references="#//NamedElement/namespace #//Feature/featuringClassifier #//RedefinableElement/redefinitionContext"/>
     </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" ordered="false"
+        eType="#//DataType" eOpposite="#//DataType/ownedAttribute">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The DataType that owns this Property."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//NamedElement/namespace #//Feature/featuringClassifier #//RedefinableElement/redefinitionContext"/>
+    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="aggregation" ordered="false"
         lowerBound="1" eType="#//AggregationKind" defaultValueLiteral="none">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -3220,7 +3266,7 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="class" ordered="false"
         eType="#//Class" changeable="false" volatile="true" transient="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the Class that owns the Property."/>
+        <details key="documentation" value="References the Class that owns the Property.&#xA;References the Class that owns the Property."/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//NamedElement/namespace #//Feature/featuringClassifier #//RedefinableElement/redefinitionContext"/>
     </eStructuralFeatures>
@@ -3228,7 +3274,7 @@
         eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String" volatile="true"
         transient="true" unsettable="true" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A String that is evaluated to give a default value for the Property when an object of the owning Classifier is instantiated.&#xA;Specifies a String that represents a value to be used when no argument is supplied for the Property."/>
+        <details key="documentation" value="Specifies a String that represents a value to be used when no argument is supplied for the Property.&#xA;A String that is evaluated to give a default value for the Property when an object of the owning Classifier is instantiated."/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="defaultValue" ordered="false"
@@ -3249,7 +3295,7 @@
         lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies whether the Property is derived, i.e., whether its value or values can be computed from other information.&#xA;If isDerived is true, the value of the attribute is derived from information elsewhere."/>
+        <details key="documentation" value="If isDerived is true, the value of the attribute is derived from information elsewhere.&#xA;Specifies whether the Property is derived, i.e., whether its value or values can be computed from other information."/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="isDerivedUnion" ordered="false"
@@ -3277,7 +3323,7 @@
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="References the owning association of this property, if any."/>
       </eAnnotations>
-      <eAnnotations source="subsets" references="#//Feature/featuringClassifier #//NamedElement/namespace #//Property/association #//RedefinableElement/redefinitionContext"/>
+      <eAnnotations source="subsets" references="#//Feature/featuringClassifier #//RedefinableElement/redefinitionContext #//NamedElement/namespace #//Property/association"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedProperty" ordered="false"
         upperBound="-1" eType="#//Property">
@@ -3299,135 +3345,15 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ConnectableElement" abstract="true"
-      eSuperTypes="#//TypedElement #//ParameterableElement">
+  <eClassifiers xsi:type="ecore:EClass" name="StructuralFeature" abstract="true" eSuperTypes="#//Feature #//TypedElement #//MultiplicityElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="ConnectableElement is an abstract metaclass representing a set of instances that play roles of a classifier. Connectable elements may be joined by attached connectors and specify configurations of linked instances to be created within an instance of the containing classifier.&#xA;A connectable element may be exposed as a connectable element template parameter."/>
+      <details key="documentation" value="A structural feature is a typed feature of a classifier that specifies the structure of instances of the classifier.&#xA;By specializing multiplicity element, it supports a multiplicity that specifies valid cardinalities for the collection of values associated with an instantiation of the structural feature."/>
     </eAnnotations>
-    <eAnnotations source="duplicates">
-      <contents xsi:type="ecore:EReference" name="templateParameter" ordered="false"
-          eType="#//TemplateParameter" eOpposite="#//ConnectableElementTemplateParameter/%duplicates%/parameteredElement">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The ConnectableElementTemplateParameter for this ConnectableElement parameter."/>
-        </eAnnotations>
-        <eAnnotations source="redefines" references="#//ParameterableElement/templateParameter"/>
-      </contents>
-    </eAnnotations>
-    <eOperations name="getEnds" ordered="false" upperBound="-1" eType="#//ConnectorEnd">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isReadOnly" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+        defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Missing derivation for ConnectableElement::/end : ConnectorEnd&#xA;true"/>
-        <details key="suppressedVisibility" value="true"/>
-      </eAnnotations>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="end" upperBound="-1" eType="#//ConnectorEnd"
-        changeable="false" volatile="true" transient="true" derived="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Denotes a set of connector ends that attaches to this connectable element."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ConnectorEnd" eSuperTypes="#//MultiplicityElement">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A connector end is an endpoint of a connector, which attaches the connector to a connectable element. Each connector end is part of one connector."/>
-    </eAnnotations>
-    <eOperations name="role_and_part_with_port" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If a connector end references a partWithPort, then the role must be a port that is defined by the type of the partWithPort.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="part_with_port_empty" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If a connector end is attached to a port of the containing classifier, partWithPort will be empty.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The multiplicity of the connector end may not be more general than the multiplicity of the association typing the owning connector.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="self_part_with_port" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The property held in self.partWithPort must not be a Port.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="getDefiningEnd" ordered="false" eType="#//Property">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Missing derivation for ConnectorEnd::/definingEnd : Property&#xA;true"/>
-        <details key="suppressedVisibility" value="true"/>
-      </eAnnotations>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="definingEnd" ordered="false"
-        eType="#//Property" changeable="false" volatile="true" transient="true" derived="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A derived association referencing the corresponding association end on the association which types the connector owing this connector end. This association is derived by selecting the association end at the same place in the ordering of association ends as this connector end."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="partWithPort" ordered="false"
-        eType="#//Property">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Indicates the role of the internal structure of a classifier with the port to which the connector end is attached."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="role" ordered="false" lowerBound="1"
-        eType="#//ConnectableElement">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The connectable element attached at this connector end. When an instance of the containing classifier is created, a link may (depending on the multiplicities) be created to an instance of the classifier that types this connectable element."/>
+        <details key="documentation" value="States whether the feature's value may be modified by a client."/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
@@ -3436,25 +3362,6 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A multiplicity is a definition of an inclusive interval of non-negative integers beginning with a lower bound and ending with a (possibly infinite) upper bound. A multiplicity element embeds this information to specify the allowable cardinalities for an instantiation of this element."/>
     </eAnnotations>
-    <eOperations name="upper_ge_lower" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The upper bound must be greater than or equal to the lower bound.&#xA;(upperBound()->notEmpty() and lowerBound()->notEmpty()) implies upperBound() >= lowerBound()"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="lower_ge_0" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="The lower bound must be a non-negative integer literal.&#xA;lowerBound()->notEmpty() implies lowerBound() >= 0"/>
@@ -3474,9 +3381,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="value_specification_no_side_effects" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="upper_ge_lower" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If a non-literal ValueSpecification is used for the lower or upper bound, then evaluating that specification must not have side effects.&#xA;true"/>
+        <details key="documentation" value="The upper bound must be greater than or equal to the lower bound.&#xA;(upperBound()->notEmpty() and lowerBound()->notEmpty()) implies upperBound() >= lowerBound()"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -3512,6 +3419,25 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="value_specification_no_side_effects" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="If a non-literal ValueSpecification is used for the lower or upper bound, then evaluating that specification must not have side effects.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eOperations name="setLower" ordered="false" lowerBound="1">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="suppressedVisibility" value="true"/>
@@ -3538,7 +3464,7 @@
     </eOperations>
     <eOperations name="includesMultiplicity" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query includesMultiplicity() checks whether this multiplicity includes all the cardinalities allowed by the specified multiplicity.&#xA;self.upperBound()->notEmpty() and self.lowerBound()->notEmpty() and M.upperBound()->notEmpty() and M.lowerBound()->notEmpty()&#xA;result = (self.lowerBound() &lt;= M.lowerBound()) and (self.upperBound() >= M.upperBound())"/>
+        <details key="documentation" value="The query includesMultiplicity() checks whether this multiplicity includes all the cardinalities allowed by the specified multiplicity.&#xA;result = (self.lowerBound() &lt;= M.lowerBound()) and (self.upperBound() >= M.upperBound())&#xA;self.upperBound()->notEmpty() and self.lowerBound()->notEmpty() and M.upperBound()->notEmpty() and M.lowerBound()->notEmpty()"/>
       </eAnnotations>
       <eParameters name="M" ordered="false" lowerBound="1" eType="#//MultiplicityElement"/>
     </eOperations>
@@ -3551,7 +3477,7 @@
     </eOperations>
     <eOperations name="isMultivalued" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query isMultivalued() checks whether this multiplicity has an upper bound greater than one.&#xA;upperBound()->notEmpty()&#xA;result = upperBound() > 1"/>
+        <details key="documentation" value="The query isMultivalued() checks whether this multiplicity has an upper bound greater than one.&#xA;result = upperBound() > 1&#xA;upperBound()->notEmpty()"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="getLower" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer">
@@ -3619,531 +3545,6 @@
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ConnectableElementTemplateParameter"
-      eSuperTypes="#//TemplateParameter">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A connectable element template parameter exposes a connectable element as a formal parameter for a template."/>
-    </eAnnotations>
-    <eAnnotations source="duplicates">
-      <contents xsi:type="ecore:EReference" name="parameteredElement" ordered="false"
-          lowerBound="1" eType="#//ParameterableElement" eOpposite="#//ConnectableElement/%duplicates%/templateParameter">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The ConnectableElement for this template parameter."/>
-        </eAnnotations>
-        <eAnnotations source="redefines" references="#//TemplateParameter/parameteredElement"/>
-      </contents>
-    </eAnnotations>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="DeploymentTarget" abstract="true" eSuperTypes="#//NamedElement">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A deployment target is the location for a deployed artifact."/>
-    </eAnnotations>
-    <eOperations name="getDeployedElements" ordered="false" upperBound="-1" eType="#//PackageableElement">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Missing derivation for DeploymentTarget::/deployedElement : PackageableElement&#xA;result = ((self.deployment->collect(deployedArtifact))->collect(manifestation))->collect(utilizedElement)"/>
-        <details key="suppressedVisibility" value="true"/>
-      </eAnnotations>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="deployedElement" ordered="false"
-        upperBound="-1" eType="#//PackageableElement" changeable="false" volatile="true"
-        transient="true" derived="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The set of elements that are manifested in an Artifact that is involved in Deployment to a DeploymentTarget."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="deployment" ordered="false"
-        upperBound="-1" eType="#//Deployment" containment="true" eOpposite="#//Deployment/location">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The set of Deployments for a DeploymentTarget."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Element/ownedElement #//NamedElement/clientDependency"/>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Deployment" eSuperTypes="#//Dependency">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A deployment is the allocation of an artifact or artifact instance to a deployment target.&#xA;A component deployment is the deployment of one or more artifacts or artifact instances to a deployment target, optionally parameterized by a deployment specification. Examples are executables and configuration files."/>
-    </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="configuration" ordered="false"
-        upperBound="-1" eType="#//DeploymentSpecification" containment="true" eOpposite="#//DeploymentSpecification/deployment">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The specification of properties that parameterize the deployment and execution of one or more Artifacts."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="deployedArtifact" ordered="false"
-        upperBound="-1" eType="#//DeployedArtifact">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The Artifacts that are deployed onto a Node. This association specializes the supplier association."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Dependency/supplier"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="location" ordered="false"
-        lowerBound="1" eType="#//DeploymentTarget" eOpposite="#//DeploymentTarget/deployment">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The DeployedTarget which is the target of a Deployment."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Dependency/client #//Element/owner"/>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="DeploymentSpecification" eSuperTypes="#//Artifact">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A deployment specification specifies a set of properties that determine execution parameters of a component artifact that is deployed on a node. A deployment specification can be aimed at a specific type of container. An artifact that reifies or implements deployment specification properties is a deployment descriptor."/>
-    </eAnnotations>
-    <eOperations name="deployment_target" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The DeploymentTarget of a DeploymentSpecification is a kind of ExecutionEnvironment.&#xA;self.deployment->forAll (d | d.location.oclIsKindOf(ExecutionEnvironment))"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="deployed_elements" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The deployedElements of a DeploymentTarget that are involved in a Deployment that has an associated Deployment-Specification is a kind of Component (i.e. the configured components).&#xA;self.deployment->forAll (d | d.location.deployedElements->forAll (de |&#xA;  de.oclIsKindOf(Component)))"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="deploymentLocation" ordered="false"
-        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String" unsettable="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The location where an Artifact is deployed onto a Node. This is typically a 'directory' or 'memory address'."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="executionLocation" ordered="false"
-        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String" unsettable="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The location where a component Artifact executes. This may be a local or remote location."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="deployment" ordered="false"
-        eType="#//Deployment" eOpposite="#//Deployment/configuration">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The deployment with which the DeploymentSpecification is associated."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Element/owner"/>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Artifact" eSuperTypes="#//Classifier #//DeployedArtifact">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An artifact is the specification of a physical piece of information that is used or produced by a software development process, or by deployment and operation of a system. Examples of artifacts include model files, source files, scripts, and binary executable files, a table in a database system, a development deliverable, or a word-processing document, a mail message.&#xA;An artifact is the source of a deployment to a node."/>
-    </eAnnotations>
-    <eOperations name="createOwnedAttribute" ordered="false" lowerBound="1" eType="#//Property">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Creates a property with the specified name, type, lower bound, and upper bound as an owned attribute of this artifact."/>
-      </eAnnotations>
-      <eParameters name="name" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The name for the new attribute, or null."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="type" ordered="false" eType="#//Type">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The type for the new attribute, or null."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="lower" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The lower bound for the new attribute."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="upper" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//UnlimitedNatural">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The upper bound for the new attribute."/>
-        </eAnnotations>
-      </eParameters>
-    </eOperations>
-    <eOperations name="createOwnedOperation" ordered="false" lowerBound="1" eType="#//Operation">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Creates an operation with the specified name, parameter names, parameter types, and return type (or null) as an owned operation of this artifact."/>
-      </eAnnotations>
-      <eParameters name="name" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The name for the new operation, or null."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="parameterNames" ordered="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The parameter names for  the new operation, or null."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="parameterTypes" ordered="false" upperBound="-1" eType="#//Type">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The parameter types for the new operation, or null."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="returnType" ordered="false" eType="#//Type">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The return type for the new operation, or null."/>
-        </eAnnotations>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="fileName" ordered="false"
-        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String" unsettable="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A concrete name that is used to refer to the Artifact in a physical context. Example: file system name, universal resource locator."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="manifestation" ordered="false"
-        upperBound="-1" eType="#//Manifestation" containment="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The set of model elements that are manifested in the Artifact. That is, these model elements are utilized in the construction (or generation) of the artifact."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Element/ownedElement #//NamedElement/clientDependency"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="nestedArtifact" ordered="false"
-        upperBound="-1" eType="#//Artifact" containment="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The Artifacts that are defined (nested) within the Artifact. The association is a specialization of the ownedMember association from Namespace to NamedElement."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
-        eType="#//Property" containment="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The attributes or association ends defined for the Artifact. The association is a specialization of the ownedMember association."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Classifier/attribute #//Namespace/ownedMember"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedOperation" upperBound="-1"
-        eType="#//Operation" containment="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The Operations defined for the Artifact. The association is a specialization of the ownedMember association."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/ownedMember"/>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="DeployedArtifact" abstract="true" eSuperTypes="#//NamedElement">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A deployed artifact is an artifact or artifact instance that has been deployed to a deployment target."/>
-    </eAnnotations>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Manifestation" eSuperTypes="#//Abstraction">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A manifestation is the concrete physical rendering of one or more model elements by an artifact."/>
-    </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="utilizedElement" ordered="false"
-        lowerBound="1" eType="#//PackageableElement">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The model element that is utilized in the manifestation in an Artifact."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Dependency/supplier"/>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Operation" eSuperTypes="#//BehavioralFeature #//ParameterableElement #//TemplateableElement">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="Operation specializes TemplateableElement in order to support specification of template operations and bound operations. Operation specializes ParameterableElement to specify that an operation can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template.&#xA;An operation may invoke both the execution of method behaviors as well as other behavioral responses.&#xA;An operation is a behavioral feature of a classifier that specifies the name, type, parameters, and constraints for invoking an associated behavior."/>
-    </eAnnotations>
-    <eAnnotations source="duplicates">
-      <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
-          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="A redefining operation is consistent with a redefined operation if it has the same number of owned parameters, and the type of each owned parameter conforms to the type of the corresponding redefined parameter.&#xA;The query isConsistentWith() specifies, for any two Operations in a context in which redefinition is possible, whether redefinition would be consistent in the sense of maintaining type covariance. Other senses of consistency may be required, for example to determine consistency in the sense of contravariance. Users may define alternative queries under names different from 'isConsistentWith()', as for example, users may define a query named 'isContravariantWith()'.&#xA;result = redefinee.oclIsKindOf(Operation) and&#xA;let op : Operation = redefinee.oclAsType(Operation) in&#xA;&#x9;self.ownedParameter->size() = op.ownedParameter->size() and&#xA;&#x9;Sequence{1..self.ownedParameter->size()}->&#xA;&#x9;&#x9;forAll(i |op.ownedParameter->at(1).type.conformsTo(self.ownedParameter->at(i).type))&#xA;redefinee.isRedefinitionContextValid(self)"/>
-        </eAnnotations>
-        <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
-        <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
-      </contents>
-      <contents xsi:type="ecore:EReference" name="ownedParameter" upperBound="-1"
-          eType="#//Parameter" containment="true" eOpposite="#//Parameter/operation">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="Specifies the ordered set of formal parameters of this BehavioralFeature.&#xA;Specifies the parameters owned by this Operation."/>
-        </eAnnotations>
-        <eAnnotations source="redefines" references="#//BehavioralFeature/ownedParameter"/>
-      </contents>
-      <contents xsi:type="ecore:EReference" name="raisedException" ordered="false"
-          upperBound="-1" eType="#//Type">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="References the Types representing exceptions that may be raised during an invocation of this operation."/>
-        </eAnnotations>
-        <eAnnotations source="redefines" references="#//BehavioralFeature/raisedException"/>
-      </contents>
-      <contents xsi:type="ecore:EReference" name="templateParameter" ordered="false"
-          eType="#//TemplateParameter" eOpposite="#//OperationTemplateParameter/%duplicates%/parameteredElement">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The template parameter that exposes this element as a formal parameter."/>
-        </eAnnotations>
-        <eAnnotations source="redefines" references="#//ParameterableElement/templateParameter"/>
-      </contents>
-    </eAnnotations>
-    <eOperations name="at_most_one_return" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An operation can have at most one return parameter; i.e., an owned parameter with the direction set to 'return'&#xA;self.ownedParameter->select(par | par.direction = #return)->size() &lt;= 1"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="only_body_for_query" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A bodyCondition can only be specified for a query operation.&#xA;bodyCondition->notEmpty() implies isQuery"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="getReturnResult" ordered="false" eType="#//Parameter">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Retrieves the (only) return result parameter for this operation."/>
-      </eAnnotations>
-    </eOperations>
-    <eOperations name="setIsOrdered" ordered="false" lowerBound="1">
-      <eParameters name="newIsOrdered" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"/>
-    </eOperations>
-    <eOperations name="setIsUnique" ordered="false" lowerBound="1">
-      <eParameters name="newIsUnique" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"/>
-    </eOperations>
-    <eOperations name="setLower" ordered="false" lowerBound="1">
-      <eParameters name="newLower" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer"/>
-    </eOperations>
-    <eOperations name="setType" ordered="false" lowerBound="1">
-      <eParameters name="newType" ordered="false" lowerBound="1" eType="#//Type"/>
-    </eOperations>
-    <eOperations name="setUpper" ordered="false" lowerBound="1">
-      <eParameters name="newUpper" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//UnlimitedNatural"/>
-    </eOperations>
-    <eOperations name="isOrdered" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If this operation has a return parameter, isOrdered equals the value of isOrdered for that parameter. Otherwise isOrdered is false.&#xA;result = if returnResult()->notEmpty() then returnResult()->any().isOrdered else false endif"/>
-      </eAnnotations>
-    </eOperations>
-    <eOperations name="isUnique" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If this operation has a return parameter, isUnique equals the value of isUnique for that parameter. Otherwise isUnique is true.&#xA;result = if returnResult()->notEmpty() then returnResult()->any().isUnique else true endif"/>
-      </eAnnotations>
-    </eOperations>
-    <eOperations name="getLower" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If this operation has a return parameter, lower equals the value of lower for that parameter. Otherwise lower is not defined.&#xA;result = if returnResult()->notEmpty() then returnResult()->any().lower else Set{} endif"/>
-        <details key="suppressedVisibility" value="true"/>
-      </eAnnotations>
-    </eOperations>
-    <eOperations name="returnResult" ordered="false" upperBound="-1" eType="#//Parameter">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query returnResult() returns the set containing the return parameter of the Operation if one exists, otherwise, it returns an empty set&#xA;result = ownedParameter->select (par | par.direction = #return)"/>
-      </eAnnotations>
-    </eOperations>
-    <eOperations name="getType" ordered="false" lowerBound="1" eType="#//Type">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If this operation has a return parameter, type equals the value of type for that parameter. Otherwise type is not defined.&#xA;result = if returnResult()->notEmpty() then returnResult()->any().type else Set{} endif"/>
-        <details key="suppressedVisibility" value="true"/>
-      </eAnnotations>
-    </eOperations>
-    <eOperations name="getUpper" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//UnlimitedNatural">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If this operation has a return parameter, upper equals the value of upper for that parameter. Otherwise upper is not defined.&#xA;result = if returnResult()->notEmpty() then returnResult()->any().upper else Set{} endif"/>
-        <details key="suppressedVisibility" value="true"/>
-      </eAnnotations>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="bodyCondition" ordered="false"
-        eType="#//Constraint">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An optional Constraint on the result values of an invocation of this Operation."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Namespace/ownedRule"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="class" ordered="false"
-        eType="#//Class" eOpposite="#//Class/ownedOperation">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The class that owns the operation."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Feature/featuringClassifier #//NamedElement/namespace #//RedefinableElement/redefinitionContext"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" ordered="false"
-        eType="#//DataType" eOpposite="#//DataType/ownedOperation">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The DataType that owns this Operation."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Feature/featuringClassifier #//NamedElement/namespace #//RedefinableElement/redefinitionContext"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="interface" ordered="false"
-        eType="#//Interface" eOpposite="#//Interface/ownedOperation">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The Interface that owns this Operation."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Feature/featuringClassifier #//NamedElement/namespace #//RedefinableElement/redefinitionContext"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isOrdered" ordered="false"
-        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
-        changeable="false" volatile="true" transient="true" defaultValueLiteral="false"
-        derived="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="This information is derived from the return result for this Operation.&#xA;Specifies whether the return parameter is ordered or not, if present."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isQuery" ordered="false"
-        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
-        defaultValueLiteral="false">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies whether an execution of the BehavioralFeature leaves the state of the system unchanged (isQuery=true) or whether side effects may occur (isQuery=false)."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isUnique" ordered="false"
-        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
-        changeable="false" volatile="true" transient="true" defaultValueLiteral="true"
-        derived="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="This information is derived from the return result for this Operation.&#xA;Specifies whether the return parameter is unique or not, if present."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="lower" ordered="false"
-        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer"
-        changeable="false" volatile="true" transient="true" defaultValueLiteral="1"
-        derived="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the lower multiplicity of the return parameter, if present.&#xA;This information is derived from the return result for this Operation."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="postcondition" ordered="false"
-        upperBound="-1" eType="#//Constraint">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An optional set of Constraints specifying the state of the system when the Operation is completed."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Namespace/ownedRule"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="precondition" ordered="false"
-        upperBound="-1" eType="#//Constraint">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An optional set of Constraints on the state of the system when the Operation is invoked."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Namespace/ownedRule"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedOperation" ordered="false"
-        upperBound="-1" eType="#//Operation">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the Operations that are redefined by this Operation."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" eType="#//Type"
-        changeable="false" volatile="true" transient="true" derived="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="This information is derived from the return result for this Operation.&#xA;Specifies the return result of the operation, if present."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="upper" ordered="false"
-        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//UnlimitedNatural"
-        changeable="false" volatile="true" transient="true" defaultValueLiteral="1"
-        derived="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the upper multiplicity of the return parameter, if present.&#xA;This information is derived from the return result for this Operation."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="BehavioralFeature" abstract="true" eSuperTypes="#//Namespace #//Feature">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A behavioral feature is a feature of a classifier that specifies an aspect of the behavior of its instances.&#xA;A behavioral feature owns zero or more parameter sets.&#xA;A behavioral feature is implemented (realized) by a behavior. A behavioral feature specifies that a classifier will respond to a designated request by invoking its implementing method."/>
-    </eAnnotations>
-    <eAnnotations source="duplicates">
-      <contents xsi:type="ecore:EOperation" name="isDistinguishableFrom" ordered="false"
-          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The query isDistinguishableFrom() determines whether two BehavioralFeatures may coexist in the same Namespace. It specifies that they have to have different signatures.&#xA;result = if n.oclIsKindOf(BehavioralFeature)&#xA;then&#xA;  if ns.getNamesOfMember(self)->intersection(ns.getNamesOfMember(n))->notEmpty()&#xA;  then Set{}->including(self)->including(n)->isUnique(bf | bf.ownedParameter->collect(type))&#xA;  else true&#xA;  endif&#xA;else true&#xA;endif"/>
-        </eAnnotations>
-        <eAnnotations source="redefines" references="#//NamedElement/isDistinguishableFrom"/>
-        <eParameters name="n" ordered="false" lowerBound="1" eType="#//NamedElement"/>
-        <eParameters name="ns" ordered="false" lowerBound="1" eType="#//Namespace"/>
-      </contents>
-    </eAnnotations>
-    <eOperations name="createReturnResult" ordered="false" lowerBound="1" eType="#//Parameter">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Creates a return result parameter with the specified name and type."/>
-      </eAnnotations>
-      <eParameters name="name" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The name for the new return result, or null."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="type" ordered="false" eType="#//Type">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The type for the new return result, or null."/>
-        </eAnnotations>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="concurrency" ordered="false"
-        lowerBound="1" eType="#//CallConcurrencyKind" defaultValueLiteral="sequential">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the semantics of concurrent calls to the same passive instance (i.e., an instance originating from a class with isActive being false). Active instances control access to their own behavioral features."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isAbstract" ordered="false"
-        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
-        defaultValueLiteral="false">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If true, then the behavioral feature does not have an implementation, and one must be supplied by a more specific element. If false, the behavioral feature must have an implementation in the classifier or one must be inherited from a more general element."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="method" ordered="false"
-        upperBound="-1" eType="#//Behavior" eOpposite="#//Behavior/specification">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A behavioral description that implements the behavioral feature. There may be at most one behavior for a particular pairing of a classifier (as owner of the behavior) and a behavioral feature (as specification of the behavior)."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedParameter" upperBound="-1"
-        eType="#//Parameter" containment="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the ordered set of formal parameters of this BehavioralFeature."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedParameterSet" ordered="false"
-        upperBound="-1" eType="#//ParameterSet" containment="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The ParameterSets owned by this BehavioralFeature."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="raisedException" ordered="false"
-        upperBound="-1" eType="#//Type">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the Types representing exceptions that may be raised during an invocation of this feature."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Feature" abstract="true" eSuperTypes="#//RedefinableElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A feature declares a behavioral or structural characteristic of instances of classifiers."/>
@@ -4263,6 +3664,663 @@
       <eAnnotations source="union"/>
     </eStructuralFeatures>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="ConnectableElement" abstract="true"
+      eSuperTypes="#//TypedElement #//ParameterableElement">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="ConnectableElement is an abstract metaclass representing a set of instances that play roles of a classifier. Connectable elements may be joined by attached connectors and specify configurations of linked instances to be created within an instance of the containing classifier.&#xA;A connectable element may be exposed as a connectable element template parameter."/>
+    </eAnnotations>
+    <eAnnotations source="duplicates">
+      <contents xsi:type="ecore:EReference" name="templateParameter" ordered="false"
+          eType="#//TemplateParameter" eOpposite="#//ConnectableElementTemplateParameter/%duplicates%/parameteredElement">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The ConnectableElementTemplateParameter for this ConnectableElement parameter."/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//ParameterableElement/templateParameter"/>
+      </contents>
+    </eAnnotations>
+    <eOperations name="getEnds" ordered="false" upperBound="-1" eType="#//ConnectorEnd">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Missing derivation for ConnectableElement::/end : ConnectorEnd&#xA;true"/>
+        <details key="suppressedVisibility" value="true"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="end" upperBound="-1" eType="#//ConnectorEnd"
+        changeable="false" volatile="true" transient="true" derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Denotes a set of connector ends that attaches to this connectable element."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="ConnectorEnd" eSuperTypes="#//MultiplicityElement">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A connector end is an endpoint of a connector, which attaches the connector to a connectable element. Each connector end is part of one connector."/>
+    </eAnnotations>
+    <eOperations name="role_and_part_with_port" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="If a connector end references a partWithPort, then the role must be a port that is defined by the type of the partWithPort.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="self_part_with_port" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The property held in self.partWithPort must not be a Port.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The multiplicity of the connector end may not be more general than the multiplicity of the association typing the owning connector.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="part_with_port_empty" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="If a connector end is attached to a port of the containing classifier, partWithPort will be empty.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="getDefiningEnd" ordered="false" eType="#//Property">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Missing derivation for ConnectorEnd::/definingEnd : Property&#xA;true"/>
+        <details key="suppressedVisibility" value="true"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="definingEnd" ordered="false"
+        eType="#//Property" changeable="false" volatile="true" transient="true" derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A derived association referencing the corresponding association end on the association which types the connector owing this connector end. This association is derived by selecting the association end at the same place in the ordering of association ends as this connector end."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="partWithPort" ordered="false"
+        eType="#//Property">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Indicates the role of the internal structure of a classifier with the port to which the connector end is attached."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="role" ordered="false" lowerBound="1"
+        eType="#//ConnectableElement">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The connectable element attached at this connector end. When an instance of the containing classifier is created, a link may (depending on the multiplicities) be created to an instance of the classifier that types this connectable element."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="ConnectableElementTemplateParameter"
+      eSuperTypes="#//TemplateParameter">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A connectable element template parameter exposes a connectable element as a formal parameter for a template."/>
+    </eAnnotations>
+    <eAnnotations source="duplicates">
+      <contents xsi:type="ecore:EReference" name="parameteredElement" ordered="false"
+          lowerBound="1" eType="#//ParameterableElement" eOpposite="#//ConnectableElement/%duplicates%/templateParameter">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The ConnectableElement for this template parameter."/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//TemplateParameter/parameteredElement"/>
+      </contents>
+    </eAnnotations>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="DeploymentTarget" abstract="true" eSuperTypes="#//NamedElement">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A deployment target is the location for a deployed artifact."/>
+    </eAnnotations>
+    <eOperations name="getDeployedElements" ordered="false" upperBound="-1" eType="#//PackageableElement">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Missing derivation for DeploymentTarget::/deployedElement : PackageableElement&#xA;result = ((self.deployment->collect(deployedArtifact))->collect(manifestation))->collect(utilizedElement)"/>
+        <details key="suppressedVisibility" value="true"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="deployedElement" ordered="false"
+        upperBound="-1" eType="#//PackageableElement" changeable="false" volatile="true"
+        transient="true" derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The set of elements that are manifested in an Artifact that is involved in Deployment to a DeploymentTarget."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="deployment" ordered="false"
+        upperBound="-1" eType="#//Deployment" containment="true" eOpposite="#//Deployment/location">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The set of Deployments for a DeploymentTarget."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/ownedElement #//NamedElement/clientDependency"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Deployment" eSuperTypes="#//Dependency">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A deployment is the allocation of an artifact or artifact instance to a deployment target.&#xA;A component deployment is the deployment of one or more artifacts or artifact instances to a deployment target, optionally parameterized by a deployment specification. Examples are executables and configuration files."/>
+    </eAnnotations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="configuration" ordered="false"
+        upperBound="-1" eType="#//DeploymentSpecification" containment="true" eOpposite="#//DeploymentSpecification/deployment">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The specification of properties that parameterize the deployment and execution of one or more Artifacts."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="deployedArtifact" ordered="false"
+        upperBound="-1" eType="#//DeployedArtifact">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The Artifacts that are deployed onto a Node. This association specializes the supplier association."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Dependency/supplier"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="location" ordered="false"
+        lowerBound="1" eType="#//DeploymentTarget" eOpposite="#//DeploymentTarget/deployment">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The DeployedTarget which is the target of a Deployment."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/owner #//Dependency/client"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="DeploymentSpecification" eSuperTypes="#//Artifact">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A deployment specification specifies a set of properties that determine execution parameters of a component artifact that is deployed on a node. A deployment specification can be aimed at a specific type of container. An artifact that reifies or implements deployment specification properties is a deployment descriptor."/>
+    </eAnnotations>
+    <eOperations name="deployed_elements" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The deployedElements of a DeploymentTarget that are involved in a Deployment that has an associated Deployment-Specification is a kind of Component (i.e. the configured components).&#xA;self.deployment->forAll (d | d.location.deployedElements->forAll (de |&#xA;  de.oclIsKindOf(Component)))"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="deployment_target" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The DeploymentTarget of a DeploymentSpecification is a kind of ExecutionEnvironment.&#xA;self.deployment->forAll (d | d.location.oclIsKindOf(ExecutionEnvironment))"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="deploymentLocation" ordered="false"
+        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String" unsettable="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The location where an Artifact is deployed onto a Node. This is typically a 'directory' or 'memory address'."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="executionLocation" ordered="false"
+        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String" unsettable="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The location where a component Artifact executes. This may be a local or remote location."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="deployment" ordered="false"
+        eType="#//Deployment" eOpposite="#//Deployment/configuration">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The deployment with which the DeploymentSpecification is associated."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/owner"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Artifact" eSuperTypes="#//Classifier #//DeployedArtifact">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="An artifact is the source of a deployment to a node.&#xA;An artifact is the specification of a physical piece of information that is used or produced by a software development process, or by deployment and operation of a system. Examples of artifacts include model files, source files, scripts, and binary executable files, a table in a database system, a development deliverable, or a word-processing document, a mail message."/>
+    </eAnnotations>
+    <eOperations name="createOwnedAttribute" ordered="false" lowerBound="1" eType="#//Property">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Creates a property with the specified name, type, lower bound, and upper bound as an owned attribute of this artifact."/>
+      </eAnnotations>
+      <eParameters name="name" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The name for the new attribute, or null."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="type" ordered="false" eType="#//Type">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The type for the new attribute, or null."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="lower" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The lower bound for the new attribute."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="upper" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//UnlimitedNatural">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The upper bound for the new attribute."/>
+        </eAnnotations>
+      </eParameters>
+    </eOperations>
+    <eOperations name="createOwnedOperation" ordered="false" lowerBound="1" eType="#//Operation">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Creates an operation with the specified name, parameter names, parameter types, and return type (or null) as an owned operation of this artifact."/>
+      </eAnnotations>
+      <eParameters name="name" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The name for the new operation, or null."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="parameterNames" ordered="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The parameter names for  the new operation, or null."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="parameterTypes" ordered="false" upperBound="-1" eType="#//Type">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The parameter types for the new operation, or null."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="returnType" ordered="false" eType="#//Type">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The return type for the new operation, or null."/>
+        </eAnnotations>
+      </eParameters>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="fileName" ordered="false"
+        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String" unsettable="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A concrete name that is used to refer to the Artifact in a physical context. Example: file system name, universal resource locator."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="manifestation" ordered="false"
+        upperBound="-1" eType="#//Manifestation" containment="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The set of model elements that are manifested in the Artifact. That is, these model elements are utilized in the construction (or generation) of the artifact."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/ownedElement #//NamedElement/clientDependency"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="nestedArtifact" ordered="false"
+        upperBound="-1" eType="#//Artifact" containment="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The Artifacts that are defined (nested) within the Artifact. The association is a specialization of the ownedMember association from Namespace to NamedElement."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
+        eType="#//Property" containment="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The attributes or association ends defined for the Artifact. The association is a specialization of the ownedMember association."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Namespace/ownedMember #//Classifier/attribute"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedOperation" upperBound="-1"
+        eType="#//Operation" containment="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The Operations defined for the Artifact. The association is a specialization of the ownedMember association."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/ownedMember"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="DeployedArtifact" abstract="true" eSuperTypes="#//NamedElement">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A deployed artifact is an artifact or artifact instance that has been deployed to a deployment target."/>
+    </eAnnotations>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Manifestation" eSuperTypes="#//Abstraction">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A manifestation is the concrete physical rendering of one or more model elements by an artifact."/>
+    </eAnnotations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="utilizedElement" ordered="false"
+        lowerBound="1" eType="#//PackageableElement">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The model element that is utilized in the manifestation in an Artifact."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Dependency/supplier"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Operation" eSuperTypes="#//BehavioralFeature #//ParameterableElement #//TemplateableElement">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="An operation is a behavioral feature of a classifier that specifies the name, type, parameters, and constraints for invoking an associated behavior.&#xA;An operation may invoke both the execution of method behaviors as well as other behavioral responses.&#xA;Operation specializes TemplateableElement in order to support specification of template operations and bound operations. Operation specializes ParameterableElement to specify that an operation can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template."/>
+    </eAnnotations>
+    <eAnnotations source="duplicates">
+      <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
+          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="A redefining operation is consistent with a redefined operation if it has the same number of owned parameters, and the type of each owned parameter conforms to the type of the corresponding redefined parameter.&#xA;The query isConsistentWith() specifies, for any two Operations in a context in which redefinition is possible, whether redefinition would be consistent in the sense of maintaining type covariance. Other senses of consistency may be required, for example to determine consistency in the sense of contravariance. Users may define alternative queries under names different from 'isConsistentWith()', as for example, users may define a query named 'isContravariantWith()'.&#xA;redefinee.isRedefinitionContextValid(self)&#xA;result = redefinee.oclIsKindOf(Operation) and&#xA;let op : Operation = redefinee.oclAsType(Operation) in&#xA;&#x9;self.ownedParameter->size() = op.ownedParameter->size() and&#xA;&#x9;Sequence{1..self.ownedParameter->size()}->&#xA;&#x9;&#x9;forAll(i |op.ownedParameter->at(1).type.conformsTo(self.ownedParameter->at(i).type))"/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
+        <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
+      </contents>
+      <contents xsi:type="ecore:EReference" name="ownedParameter" upperBound="-1"
+          eType="#//Parameter" containment="true" eOpposite="#//Parameter/operation">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="Specifies the ordered set of formal parameters of this BehavioralFeature.&#xA;Specifies the parameters owned by this Operation."/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//BehavioralFeature/ownedParameter"/>
+      </contents>
+      <contents xsi:type="ecore:EReference" name="raisedException" ordered="false"
+          upperBound="-1" eType="#//Type">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="References the Types representing exceptions that may be raised during an invocation of this operation."/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//BehavioralFeature/raisedException"/>
+      </contents>
+      <contents xsi:type="ecore:EReference" name="templateParameter" ordered="false"
+          eType="#//TemplateParameter" eOpposite="#//OperationTemplateParameter/%duplicates%/parameteredElement">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The template parameter that exposes this element as a formal parameter."/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//ParameterableElement/templateParameter"/>
+      </contents>
+    </eAnnotations>
+    <eOperations name="at_most_one_return" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="An operation can have at most one return parameter; i.e., an owned parameter with the direction set to 'return'&#xA;self.ownedParameter->select(par | par.direction = #return)->size() &lt;= 1"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="only_body_for_query" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A bodyCondition can only be specified for a query operation.&#xA;bodyCondition->notEmpty() implies isQuery"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="getReturnResult" ordered="false" eType="#//Parameter">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Retrieves the (only) return result parameter for this operation."/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="setIsOrdered" ordered="false" lowerBound="1">
+      <eParameters name="newIsOrdered" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"/>
+    </eOperations>
+    <eOperations name="setIsUnique" ordered="false" lowerBound="1">
+      <eParameters name="newIsUnique" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"/>
+    </eOperations>
+    <eOperations name="setLower" ordered="false" lowerBound="1">
+      <eParameters name="newLower" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer"/>
+    </eOperations>
+    <eOperations name="setType" ordered="false" lowerBound="1">
+      <eParameters name="newType" ordered="false" lowerBound="1" eType="#//Type"/>
+    </eOperations>
+    <eOperations name="setUpper" ordered="false" lowerBound="1">
+      <eParameters name="newUpper" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//UnlimitedNatural"/>
+    </eOperations>
+    <eOperations name="isOrdered" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="If this operation has a return parameter, isOrdered equals the value of isOrdered for that parameter. Otherwise isOrdered is false.&#xA;result = if returnResult()->notEmpty() then returnResult()->any().isOrdered else false endif"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="isUnique" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="If this operation has a return parameter, isUnique equals the value of isUnique for that parameter. Otherwise isUnique is true.&#xA;result = if returnResult()->notEmpty() then returnResult()->any().isUnique else true endif"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="getLower" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="If this operation has a return parameter, lower equals the value of lower for that parameter. Otherwise lower is not defined.&#xA;result = if returnResult()->notEmpty() then returnResult()->any().lower else Set{} endif"/>
+        <details key="suppressedVisibility" value="true"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="returnResult" ordered="false" upperBound="-1" eType="#//Parameter">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query returnResult() returns the set containing the return parameter of the Operation if one exists, otherwise, it returns an empty set&#xA;result = ownedParameter->select (par | par.direction = #return)"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="getType" ordered="false" lowerBound="1" eType="#//Type">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="If this operation has a return parameter, type equals the value of type for that parameter. Otherwise type is not defined.&#xA;result = if returnResult()->notEmpty() then returnResult()->any().type else Set{} endif"/>
+        <details key="suppressedVisibility" value="true"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="getUpper" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//UnlimitedNatural">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="If this operation has a return parameter, upper equals the value of upper for that parameter. Otherwise upper is not defined.&#xA;result = if returnResult()->notEmpty() then returnResult()->any().upper else Set{} endif"/>
+        <details key="suppressedVisibility" value="true"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="interface" ordered="false"
+        eType="#//Interface" eOpposite="#//Interface/ownedOperation">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The Interface that owns this Operation."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Feature/featuringClassifier #//RedefinableElement/redefinitionContext #//NamedElement/namespace"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="bodyCondition" ordered="false"
+        eType="#//Constraint">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="An optional Constraint on the result values of an invocation of this Operation."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Namespace/ownedRule"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="class" ordered="false"
+        eType="#//Class" eOpposite="#//Class/ownedOperation">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The class that owns the operation."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Feature/featuringClassifier #//RedefinableElement/redefinitionContext #//NamedElement/namespace"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" ordered="false"
+        eType="#//DataType" eOpposite="#//DataType/ownedOperation">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The DataType that owns this Operation."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Feature/featuringClassifier #//RedefinableElement/redefinitionContext #//NamedElement/namespace"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isOrdered" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+        changeable="false" volatile="true" transient="true" defaultValueLiteral="false"
+        derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="This information is derived from the return result for this Operation.&#xA;Specifies whether the return parameter is ordered or not, if present."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isQuery" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+        defaultValueLiteral="false">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies whether an execution of the BehavioralFeature leaves the state of the system unchanged (isQuery=true) or whether side effects may occur (isQuery=false)."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isUnique" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+        changeable="false" volatile="true" transient="true" defaultValueLiteral="true"
+        derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies whether the return parameter is unique or not, if present.&#xA;This information is derived from the return result for this Operation."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="lower" ordered="false"
+        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer"
+        changeable="false" volatile="true" transient="true" defaultValueLiteral="1"
+        derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="This information is derived from the return result for this Operation.&#xA;Specifies the lower multiplicity of the return parameter, if present."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="postcondition" ordered="false"
+        upperBound="-1" eType="#//Constraint">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="An optional set of Constraints specifying the state of the system when the Operation is completed."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Namespace/ownedRule"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="precondition" ordered="false"
+        upperBound="-1" eType="#//Constraint">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="An optional set of Constraints on the state of the system when the Operation is invoked."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Namespace/ownedRule"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedOperation" ordered="false"
+        upperBound="-1" eType="#//Operation">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="References the Operations that are redefined by this Operation."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" eType="#//Type"
+        changeable="false" volatile="true" transient="true" derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="This information is derived from the return result for this Operation.&#xA;Specifies the return result of the operation, if present."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="upper" ordered="false"
+        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//UnlimitedNatural"
+        changeable="false" volatile="true" transient="true" defaultValueLiteral="1"
+        derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="This information is derived from the return result for this Operation.&#xA;Specifies the upper multiplicity of the return parameter, if present."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="BehavioralFeature" abstract="true" eSuperTypes="#//Namespace #//Feature">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A behavioral feature is a feature of a classifier that specifies an aspect of the behavior of its instances.&#xA;A behavioral feature is implemented (realized) by a behavior. A behavioral feature specifies that a classifier will respond to a designated request by invoking its implementing method.&#xA;A behavioral feature owns zero or more parameter sets."/>
+    </eAnnotations>
+    <eAnnotations source="duplicates">
+      <contents xsi:type="ecore:EOperation" name="isDistinguishableFrom" ordered="false"
+          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The query isDistinguishableFrom() determines whether two BehavioralFeatures may coexist in the same Namespace. It specifies that they have to have different signatures.&#xA;result = if n.oclIsKindOf(BehavioralFeature)&#xA;then&#xA;  if ns.getNamesOfMember(self)->intersection(ns.getNamesOfMember(n))->notEmpty()&#xA;  then Set{}->including(self)->including(n)->isUnique(bf | bf.ownedParameter->collect(type))&#xA;  else true&#xA;  endif&#xA;else true&#xA;endif"/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//NamedElement/isDistinguishableFrom"/>
+        <eParameters name="n" ordered="false" lowerBound="1" eType="#//NamedElement"/>
+        <eParameters name="ns" ordered="false" lowerBound="1" eType="#//Namespace"/>
+      </contents>
+    </eAnnotations>
+    <eOperations name="createReturnResult" ordered="false" lowerBound="1" eType="#//Parameter">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Creates a return result parameter with the specified name and type."/>
+      </eAnnotations>
+      <eParameters name="name" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The name for the new return result, or null."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="type" ordered="false" eType="#//Type">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The type for the new return result, or null."/>
+        </eAnnotations>
+      </eParameters>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="concurrency" ordered="false"
+        lowerBound="1" eType="#//CallConcurrencyKind" defaultValueLiteral="sequential">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies the semantics of concurrent calls to the same passive instance (i.e., an instance originating from a class with isActive being false). Active instances control access to their own behavioral features."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isAbstract" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+        defaultValueLiteral="false">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="If true, then the behavioral feature does not have an implementation, and one must be supplied by a more specific element. If false, the behavioral feature must have an implementation in the classifier or one must be inherited from a more general element."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="method" ordered="false"
+        upperBound="-1" eType="#//Behavior" eOpposite="#//Behavior/specification">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A behavioral description that implements the behavioral feature. There may be at most one behavior for a particular pairing of a classifier (as owner of the behavior) and a behavioral feature (as specification of the behavior)."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedParameter" upperBound="-1"
+        eType="#//Parameter" containment="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies the ordered set of formal parameters of this BehavioralFeature."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedParameterSet" ordered="false"
+        upperBound="-1" eType="#//ParameterSet" containment="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The ParameterSets owned by this BehavioralFeature."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="raisedException" ordered="false"
+        upperBound="-1" eType="#//Type">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="References the Types representing exceptions that may be raised during an invocation of this feature."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="CallConcurrencyKind">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="CallConcurrencyKind is an enumeration type."/>
@@ -4287,9 +4345,28 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Behavior is a specification of how its context classifier changes state over time. This specification may be either a definition of possible behavior execution or emergent behavior, or a selective illustration of an interesting subset of possible executions. The latter form is typically used for capturing examples, such as a trace of a particular execution.&#xA;A behavior owns zero or more parameter sets."/>
     </eAnnotations>
-    <eOperations name="most_one_behaviour" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="parameters_match" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="There may be at most one behavior for a given pairing of classifier (as owner of the behavior) and behavioral feature (as specification of the behavior).&#xA;true"/>
+        <details key="documentation" value="The parameters of the behavior must match the parameters of the implemented behavioral feature.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="feature_of_context_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The implemented behavioral feature must be a feature (possibly inherited) of the context classifier of the behavior.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -4325,28 +4402,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="parameters_match" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="most_one_behaviour" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The parameters of the behavior must match the parameters of the implemented behavioral feature.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="feature_of_context_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The implemented behavioral feature must be a feature (possibly inherited) of the context classifier of the behavior.&#xA;true"/>
+        <details key="documentation" value="There may be at most one behavior for a given pairing of classifier (as owner of the behavior) and behavioral feature (as specification of the behavior).&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -4426,13 +4484,14 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Parameter" eSuperTypes="#//ConnectableElement #//MultiplicityElement">
+  <eClassifiers xsi:type="ecore:EClass" name="BehavioredClassifier" abstract="true"
+      eSuperTypes="#//Classifier">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A parameter is a specification of an argument used to pass information into or out of an invocation of a behavioral feature.&#xA;Parameters have support for streaming, exceptions, and parameter sets.&#xA;Parameters are allowed to be treated as connectable elements."/>
+      <details key="documentation" value="A behaviored classifier may have an interface realization.&#xA;A classifier can have behavior specifications defined in its namespace. One of these may specify the behavior of the classifier itself."/>
     </eAnnotations>
-    <eOperations name="in_and_out" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="class_behavior" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Only in and inout parameters may have a delete effect. Only out, inout, and return parameters may have a create effect.&#xA;true"/>
+        <details key="documentation" value="If a behavior is classifier behavior, it does not have a specification.&#xA;self.classifierBehavior->notEmpty() implies self.classifierBehavior.specification->isEmpty()"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -4449,9 +4508,1835 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="not_exception" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="getAllImplementedInterfaces" ordered="false" upperBound="-1"
+        eType="#//Interface">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An input parameter cannot be an exception.&#xA;true"/>
+        <details key="documentation" value="Retrieves all the interfaces on which this behaviored classifier or any of its parents has an interface realization dependency."/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="getImplementedInterfaces" ordered="false" upperBound="-1" eType="#//Interface">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Retrieves the interfaces on which this behaviored classifier has an interface realization dependency."/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="classifierBehavior" ordered="false"
+        eType="#//Behavior">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A behavior specification that specifies the behavior of the classifier itself."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//BehavioredClassifier/ownedBehavior"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="interfaceRealization" ordered="false"
+        upperBound="-1" eType="#//InterfaceRealization" containment="true" eOpposite="#//InterfaceRealization/implementingClassifier">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The set of InterfaceRealizations owned by the BehavioredClassifier. Interface realizations reference the Interfaces of which the BehavioredClassifier is an implementation."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/ownedElement #//NamedElement/clientDependency"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedBehavior" ordered="false"
+        upperBound="-1" eType="#//Behavior" containment="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="References behavior specifications owned by a classifier."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="InterfaceRealization" eSuperTypes="#//Realization">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="An interface realization is a specialized realization relationship between a classifier and an interface. This relationship signifies that the realizing classifier conforms to the contract specified by the interface."/>
+    </eAnnotations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="contract" ordered="false"
+        lowerBound="1" eType="#//Interface">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="References the Interface specifying the conformance contract."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Dependency/supplier"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="implementingClassifier"
+        ordered="false" lowerBound="1" eType="#//BehavioredClassifier" eOpposite="#//BehavioredClassifier/interfaceRealization">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="References the BehavioredClassifier that owns this Interfacerealization (i.e., the classifier that realizes the Interface to which it points)."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/owner #//Dependency/client"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Realization" eSuperTypes="#//Abstraction">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="Realization is a specialized abstraction relationship between two sets of model elements, one representing a specification (the supplier) and the other represents an implementation of the latter (the client). Realization can be used to model stepwise refinement, optimizations, transformations, templates, model synthesis, framework composition, etc."/>
+    </eAnnotations>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Interface" eSuperTypes="#//Classifier">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="Since an interface specifies conformance characteristics, it does not own detailed behavior specifications. Instead, interfaces may own a protocol state machine that specifies event sequences and pre/post conditions for the operations and receptions described by the interface.&#xA;Interfaces may include receptions (in addition to operations).&#xA;An interface is a kind of classifier that represents a declaration of a set of coherent public features and obligations. An interface specifies a contract; any instance of a classifier that realizes the interface must fulfill that contract. The obligations that may be associated with an interface are in the form of various kinds of constraints (such as pre- and post-conditions) or protocol specifications, which may impose ordering restrictions on interactions through the interface."/>
+    </eAnnotations>
+    <eOperations name="visibility" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The visibility of all features owned by an interface must be public.&#xA;self.feature->forAll(f | f.visibility = #public)"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="createOwnedAttribute" ordered="false" lowerBound="1" eType="#//Property">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Creates a property with the specified name, type, lower bound, and upper bound as an owned attribute of this interface."/>
+      </eAnnotations>
+      <eParameters name="name" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The name for the new attribute, or null."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="type" ordered="false" eType="#//Type">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The type for the new attribute, or null."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="lower" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The lower bound for the new attribute."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="upper" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//UnlimitedNatural">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The upper bound for the new attribute."/>
+        </eAnnotations>
+      </eParameters>
+    </eOperations>
+    <eOperations name="createOwnedOperation" ordered="false" lowerBound="1" eType="#//Operation">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Creates an operation with the specified name, parameter names, parameter types, and return type (or null) as an owned operation of this interface."/>
+      </eAnnotations>
+      <eParameters name="name" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The name for the new operation, or null."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="parameterNames" ordered="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The parameter names for the new operation, or null."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="parameterTypes" ordered="false" upperBound="-1" eType="#//Type">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The parameter types for the new operation, or null."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="returnType" ordered="false" eType="#//Type">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The return type for the new operation, or null."/>
+        </eAnnotations>
+      </eParameters>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="nestedClassifier" upperBound="-1"
+        eType="#//Classifier" containment="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="References all the Classifiers that are defined (nested) within the Class."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
+        eType="#//Property" containment="true" eOpposite="#//Property/interface">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The attributes (i.e. the properties) owned by the class."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Namespace/ownedMember #//Classifier/attribute"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedOperation" upperBound="-1"
+        eType="#//Operation" containment="true" eOpposite="#//Operation/interface">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The operations owned by the class."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/ownedMember"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedReception" ordered="false"
+        upperBound="-1" eType="#//Reception" containment="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Receptions that objects providing this interface are willing to accept."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/ownedMember"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="protocol" ordered="false"
+        eType="#//ProtocolStateMachine" containment="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="References a protocol state machine specifying the legal sequences of the invocation of the behavioral features described in the interface."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedInterface" ordered="false"
+        upperBound="-1" eType="#//Interface">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="References all the Interfaces redefined by this Interface."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Classifier/redefinedClassifier"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Reception" eSuperTypes="#//BehavioralFeature">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A reception is a declaration stating that a classifier is prepared to react to the receipt of a signal. A reception designates a signal and specifies the expected behavioral response. The details of handling a signal are specified by the behavior associated with the reception or the classifier itself."/>
+    </eAnnotations>
+    <eOperations name="not_query" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A Reception can not be a query.&#xA;not self.isQuery"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="signal" ordered="false"
+        lowerBound="1" eType="#//Signal">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The signal that this reception handles."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Signal" eSuperTypes="#//Classifier">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A signal is a specification of send request instances communicated between objects. The receiving object handles the received request instances as specified by its receptions. The data carried by a send request (which was passed to it by the send invocation occurrence that caused that request) are represented as attributes of the signal. A signal is defined independently of the classifiers handling the signal occurrence."/>
+    </eAnnotations>
+    <eOperations name="createOwnedAttribute" ordered="false" lowerBound="1" eType="#//Property">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Creates a property with the specified name, type, lower bound, and upper bound as an owned attribute of this signal."/>
+      </eAnnotations>
+      <eParameters name="name" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The name for the new attribute, or null."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="type" ordered="false" eType="#//Type">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The type for the new attribute, or null."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="lower" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The lower bound for the new attribute."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="upper" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//UnlimitedNatural">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The upper bound for the new attribute."/>
+        </eAnnotations>
+      </eParameters>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
+        eType="#//Property" containment="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The attributes owned by the signal."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Namespace/ownedMember #//Classifier/attribute"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="ProtocolStateMachine" eSuperTypes="#//StateMachine">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A protocol state machine is always defined in the context of a classifier. It specifies which operations of the classifier can be called in which state and under which condition, thus specifying the allowed call sequences on the classifier's operations. A protocol state machine presents the possible and permitted transitions on the instances of its context classifier, together with the operations which carry the transitions. In this manner, an instance lifecycle can be created for a classifier, by specifying the order in which the operations can be activated and the states through which an instance progresses during its existence."/>
+    </eAnnotations>
+    <eAnnotations source="duplicates">
+      <contents xsi:type="ecore:EOperation" name="classifier_context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="A protocol state machine must only have a classifier context, not a behavioral feature context.&#xA;(not context->isEmpty( )) and specification->isEmpty()"/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//StateMachine/classifier_context"/>
+        <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+          <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+            <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+          </eAnnotations>
+        </eParameters>
+        <eParameters name="context">
+          <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+            <details key="documentation" value="The cache of context-specific information."/>
+          </eAnnotations>
+          <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+            <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+            <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          </eGenericType>
+        </eParameters>
+      </contents>
+    </eAnnotations>
+    <eOperations name="entry_exit_do" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The states of a protocol state machine cannot have entry, exit, or do activity actions.&#xA;region->forAll(r | r.subvertex->forAll(v | v.oclIsKindOf(State) implies&#xA;(v.entry->isEmpty() and v.exit->isEmpty() and v.doActivity->isEmpty())))&#xA;"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="protocol_transitions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="All transitions of a protocol state machine must be protocol transitions. (transitions as extended by the ProtocolStateMachines package)&#xA;region->forAll(r | r.transition->forAll(t | t.oclIsTypeOf(ProtocolTransition)))"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="deep_or_shallow_history" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Protocol state machines cannot have deep or shallow history pseudostates.&#xA;region->forAll (r | r.subvertex->forAll (v | v.oclIsKindOf(Psuedostate) implies&#xA;((v.kind &lt;> #deepHistory) and (v.kind &lt;> #shallowHistory)))))&#xA;"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="ports_connected" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="If two ports are connected, then the protocol state machine of the required interface (if defined) must be conformant to the protocol state machine of the provided interface (if defined).&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="conformance" ordered="false"
+        upperBound="-1" eType="#//ProtocolConformance" containment="true" eOpposite="#//ProtocolConformance/specificMachine">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Conformance between protocol state machines."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="StateMachine" eSuperTypes="#//Behavior">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="State machines can be used to express the behavior of part of a system. Behavior is modeled as a traversal of a graph of state nodes interconnected by one or more joined transition arcs that are triggered by the dispatching of series of (event) occurrences. During this traversal, the state machine executes a series of activities associated with various elements of the state machine."/>
+    </eAnnotations>
+    <eAnnotations source="duplicates">
+      <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
+          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The query isConsistentWith() specifies that a redefining state machine is consistent with a redefined state machine provided that the redefining state machine is an extension of the redefined state machine: Regions are inherited and regions can be added, inherited regions can be redefined. In case of multiple redefining state machines, extension implies that the redefining state machine gets orthogonal regions for each of the redefined state machines.&#xA;result = true"/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
+        <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
+      </contents>
+    </eAnnotations>
+    <eOperations name="method" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A state machine as the method for a behavioral feature cannot have entry/exit connection points.&#xA;specification->notEmpty() implies connectionPoint->isEmpty()"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="classifier_context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The classifier context of a state machine cannot be an interface.&#xA;context->notEmpty() implies not context.oclIsKindOf(Interface)"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="context_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The context classifier of the method state machine of a behavioral feature must be the classifier that owns the behavioral feature.&#xA;specification->notEmpty() implies (context->notEmpty() and specification->featuringClassifier->exists (c | c = context))"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="connection_points" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The connection points of a state machine are pseudostates of kind entry point or exit point.&#xA;conectionPoint->forAll (c | c.kind = #entryPoint or c.kind = #exitPoint)"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="LCA" ordered="false" lowerBound="1" eType="#//Namespace">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The operation LCA(s1,s2) returns an orthogonal state or region which is the least common ancestor of states s1 and s2, based on the statemachine containment hierarchy.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="s1" ordered="false" lowerBound="1" eType="#//State"/>
+      <eParameters name="s2" ordered="false" lowerBound="1" eType="#//State"/>
+    </eOperations>
+    <eOperations name="ancestor" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query ancestor(s1, s2) checks whether s1 is an ancestor state of state s2.&#xA;result = &#xA;if (s2 = s1) then &#xA;&#x9;true &#xA;else &#xA;&#x9;if (s2.container->isEmpty() or not s2.container.owner.oclIsKindOf(State)) then &#xA;&#x9;&#x9;false &#xA;&#x9;else &#xA;&#x9;&#x9;ancestor(s1, s2.container.owner.oclAsType(State))&#xA;&#x9;endif&#xA;endif &#xA;"/>
+      </eAnnotations>
+      <eParameters name="s1" ordered="false" lowerBound="1" eType="#//State"/>
+      <eParameters name="s2" ordered="false" lowerBound="1" eType="#//State"/>
+    </eOperations>
+    <eOperations name="isRedefinitionContextValid" ordered="false" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query isRedefinitionContextValid() specifies whether the redefinition contexts of a statemachine are properly related to the redefinition contexts of the specified statemachine to allow this element to redefine the other. The containing classifier of a redefining statemachine must redefine the containing classifier of the redefined statemachine.&#xA;result = true"/>
+      </eAnnotations>
+      <eAnnotations source="redefines" references="#//RedefinableElement/isRedefinitionContextValid"/>
+      <eParameters name="redefined" ordered="false" lowerBound="1" eType="#//StateMachine"/>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="connectionPoint" ordered="false"
+        upperBound="-1" eType="#//Pseudostate" containment="true" eOpposite="#//Pseudostate/stateMachine">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The connection points defined for this state machine. They represent the interface of the state machine when used as part of submachine state."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="submachineState" ordered="false"
+        upperBound="-1" eType="#//State" eOpposite="#//State/submachine">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="References the submachine(s) in case of a submachine state. Multiple machines are referenced in case of a concurrent state."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="region" ordered="false"
+        lowerBound="1" upperBound="-1" eType="#//Region" containment="true" eOpposite="#//Region/stateMachine">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The regions owned directly by the state machine."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="extendedStateMachine" ordered="false"
+        upperBound="-1" eType="#//StateMachine">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The state machines of which this is an extension."/>
+      </eAnnotations>
+      <eAnnotations source="redefines" references="#//Behavior/redefinedBehavior"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Pseudostate" eSuperTypes="#//Vertex">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A pseudostate is an abstraction that encompasses different types of transient vertices in the state machine graph."/>
+    </eAnnotations>
+    <eOperations name="junction_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="In a complete statemachine, a junction vertex must have at least one incoming and one outgoing transition.&#xA;(self.kind = #junction) implies&#xA;((self.incoming->size >= 1) and (self.outgoing->size >= 1))&#xA;"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="history_vertices" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="History vertices can have at most one outgoing transition.&#xA;((self.kind = #deepHistory) or (self.kind = #shallowHistory)) implies&#xA;(self.outgoing->size &lt;= 1)&#xA;"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="transitions_outgoing" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="All transitions outgoing a fork vertex must target states in different regions of an orthogonal state.&#xA;(self.kind = #fork) implies&#xA;  self.outgoing->forAll (t1, t2 | t1&lt;>t2 implies&#xA;    (self.stateMachine.LCA(t1.target, t2.target).container.isOrthogonal))"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="outgoing_from_initial" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The outgoing transition from and initial vertex may have a behavior, but not a trigger or a guard.&#xA;(self.kind = #initial) implies (self.outgoing.guard->isEmpty()&#xA;  and self.outgoing.trigger->isEmpty())"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="fork_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="In a complete statemachine, a fork vertex must have at least two outgoing transitions and exactly one incoming transition.&#xA;(self.kind = #fork) implies&#xA;((self.incoming->size = 1) and (self.outgoing->size >= 2))&#xA;"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="join_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="In a complete statemachine, a join vertex must have at least two incoming transitions and exactly one outgoing transition.&#xA;(self.kind = #join) implies&#xA;((self.outgoing->size = 1) and (self.incoming->size >= 2))&#xA;"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="choice_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="In a complete statemachine, a choice vertex must have at least one incoming and one outgoing transition.&#xA;(self.kind = #choice) implies&#xA;((self.incoming->size >= 1) and (self.outgoing->size >= 1))&#xA;"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="initial_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="An initial vertex can have at most one outgoing transition.&#xA;(self.kind = #initial) implies (self.outgoing->size &lt;= 1)"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="transitions_incoming" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="All transitions incoming a join vertex must originate in different regions of an orthogonal state.&#xA;(self.kind = #join) implies&#xA;  self.incoming->forAll (t1, t2 | t1&lt;>t2 implies&#xA;    (self.stateMachine.LCA(t1.source, t2.source).container.isOrthogonal))"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="state" ordered="false"
+        eType="#//State" eOpposite="#//State/connectionPoint">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The State that owns this pseudostate and in which it appears."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" ordered="false" lowerBound="1"
+        eType="#//PseudostateKind" defaultValueLiteral="initial">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Determines the precise type of the Pseudostate and can be one of: entryPoint, exitPoint, initial, deepHistory, shallowHistory, join, fork, junction, terminate or choice."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="stateMachine" ordered="false"
+        eType="#//StateMachine" eOpposite="#//StateMachine/connectionPoint">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The StateMachine in which this Pseudostate is defined. This only applies to Pseudostates of the kind entryPoint or exitPoint."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Vertex" abstract="true" eSuperTypes="#//NamedElement">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A vertex is an abstraction of a node in a state machine graph. In general, it can be the source or destination of any number of transitions."/>
+    </eAnnotations>
+    <eOperations name="containingStateMachine" ordered="false" lowerBound="1" eType="#//StateMachine">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The operation containingStateMachine() returns the state machine in which this Vertex is defined&#xA;result = if not container->isEmpty()&#xA;then&#xA;-- the container is a region&#xA;container.containingStateMachine()&#xA;else if (oclIsKindOf(Pseudostate)) then&#xA;-- entry or exit point?&#xA;if (kind = #entryPoint) or (kind = #exitPoint) then&#xA;stateMachine&#xA;else if (oclIsKindOf(ConnectionPointReference)) then&#xA;state.containingStateMachine() -- no other valid cases possible&#xA;endif&#xA;"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="getIncomings" ordered="false" upperBound="-1" eType="#//Transition">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Missing derivation for Vertex::/incoming : Transition&#xA;result = Transition.allInstances()->select(t | t.target=self)"/>
+        <details key="suppressedVisibility" value="true"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="getOutgoings" ordered="false" upperBound="-1" eType="#//Transition">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Missing derivation for Vertex::/outgoing : Transition&#xA;result = Transition.allInstances()->select(t | t.source=self)"/>
+        <details key="suppressedVisibility" value="true"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="container" ordered="false"
+        eType="#//Region" eOpposite="#//Region/subvertex">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The region that contains this vertex."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="incoming" ordered="false"
+        upperBound="-1" eType="#//Transition" changeable="false" volatile="true" transient="true"
+        derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies the transitions entering this vertex."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="outgoing" ordered="false"
+        upperBound="-1" eType="#//Transition" changeable="false" volatile="true" transient="true"
+        derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies the transitions departing from this vertex."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Region" eSuperTypes="#//Namespace #//RedefinableElement">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A region is an orthogonal part of either a composite state or a state machine. It contains states and transitions."/>
+    </eAnnotations>
+    <eAnnotations source="duplicates">
+      <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
+          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The query isConsistentWith() specifies that a redefining region is consistent with a redefined region provided that the redefining region is an extension of the redefined region, i.e. it adds vertices and transitions and it redefines states and transitions of the redefined region.&#xA;result = true"/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
+        <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
+      </contents>
+      <contents xsi:type="ecore:EReference" name="redefinitionContext" ordered="false"
+          upperBound="-1" eType="#//Classifier" changeable="false" volatile="true"
+          transient="true" derived="true">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="References the classifier in which context this element may be redefined."/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//RedefinableElement/redefinitionContext"/>
+      </contents>
+    </eAnnotations>
+    <eOperations name="shallow_history_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A region can have at most one shallow history vertex&#xA;self.subvertex->select(v | v.oclIsKindOf(Pseudostate))->&#xA;select(p : Pseudostate | p.kind = #shallowHistory)->size() &lt;= 1&#xA;"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="deep_history_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A region can have at most one deep history vertex&#xA;self.subvertex->select (v | v.oclIsKindOf(Pseudostate))->&#xA;select(p : Pseudostate | p.kind = #deepHistory)->size() &lt;= 1&#xA;"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="initial_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A region can have at most one initial vertex&#xA;self.subvertex->select (v | v.oclIsKindOf(Pseudostate))->&#xA;select(p : Pseudostate | p.kind = #initial)->size() &lt;= 1&#xA;"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="owned" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="If a Region is owned by a StateMachine, then it cannot also be owned by a State and vice versa.&#xA;(stateMachine->notEmpty() implies state->isEmpty()) and (state->notEmpty() implies stateMachine->isEmpty())"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="belongsToPSM" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The operation belongsToPSM () checks if the region belongs to a protocol state machine&#xA;result = if not stateMachine->isEmpty() then&#xA;oclIsTypeOf(ProtocolStateMachine)&#xA;else if not state->isEmpty() then&#xA;state.container.belongsToPSM ()&#xA;else false"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="containingStateMachine" ordered="false" lowerBound="1" eType="#//StateMachine">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The operation containingStateMachine() returns the sate machine in which this Region is defined&#xA;result = if stateMachine->isEmpty() &#xA;then&#xA;state.containingStateMachine()&#xA;else&#xA;stateMachine&#xA;endif"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="isRedefinitionContextValid" ordered="false" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query isRedefinitionContextValid() specifies whether the redefinition contexts of a region are properly related to the redefinition contexts of the specified region to allow this element to redefine the other. The containing statemachine/state of a redefining region must redefine the containing statemachine/state of the redefined region.&#xA;result = true"/>
+      </eAnnotations>
+      <eAnnotations source="redefines" references="#//RedefinableElement/isRedefinitionContextValid"/>
+      <eParameters name="redefined" ordered="false" lowerBound="1" eType="#//Region"/>
+    </eOperations>
+    <eOperations name="redefinitionContext" ordered="false" lowerBound="1" eType="#//Classifier">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The redefinition context of a region is the nearest containing statemachine&#xA;result = let sm = containingStateMachine() in&#xA;if sm.context->isEmpty() or sm.general->notEmpty() then&#xA;sm&#xA;else&#xA;sm.context&#xA;endif"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="extendedRegion" ordered="false"
+        eType="#//Region">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The region of which this region is an extension."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="state" ordered="false"
+        eType="#//State" eOpposite="#//State/region">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The State that owns the Region. If a Region is owned by a State, then it cannot also be owned by a StateMachine."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="stateMachine" ordered="false"
+        eType="#//StateMachine" eOpposite="#//StateMachine/region">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The StateMachine that owns the Region. If a Region is owned by a StateMachine, then it cannot also be owned by a State."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="transition" ordered="false"
+        upperBound="-1" eType="#//Transition" containment="true" eOpposite="#//Transition/container">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The set of transitions owned by the region."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="subvertex" ordered="false"
+        upperBound="-1" eType="#//Vertex" containment="true" eOpposite="#//Vertex/container">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The set of vertices that are owned by this region."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="State" eSuperTypes="#//Namespace #//RedefinableElement #//Vertex">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A state models a situation during which some (usually implicit) invariant condition holds.&#xA;The states of protocol state machines are exposed to the users of their context classifiers. A protocol state represents an exposed stable situation of its context classifier: when an instance of the classifier is not processing any operation, users of this instance can always know its state configuration."/>
+    </eAnnotations>
+    <eAnnotations source="duplicates">
+      <contents xsi:type="ecore:EOperation" name="containingStateMachine" ordered="false"
+          lowerBound="1" eType="#//StateMachine">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The query containingStateMachine() returns the state machine that contains the state either directly or transitively.&#xA;result = container.containingStateMachine()"/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//Vertex/containingStateMachine"/>
+      </contents>
+      <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
+          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The query isConsistentWith() specifies that a redefining state is consistent with a redefined state provided that the redefining state is an extension of the redefined state: A simple state can be redefined (extended) to become a composite state (by adding a region) and a composite state can be redefined (extended) by adding regions and by adding vertices, states, and transitions to inherited regions. All states may add or replace entry, exit, and 'doActivity' actions.&#xA;result = true"/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
+        <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
+      </contents>
+      <contents xsi:type="ecore:EReference" name="redefinitionContext" ordered="false"
+          upperBound="-1" eType="#//Classifier" changeable="false" volatile="true"
+          transient="true" derived="true">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="References the classifier in which context this element may be redefined."/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//RedefinableElement/redefinitionContext"/>
+      </contents>
+    </eAnnotations>
+    <eOperations name="entry_or_exit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Only entry or exit pseudostates can serve as connection points.&#xA;connectionPoint->forAll(cp|cp.kind = #entry or cp.kind = #exit)"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="composite_states" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Only composite states can have entry or exit pseudostates defined.&#xA;connectionPoint->notEmpty() implies isComoposite"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="destinations_or_sources_of_transitions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The connection point references used as destinations/sources of transitions associated with a submachine state must be defined as entry/exit points in the submachine state machine.&#xA;self.isSubmachineState implies (self.connection->forAll (cp |&#xA;cp.entry->forAll (p | p.statemachine = self.submachine) and&#xA;cp.exit->forAll (p | p.statemachine = self.submachine)))"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="submachine_or_regions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A state is not allowed to have both a submachine and regions.&#xA;isComposite implies not isSubmachineState"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="submachine_states" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Only submachine states can have connection point references.&#xA;isSubmachineState implies connection->notEmpty ( )"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="isComposite" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A composite state is a state with at least one region.&#xA;result = region.notEmpty()"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="isOrthogonal" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="An orthogonal state is a composite state with at least 2 regions&#xA;result = (region->size () > 1)"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="isRedefinitionContextValid" ordered="false" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query isRedefinitionContextValid() specifies whether the redefinition contexts of a state are properly related to the redefinition contexts of the specified state to allow this element to redefine the other. The containing region of a redefining state must redefine the containing region of the redefined state.&#xA;result = true"/>
+      </eAnnotations>
+      <eAnnotations source="redefines" references="#//RedefinableElement/isRedefinitionContextValid"/>
+      <eParameters name="redefined" ordered="false" lowerBound="1" eType="#//State"/>
+    </eOperations>
+    <eOperations name="isSimple" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A simple state is a state without any regions.&#xA;result = region.isEmpty()"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="isSubmachineState" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Only submachine states can have a reference statemachine.&#xA;result = submachine.notEmpty()"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="redefinitionContext" ordered="false" lowerBound="1" eType="#//Classifier">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The redefinition context of a state is the nearest containing statemachine.&#xA;result = let sm = containingStateMachine() in&#xA;if sm.context->isEmpty() or sm.general->notEmpty() then&#xA;sm&#xA;else&#xA;sm.context&#xA;endif"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="connection" ordered="false"
+        upperBound="-1" eType="#//ConnectionPointReference" containment="true" eOpposite="#//ConnectionPointReference/state">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The entry and exit connection points used in conjunction with this (submachine) state, i.e. as targets and sources, respectively, in the region with the submachine state. A connection point reference references the corresponding definition of a connection point pseudostate in the statemachine referenced by the submachinestate."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="connectionPoint" ordered="false"
+        upperBound="-1" eType="#//Pseudostate" containment="true" eOpposite="#//Pseudostate/state">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The entry and exit pseudostates of a composite state. These can only be entry or exit Pseudostates, and they must have different names. They can only be defined for composite states."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="deferrableTrigger" ordered="false"
+        upperBound="-1" eType="#//Trigger" containment="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A list of triggers that are candidates to be retained by the state machine if they trigger no transitions out of the state (not consumed). A deferred trigger is retained until the state machine reaches a state configuration where it is no longer deferred."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="doActivity" ordered="false"
+        eType="#//Behavior" containment="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="An optional behavior that is executed while being in the state. The execution starts when this state is entered, and stops either by itself, or when the state is exited, whichever comes first."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="entry" ordered="false"
+        eType="#//Behavior" containment="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="An optional behavior that is executed whenever this state is entered regardless of the transition taken to reach the state. If defined, entry actions are always executed to completion prior to any internal behavior or transitions performed within the state."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="exit" ordered="false" eType="#//Behavior"
+        containment="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="An optional behavior that is executed whenever this state is exited regardless of which transition was taken out of the state. If defined, exit actions are always executed to completion only after all internal activities and transition actions have completed execution."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isComposite" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+        changeable="false" volatile="true" transient="true" defaultValueLiteral="false"
+        derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A state with isComposite=true is said to be a composite state. A composite state is a state that contains at least one region."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isOrthogonal" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+        changeable="false" volatile="true" transient="true" defaultValueLiteral="false"
+        derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A state with isOrthogonal=true is said to be an orthogonal composite state. An orthogonal composite state contains two or more regions."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isSimple" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+        changeable="false" volatile="true" transient="true" defaultValueLiteral="true"
+        derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A state with isSimple=true is said to be a simple state. A simple state does not have any regions and it does not refer to any submachine state machine."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isSubmachineState" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+        changeable="false" volatile="true" transient="true" defaultValueLiteral="false"
+        derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A state with isSubmachineState=true is said to be a submachine state. Such a state refers to a state machine (submachine)."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedState" ordered="false"
+        eType="#//State">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The state of which this state is a redefinition."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="stateInvariant" ordered="false"
+        eType="#//Constraint">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies conditions that are always true when this state is the current state. In protocol state machines, state invariants are additional conditions to the preconditions of the outgoing transitions, and to the postcondition of the incoming transitions."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Namespace/ownedRule"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="submachine" ordered="false"
+        eType="#//StateMachine" eOpposite="#//StateMachine/submachineState">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The state machine that is to be inserted in place of the (submachine) state."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="region" ordered="false"
+        upperBound="-1" eType="#//Region" containment="true" eOpposite="#//Region/state">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The regions owned directly by the state."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="ConnectionPointReference" eSuperTypes="#//Vertex">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A connection point reference represents a usage (as part of a submachine state) of an entry/exit point defined in the statemachine reference by the submachine state."/>
+    </eAnnotations>
+    <eOperations name="entry_pseudostates" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The entry Pseudostates must be Pseudostates with kind entryPoint.&#xA;entry->notEmpty() implies entry->forAll(e | e.kind = #entryPoint)"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="exit_pseudostates" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The exit Pseudostates must be Pseudostates with kind exitPoint.&#xA;exit->notEmpty() implies exit->forAll(e | e.kind = #exitPoint)"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="entry" ordered="false"
+        upperBound="-1" eType="#//Pseudostate">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The entryPoint kind pseudo states corresponding to this connection point."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="exit" ordered="false" upperBound="-1"
+        eType="#//Pseudostate">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The exitPoints kind pseudo states corresponding to this connection point."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="state" ordered="false"
+        eType="#//State" eOpposite="#//State/connection">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The State in which the connection point refreshens are defined."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Trigger" eSuperTypes="#//NamedElement">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A trigger specification may be qualified by the port on which the event occurred.&#xA;A trigger relates an event to a behavior that may affect an instance of the classifier."/>
+    </eAnnotations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="event" ordered="false"
+        lowerBound="1" eType="#//Event">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The event that causes the trigger."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="port" ordered="false" upperBound="-1"
+        eType="#//Port">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A optional port of the receiver object on which the behavioral feature is invoked."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Event" abstract="true" eSuperTypes="#//PackageableElement">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="An event is the specification of some occurrence that may potentially trigger effects by an object."/>
+    </eAnnotations>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Port" eSuperTypes="#//Property">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A port has an associated protocol state machine.&#xA;A port is a property of a classifier that specifies a distinct interaction point between that classifier and its environment or between the (behavior of the) classifier and its internal parts. Ports are connected to properties of the classifier by connectors through which requests can be made to invoke the behavioral features of a classifier. A Port may specify the services a classifier provides (offers) to its environment as well as the services that a classifier expects (requires) of its environment."/>
+    </eAnnotations>
+    <eOperations name="default_value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A defaultValue for port cannot be specified when the type of the Port is an Interface&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="port_aggregation" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Port.aggregation must be composite.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="port_destroyed" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="When a port is destroyed, all connectors attached to this port will be destroyed also.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="getProvideds" ordered="false" upperBound="-1" eType="#//Interface">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Missing derivation for Port::/provided : Interface&#xA;true"/>
+        <details key="suppressedVisibility" value="true"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="getRequireds" ordered="false" upperBound="-1" eType="#//Interface">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Missing derivation for Port::/required : Interface&#xA;true"/>
+        <details key="suppressedVisibility" value="true"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isBehavior" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+        defaultValueLiteral="false">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies whether requests arriving at this port are sent to the classifier behavior of this classifier. Such ports are referred to as behavior port. Any invocation of a behavioral feature targeted at a behavior port will be handled by the instance of the owning classifier itself, rather than by any instances that this classifier may contain."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isConjugated" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+        defaultValueLiteral="false">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies the way that the provided and required interfaces are derived from the Port’s Type. The default value is false."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isService" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+        defaultValueLiteral="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="If true indicates that this port is used to provide the published functionality of a classifier; if false, this port is used to implement the classifier but is not part of the essential externally-visible functionality of the classifier and can, therefore, be altered or deleted along with the internal implementation of the classifier and other properties that are considered part of its implementation."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="protocol" ordered="false"
+        eType="#//ProtocolStateMachine">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="References an optional protocol state machine which describes valid interactions at this interaction point."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="provided" ordered="false"
+        upperBound="-1" eType="#//Interface" changeable="false" volatile="true" transient="true"
+        derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="References the interfaces specifying the set of operations and receptions that the classifier offers to its environment via this port, and which it will handle either directly or by forwarding it to a part of its internal structure. This association is derived according to the value of isConjugated. If isConjugated is false, provided is derived as the union of the sets of interfaces realized by the type of the port and its supertypes, or directly from the type of the port if the port is typed by an interface. If isConjugated is true, it is derived as the union of the sets of interfaces used by the type of the port and its supertypes."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedPort" ordered="false"
+        upperBound="-1" eType="#//Port">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A port may be redefined when its containing classifier is specialized. The redefining port may have additional interfaces to those that are associated with the redefined port or it may replace an interface by one of its subtypes."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Property/redefinedProperty"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="required" ordered="false"
+        upperBound="-1" eType="#//Interface" changeable="false" volatile="true" transient="true"
+        derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="References the interfaces specifying the set of operations and receptions that the classifier expects its environment to handle via this port. This association is derived according to the value of isConjugated. If isConjugated is false, required is derived as the union of the sets of interfaces used by the type of the port and its supertypes. If isConjugated is true, it is derived as the union of the sets of interfaces realized by the type of the port and its supertypes, or directly from the type of the port if the port is typed by an interface."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Constraint" eSuperTypes="#//PackageableElement">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A constraint is a condition or restriction expressed in natural language text or in a machine readable language for the purpose of declaring some of the semantics of an element."/>
+    </eAnnotations>
+    <eOperations name="not_apply_to_self" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A constraint cannot be applied to itself.&#xA;not constrainedElement->includes(self)"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="no_side_effects" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Evaluating the value specification for a constraint must not have side effects.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="boolean_value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The value specification for a constraint must evaluate to a Boolean value.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="value_specification_boolean" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The value specification for a constraint must evaluate to a Boolean value.&#xA;self.specification().booleanValue().isOclKindOf(Boolean)"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="constrainedElement" upperBound="-1"
+        eType="#//Element">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The ordered set of Elements referenced by this Constraint."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="context" ordered="false"
+        eType="#//Namespace" eOpposite="#//Namespace/ownedRule">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies the namespace that owns the NamedElement."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="specification" ordered="false"
+        lowerBound="1" eType="#//ValueSpecification" containment="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A condition that must be true when evaluated in order for the constraint to be satisfied."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Transition" eSuperTypes="#//Namespace #//RedefinableElement">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A transition is a directed relationship between a source vertex and a target vertex. It may be part of a compound transition, which takes the state machine from one state configuration to another, representing the complete response of the state machine to an occurrence of an event of a particular type."/>
+    </eAnnotations>
+    <eAnnotations source="duplicates">
+      <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
+          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The query isConsistentWith() specifies that a redefining transition is consistent with a redefined transition provided that the redefining transition has the following relation to the redefined transition: A redefining transition redefines all properties of the corresponding redefined transition, except the source state and the trigger.&#xA;redefinee.isRedefinitionContextValid(self)&#xA;result = (redefinee.oclIsKindOf(Transition) and&#xA;  let trans: Transition = redefinee.oclAsType(Transition) in&#xA;    (source() = trans.source() and trigger() = tran.trigger())"/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
+        <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
+      </contents>
+      <contents xsi:type="ecore:EReference" name="redefinitionContext" ordered="false"
+          upperBound="-1" eType="#//Classifier" changeable="false" volatile="true"
+          transient="true" derived="true">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="References the classifier in which context this element may be redefined."/>
+        </eAnnotations>
+        <eAnnotations source="redefines" references="#//RedefinableElement/redefinitionContext"/>
+      </contents>
+    </eAnnotations>
+    <eOperations name="state_is_local" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A transition with kind local must have a composite state or an entry point as its source.&#xA;(kind = TransitionKind::local) implies&#xA;&#x9;&#x9;((source.oclIsKindOf (State) and source.oclAsType(State).isComposite) or&#xA;&#x9;&#x9;(source.oclIsKindOf (Pseudostate) and source.oclAsType(Pseudostate).kind = PseudostateKind::entryPoint))"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="fork_segment_guards" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A fork segment must not have guards or triggers.&#xA;(source.oclIsKindOf(Pseudostate) and source.kind = #fork) implies (guard->isEmpty() and trigger->isEmpty())"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="join_segment_state" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A join segment must always originate from a state.&#xA;(target.oclIsKindOf(Pseudostate) and target.kind = #join) implies (source.oclIsKindOf(State))"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="initial_transition" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="An initial transition at the topmost level (region of a statemachine) either has no trigger or it has a trigger with the stereotype >.&#xA;self.source.oclIsKindOf(Pseudostate) implies&#xA;(self.source.oclAsType(Pseudostate).kind = #initial) implies&#xA;(self.source.container = self.stateMachine.top) implies&#xA;((self.trigger->isEmpty) or&#xA;(self.trigger.stereotype.name = 'create'))&#xA;"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="outgoing_pseudostates" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Transitions outgoing pseudostates may not have a trigger.&#xA;source.oclIsKindOf(Pseudostate) and (source.kind &lt;> #initial)) implies trigger->isEmpty()"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="signatures_compatible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="In case of more than one trigger, the signatures of these must be compatible in case the parameters of the signal are assigned to local variables/attributes.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="state_is_internal" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A transition with kind internal must have a state as its source, and its source and target must be equal.&#xA;(kind = TransitionKind::internal) implies&#xA;&#x9;&#x9;(source.oclIsKindOf (State) and source = target)"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="join_segment_guards" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A join segment must not have guards or triggers.&#xA;(target.oclIsKindOf(Pseudostate) and target.kind = #join) implies (guard->isEmpty() and trigger->isEmpty())"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="fork_segment_state" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A fork segment must always target a state.&#xA;(source.oclIsKindOf(Pseudostate) and source.kind = #fork) implies (target.oclIsKindOf(State))"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="state_is_external" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A transition with kind external can source any vertex except entry points.&#xA;(kind = TransitionKind::external) implies&#xA;&#x9;not (source.oclIsKindOf(Pseudostate) and source.oclAsType(Pseudostate).kind = PseudostateKind::entryPoint)"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="containingStateMachine" ordered="false" lowerBound="1" eType="#//StateMachine">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The query containingStateMachine() returns the state machine that contains the transition either directly or transitively.&#xA;result = container.containingStateMachine()"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="redefinitionContext" ordered="false" lowerBound="1" eType="#//Classifier">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The redefinition context of a transition is the nearest containing statemachine.&#xA;result = let sm = containingStateMachine() in&#xA;if sm.context->isEmpty() or sm.general->notEmpty() then&#xA;sm&#xA;else&#xA;sm.context&#xA;endif"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="effect" ordered="false"
+        eType="#//Behavior" containment="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies an optional behavior to be performed when the transition fires."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="guard" ordered="false"
+        eType="#//Constraint">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A guard is a constraint that provides a fine-grained control over the firing of the transition. The guard is evaluated when an event occurrence is dispatched by the state machine. If the guard is true at that time, the transition may be enabled, otherwise, it is disabled. Guards should be pure expressions without side effects. Guard expressions with side effects are ill formed."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Namespace/ownedRule"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" ordered="false" lowerBound="1"
+        eType="#//TransitionKind" defaultValueLiteral="external">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Indicates the precise type of the transition."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedTransition" ordered="false"
+        eType="#//Transition">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The transition that is redefined by this transition."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="source" ordered="false"
+        lowerBound="1" eType="#//Vertex">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Designates the originating vertex (state or pseudostate) of the transition."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="target" ordered="false"
+        lowerBound="1" eType="#//Vertex">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Designates the target vertex that is reached when the transition is taken."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="trigger" ordered="false"
+        upperBound="-1" eType="#//Trigger" containment="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies the triggers that may fire the transition."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="container" ordered="false"
+        lowerBound="1" eType="#//Region" eOpposite="#//Region/transition">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Designates the region that owns this transition."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="TransitionKind">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="TransitionKind is an enumeration type."/>
+    </eAnnotations>
+    <eLiterals name="internal">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Implies that the transition, if triggered, occurs without exiting or entering the source state. Thus, it does not cause a state change. This means that the entry or exit condition of the source state will not be invoked. An internal transition can be taken even if the state machine is in one or more regions nested within this state."/>
+      </eAnnotations>
+    </eLiterals>
+    <eLiterals name="local" value="1">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Implies that the transition, if triggered, will not exit the composite (source) state, but it will apply to any state within the composite state, and these will be exited and entered."/>
+      </eAnnotations>
+    </eLiterals>
+    <eLiterals name="external" value="2">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Implies that the transition, if triggered, will exit the composite (source) state."/>
+      </eAnnotations>
+    </eLiterals>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="PseudostateKind">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="PseudostateKind is an enumeration type."/>
+    </eAnnotations>
+    <eLiterals name="initial">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="An initial pseudostate represents a default vertex that is the source for a single transition to the default state of a composite state. There can be at most one initial vertex in a region. The outgoing transition from the initial vertex may have a behavior, but not a trigger or guard."/>
+      </eAnnotations>
+    </eLiterals>
+    <eLiterals name="deepHistory" value="1">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="DeepHistory represents the most recent active configuration of the composite state that directly contains this pseudostate; e.g. the state configuration that was active when the composite state was last exited. A composite state can have at most one deep history vertex. At most one transition may originate from the history connector to the default deep history state. This transition is taken in case the composite state had never been active before. Entry actions of states entered on the path to the state represented by a deep history are performed."/>
+      </eAnnotations>
+    </eLiterals>
+    <eLiterals name="shallowHistory" value="2">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="ShallowHistory represents the most recent active substate of its containing state (but not the substates of that substate). A composite state can have at most one shallow history vertex. A transition coming into the shallow history vertex is equivalent to a transition coming into the most recent active substate of a state. At most one transition may originate from the history connector to the default shallow history state. This transition is taken in case the composite state had never been active before. Entry actions of states entered on the path to the state represented by a shallow history are performed."/>
+      </eAnnotations>
+    </eLiterals>
+    <eLiterals name="join" value="3">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Join vertices serve to merge several transitions emanating from source vertices in different orthogonal regions. The transitions entering a join vertex cannot have guards or triggers."/>
+      </eAnnotations>
+    </eLiterals>
+    <eLiterals name="fork" value="4">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Fork vertices serve to split an incoming transition into two or more transitions terminating on orthogonal target vertices (i.e. vertices in different regions of a composite state). The segments outgoing from a fork vertex must not have guards or triggers."/>
+      </eAnnotations>
+    </eLiterals>
+    <eLiterals name="junction" value="5">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Junction vertices are semantic-free vertices that are used to chain together multiple transitions. They are used to construct compound transition paths between states. For example, a junction can be used to converge multiple incoming transitions into a single outgoing transition representing a shared transition path (this is known as an merge). Conversely, they can be used to split an incoming transition into multiple outgoing transition segments with different guard conditions. This realizes a static conditional branch. (In the latter case, outgoing transitions whose guard conditions evaluate to false are disabled. A predefined guard denoted 'else' may be defined for at most one outgoing transition. This transition is enabled if all the guards labeling the other transitions are false.) Static conditional branches are distinct from dynamic conditional branches that are realized by choice vertices (described below)."/>
+      </eAnnotations>
+    </eLiterals>
+    <eLiterals name="choice" value="6">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Choice vertices which, when reached, result in the dynamic evaluation of the guards of the triggers of its outgoing transitions. This realizes a dynamic conditional branch. It allows splitting of transitions into multiple outgoing paths such that the decision on which path to take may be a function of the results of prior actions performed in the same run-tocompletion step. If more than one of the guards evaluates to true, an arbitrary one is selected. If none of the guards evaluates to true, then the model is considered ill-formed. (To avoid this, it is recommended to define one outgoing transition with the predefined else guard for every choice vertex.) Choice vertices should be distinguished from static branch points that are based on junction points (described above)."/>
+      </eAnnotations>
+    </eLiterals>
+    <eLiterals name="entryPoint" value="7">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="An entry point pseudostate is an entry point of a state machine or composite state. In each region of the state machine or composite state it has a single transition to a vertex within the same region."/>
+      </eAnnotations>
+    </eLiterals>
+    <eLiterals name="exitPoint" value="8">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="An exit point pseudostate is an exit point of a state machine or composite state. Entering an exit point within any region of the composite state or state machine referenced by a submachine state implies the exit of this composite state or submachine state and the triggering of the transition that has this exit point as source in the state machine enclosing the submachine or composite state."/>
+      </eAnnotations>
+    </eLiterals>
+    <eLiterals name="terminate" value="9">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Entering a terminate pseudostate implies that the execution of this state machine by means of its context object is terminated. The state machine does not exit any states nor does it perform any exit actions other than those associated with the transition leading to the terminate pseudostate. Entering a terminate pseudostate is equivalent to invoking a DestroyObjectAction."/>
+      </eAnnotations>
+    </eLiterals>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="ProtocolConformance" eSuperTypes="#//DirectedRelationship">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="Protocol state machines can be redefined into more specific protocol state machines, or into behavioral state machines. Protocol conformance declares that the specific protocol state machine specifies a protocol that conforms to the general state machine one, or that the specific behavioral state machine abide by the protocol of the general protocol state machine."/>
+    </eAnnotations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="generalMachine" ordered="false"
+        lowerBound="1" eType="#//ProtocolStateMachine">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies the protocol state machine to which the specific state machine conforms."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="specificMachine" ordered="false"
+        lowerBound="1" eType="#//ProtocolStateMachine" eOpposite="#//ProtocolStateMachine/conformance">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Specifies the state machine which conforms to the general state machine."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/owner #//DirectedRelationship/source"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Parameter" eSuperTypes="#//ConnectableElement #//MultiplicityElement">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="Parameters are allowed to be treated as connectable elements.&#xA;A parameter is a specification of an argument used to pass information into or out of an invocation of a behavioral feature.&#xA;Parameters have support for streaming, exceptions, and parameter sets."/>
+    </eAnnotations>
+    <eOperations name="reentrant_behaviors" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Reentrant behaviors cannot have stream parameters.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -4487,9 +6372,28 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="reentrant_behaviors" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="not_exception" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Reentrant behaviors cannot have stream parameters.&#xA;true"/>
+        <details key="documentation" value="An input parameter cannot be an exception.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="in_and_out" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Only in and inout parameters may have a delete effect. Only out, inout, and return parameters may have a create effect.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -4710,9 +6614,9 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A parameter set is an element that provides alternative sets of inputs or outputs that a behavior may use."/>
     </eAnnotations>
-    <eOperations name="same_parameterized_entity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="two_parameter_sets" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The parameters in a parameter set must all be inputs or all be outputs of the same parameterized entity, and the parameter set is owned by that entity.&#xA;true"/>
+        <details key="documentation" value="Two parameter sets cannot have exactly the same set of parameters.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -4748,9 +6652,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="two_parameter_sets" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="same_parameterized_entity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Two parameter sets cannot have exactly the same set of parameters.&#xA;true"/>
+        <details key="documentation" value="The parameters in a parameter set must all be inputs or all be outputs of the same parameterized entity, and the parameter set is owned by that entity.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -4781,107 +6685,6 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Constraint" eSuperTypes="#//PackageableElement">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A constraint is a condition or restriction expressed in natural language text or in a machine readable language for the purpose of declaring some of the semantics of an element."/>
-    </eAnnotations>
-    <eOperations name="boolean_value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The value specification for a constraint must evaluate to a Boolean value.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="no_side_effects" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Evaluating the value specification for a constraint must not have side effects.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="not_apply_to_self" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A constraint cannot be applied to itself.&#xA;not constrainedElement->includes(self)"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="value_specification_boolean" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The value specification for a constraint must evaluate to a Boolean value.&#xA;self.specification().booleanValue().isOclKindOf(Boolean)"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="constrainedElement" upperBound="-1"
-        eType="#//Element">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The ordered set of Elements referenced by this Constraint."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="context" ordered="false"
-        eType="#//Namespace" eOpposite="#//Namespace/ownedRule">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the namespace that owns the NamedElement."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="specification" ordered="false"
-        lowerBound="1" eType="#//ValueSpecification" containment="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A condition that must be true when evaluated in order for the constraint to be satisfied."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
-    </eStructuralFeatures>
-  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="DataType" eSuperTypes="#//Classifier">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A data type is a type whose instances are identified only by their value. A data type may contain attributes to support the modeling of structured data types."/>
@@ -4951,7 +6754,7 @@
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="The Attributes owned by the DataType."/>
       </eAnnotations>
-      <eAnnotations source="subsets" references="#//Classifier/attribute #//Namespace/ownedMember"/>
+      <eAnnotations source="subsets" references="#//Namespace/ownedMember #//Classifier/attribute"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ownedOperation" upperBound="-1"
         eType="#//Operation" containment="true" eOpposite="#//Operation/datatype">
@@ -4961,1670 +6764,6 @@
       <eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/ownedMember"/>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Interface" eSuperTypes="#//Classifier">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="Interfaces may include receptions (in addition to operations).&#xA;An interface is a kind of classifier that represents a declaration of a set of coherent public features and obligations. An interface specifies a contract; any instance of a classifier that realizes the interface must fulfill that contract. The obligations that may be associated with an interface are in the form of various kinds of constraints (such as pre- and post-conditions) or protocol specifications, which may impose ordering restrictions on interactions through the interface.&#xA;Since an interface specifies conformance characteristics, it does not own detailed behavior specifications. Instead, interfaces may own a protocol state machine that specifies event sequences and pre/post conditions for the operations and receptions described by the interface."/>
-    </eAnnotations>
-    <eOperations name="visibility" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The visibility of all features owned by an interface must be public.&#xA;self.feature->forAll(f | f.visibility = #public)"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="createOwnedAttribute" ordered="false" lowerBound="1" eType="#//Property">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Creates a property with the specified name, type, lower bound, and upper bound as an owned attribute of this interface."/>
-      </eAnnotations>
-      <eParameters name="name" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The name for the new attribute, or null."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="type" ordered="false" eType="#//Type">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The type for the new attribute, or null."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="lower" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The lower bound for the new attribute."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="upper" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//UnlimitedNatural">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The upper bound for the new attribute."/>
-        </eAnnotations>
-      </eParameters>
-    </eOperations>
-    <eOperations name="createOwnedOperation" ordered="false" lowerBound="1" eType="#//Operation">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Creates an operation with the specified name, parameter names, parameter types, and return type (or null) as an owned operation of this interface."/>
-      </eAnnotations>
-      <eParameters name="name" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The name for the new operation, or null."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="parameterNames" ordered="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The parameter names for the new operation, or null."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="parameterTypes" ordered="false" upperBound="-1" eType="#//Type">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The parameter types for the new operation, or null."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="returnType" ordered="false" eType="#//Type">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The return type for the new operation, or null."/>
-        </eAnnotations>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="nestedClassifier" upperBound="-1"
-        eType="#//Classifier" containment="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References all the Classifiers that are defined (nested) within the Class."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
-        eType="#//Property" containment="true" eOpposite="#//Property/interface">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The attributes (i.e. the properties) owned by the class."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Classifier/attribute #//Namespace/ownedMember"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedReception" ordered="false"
-        upperBound="-1" eType="#//Reception" containment="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Receptions that objects providing this interface are willing to accept."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/ownedMember"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="protocol" ordered="false"
-        eType="#//ProtocolStateMachine" containment="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References a protocol state machine specifying the legal sequences of the invocation of the behavioral features described in the interface."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedInterface" ordered="false"
-        upperBound="-1" eType="#//Interface">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References all the Interfaces redefined by this Interface."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Classifier/redefinedClassifier"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedOperation" upperBound="-1"
-        eType="#//Operation" containment="true" eOpposite="#//Operation/interface">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The operations owned by the class."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/ownedMember"/>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Reception" eSuperTypes="#//BehavioralFeature">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A reception is a declaration stating that a classifier is prepared to react to the receipt of a signal. A reception designates a signal and specifies the expected behavioral response. The details of handling a signal are specified by the behavior associated with the reception or the classifier itself."/>
-    </eAnnotations>
-    <eOperations name="not_query" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A Reception can not be a query.&#xA;not self.isQuery"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="signal" ordered="false"
-        lowerBound="1" eType="#//Signal">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The signal that this reception handles."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Signal" eSuperTypes="#//Classifier">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A signal is a specification of send request instances communicated between objects. The receiving object handles the received request instances as specified by its receptions. The data carried by a send request (which was passed to it by the send invocation occurrence that caused that request) are represented as attributes of the signal. A signal is defined independently of the classifiers handling the signal occurrence."/>
-    </eAnnotations>
-    <eOperations name="createOwnedAttribute" ordered="false" lowerBound="1" eType="#//Property">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Creates a property with the specified name, type, lower bound, and upper bound as an owned attribute of this signal."/>
-      </eAnnotations>
-      <eParameters name="name" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The name for the new attribute, or null."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="type" ordered="false" eType="#//Type">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The type for the new attribute, or null."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="lower" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The lower bound for the new attribute."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="upper" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//UnlimitedNatural">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The upper bound for the new attribute."/>
-        </eAnnotations>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
-        eType="#//Property" containment="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The attributes owned by the signal."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Classifier/attribute #//Namespace/ownedMember"/>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ProtocolStateMachine" eSuperTypes="#//StateMachine">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A protocol state machine is always defined in the context of a classifier. It specifies which operations of the classifier can be called in which state and under which condition, thus specifying the allowed call sequences on the classifier's operations. A protocol state machine presents the possible and permitted transitions on the instances of its context classifier, together with the operations which carry the transitions. In this manner, an instance lifecycle can be created for a classifier, by specifying the order in which the operations can be activated and the states through which an instance progresses during its existence."/>
-    </eAnnotations>
-    <eAnnotations source="duplicates">
-      <contents xsi:type="ecore:EOperation" name="classifier_context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="A protocol state machine must only have a classifier context, not a behavioral feature context.&#xA;(not context->isEmpty( )) and specification->isEmpty()"/>
-        </eAnnotations>
-        <eAnnotations source="redefines" references="#//StateMachine/classifier_context"/>
-        <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-          <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-            <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-          </eAnnotations>
-        </eParameters>
-        <eParameters name="context">
-          <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-            <details key="documentation" value="The cache of context-specific information."/>
-          </eAnnotations>
-          <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-            <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-            <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          </eGenericType>
-        </eParameters>
-      </contents>
-    </eAnnotations>
-    <eOperations name="deep_or_shallow_history" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Protocol state machines cannot have deep or shallow history pseudostates.&#xA;region->forAll (r | r.subvertex->forAll (v | v.oclIsKindOf(Psuedostate) implies&#xA;((v.kind &lt;> #deepHistory) and (v.kind &lt;> #shallowHistory)))))&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="entry_exit_do" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The states of a protocol state machine cannot have entry, exit, or do activity actions.&#xA;region->forAll(r | r.subvertex->forAll(v | v.oclIsKindOf(State) implies&#xA;(v.entry->isEmpty() and v.exit->isEmpty() and v.doActivity->isEmpty())))&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="ports_connected" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If two ports are connected, then the protocol state machine of the required interface (if defined) must be conformant to the protocol state machine of the provided interface (if defined).&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="protocol_transitions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="All transitions of a protocol state machine must be protocol transitions. (transitions as extended by the ProtocolStateMachines package)&#xA;region->forAll(r | r.transition->forAll(t | t.oclIsTypeOf(ProtocolTransition)))"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="conformance" ordered="false"
-        upperBound="-1" eType="#//ProtocolConformance" containment="true" eOpposite="#//ProtocolConformance/specificMachine">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Conformance between protocol state machines."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="StateMachine" eSuperTypes="#//Behavior">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="State machines can be used to express the behavior of part of a system. Behavior is modeled as a traversal of a graph of state nodes interconnected by one or more joined transition arcs that are triggered by the dispatching of series of (event) occurrences. During this traversal, the state machine executes a series of activities associated with various elements of the state machine."/>
-    </eAnnotations>
-    <eAnnotations source="duplicates">
-      <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
-          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The query isConsistentWith() specifies that a redefining state machine is consistent with a redefined state machine provided that the redefining state machine is an extension of the redefined state machine: Regions are inherited and regions can be added, inherited regions can be redefined. In case of multiple redefining state machines, extension implies that the redefining state machine gets orthogonal regions for each of the redefined state machines.&#xA;result = true"/>
-        </eAnnotations>
-        <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
-        <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
-      </contents>
-    </eAnnotations>
-    <eOperations name="connection_points" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The connection points of a state machine are pseudostates of kind entry point or exit point.&#xA;conectionPoint->forAll (c | c.kind = #entryPoint or c.kind = #exitPoint)"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="classifier_context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The classifier context of a state machine cannot be an interface.&#xA;context->notEmpty() implies not context.oclIsKindOf(Interface)"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="method" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A state machine as the method for a behavioral feature cannot have entry/exit connection points.&#xA;specification->notEmpty() implies connectionPoint->isEmpty()"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="context_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The context classifier of the method state machine of a behavioral feature must be the classifier that owns the behavioral feature.&#xA;specification->notEmpty() implies (context->notEmpty() and specification->featuringClassifier->exists (c | c = context))"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="LCA" ordered="false" lowerBound="1" eType="#//Namespace">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The operation LCA(s1,s2) returns an orthogonal state or region which is the least common ancestor of states s1 and s2, based on the statemachine containment hierarchy.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="s1" ordered="false" lowerBound="1" eType="#//State"/>
-      <eParameters name="s2" ordered="false" lowerBound="1" eType="#//State"/>
-    </eOperations>
-    <eOperations name="ancestor" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query ancestor(s1, s2) checks whether s1 is an ancestor state of state s2.&#xA;result = &#xA;if (s2 = s1) then &#xA;&#x9;true &#xA;else &#xA;&#x9;if (s2.container->isEmpty() or not s2.container.owner.oclIsKindOf(State)) then &#xA;&#x9;&#x9;false &#xA;&#x9;else &#xA;&#x9;&#x9;ancestor(s1, s2.container.owner.oclAsType(State))&#xA;&#x9;endif&#xA;endif &#xA;"/>
-      </eAnnotations>
-      <eParameters name="s1" ordered="false" lowerBound="1" eType="#//State"/>
-      <eParameters name="s2" ordered="false" lowerBound="1" eType="#//State"/>
-    </eOperations>
-    <eOperations name="isRedefinitionContextValid" ordered="false" lowerBound="1"
-        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query isRedefinitionContextValid() specifies whether the redefinition contexts of a statemachine are properly related to the redefinition contexts of the specified statemachine to allow this element to redefine the other. The containing classifier of a redefining statemachine must redefine the containing classifier of the redefined statemachine.&#xA;result = true"/>
-      </eAnnotations>
-      <eAnnotations source="redefines" references="#//RedefinableElement/isRedefinitionContextValid"/>
-      <eParameters name="redefined" ordered="false" lowerBound="1" eType="#//StateMachine"/>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="connectionPoint" ordered="false"
-        upperBound="-1" eType="#//Pseudostate" containment="true" eOpposite="#//Pseudostate/stateMachine">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The connection points defined for this state machine. They represent the interface of the state machine when used as part of submachine state."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="submachineState" ordered="false"
-        upperBound="-1" eType="#//State" eOpposite="#//State/submachine">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the submachine(s) in case of a submachine state. Multiple machines are referenced in case of a concurrent state."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="region" ordered="false"
-        lowerBound="1" upperBound="-1" eType="#//Region" containment="true" eOpposite="#//Region/stateMachine">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The regions owned directly by the state machine."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="extendedStateMachine" ordered="false"
-        upperBound="-1" eType="#//StateMachine">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The state machines of which this is an extension."/>
-      </eAnnotations>
-      <eAnnotations source="redefines" references="#//Behavior/redefinedBehavior"/>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Pseudostate" eSuperTypes="#//Vertex">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A pseudostate is an abstraction that encompasses different types of transient vertices in the state machine graph."/>
-    </eAnnotations>
-    <eOperations name="transitions_outgoing" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="All transitions outgoing a fork vertex must target states in different regions of an orthogonal state.&#xA;(self.kind = #fork) implies&#xA;  self.outgoing->forAll (t1, t2 | t1&lt;>t2 implies&#xA;    (self.stateMachine.LCA(t1.target, t2.target).container.isOrthogonal))"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="choice_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="In a complete statemachine, a choice vertex must have at least one incoming and one outgoing transition.&#xA;(self.kind = #choice) implies&#xA;((self.incoming->size >= 1) and (self.outgoing->size >= 1))&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="outgoing_from_initial" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The outgoing transition from and initial vertex may have a behavior, but not a trigger or a guard.&#xA;(self.kind = #initial) implies (self.outgoing.guard->isEmpty()&#xA;  and self.outgoing.trigger->isEmpty())"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="join_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="In a complete statemachine, a join vertex must have at least two incoming transitions and exactly one outgoing transition.&#xA;(self.kind = #join) implies&#xA;((self.outgoing->size = 1) and (self.incoming->size >= 2))&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="junction_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="In a complete statemachine, a junction vertex must have at least one incoming and one outgoing transition.&#xA;(self.kind = #junction) implies&#xA;((self.incoming->size >= 1) and (self.outgoing->size >= 1))&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="history_vertices" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="History vertices can have at most one outgoing transition.&#xA;((self.kind = #deepHistory) or (self.kind = #shallowHistory)) implies&#xA;(self.outgoing->size &lt;= 1)&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="initial_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An initial vertex can have at most one outgoing transition.&#xA;(self.kind = #initial) implies (self.outgoing->size &lt;= 1)"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="fork_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="In a complete statemachine, a fork vertex must have at least two outgoing transitions and exactly one incoming transition.&#xA;(self.kind = #fork) implies&#xA;((self.incoming->size = 1) and (self.outgoing->size >= 2))&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="transitions_incoming" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="All transitions incoming a join vertex must originate in different regions of an orthogonal state.&#xA;(self.kind = #join) implies&#xA;  self.incoming->forAll (t1, t2 | t1&lt;>t2 implies&#xA;    (self.stateMachine.LCA(t1.source, t2.source).container.isOrthogonal))"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="state" ordered="false"
-        eType="#//State" eOpposite="#//State/connectionPoint">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The State that owns this pseudostate and in which it appears."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" ordered="false" lowerBound="1"
-        eType="#//PseudostateKind" defaultValueLiteral="initial">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Determines the precise type of the Pseudostate and can be one of: entryPoint, exitPoint, initial, deepHistory, shallowHistory, join, fork, junction, terminate or choice."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="stateMachine" ordered="false"
-        eType="#//StateMachine" eOpposite="#//StateMachine/connectionPoint">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The StateMachine in which this Pseudostate is defined. This only applies to Pseudostates of the kind entryPoint or exitPoint."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Vertex" abstract="true" eSuperTypes="#//NamedElement">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A vertex is an abstraction of a node in a state machine graph. In general, it can be the source or destination of any number of transitions."/>
-    </eAnnotations>
-    <eOperations name="containingStateMachine" ordered="false" lowerBound="1" eType="#//StateMachine">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The operation containingStateMachine() returns the state machine in which this Vertex is defined&#xA;result = if not container->isEmpty()&#xA;then&#xA;-- the container is a region&#xA;container.containingStateMachine()&#xA;else if (oclIsKindOf(Pseudostate)) then&#xA;-- entry or exit point?&#xA;if (kind = #entryPoint) or (kind = #exitPoint) then&#xA;stateMachine&#xA;else if (oclIsKindOf(ConnectionPointReference)) then&#xA;state.containingStateMachine() -- no other valid cases possible&#xA;endif&#xA;"/>
-      </eAnnotations>
-    </eOperations>
-    <eOperations name="getIncomings" ordered="false" upperBound="-1" eType="#//Transition">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Missing derivation for Vertex::/incoming : Transition&#xA;result = Transition.allInstances()->select(t | t.target=self)"/>
-        <details key="suppressedVisibility" value="true"/>
-      </eAnnotations>
-    </eOperations>
-    <eOperations name="getOutgoings" ordered="false" upperBound="-1" eType="#//Transition">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Missing derivation for Vertex::/outgoing : Transition&#xA;result = Transition.allInstances()->select(t | t.source=self)"/>
-        <details key="suppressedVisibility" value="true"/>
-      </eAnnotations>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="container" ordered="false"
-        eType="#//Region" eOpposite="#//Region/subvertex">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The region that contains this vertex."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="incoming" ordered="false"
-        upperBound="-1" eType="#//Transition" changeable="false" volatile="true" transient="true"
-        derived="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the transitions entering this vertex."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="outgoing" ordered="false"
-        upperBound="-1" eType="#//Transition" changeable="false" volatile="true" transient="true"
-        derived="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the transitions departing from this vertex."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Region" eSuperTypes="#//Namespace #//RedefinableElement">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A region is an orthogonal part of either a composite state or a state machine. It contains states and transitions."/>
-    </eAnnotations>
-    <eAnnotations source="duplicates">
-      <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
-          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The query isConsistentWith() specifies that a redefining region is consistent with a redefined region provided that the redefining region is an extension of the redefined region, i.e. it adds vertices and transitions and it redefines states and transitions of the redefined region.&#xA;result = true"/>
-        </eAnnotations>
-        <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
-        <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
-      </contents>
-      <contents xsi:type="ecore:EReference" name="redefinitionContext" ordered="false"
-          upperBound="-1" eType="#//Classifier" changeable="false" volatile="true"
-          transient="true" derived="true">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="References the classifier in which context this element may be redefined."/>
-        </eAnnotations>
-        <eAnnotations source="redefines" references="#//RedefinableElement/redefinitionContext"/>
-      </contents>
-    </eAnnotations>
-    <eOperations name="deep_history_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A region can have at most one deep history vertex&#xA;self.subvertex->select (v | v.oclIsKindOf(Pseudostate))->&#xA;select(p : Pseudostate | p.kind = #deepHistory)->size() &lt;= 1&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="shallow_history_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A region can have at most one shallow history vertex&#xA;self.subvertex->select(v | v.oclIsKindOf(Pseudostate))->&#xA;select(p : Pseudostate | p.kind = #shallowHistory)->size() &lt;= 1&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="owned" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If a Region is owned by a StateMachine, then it cannot also be owned by a State and vice versa.&#xA;(stateMachine->notEmpty() implies state->isEmpty()) and (state->notEmpty() implies stateMachine->isEmpty())"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="initial_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A region can have at most one initial vertex&#xA;self.subvertex->select (v | v.oclIsKindOf(Pseudostate))->&#xA;select(p : Pseudostate | p.kind = #initial)->size() &lt;= 1&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="belongsToPSM" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The operation belongsToPSM () checks if the region belongs to a protocol state machine&#xA;result = if not stateMachine->isEmpty() then&#xA;oclIsTypeOf(ProtocolStateMachine)&#xA;else if not state->isEmpty() then&#xA;state.container.belongsToPSM ()&#xA;else false"/>
-      </eAnnotations>
-    </eOperations>
-    <eOperations name="containingStateMachine" ordered="false" lowerBound="1" eType="#//StateMachine">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The operation containingStateMachine() returns the sate machine in which this Region is defined&#xA;result = if stateMachine->isEmpty() &#xA;then&#xA;state.containingStateMachine()&#xA;else&#xA;stateMachine&#xA;endif"/>
-      </eAnnotations>
-    </eOperations>
-    <eOperations name="isRedefinitionContextValid" ordered="false" lowerBound="1"
-        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query isRedefinitionContextValid() specifies whether the redefinition contexts of a region are properly related to the redefinition contexts of the specified region to allow this element to redefine the other. The containing statemachine/state of a redefining region must redefine the containing statemachine/state of the redefined region.&#xA;result = true"/>
-      </eAnnotations>
-      <eAnnotations source="redefines" references="#//RedefinableElement/isRedefinitionContextValid"/>
-      <eParameters name="redefined" ordered="false" lowerBound="1" eType="#//Region"/>
-    </eOperations>
-    <eOperations name="redefinitionContext" ordered="false" lowerBound="1" eType="#//Classifier">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The redefinition context of a region is the nearest containing statemachine&#xA;result = let sm = containingStateMachine() in&#xA;if sm.context->isEmpty() or sm.general->notEmpty() then&#xA;sm&#xA;else&#xA;sm.context&#xA;endif"/>
-      </eAnnotations>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="extendedRegion" ordered="false"
-        eType="#//Region">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The region of which this region is an extension."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="state" ordered="false"
-        eType="#//State" eOpposite="#//State/region">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The State that owns the Region. If a Region is owned by a State, then it cannot also be owned by a StateMachine."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="stateMachine" ordered="false"
-        eType="#//StateMachine" eOpposite="#//StateMachine/region">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The StateMachine that owns the Region. If a Region is owned by a StateMachine, then it cannot also be owned by a State."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="transition" ordered="false"
-        upperBound="-1" eType="#//Transition" containment="true" eOpposite="#//Transition/container">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The set of transitions owned by the region."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="subvertex" ordered="false"
-        upperBound="-1" eType="#//Vertex" containment="true" eOpposite="#//Vertex/container">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The set of vertices that are owned by this region."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="State" eSuperTypes="#//Namespace #//RedefinableElement #//Vertex">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A state models a situation during which some (usually implicit) invariant condition holds.&#xA;The states of protocol state machines are exposed to the users of their context classifiers. A protocol state represents an exposed stable situation of its context classifier: when an instance of the classifier is not processing any operation, users of this instance can always know its state configuration."/>
-    </eAnnotations>
-    <eAnnotations source="duplicates">
-      <contents xsi:type="ecore:EOperation" name="containingStateMachine" ordered="false"
-          lowerBound="1" eType="#//StateMachine">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The query containingStateMachine() returns the state machine that contains the state either directly or transitively.&#xA;result = container.containingStateMachine()"/>
-        </eAnnotations>
-        <eAnnotations source="redefines" references="#//Vertex/containingStateMachine"/>
-      </contents>
-      <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
-          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The query isConsistentWith() specifies that a redefining state is consistent with a redefined state provided that the redefining state is an extension of the redefined state: A simple state can be redefined (extended) to become a composite state (by adding a region) and a composite state can be redefined (extended) by adding regions and by adding vertices, states, and transitions to inherited regions. All states may add or replace entry, exit, and 'doActivity' actions.&#xA;result = true"/>
-        </eAnnotations>
-        <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
-        <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
-      </contents>
-      <contents xsi:type="ecore:EReference" name="redefinitionContext" ordered="false"
-          upperBound="-1" eType="#//Classifier" changeable="false" volatile="true"
-          transient="true" derived="true">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="References the classifier in which context this element may be redefined."/>
-        </eAnnotations>
-        <eAnnotations source="redefines" references="#//RedefinableElement/redefinitionContext"/>
-      </contents>
-    </eAnnotations>
-    <eOperations name="entry_or_exit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Only entry or exit pseudostates can serve as connection points.&#xA;connectionPoint->forAll(cp|cp.kind = #entry or cp.kind = #exit)"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="submachine_states" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Only submachine states can have connection point references.&#xA;isSubmachineState implies connection->notEmpty ( )"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="composite_states" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Only composite states can have entry or exit pseudostates defined.&#xA;connectionPoint->notEmpty() implies isComoposite"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="destinations_or_sources_of_transitions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The connection point references used as destinations/sources of transitions associated with a submachine state must be defined as entry/exit points in the submachine state machine.&#xA;self.isSubmachineState implies (self.connection->forAll (cp |&#xA;cp.entry->forAll (p | p.statemachine = self.submachine) and&#xA;cp.exit->forAll (p | p.statemachine = self.submachine)))"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="submachine_or_regions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A state is not allowed to have both a submachine and regions.&#xA;isComposite implies not isSubmachineState"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="isComposite" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A composite state is a state with at least one region.&#xA;result = region.notEmpty()"/>
-      </eAnnotations>
-    </eOperations>
-    <eOperations name="isOrthogonal" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An orthogonal state is a composite state with at least 2 regions&#xA;result = (region->size () > 1)"/>
-      </eAnnotations>
-    </eOperations>
-    <eOperations name="isRedefinitionContextValid" ordered="false" lowerBound="1"
-        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query isRedefinitionContextValid() specifies whether the redefinition contexts of a state are properly related to the redefinition contexts of the specified state to allow this element to redefine the other. The containing region of a redefining state must redefine the containing region of the redefined state.&#xA;result = true"/>
-      </eAnnotations>
-      <eAnnotations source="redefines" references="#//RedefinableElement/isRedefinitionContextValid"/>
-      <eParameters name="redefined" ordered="false" lowerBound="1" eType="#//State"/>
-    </eOperations>
-    <eOperations name="isSimple" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A simple state is a state without any regions.&#xA;result = region.isEmpty()"/>
-      </eAnnotations>
-    </eOperations>
-    <eOperations name="isSubmachineState" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Only submachine states can have a reference statemachine.&#xA;result = submachine.notEmpty()"/>
-      </eAnnotations>
-    </eOperations>
-    <eOperations name="redefinitionContext" ordered="false" lowerBound="1" eType="#//Classifier">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The redefinition context of a state is the nearest containing statemachine.&#xA;result = let sm = containingStateMachine() in&#xA;if sm.context->isEmpty() or sm.general->notEmpty() then&#xA;sm&#xA;else&#xA;sm.context&#xA;endif"/>
-      </eAnnotations>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="connection" ordered="false"
-        upperBound="-1" eType="#//ConnectionPointReference" containment="true" eOpposite="#//ConnectionPointReference/state">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The entry and exit connection points used in conjunction with this (submachine) state, i.e. as targets and sources, respectively, in the region with the submachine state. A connection point reference references the corresponding definition of a connection point pseudostate in the statemachine referenced by the submachinestate."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="connectionPoint" ordered="false"
-        upperBound="-1" eType="#//Pseudostate" containment="true" eOpposite="#//Pseudostate/state">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The entry and exit pseudostates of a composite state. These can only be entry or exit Pseudostates, and they must have different names. They can only be defined for composite states."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="deferrableTrigger" ordered="false"
-        upperBound="-1" eType="#//Trigger" containment="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A list of triggers that are candidates to be retained by the state machine if they trigger no transitions out of the state (not consumed). A deferred trigger is retained until the state machine reaches a state configuration where it is no longer deferred."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="doActivity" ordered="false"
-        eType="#//Behavior" containment="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An optional behavior that is executed while being in the state. The execution starts when this state is entered, and stops either by itself, or when the state is exited, whichever comes first."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="entry" ordered="false"
-        eType="#//Behavior" containment="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An optional behavior that is executed whenever this state is entered regardless of the transition taken to reach the state. If defined, entry actions are always executed to completion prior to any internal behavior or transitions performed within the state."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="exit" ordered="false" eType="#//Behavior"
-        containment="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An optional behavior that is executed whenever this state is exited regardless of which transition was taken out of the state. If defined, exit actions are always executed to completion only after all internal activities and transition actions have completed execution."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isComposite" ordered="false"
-        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
-        changeable="false" volatile="true" transient="true" defaultValueLiteral="false"
-        derived="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A state with isComposite=true is said to be a composite state. A composite state is a state that contains at least one region."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isOrthogonal" ordered="false"
-        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
-        changeable="false" volatile="true" transient="true" defaultValueLiteral="false"
-        derived="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A state with isOrthogonal=true is said to be an orthogonal composite state. An orthogonal composite state contains two or more regions."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isSimple" ordered="false"
-        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
-        changeable="false" volatile="true" transient="true" defaultValueLiteral="true"
-        derived="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A state with isSimple=true is said to be a simple state. A simple state does not have any regions and it does not refer to any submachine state machine."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isSubmachineState" ordered="false"
-        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
-        changeable="false" volatile="true" transient="true" defaultValueLiteral="false"
-        derived="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A state with isSubmachineState=true is said to be a submachine state. Such a state refers to a state machine (submachine)."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedState" ordered="false"
-        eType="#//State">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The state of which this state is a redefinition."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="stateInvariant" ordered="false"
-        eType="#//Constraint">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies conditions that are always true when this state is the current state. In protocol state machines, state invariants are additional conditions to the preconditions of the outgoing transitions, and to the postcondition of the incoming transitions."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Namespace/ownedRule"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="submachine" ordered="false"
-        eType="#//StateMachine" eOpposite="#//StateMachine/submachineState">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The state machine that is to be inserted in place of the (submachine) state."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="region" ordered="false"
-        upperBound="-1" eType="#//Region" containment="true" eOpposite="#//Region/state">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The regions owned directly by the state."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ConnectionPointReference" eSuperTypes="#//Vertex">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A connection point reference represents a usage (as part of a submachine state) of an entry/exit point defined in the statemachine reference by the submachine state."/>
-    </eAnnotations>
-    <eOperations name="exit_pseudostates" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The exit Pseudostates must be Pseudostates with kind exitPoint.&#xA;exit->notEmpty() implies exit->forAll(e | e.kind = #exitPoint)"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="entry_pseudostates" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The entry Pseudostates must be Pseudostates with kind entryPoint.&#xA;entry->notEmpty() implies entry->forAll(e | e.kind = #entryPoint)"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="entry" ordered="false"
-        upperBound="-1" eType="#//Pseudostate">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The entryPoint kind pseudo states corresponding to this connection point."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="exit" ordered="false" upperBound="-1"
-        eType="#//Pseudostate">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The exitPoints kind pseudo states corresponding to this connection point."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="state" ordered="false"
-        eType="#//State" eOpposite="#//State/connection">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The State in which the connection point refreshens are defined."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Trigger" eSuperTypes="#//NamedElement">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A trigger relates an event to a behavior that may affect an instance of the classifier.&#xA;A trigger specification may be qualified by the port on which the event occurred."/>
-    </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="event" ordered="false"
-        lowerBound="1" eType="#//Event">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The event that causes the trigger."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="port" ordered="false" upperBound="-1"
-        eType="#//Port">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A optional port of the receiver object on which the behavioral feature is invoked."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Event" abstract="true" eSuperTypes="#//PackageableElement">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An event is the specification of some occurrence that may potentially trigger effects by an object."/>
-    </eAnnotations>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Port" eSuperTypes="#//Property">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A port is a property of a classifier that specifies a distinct interaction point between that classifier and its environment or between the (behavior of the) classifier and its internal parts. Ports are connected to properties of the classifier by connectors through which requests can be made to invoke the behavioral features of a classifier. A Port may specify the services a classifier provides (offers) to its environment as well as the services that a classifier expects (requires) of its environment.&#xA;A port has an associated protocol state machine."/>
-    </eAnnotations>
-    <eOperations name="port_destroyed" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="When a port is destroyed, all connectors attached to this port will be destroyed also.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="port_aggregation" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Port.aggregation must be composite.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="default_value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A defaultValue for port cannot be specified when the type of the Port is an Interface&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="getProvideds" ordered="false" upperBound="-1" eType="#//Interface">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Missing derivation for Port::/provided : Interface&#xA;true"/>
-        <details key="suppressedVisibility" value="true"/>
-      </eAnnotations>
-    </eOperations>
-    <eOperations name="getRequireds" ordered="false" upperBound="-1" eType="#//Interface">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Missing derivation for Port::/required : Interface&#xA;true"/>
-        <details key="suppressedVisibility" value="true"/>
-      </eAnnotations>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isBehavior" ordered="false"
-        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
-        defaultValueLiteral="false">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies whether requests arriving at this port are sent to the classifier behavior of this classifier. Such ports are referred to as behavior port. Any invocation of a behavioral feature targeted at a behavior port will be handled by the instance of the owning classifier itself, rather than by any instances that this classifier may contain."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isConjugated" ordered="false"
-        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
-        defaultValueLiteral="false">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the way that the provided and required interfaces are derived from the Port’s Type. The default value is false."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isService" ordered="false"
-        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
-        defaultValueLiteral="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If true indicates that this port is used to provide the published functionality of a classifier; if false, this port is used to implement the classifier but is not part of the essential externally-visible functionality of the classifier and can, therefore, be altered or deleted along with the internal implementation of the classifier and other properties that are considered part of its implementation."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="protocol" ordered="false"
-        eType="#//ProtocolStateMachine">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References an optional protocol state machine which describes valid interactions at this interaction point."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="provided" ordered="false"
-        upperBound="-1" eType="#//Interface" changeable="false" volatile="true" transient="true"
-        derived="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the interfaces specifying the set of operations and receptions that the classifier offers to its environment via this port, and which it will handle either directly or by forwarding it to a part of its internal structure. This association is derived according to the value of isConjugated. If isConjugated is false, provided is derived as the union of the sets of interfaces realized by the type of the port and its supertypes, or directly from the type of the port if the port is typed by an interface. If isConjugated is true, it is derived as the union of the sets of interfaces used by the type of the port and its supertypes."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedPort" ordered="false"
-        upperBound="-1" eType="#//Port">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A port may be redefined when its containing classifier is specialized. The redefining port may have additional interfaces to those that are associated with the redefined port or it may replace an interface by one of its subtypes."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Property/redefinedProperty"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="required" ordered="false"
-        upperBound="-1" eType="#//Interface" changeable="false" volatile="true" transient="true"
-        derived="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the interfaces specifying the set of operations and receptions that the classifier expects its environment to handle via this port. This association is derived according to the value of isConjugated. If isConjugated is false, required is derived as the union of the sets of interfaces used by the type of the port and its supertypes. If isConjugated is true, it is derived as the union of the sets of interfaces realized by the type of the port and its supertypes, or directly from the type of the port if the port is typed by an interface."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Transition" eSuperTypes="#//Namespace #//RedefinableElement">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A transition is a directed relationship between a source vertex and a target vertex. It may be part of a compound transition, which takes the state machine from one state configuration to another, representing the complete response of the state machine to an occurrence of an event of a particular type."/>
-    </eAnnotations>
-    <eAnnotations source="duplicates">
-      <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
-          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The query isConsistentWith() specifies that a redefining transition is consistent with a redefined transition provided that the redefining transition has the following relation to the redefined transition: A redefining transition redefines all properties of the corresponding redefined transition, except the source state and the trigger.&#xA;result = (redefinee.oclIsKindOf(Transition) and&#xA;  let trans: Transition = redefinee.oclAsType(Transition) in&#xA;    (source() = trans.source() and trigger() = tran.trigger())&#xA;redefinee.isRedefinitionContextValid(self)"/>
-        </eAnnotations>
-        <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
-        <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
-      </contents>
-      <contents xsi:type="ecore:EReference" name="redefinitionContext" ordered="false"
-          upperBound="-1" eType="#//Classifier" changeable="false" volatile="true"
-          transient="true" derived="true">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="References the classifier in which context this element may be redefined."/>
-        </eAnnotations>
-        <eAnnotations source="redefines" references="#//RedefinableElement/redefinitionContext"/>
-      </contents>
-    </eAnnotations>
-    <eOperations name="state_is_external" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A transition with kind external can source any vertex except entry points.&#xA;(kind = TransitionKind::external) implies&#xA;&#x9;not (source.oclIsKindOf(Pseudostate) and source.oclAsType(Pseudostate).kind = PseudostateKind::entryPoint)"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="join_segment_guards" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A join segment must not have guards or triggers.&#xA;(target.oclIsKindOf(Pseudostate) and target.kind = #join) implies (guard->isEmpty() and trigger->isEmpty())"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="state_is_internal" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A transition with kind internal must have a state as its source, and its source and target must be equal.&#xA;(kind = TransitionKind::internal) implies&#xA;&#x9;&#x9;(source.oclIsKindOf (State) and source = target)"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="outgoing_pseudostates" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Transitions outgoing pseudostates may not have a trigger.&#xA;source.oclIsKindOf(Pseudostate) and (source.kind &lt;> #initial)) implies trigger->isEmpty()"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="join_segment_state" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A join segment must always originate from a state.&#xA;(target.oclIsKindOf(Pseudostate) and target.kind = #join) implies (source.oclIsKindOf(State))"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="fork_segment_state" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A fork segment must always target a state.&#xA;(source.oclIsKindOf(Pseudostate) and source.kind = #fork) implies (target.oclIsKindOf(State))"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="signatures_compatible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="In case of more than one trigger, the signatures of these must be compatible in case the parameters of the signal are assigned to local variables/attributes.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="state_is_local" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A transition with kind local must have a composite state or an entry point as its source.&#xA;(kind = TransitionKind::local) implies&#xA;&#x9;&#x9;((source.oclIsKindOf (State) and source.oclAsType(State).isComposite) or&#xA;&#x9;&#x9;(source.oclIsKindOf (Pseudostate) and source.oclAsType(Pseudostate).kind = PseudostateKind::entryPoint))"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="initial_transition" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An initial transition at the topmost level (region of a statemachine) either has no trigger or it has a trigger with the stereotype >.&#xA;self.source.oclIsKindOf(Pseudostate) implies&#xA;(self.source.oclAsType(Pseudostate).kind = #initial) implies&#xA;(self.source.container = self.stateMachine.top) implies&#xA;((self.trigger->isEmpty) or&#xA;(self.trigger.stereotype.name = 'create'))&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="fork_segment_guards" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A fork segment must not have guards or triggers.&#xA;(source.oclIsKindOf(Pseudostate) and source.kind = #fork) implies (guard->isEmpty() and trigger->isEmpty())"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="containingStateMachine" ordered="false" lowerBound="1" eType="#//StateMachine">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query containingStateMachine() returns the state machine that contains the transition either directly or transitively.&#xA;result = container.containingStateMachine()"/>
-      </eAnnotations>
-    </eOperations>
-    <eOperations name="redefinitionContext" ordered="false" lowerBound="1" eType="#//Classifier">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The redefinition context of a transition is the nearest containing statemachine.&#xA;result = let sm = containingStateMachine() in&#xA;if sm.context->isEmpty() or sm.general->notEmpty() then&#xA;sm&#xA;else&#xA;sm.context&#xA;endif"/>
-      </eAnnotations>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="effect" ordered="false"
-        eType="#//Behavior" containment="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies an optional behavior to be performed when the transition fires."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="guard" ordered="false"
-        eType="#//Constraint">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A guard is a constraint that provides a fine-grained control over the firing of the transition. The guard is evaluated when an event occurrence is dispatched by the state machine. If the guard is true at that time, the transition may be enabled, otherwise, it is disabled. Guards should be pure expressions without side effects. Guard expressions with side effects are ill formed."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Namespace/ownedRule"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" ordered="false" lowerBound="1"
-        eType="#//TransitionKind" defaultValueLiteral="external">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Indicates the precise type of the transition."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedTransition" ordered="false"
-        eType="#//Transition">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The transition that is redefined by this transition."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="source" ordered="false"
-        lowerBound="1" eType="#//Vertex">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Designates the originating vertex (state or pseudostate) of the transition."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="target" ordered="false"
-        lowerBound="1" eType="#//Vertex">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Designates the target vertex that is reached when the transition is taken."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="trigger" ordered="false"
-        upperBound="-1" eType="#//Trigger" containment="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the triggers that may fire the transition."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="container" ordered="false"
-        lowerBound="1" eType="#//Region" eOpposite="#//Region/transition">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Designates the region that owns this transition."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EEnum" name="TransitionKind">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="TransitionKind is an enumeration type."/>
-    </eAnnotations>
-    <eLiterals name="internal">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Implies that the transition, if triggered, occurs without exiting or entering the source state. Thus, it does not cause a state change. This means that the entry or exit condition of the source state will not be invoked. An internal transition can be taken even if the state machine is in one or more regions nested within this state."/>
-      </eAnnotations>
-    </eLiterals>
-    <eLiterals name="local" value="1">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Implies that the transition, if triggered, will not exit the composite (source) state, but it will apply to any state within the composite state, and these will be exited and entered."/>
-      </eAnnotations>
-    </eLiterals>
-    <eLiterals name="external" value="2">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Implies that the transition, if triggered, will exit the composite (source) state."/>
-      </eAnnotations>
-    </eLiterals>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EEnum" name="PseudostateKind">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="PseudostateKind is an enumeration type."/>
-    </eAnnotations>
-    <eLiterals name="initial">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An initial pseudostate represents a default vertex that is the source for a single transition to the default state of a composite state. There can be at most one initial vertex in a region. The outgoing transition from the initial vertex may have a behavior, but not a trigger or guard."/>
-      </eAnnotations>
-    </eLiterals>
-    <eLiterals name="deepHistory" value="1">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="DeepHistory represents the most recent active configuration of the composite state that directly contains this pseudostate; e.g. the state configuration that was active when the composite state was last exited. A composite state can have at most one deep history vertex. At most one transition may originate from the history connector to the default deep history state. This transition is taken in case the composite state had never been active before. Entry actions of states entered on the path to the state represented by a deep history are performed."/>
-      </eAnnotations>
-    </eLiterals>
-    <eLiterals name="shallowHistory" value="2">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="ShallowHistory represents the most recent active substate of its containing state (but not the substates of that substate). A composite state can have at most one shallow history vertex. A transition coming into the shallow history vertex is equivalent to a transition coming into the most recent active substate of a state. At most one transition may originate from the history connector to the default shallow history state. This transition is taken in case the composite state had never been active before. Entry actions of states entered on the path to the state represented by a shallow history are performed."/>
-      </eAnnotations>
-    </eLiterals>
-    <eLiterals name="join" value="3">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Join vertices serve to merge several transitions emanating from source vertices in different orthogonal regions. The transitions entering a join vertex cannot have guards or triggers."/>
-      </eAnnotations>
-    </eLiterals>
-    <eLiterals name="fork" value="4">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Fork vertices serve to split an incoming transition into two or more transitions terminating on orthogonal target vertices (i.e. vertices in different regions of a composite state). The segments outgoing from a fork vertex must not have guards or triggers."/>
-      </eAnnotations>
-    </eLiterals>
-    <eLiterals name="junction" value="5">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Junction vertices are semantic-free vertices that are used to chain together multiple transitions. They are used to construct compound transition paths between states. For example, a junction can be used to converge multiple incoming transitions into a single outgoing transition representing a shared transition path (this is known as an merge). Conversely, they can be used to split an incoming transition into multiple outgoing transition segments with different guard conditions. This realizes a static conditional branch. (In the latter case, outgoing transitions whose guard conditions evaluate to false are disabled. A predefined guard denoted 'else' may be defined for at most one outgoing transition. This transition is enabled if all the guards labeling the other transitions are false.) Static conditional branches are distinct from dynamic conditional branches that are realized by choice vertices (described below)."/>
-      </eAnnotations>
-    </eLiterals>
-    <eLiterals name="choice" value="6">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Choice vertices which, when reached, result in the dynamic evaluation of the guards of the triggers of its outgoing transitions. This realizes a dynamic conditional branch. It allows splitting of transitions into multiple outgoing paths such that the decision on which path to take may be a function of the results of prior actions performed in the same run-tocompletion step. If more than one of the guards evaluates to true, an arbitrary one is selected. If none of the guards evaluates to true, then the model is considered ill-formed. (To avoid this, it is recommended to define one outgoing transition with the predefined else guard for every choice vertex.) Choice vertices should be distinguished from static branch points that are based on junction points (described above)."/>
-      </eAnnotations>
-    </eLiterals>
-    <eLiterals name="entryPoint" value="7">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An entry point pseudostate is an entry point of a state machine or composite state. In each region of the state machine or composite state it has a single transition to a vertex within the same region."/>
-      </eAnnotations>
-    </eLiterals>
-    <eLiterals name="exitPoint" value="8">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An exit point pseudostate is an exit point of a state machine or composite state. Entering an exit point within any region of the composite state or state machine referenced by a submachine state implies the exit of this composite state or submachine state and the triggering of the transition that has this exit point as source in the state machine enclosing the submachine or composite state."/>
-      </eAnnotations>
-    </eLiterals>
-    <eLiterals name="terminate" value="9">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Entering a terminate pseudostate implies that the execution of this state machine by means of its context object is terminated. The state machine does not exit any states nor does it perform any exit actions other than those associated with the transition leading to the terminate pseudostate. Entering a terminate pseudostate is equivalent to invoking a DestroyObjectAction."/>
-      </eAnnotations>
-    </eLiterals>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ProtocolConformance" eSuperTypes="#//DirectedRelationship">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="Protocol state machines can be redefined into more specific protocol state machines, or into behavioral state machines. Protocol conformance declares that the specific protocol state machine specifies a protocol that conforms to the general state machine one, or that the specific behavioral state machine abide by the protocol of the general protocol state machine."/>
-    </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="generalMachine" ordered="false"
-        lowerBound="1" eType="#//ProtocolStateMachine">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the protocol state machine to which the specific state machine conforms."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="specificMachine" ordered="false"
-        lowerBound="1" eType="#//ProtocolStateMachine" eOpposite="#//ProtocolStateMachine/conformance">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the state machine which conforms to the general state machine."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//DirectedRelationship/source #//Element/owner"/>
-    </eStructuralFeatures>
-  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="OperationTemplateParameter" eSuperTypes="#//TemplateParameter">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="An operation template parameter exposes an operation as a formal parameter for a template."/>
@@ -6639,18 +6778,6 @@
       </contents>
     </eAnnotations>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="StructuralFeature" abstract="true" eSuperTypes="#//Feature #//TypedElement #//MultiplicityElement">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="By specializing multiplicity element, it supports a multiplicity that specifies valid cardinalities for the collection of values associated with an instantiation of the structural feature.&#xA;A structural feature is a typed feature of a classifier that specifies the structure of instances of the classifier."/>
-    </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isReadOnly" ordered="false"
-        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
-        defaultValueLiteral="false">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="States whether the feature's value may be modified by a client."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-  </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="AggregationKind">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="AggregationKind is an enumeration type that specifies the literals for defining the kind of aggregation of a property."/>
@@ -6827,27 +6954,8 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="InstanceSpecification" eSuperTypes="#//DeploymentTarget #//PackageableElement #//DeployedArtifact">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An instance specification is a model element that represents an instance in a modeled system.&#xA;An instance specification has the capability of being a deployment target in a deployment relationship, in the case that it is an instance of a node. It is also has the capability of being a deployed artifact, if it is an instance of an artifact."/>
+      <details key="documentation" value="An instance specification has the capability of being a deployment target in a deployment relationship, in the case that it is an instance of a node. It is also has the capability of being a deployed artifact, if it is an instance of an artifact.&#xA;An instance specification is a model element that represents an instance in a modeled system."/>
     </eAnnotations>
-    <eOperations name="deployment_artifact" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An InstanceSpecification can be a DeployedArtifact if it is the instance specification of an Artifact.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="structural_feature" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="One structural feature (including the same feature inherited from multiple classifiers) is the defining feature of at most one slot in an instance specification.&#xA;classifier->forAll(c | (c.allFeatures()->forAll(f | slot->select(s | s.definingFeature = f)->size() &lt;= 1)))"/>
@@ -6905,6 +7013,25 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="deployment_artifact" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="An InstanceSpecification can be a DeployedArtifact if it is the instance specification of an Artifact.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="classifier" ordered="false"
         upperBound="-1" eType="#//Classifier">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -6965,9 +7092,9 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A collaboration use represents one particular use of a collaboration to explain the relationships between the properties of a classifier. A collaboration use shows how the pattern described by a collaboration is applied in a given context, by binding specific entities from that context to the roles of the collaboration. Depending on the context, these entities could be structural features of a classifier, instance specifications, or even roles in some containing collaboration. There may be multiple occurrences of a given collaboration within a classifier, each involving a different set of roles and connectors. A given role or connector may be involved in multiple occurrences of the same or different collaborations. Associated dependencies map features of the collaboration type to features in the classifier. These dependencies indicate which role in the classifier plays which role in the collaboration."/>
     </eAnnotations>
-    <eOperations name="client_elements" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="connectors" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="All the client elements of a roleBinding are in one classifier and all supplier elements of a roleBinding are in one collaboration and they are compatible.&#xA;true"/>
+        <details key="documentation" value="The connectors in the classifier connect according to the connectors in the collaboration&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -7003,9 +7130,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="connectors" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="client_elements" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The connectors in the classifier connect according to the connectors in the collaboration&#xA;true"/>
+        <details key="documentation" value="All the client elements of a roleBinding are in one classifier and all supplier elements of a roleBinding are in one collaboration and they are compatible.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -7048,225 +7175,6 @@
       <eAnnotations source="subsets" references="#//StructuredClassifier/role"/>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="StructuredClassifier" abstract="true"
-      eSuperTypes="#//Classifier">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A structured classifier is an abstract metaclass that represents any classifier whose behavior can be fully or partly described by the collaboration of owned or referenced instances."/>
-    </eAnnotations>
-    <eOperations name="multiplicities" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The multiplicities on connected elements must be consistent.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="createOwnedAttribute" ordered="false" lowerBound="1" eType="#//Property">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Creates a property with the specified name, type, lower bound, and upper bound as an owned attribute of this structured classifier."/>
-      </eAnnotations>
-      <eParameters name="name" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The name for the new attribute, or null."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="type" ordered="false" eType="#//Type">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The type for the new attribute, or null."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="lower" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The lower bound for the new attribute."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="upper" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//UnlimitedNatural">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The upper bound for the new attribute."/>
-        </eAnnotations>
-      </eParameters>
-    </eOperations>
-    <eOperations name="getParts" ordered="false" upperBound="-1" eType="#//Property">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Missing derivation for StructuredClassifier::/part : Property&#xA;true"/>
-        <details key="suppressedVisibility" value="true"/>
-      </eAnnotations>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
-        eType="#//Property" containment="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the properties owned by the classifier."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Classifier/attribute #//StructuredClassifier/role #//Namespace/ownedMember"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedConnector" ordered="false"
-        upperBound="-1" eType="#//Connector" containment="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the connectors owned by the classifier."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/ownedMember"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="part" ordered="false" upperBound="-1"
-        eType="#//Property" changeable="false" volatile="true" transient="true" derived="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the properties specifying instances that the classifier owns by composition. This association is derived, selecting those owned properties where isComposite is true."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="role" ordered="false" upperBound="-1"
-        eType="#//ConnectableElement" changeable="false" volatile="true" transient="true"
-        derived="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the roles that instances may play in this classifier."/>
-      </eAnnotations>
-      <eAnnotations source="union"/>
-      <eAnnotations source="subsets" references="#//Namespace/member"/>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Connector" eSuperTypes="#//Feature">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A delegation connector is a connector that links the external contract of a component (as specified by its ports) to the realization of that behavior. It represents the forwarding of events (operation requests and events): a signal that arrives at a port that has a delegation connector to one or more parts or ports on parts will be passed on to those targets for handling. An assembly connector is a connector between two or more parts or ports on parts that defines that one or more parts provide the services that other parts use.&#xA;Specifies a link that enables communication between two or more instances. This link may be an instance of an association, or it may represent the possibility of the instances being able to communicate because their identities are known by virtue of being passed in as parameters, held in variables or slots, or because the communicating instances are the same instance. The link may be realized by something as simple as a pointer or by something as complex as a network connection. In contrast to associations, which specify links between any instance of the associated classifiers, connectors specify links between instances playing the connected parts only."/>
-    </eAnnotations>
-    <eOperations name="types" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The types of the connectable elements that the ends of a connector are attached to must conform to the types of the association ends of the association that types the connector, if any.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="roles" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The ConnectableElements attached as roles to each ConnectorEnd owned by a Connector must be roles of the Classifier that owned the Connector, or they must be ports of such roles.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="between_interfaces_ports" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Each feature of each of the required interfaces of each Port or Part at the end of a connector must have at least one compatible feature among the features of the provided interfaces of Ports or Parts at the other ends, where the required set of (interface) features of a delegating port from the context of the delegating connector is the set of features that exist in the port's provided interfaces, and the provided set of (interface) features of a delegating port from the context of the delegating connector is the set of features that exist in the port's required interfaces.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="compatible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The connectable elements attached to the ends of a connector must be compatible.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="getKind" ordered="false" lowerBound="1" eType="#//ConnectorKind">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Missing derivation for Connector::/kind : ConnectorKind&#xA;result =&#xA;if end->exists(&#xA;&#x9;&#x9;role.oclIsKindOf(Port) &#xA;&#x9;&#x9;and partWithPort->isEmpty()&#xA;&#x9;&#x9;and not role.oclAsType(Port).isBehavior)&#xA;then ConnectorKind::delegation &#xA;else ConnectorKind::assembly &#xA;endif"/>
-        <details key="suppressedVisibility" value="true"/>
-      </eAnnotations>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="contract" ordered="false"
-        upperBound="-1" eType="#//Behavior">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The set of Behaviors that specify the valid interaction patterns across the connector."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="end" lowerBound="2" upperBound="-1"
-        eType="#//ConnectorEnd" containment="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A connector consists of at least two connector ends, each representing the participation of instances of the classifiers typing the connectable elements attached to this end. The set of connector ends is ordered."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" ordered="false" lowerBound="1"
-        eType="#//ConnectorKind" changeable="false" volatile="true" transient="true"
-        derived="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Indicates the kind of connector. This is derived: a connector with one or more ends connected to a Port which is not on a Part and which is not a behavior port is a delegation; otherwise it is an assembly."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedConnector" ordered="false"
-        upperBound="-1" eType="#//Connector">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A connector may be redefined when its containing classifier is specialized. The redefining connector may have a type that specializes the type of the redefined connector. The types of the connector ends of the redefining connector may specialize the types of the connector ends of the redefined connector. The properties of the connector ends of the redefining connector may be replaced."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" eType="#//Association">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An optional association that specifies the link corresponding to this connector."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EEnum" name="ConnectorKind">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="ConnectorKind is an enumeration type."/>
-    </eAnnotations>
-    <eLiterals name="assembly">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Indicates that the connector is an assembly connector."/>
-      </eAnnotations>
-    </eLiterals>
-    <eLiterals name="delegation" value="1">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Indicates that the connector is a delegation connector."/>
-      </eAnnotations>
-    </eLiterals>
-  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Generalization" eSuperTypes="#//DirectedRelationship">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A generalization is a taxonomic relationship between a more general classifier and a more specific classifier. Each instance of the specific classifier is also an indirect instance of the general classifier. Thus, the specific classifier inherits the features of the more general classifier.&#xA;A generalization relates a specific classifier to a more general classifier, and is owned by the specific classifier."/>
@@ -7315,16 +7223,16 @@
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="References the specializing classifier in the Generalization relationship."/>
       </eAnnotations>
-      <eAnnotations source="subsets" references="#//DirectedRelationship/source #//Element/owner"/>
+      <eAnnotations source="subsets" references="#//Element/owner #//DirectedRelationship/source"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="GeneralizationSet" eSuperTypes="#//PackageableElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A generalization set is a packageable element whose instances define collections of subsets of generalization relationships."/>
     </eAnnotations>
-    <eOperations name="generalization_same_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="maps_to_generalization_set" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Every Generalization associated with a particular GeneralizationSet must have the same general Classifier.&#xA;generalization->collect(g | g.general)->asSet()->size() &lt;= 1"/>
+        <details key="documentation" value="The Classifier that maps to a GeneralizationSet may neither be a specific nor a general Classifier in any of the Generalization relationships defined for that GeneralizationSet. In other words, a power type may not be an instance of itself nor may its instances be its subclasses.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -7341,9 +7249,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="maps_to_generalization_set" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="generalization_same_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The Classifier that maps to a GeneralizationSet may neither be a specific nor a general Classifier in any of the Generalization relationships defined for that GeneralizationSet. In other words, a power type may not be an instance of itself nor may its instances be its subclasses.&#xA;true"/>
+        <details key="documentation" value="Every Generalization associated with a particular GeneralizationSet must have the same general Classifier.&#xA;generalization->collect(g | g.general)->asSet()->size() &lt;= 1"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -7454,28 +7362,9 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A use case is the specification of a set of actions performed by a system, which yields an observable result that is, typically, of value for one or more actors or other stakeholders of the system."/>
     </eAnnotations>
-    <eOperations name="binary_associations" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="must_have_name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="UseCases can only be involved in binary Associations.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="no_association_to_use_case" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="UseCases can not have Associations to UseCases specifying the same subject.&#xA;true"/>
+        <details key="documentation" value="A UseCase must have a name.&#xA;self.name -> notEmpty ()"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -7511,9 +7400,28 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="must_have_name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="binary_associations" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A UseCase must have a name.&#xA;self.name -> notEmpty ()"/>
+        <details key="documentation" value="UseCases can only be involved in binary Associations.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="no_association_to_use_case" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="UseCases can not have Associations to UseCases specifying the same subject.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -7611,7 +7519,7 @@
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="References the use case that represents the extension and owns the extend relationship."/>
       </eAnnotations>
-      <eAnnotations source="subsets" references="#//NamedElement/namespace #//DirectedRelationship/source"/>
+      <eAnnotations source="subsets" references="#//DirectedRelationship/source #//NamedElement/namespace"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ExtensionPoint" eSuperTypes="#//RedefinableElement">
@@ -7661,7 +7569,7 @@
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="References the use case which will include the addition and owns the include relationship."/>
       </eAnnotations>
-      <eAnnotations source="subsets" references="#//NamedElement/namespace #//DirectedRelationship/source"/>
+      <eAnnotations source="subsets" references="#//DirectedRelationship/source #//NamedElement/namespace"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Substitution" eSuperTypes="#//Realization">
@@ -7680,14 +7588,9 @@
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Instances of the substituting classifier are runtime substitutable where instances of the contract classifier are expected."/>
       </eAnnotations>
-      <eAnnotations source="subsets" references="#//Dependency/client #//Element/owner"/>
+      <eAnnotations source="subsets" references="#//Element/owner #//Dependency/client"/>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Realization" eSuperTypes="#//Abstraction">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="Realization is a specialized abstraction relationship between two sets of model elements, one representing a specification (the supplier) and the other represents an implementation of the latter (the client). Realization can be used to model stepwise refinement, optimizations, transformations, templates, model synthesis, framework composition, etc."/>
-    </eAnnotations>
-  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ClassifierTemplateParameter" eSuperTypes="#//TemplateParameter">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A classifier template parameter exposes a classifier as a formal template parameter."/>
@@ -7734,44 +7637,139 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="InterfaceRealization" eSuperTypes="#//Realization">
+  <eClassifiers xsi:type="ecore:EClass" name="Connector" eSuperTypes="#//Feature">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An interface realization is a specialized realization relationship between a classifier and an interface. This relationship signifies that the realizing classifier conforms to the contract specified by the interface."/>
+      <details key="documentation" value="A delegation connector is a connector that links the external contract of a component (as specified by its ports) to the realization of that behavior. It represents the forwarding of events (operation requests and events): a signal that arrives at a port that has a delegation connector to one or more parts or ports on parts will be passed on to those targets for handling. An assembly connector is a connector between two or more parts or ports on parts that defines that one or more parts provide the services that other parts use.&#xA;Specifies a link that enables communication between two or more instances. This link may be an instance of an association, or it may represent the possibility of the instances being able to communicate because their identities are known by virtue of being passed in as parameters, held in variables or slots, or because the communicating instances are the same instance. The link may be realized by something as simple as a pointer or by something as complex as a network connection. In contrast to associations, which specify links between any instance of the associated classifiers, connectors specify links between instances playing the connected parts only."/>
     </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="contract" ordered="false"
-        lowerBound="1" eType="#//Interface">
+    <eOperations name="compatible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the Interface specifying the conformance contract."/>
+        <details key="documentation" value="The connectable elements attached to the ends of a connector must be compatible.&#xA;true"/>
       </eAnnotations>
-      <eAnnotations source="subsets" references="#//Dependency/supplier"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="implementingClassifier"
-        ordered="false" lowerBound="1" eType="#//BehavioredClassifier" eOpposite="#//BehavioredClassifier/interfaceRealization">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="roles" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the BehavioredClassifier that owns this Interfacerealization (i.e., the classifier that realizes the Interface to which it points)."/>
+        <details key="documentation" value="The ConnectableElements attached as roles to each ConnectorEnd owned by a Connector must be roles of the Classifier that owned the Connector, or they must be ports of such roles.&#xA;true"/>
       </eAnnotations>
-      <eAnnotations source="subsets" references="#//Dependency/client #//Element/owner"/>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="EncapsulatedClassifier" abstract="true"
-      eSuperTypes="#//StructuredClassifier">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A classifier has the ability to own ports as specific and type checked interaction points."/>
-    </eAnnotations>
-    <eOperations name="getOwnedPorts" ordered="false" upperBound="-1" eType="#//Port">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="between_interfaces_ports" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Missing derivation for EncapsulatedClassifier::/ownedPort : Port&#xA;true"/>
+        <details key="documentation" value="Each feature of each of the required interfaces of each Port or Part at the end of a connector must have at least one compatible feature among the features of the provided interfaces of Ports or Parts at the other ends, where the required set of (interface) features of a delegating port from the context of the delegating connector is the set of features that exist in the port's provided interfaces, and the provided set of (interface) features of a delegating port from the context of the delegating connector is the set of features that exist in the port's required interfaces.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="types" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The types of the connectable elements that the ends of a connector are attached to must conform to the types of the association ends of the association that types the connector, if any.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="getKind" ordered="false" lowerBound="1" eType="#//ConnectorKind">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Missing derivation for Connector::/kind : ConnectorKind&#xA;result =&#xA;if end->exists(&#xA;&#x9;&#x9;role.oclIsKindOf(Port) &#xA;&#x9;&#x9;and partWithPort->isEmpty()&#xA;&#x9;&#x9;and not role.oclAsType(Port).isBehavior)&#xA;then ConnectorKind::delegation &#xA;else ConnectorKind::assembly &#xA;endif"/>
         <details key="suppressedVisibility" value="true"/>
       </eAnnotations>
     </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedPort" ordered="false"
-        upperBound="-1" eType="#//Port" changeable="false" volatile="true" transient="true"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="contract" ordered="false"
+        upperBound="-1" eType="#//Behavior">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The set of Behaviors that specify the valid interaction patterns across the connector."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="end" lowerBound="2" upperBound="-1"
+        eType="#//ConnectorEnd" containment="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A connector consists of at least two connector ends, each representing the participation of instances of the classifiers typing the connectable elements attached to this end. The set of connector ends is ordered."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" ordered="false" lowerBound="1"
+        eType="#//ConnectorKind" changeable="false" volatile="true" transient="true"
         derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References a set of ports that an encapsulated classifier owns."/>
+        <details key="documentation" value="Indicates the kind of connector. This is derived: a connector with one or more ends connected to a Port which is not on a Part and which is not a behavior port is a delegation; otherwise it is an assembly."/>
       </eAnnotations>
-      <eAnnotations source="subsets" references="#//StructuredClassifier/ownedAttribute"/>
     </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedConnector" ordered="false"
+        upperBound="-1" eType="#//Connector">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A connector may be redefined when its containing classifier is specialized. The redefining connector may have a type that specializes the type of the redefined connector. The types of the connector ends of the redefining connector may specialize the types of the connector ends of the redefined connector. The properties of the connector ends of the redefining connector may be replaced."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" eType="#//Association">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="An optional association that specifies the link corresponding to this connector."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="ConnectorKind">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="ConnectorKind is an enumeration type."/>
+    </eAnnotations>
+    <eLiterals name="assembly">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Indicates that the connector is an assembly connector."/>
+      </eAnnotations>
+    </eLiterals>
+    <eLiterals name="delegation" value="1">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Indicates that the connector is a delegation connector."/>
+      </eAnnotations>
+    </eLiterals>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Image" eSuperTypes="#//Element">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -7808,9 +7806,9 @@
         <eAnnotations source="redefines" references="#//ValueSpecification/stringValue"/>
       </contents>
     </eAnnotations>
-    <eOperations name="language_body_size" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="only_return_result_parameters" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If the language attribute is not empty, then the size of the body and language arrays must be the same.&#xA;language->notEmpty() implies (body->size() = language->size())"/>
+        <details key="documentation" value="The behavior may only have return result parameters.&#xA;self.behavior.notEmpty() implies&#xA;  self.behavior.ownedParameters->select(p | p.direction&lt;>#return)->isEmpty()"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -7846,9 +7844,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="only_return_result_parameters" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="language_body_size" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The behavior may only have return result parameters.&#xA;self.behavior.notEmpty() implies&#xA;  self.behavior.ownedParameters->select(p | p.direction&lt;>#return)->isEmpty()"/>
+        <details key="documentation" value="If the language attribute is not empty, then the size of the body and language arrays must be the same.&#xA;language->notEmpty() implies (body->size() = language->size())"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -7872,7 +7870,7 @@
     </eOperations>
     <eOperations name="isNonNegative" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query isNonNegative() tells whether an integer expression has a non-negative value.&#xA;self.isIntegral()&#xA;result = false"/>
+        <details key="documentation" value="The query isNonNegative() tells whether an integer expression has a non-negative value.&#xA;result = false&#xA;self.isIntegral()"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="isPositive" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
@@ -7923,25 +7921,6 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="An accept call action is an accept event action representing the receipt of a synchronous call request. In addition to the normal operation parameters, the action produces an output that is needed later to supply the information to the reply action necessary to return control to the caller. This action is for synchronous calls. If it is used to handle an asynchronous call, execution of the subsequent reply action will complete immediately with no effects."/>
     </eAnnotations>
-    <eOperations name="result_pins" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The result pins must match the in and inout parameters of the operation specified by the trigger event in number, type, and order.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="trigger_call_event" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="The trigger event must be a CallEvent.&#xA;trigger.event.oclIsKindOf(CallEvent)"/>
@@ -7980,21 +7959,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="returnInformation" ordered="false"
-        lowerBound="1" eType="#//OutputPin" containment="true">
+    <eOperations name="result_pins" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Pin where a value is placed containing sufficient information to perform a subsequent reply and return control to the caller. The contents of this value are opaque. It can be passed and copied but it cannot be manipulated by the model."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Action/output"/>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="AcceptEventAction" eSuperTypes="#//Action">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A accept event action is an action that waits for the occurrence of an event meeting specified conditions."/>
-    </eAnnotations>
-    <eOperations name="trigger_events" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If the trigger events are all TimeEvents, there is exactly one output pin.&#xA;true"/>
+        <details key="documentation" value="The result pins must match the in and inout parameters of the operation specified by the trigger event in number, type, and order.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -8011,6 +7978,18 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="returnInformation" ordered="false"
+        lowerBound="1" eType="#//OutputPin" containment="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Pin where a value is placed containing sufficient information to perform a subsequent reply and return control to the caller. The contents of this value are opaque. It can be passed and copied but it cannot be manipulated by the model."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Action/output"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="AcceptEventAction" eSuperTypes="#//Action">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A accept event action is an action that waits for the occurrence of an event meeting specified conditions."/>
+    </eAnnotations>
     <eOperations name="no_input_pins" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="AcceptEventActions may have no input pins.&#xA;true"/>
@@ -8030,9 +8009,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="no_output_pins" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="trigger_events" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="There are no output pins if the trigger events are only ChangeEvents, or if they are only CallEvents when this action is an instance of AcceptEventAction and not an instance of a descendant of AcceptEventAction (such as AcceptCallAction).&#xA;true"/>
+        <details key="documentation" value="If the trigger events are all TimeEvents, there is exactly one output pin.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -8068,6 +8047,25 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="no_output_pins" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="There are no output pins if the trigger events are only ChangeEvents, or if they are only CallEvents when this action is an instance of AcceptEventAction and not an instance of a descendant of AcceptEventAction (such as AcceptCallAction).&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="isUnmarshall" ordered="false"
         lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
         defaultValueLiteral="false">
@@ -8092,7 +8090,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Action" abstract="true" eSuperTypes="#//ExecutableNode">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An action has pre- and post-conditions.&#xA;An action is a named element that is the fundamental unit of executable functionality. The execution of an action represents some transformation or processing in the modeled system, be it a computer system or otherwise.&#xA;An action represents a single step within an activity, that is, one that is not further decomposed within the activity."/>
+      <details key="documentation" value="An action has pre- and post-conditions.&#xA;An action represents a single step within an activity, that is, one that is not further decomposed within the activity.&#xA;An action is a named element that is the fundamental unit of executable functionality. The execution of an action represents some transformation or processing in the modeled system, be it a computer system or otherwise."/>
     </eAnnotations>
     <eOperations name="getContext" ordered="false" eType="#//Classifier">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -8147,7 +8145,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ExecutableNode" abstract="true" eSuperTypes="#//ActivityNode">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An executable node is an abstract class for activity nodes that may be executed. It is used as an attachment point for exception handlers."/>
+      <details key="documentation" value="An executable node is an abstract class for activity nodes that may be executed. It is used as an attachment point for exception handlers.&#xA;An executable node is an abstract class for activity nodes that may be executed. It is used as an attachment point for exception handlers."/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="handler" ordered="false"
         upperBound="-1" eType="#//ExceptionHandler" containment="true" eOpposite="#//ExceptionHandler/protectedNode">
@@ -8200,20 +8198,12 @@
       </eParameters>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="activity" ordered="false"
-        eType="#//Activity" eOpposite="#//Activity/node">
+        eType="#//Activity" volatile="true" transient="true" derived="true" eOpposite="#//Activity/node">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Activity containing the node."/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/owner"/>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="inGroup" ordered="false"
-        upperBound="-1" eType="#//ActivityGroup" changeable="false" volatile="true"
-        transient="true" derived="true" eOpposite="#//ActivityGroup/containedNode">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Groups containing the node."/>
-      </eAnnotations>
-      <eAnnotations source="union"/>
-    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="inPartition" ordered="false"
         upperBound="-1" eType="#//ActivityPartition" eOpposite="#//ActivityPartition/node">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -8226,7 +8216,7 @@
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Structured activity node containing the node."/>
       </eAnnotations>
-      <eAnnotations source="subsets" references="#//Element/owner #//ActivityNode/inGroup"/>
+      <eAnnotations source="subsets" references="#//ActivityNode/inGroup #//Element/owner"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="inInterruptibleRegion"
         ordered="false" upperBound="-1" eType="#//InterruptibleActivityRegion" eOpposite="#//InterruptibleActivityRegion/node">
@@ -8247,6 +8237,14 @@
         <details key="documentation" value="Edges that have the node as target."/>
       </eAnnotations>
     </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="inGroup" ordered="false"
+        upperBound="-1" eType="#//ActivityGroup" changeable="false" volatile="true"
+        transient="true" derived="true" eOpposite="#//ActivityGroup/containedNode">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Groups containing the node."/>
+      </eAnnotations>
+      <eAnnotations source="union"/>
+    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedNode" ordered="false"
         upperBound="-1" eType="#//ActivityNode">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -8259,6 +8257,25 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="An activity is the specification of parameterized behavior as the coordinated sequencing of subordinate units whose individual elements are actions."/>
     </eAnnotations>
+    <eOperations name="activity_parameter_node" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The nodes of the activity must include one ActivityParameterNode for each parameter.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eOperations name="autonomous" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="An activity cannot be autonomous and have a classifier or behavioral feature context at the same time.&#xA;true"/>
@@ -8297,31 +8314,14 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="activity_parameter_node" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The nodes of the activity must include one ActivityParameterNode for each parameter.&#xA;true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedGroup" ordered="false"
+        upperBound="-1" eType="#//ActivityGroup" containment="true">
+      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+        <details key="name" value="group"/>
+        <details key="kind" value="element"/>
       </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="getStructuredNodes" ordered="false" upperBound="-1" eType="#//StructuredActivityNode">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Missing derivation for Activity::/structuredNode : StructuredActivityNode&#xA;true"/>
-        <details key="suppressedVisibility" value="true"/>
-      </eAnnotations>
-    </eOperations>
+      <eAnnotations source="subsets" references="#//Activity/group"/>
+    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="edge" ordered="false" upperBound="-1"
         eType="#//ActivityEdge" containment="true" eOpposite="#//ActivityEdge/activity">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -8329,21 +8329,6 @@
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="group" ordered="false"
-        upperBound="-1" eType="#//ActivityGroup" containment="true" eOpposite="#//ActivityGroup/inActivity">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Top-level groups in the activity."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="structuredNode" ordered="false"
-        upperBound="-1" eType="#//StructuredActivityNode" changeable="false" volatile="true"
-        transient="true" derived="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Top-level structured nodes in the activity."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Activity/group #//Activity/node"/>
-    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="variable" ordered="false"
         upperBound="-1" eType="#//Variable" containment="true" eOpposite="#//Variable/activityScope">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -8351,6 +8336,25 @@
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
     </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="group" ordered="false"
+        upperBound="-1" eType="#//ActivityGroup" volatile="true" transient="true"
+        derived="true" eOpposite="#//ActivityGroup/inActivity">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Top-level groups in the activity."/>
+      </eAnnotations>
+      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+        <details key="kind" value="attribute"/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedNode" ordered="false"
+        upperBound="-1" eType="#//ActivityNode" containment="true">
+      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+        <details key="name" value="node"/>
+        <details key="kind" value="element"/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Activity/node"/>
+    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="isReadOnly" ordered="false"
         lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
         defaultValueLiteral="false">
@@ -8370,19 +8374,132 @@
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Top-level partitions in the activity."/>
       </eAnnotations>
-      <eAnnotations source="subsets" references="#//Activity/group"/>
+      <eAnnotations source="subsets" references="#//Activity/group #//Activity/ownedGroup"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="structuredNode" ordered="false"
+        upperBound="-1" eType="#//StructuredActivityNode" containment="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Top-level structured nodes in the activity."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Activity/group #//Activity/node"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="node" ordered="false" upperBound="-1"
-        eType="#//ActivityNode" containment="true" eOpposite="#//ActivityNode/activity">
+        eType="#//ActivityNode" volatile="true" transient="true" derived="true" eOpposite="#//ActivityNode/activity">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Nodes coordinated by the activity."/>
       </eAnnotations>
+      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+        <details key="kind" value="attribute"/>
+      </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="ActivityGroup" abstract="true" eSuperTypes="#//NamedElement">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="ActivityGroup is an abstract class for defining sets of nodes and edges in an activity."/>
+    </eAnnotations>
+    <eOperations name="group_owned" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Groups may only be owned by activities or groups.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="not_contained" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="No node or edge in a group may be contained by its subgroups or its containing groups, transitively.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="nodes_and_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="All nodes and edges of the group must be in the same activity as the group.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="containedEdge" ordered="false"
+        upperBound="-1" eType="#//ActivityEdge" changeable="false" volatile="true"
+        transient="true" derived="true" eOpposite="#//ActivityEdge/inGroup">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Edges immediately contained in the group."/>
+      </eAnnotations>
+      <eAnnotations source="union"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="containedNode" ordered="false"
+        upperBound="-1" eType="#//ActivityNode" changeable="false" volatile="true"
+        transient="true" derived="true" eOpposite="#//ActivityNode/inGroup">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Nodes immediately contained in the group."/>
+      </eAnnotations>
+      <eAnnotations source="union"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="inActivity" ordered="false"
+        eType="#//Activity" volatile="true" transient="true" derived="true" eOpposite="#//Activity/group">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Activity containing the group."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/owner"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="subgroup" ordered="false"
+        upperBound="-1" eType="#//ActivityGroup" changeable="false" volatile="true"
+        transient="true" derived="true" eOpposite="#//ActivityGroup/superGroup">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Groups immediately contained in the group."/>
+      </eAnnotations>
+      <eAnnotations source="union"/>
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="superGroup" ordered="false"
+        eType="#//ActivityGroup" changeable="false" volatile="true" transient="true"
+        derived="true" eOpposite="#//ActivityGroup/subgroup">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Group immediately containing the group."/>
+      </eAnnotations>
+      <eAnnotations source="union"/>
+      <eAnnotations source="subsets" references="#//Element/owner"/>
+    </eStructuralFeatures>
+  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ActivityEdge" abstract="true" eSuperTypes="#//RedefinableElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An activity edge is an abstract class for directed connections between two activity nodes.&#xA;Activity edges can be contained in interruptible regions."/>
+      <details key="documentation" value="Activity edges can be contained in interruptible regions.&#xA;An activity edge is an abstract class for directed connections between two activity nodes."/>
     </eAnnotations>
     <eOperations name="owned" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -8441,6 +8558,13 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="activity" ordered="false"
+        eType="#//Activity" eOpposite="#//Activity/edge">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Activity containing the edge."/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/owner"/>
+    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="guard" ordered="false"
         lowerBound="1" eType="#//ValueSpecification" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -8448,14 +8572,6 @@
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="inGroup" ordered="false"
-        upperBound="-1" eType="#//ActivityGroup" changeable="false" volatile="true"
-        transient="true" derived="true" eOpposite="#//ActivityGroup/containedEdge">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Groups containing the edge."/>
-      </eAnnotations>
-      <eAnnotations source="union"/>
-    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="inPartition" ordered="false"
         upperBound="-1" eType="#//ActivityPartition" eOpposite="#//ActivityPartition/edge">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -8502,113 +8618,11 @@
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="activity" ordered="false"
-        eType="#//Activity" eOpposite="#//Activity/edge">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Activity containing the edge."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Element/owner"/>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ActivityGroup" abstract="true" eSuperTypes="#//NamedElement">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="ActivityGroup is an abstract class for defining sets of nodes and edges in an activity."/>
-    </eAnnotations>
-    <eOperations name="nodes_and_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="All nodes and edges of the group must be in the same activity as the group.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="group_owned" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Groups may only be owned by activities or groups.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="not_contained" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="No node or edge in a group may be contained by its subgroups or its containing groups, transitively.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="containedNode" ordered="false"
-        upperBound="-1" eType="#//ActivityNode" changeable="false" volatile="true"
-        transient="true" derived="true" eOpposite="#//ActivityNode/inGroup">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Nodes immediately contained in the group."/>
-      </eAnnotations>
-      <eAnnotations source="union"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="inActivity" ordered="false"
-        eType="#//Activity" eOpposite="#//Activity/group">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Activity containing the group."/>
-      </eAnnotations>
-      <eAnnotations source="subsets" references="#//Element/owner"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="subgroup" ordered="false"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="inGroup" ordered="false"
         upperBound="-1" eType="#//ActivityGroup" changeable="false" volatile="true"
-        transient="true" derived="true" eOpposite="#//ActivityGroup/superGroup">
+        transient="true" derived="true" eOpposite="#//ActivityGroup/containedEdge">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Groups immediately contained in the group."/>
-      </eAnnotations>
-      <eAnnotations source="union"/>
-      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="superGroup" ordered="false"
-        eType="#//ActivityGroup" changeable="false" volatile="true" transient="true"
-        derived="true" eOpposite="#//ActivityGroup/subgroup">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Group immediately containing the group."/>
-      </eAnnotations>
-      <eAnnotations source="union"/>
-      <eAnnotations source="subsets" references="#//Element/owner"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="containedEdge" ordered="false"
-        upperBound="-1" eType="#//ActivityEdge" changeable="false" volatile="true"
-        transient="true" derived="true" eOpposite="#//ActivityEdge/inGroup">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Edges immediately contained in the group."/>
+        <details key="documentation" value="Groups containing the edge."/>
       </eAnnotations>
       <eAnnotations source="union"/>
     </eStructuralFeatures>
@@ -8617,6 +8631,25 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="An activity partition is a kind of activity group for identifying actions that have some characteristic in common."/>
     </eAnnotations>
+    <eOperations name="represents_part" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="If a partition represents a part, then all the non-external partitions in the same dimension and at the same level of nesting in that dimension must represent parts directly contained in the internal structure of the same classifier.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eOperations name="represents_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="If a non-external partition represents a classifier and is contained in another partition, then the containing partition must represent a classifier, and the classifier of the subpartition must be nested in the classifier represented by the containing partition, or be at the contained end of a strong composition association with the classifier represented by the containing partition.&#xA;true"/>
@@ -8655,25 +8688,6 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="represents_part" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If a partition represents a part, then all the non-external partitions in the same dimension and at the same level of nesting in that dimension must represent parts directly contained in the internal structure of the same classifier.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="dimension_not_contained" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="A partition with isDimension = true may not be contained by another partition.&#xA;true"/>
@@ -8744,20 +8758,20 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="StructuredActivityNode" eSuperTypes="#//Action #//Namespace #//ActivityGroup">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="Because of the concurrent nature of the execution of actions within and across activities, it can be difficult to guarantee the consistent access and modification of object memory. In order to avoid race conditions or other concurrency-related problems, it is sometimes necessary to isolate the effects of a group of actions from the effects of actions outside the group. This may be indicated by setting the mustIsolate attribute to true on a structured activity node. If a structured activity node is &quot;isolated,&quot; then any object used by an action within the node cannot be accessed by any action outside the node until the structured activity node as a whole completes. Any concurrent actions that would result in accessing such objects are required to have their execution deferred until the completion of the node.&#xA;A structured activity node is an executable activity node that may have an expansion into subordinate nodes as an activity group. The subordinate nodes must belong to only one structured activity node, although they may be nested."/>
+      <details key="documentation" value="A structured activity node is an executable activity node that may have an expansion into subordinate nodes as an activity group. The subordinate nodes must belong to only one structured activity node, although they may be nested.&#xA;Because of the concurrent nature of the execution of actions within and across activities, it can be difficult to guarantee the consistent access and modification of object memory. In order to avoid race conditions or other concurrency-related problems, it is sometimes necessary to isolate the effects of a group of actions from the effects of actions outside the group. This may be indicated by setting the mustIsolate attribute to true on a structured activity node. If a structured activity node is &quot;isolated,&quot; then any object used by an action within the node cannot be accessed by any action outside the node until the structured activity node as a whole completes. Any concurrent actions that would result in accessing such objects are required to have their execution deferred until the completion of the node."/>
     </eAnnotations>
     <eAnnotations source="duplicates">
       <contents xsi:type="ecore:EReference" name="activity" ordered="false" eType="#//Activity"
-          volatile="true" transient="true" derived="true" eOpposite="#//Activity/structuredNode">
+          volatile="true" transient="true" derived="true">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
           <details key="documentation" value="Activity immediately containing the node."/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//ActivityGroup/inActivity #//ActivityNode/activity"/>
       </contents>
     </eAnnotations>
-    <eOperations name="output_pin_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="input_pin_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The outgoing edges of the output pins of a StructuredActivityNode must have targets that are not within the StructuredActivityNode.&#xA;true"/>
+        <details key="documentation" value="The incoming edges of the input pins of a StructuredActivityNode must have sources that are not within the StructuredActivityNode.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -8793,9 +8807,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="input_pin_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="output_pin_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The incoming edges of the input pins of a StructuredActivityNode must have sources that are not within the StructuredActivityNode.&#xA;true"/>
+        <details key="documentation" value="The outgoing edges of the output pins of a StructuredActivityNode must have targets that are not within the StructuredActivityNode.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -8824,7 +8838,7 @@
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Nodes immediately contained in the group."/>
       </eAnnotations>
-      <eAnnotations source="subsets" references="#//Element/ownedElement #//ActivityGroup/containedNode"/>
+      <eAnnotations source="subsets" references="#//ActivityGroup/containedNode #//Element/ownedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="structuredNodeInput" ordered="false"
         upperBound="-1" eType="#//InputPin" containment="true">
@@ -8875,7 +8889,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Pin" abstract="true" eSuperTypes="#//ObjectNode #//MultiplicityElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A pin is an object node for inputs and outputs to actions.&#xA;A pin is a typed element and multiplicity element that provides values to actions and accept result values from them."/>
+      <details key="documentation" value="A pin is a typed element and multiplicity element that provides values to actions and accept result values from them.&#xA;A pin is an object node for inputs and outputs to actions."/>
     </eAnnotations>
     <eOperations name="control_pins" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -8906,11 +8920,11 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ObjectNode" abstract="true" eSuperTypes="#//ActivityNode #//TypedElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="Object nodes have support for token selection, limitation on the number of tokens, specifying the state required for tokens, and carrying control values.&#xA;An object node is an abstract activity node that is part of defining object flow in an activity."/>
+      <details key="documentation" value="An object node is an abstract activity node that is part of defining object flow in an activity.&#xA;Object nodes have support for token selection, limitation on the number of tokens, specifying the state required for tokens, and carrying control values."/>
     </eAnnotations>
-    <eOperations name="input_output_parameter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="object_flow_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A selection behavior has one input parameter and one output parameter. The input parameter must be a bag of elements of the same type as the object node or a supertype of the type of object node. The output parameter must be the same or a subtype of the type of object node. The behavior cannot have side effects.&#xA;true"/>
+        <details key="documentation" value="All edges coming into or going out of object nodes must be object flow edges.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -8946,9 +8960,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="object_flow_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="input_output_parameter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="All edges coming into or going out of object nodes must be object flow edges.&#xA;true"/>
+        <details key="documentation" value="A selection behavior has one input parameter and one output parameter. The input parameter must be a bag of elements of the same type as the object node or a supertype of the type of object node. The output parameter must be the same or a subtype of the type of object node. The behavior cannot have side effects.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -9132,9 +9146,28 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="An exception handler is an element that specifies a body to execute in case the specified exception occurs during the execution of the protected node."/>
     </eAnnotations>
-    <eOperations name="exception_body" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="one_input" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The exception handler and its input object node are not the source or target of any edge.&#xA;true"/>
+        <details key="documentation" value="The handler body has one input, and that input is the same as the exception input.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="edge_source_target" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="An edge that has a source in an exception handler structured node must have its target in the handler also, and vice versa.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -9170,28 +9203,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="one_input" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="exception_body" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The handler body has one input, and that input is the same as the exception input.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="edge_source_target" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An edge that has a source in an exception handler structured node must have its target in the handler also, and vice versa.&#xA;true"/>
+        <details key="documentation" value="The exception handler and its input object node are not the source or target of any edge.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -9338,25 +9352,6 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A lifeline represents an individual participant in the interaction. While parts and structural features may have multiplicity greater than 1, lifelines represent only one interacting entity."/>
     </eAnnotations>
-    <eOperations name="selector_specified" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The selector for a Lifeline must only be specified if the referenced Part is multivalued.&#xA;(self.selector->isEmpty() implies not self.represents.isMultivalued()) or&#xA;(not self.selector->isEmpty() implies self.represents.isMultivalued())&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="interaction_uses_share_lifeline" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="If two (or more) InteractionUses within one Interaction, refer to Interactions with 'common Lifelines,' those Lifelines must also appear in the Interaction with the InteractionUses. By common Lifelines we mean Lifelines with the same selector and represents associations.&#xA;true"/>
@@ -9395,6 +9390,25 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="selector_specified" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The selector for a Lifeline must only be specified if the referenced Part is multivalued.&#xA;(self.selector->isEmpty() implies not self.represents.isMultivalued()) or&#xA;(not self.selector->isEmpty() implies self.represents.isMultivalued())&#xA;"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="decomposedAs" ordered="false"
         eType="#//PartDecomposition">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -9432,9 +9446,9 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A part decomposition is a description of the internal interactions of one lifeline relative to an interaction."/>
     </eAnnotations>
-    <eOperations name="commutativity_of_decomposition" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="parts_of_internal_structures" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Assume that within Interaction X, Lifeline L is of class C and decomposed to D. Assume also that there is within X an InteractionUse (say) U that covers L. According to the constraint above U will have a counterpart CU within D. Within the Interaction referenced by U, L should also be decomposed, and the decomposition should reference CU. (This rule is called commutativity of decomposition)&#xA;true"/>
+        <details key="documentation" value="PartDecompositions apply only to Parts that are Parts of Internal Structures not to Parts of Collaborations.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -9470,9 +9484,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="parts_of_internal_structures" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="commutativity_of_decomposition" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="PartDecompositions apply only to Parts that are Parts of Internal Structures not to Parts of Collaborations.&#xA;true"/>
+        <details key="documentation" value="Assume that within Interaction X, Lifeline L is of class C and decomposed to D. Assume also that there is within X an InteractionUse (say) U that covers L. According to the constraint above U will have a counterpart CU within D. Within the Interaction referenced by U, L should also be decomposed, and the decomposition should reference CU. (This rule is called commutativity of decomposition)&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -9494,28 +9508,9 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="An interaction use refers to an interaction. The interaction use is a shorthand for copying the contents of the referenced interaction where the interaction use is. To be accurate the copying must take into account substituting parameters with arguments and connect the formal gates with the actual ones."/>
     </eAnnotations>
-    <eOperations name="gates_match" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="all_lifelines" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Actual Gates of the InteractionUse must match Formal Gates of the referred Interaction. Gates match when their names are equal.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="arguments_are_constants" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The arguments must only be constants, parameters of the enclosing Interaction or attributes of the classifier owning the enclosing Interaction.&#xA;true"/>
+        <details key="documentation" value="The InteractionUse must cover all Lifelines of the enclosing Interaction that represent the same properties as lifelines within the referred Interaction.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -9570,9 +9565,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="returnValue_type_recipient_correspondence" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="gates_match" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The type of the returnValue must correspond to the type of the returnValueRecipient.&#xA;true"/>
+        <details key="documentation" value="Actual Gates of the InteractionUse must match Formal Gates of the referred Interaction. Gates match when their names are equal.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -9589,9 +9584,28 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="all_lifelines" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="arguments_are_constants" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The InteractionUse must cover all Lifelines of the enclosing Interaction that represent the same properties as lifelines within the referred Interaction.&#xA;true"/>
+        <details key="documentation" value="The arguments must only be constants, parameters of the enclosing Interaction or attributes of the classifier owning the enclosing Interaction.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="returnValue_type_recipient_correspondence" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The type of the returnValue must correspond to the type of the returnValueRecipient.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -9719,6 +9733,63 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="occurrence_specifications" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="If the MessageEnds are both OccurrenceSpecifications then the connector must go between the Parts represented by the Lifelines of the two MessageEnds.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="signature_is_signal" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="In the case when the Message signature is a Signal, the arguments of the Message must correspond to the attributes of the Signal. A Message Argument corresponds to a Signal Attribute if the Arguement is of the same Class or a specialization of that of the Attribute.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="signature_is_operation" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="In the case when the Message signature is an Operation, the arguments of the Message must correspond to the parameters of the Operation. A Parameter corresponds to an Argument if the Argument is of the same Class or a specialization of that of the Parameter.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eOperations name="arguments" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Arguments of a Message must only be: i) attributes of the sending lifeline ii) constants iii) symbolic values (which are wildcard values representing any legal value) iv) explicit parameters of the enclosing Interaction v) attributes of the class owning the Interaction&#xA;true"/>
@@ -9757,44 +9828,6 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="signature_is_signal" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="In the case when the Message signature is a Signal, the arguments of the Message must correspond to the attributes of the Signal. A Message Argument corresponds to a Signal Attribute if the Arguement is of the same Class or a specialization of that of the Attribute.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="occurrence_specifications" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If the MessageEnds are both OccurrenceSpecifications then the connector must go between the Parts represented by the Lifelines of the two MessageEnds.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="signature_refer_to" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="The signature must either refer an Operation (in which case messageSort is either synchCall or asynchCall) or a Signal (in which case messageSort is asynchSignal). The name of the NamedElement referenced by signature must be the same as that of the Message.&#xA;true"/>
@@ -9814,25 +9847,6 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="signature_is_operation" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="In the case when the Message signature is an Operation, the arguments of the Message must correspond to the parameters of the Operation. A Parameter corresponds to an Argument if the Argument is of the same Class or a specialization of that of the Parameter.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="getMessageKind" ordered="false" lowerBound="1" eType="#//MessageKind">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Missing derivation for Message::/messageKind : MessageKind&#xA;true"/>
@@ -9995,9 +10009,9 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="An interaction operand is contained in a combined fragment. An interaction operand represents one operand of the expression given by the enclosing combined fragment."/>
     </eAnnotations>
-    <eOperations name="guard_contain_references" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="guard_directly_prior" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The guard must contain only references to values local to the Lifeline on which it resides, or values global to the whole Interaction.&#xA;true"/>
+        <details key="documentation" value="The guard must be placed directly prior to (above) the OccurrenceSpecification that will become the first OccurrenceSpecification within this InteractionOperand.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -10014,9 +10028,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="guard_directly_prior" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="guard_contain_references" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The guard must be placed directly prior to (above) the OccurrenceSpecification that will become the first OccurrenceSpecification within this InteractionOperand.&#xA;true"/>
+        <details key="documentation" value="The guard must contain only references to values local to the Lifeline on which it resides, or values global to the whole Interaction.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -10052,6 +10066,25 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="An interaction constraint is a Boolean expression that guards an operand in a combined fragment."/>
     </eAnnotations>
+    <eOperations name="maxint_positive" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="If maxint is specified, then the expression must evaluate to a positive integer.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eOperations name="minint_maxint" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Minint/maxint can only be present if the InteractionConstraint is associated with the operand of a loop CombinedFragment.&#xA;true"/>
@@ -10090,44 +10123,6 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="maxint_positive" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If maxint is specified, then the expression must evaluate to a positive integer.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="dynamic_variables" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The dynamic variables that take part in the constraint must be owned by the ConnectableElement corresponding to the covered Lifeline.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="global_data" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="The constraint may contain references to global data or write-once data.&#xA;true"/>
@@ -10166,6 +10161,25 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="dynamic_variables" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The dynamic variables that take part in the constraint must be owned by the ConnectableElement corresponding to the covered Lifeline.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="maxint" ordered="false"
         eType="#//ValueSpecification" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -10266,9 +10280,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="one_output_pin" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="no_control_or_data_flow" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The fromAction of an action input pin must have exactly one output pin.&#xA;true"/>
+        <details key="documentation" value="The fromAction of an action input pin cannot have control or data flows coming into or out of it or its pins.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -10285,9 +10299,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="no_control_or_data_flow" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="one_output_pin" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The fromAction of an action input pin cannot have control or data flows coming into or out of it or its pins.&#xA;true"/>
+        <details key="documentation" value="The fromAction of an action input pin must have exactly one output pin.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -10350,9 +10364,9 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="An activity parameter node is an object node for inputs and outputs to activities."/>
     </eAnnotations>
-    <eOperations name="no_outgoing_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="maximum_one_parameter_node" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Activity parameter object nodes with no outgoing edges and one or more incoming edges must have a parameter with out, inout, or return direction.&#xA;true"/>
+        <details key="documentation" value="A parameter with direction other than inout must have at most one activity parameter node in an activity.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -10388,47 +10402,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="has_parameters" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="no_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Activity parameter nodes must have parameters from the containing activity.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="same_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The type of an activity parameter node is the same as the type of its parameter.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="maximum_one_parameter_node" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A parameter with direction other than inout must have at most one activity parameter node in an activity.&#xA;true"/>
+        <details key="documentation" value="An activity parameter node may have all incoming edges or all outgoing edges, but it must not have both incoming and outgoing edges.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -10464,9 +10440,47 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="no_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="no_outgoing_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An activity parameter node may have all incoming edges or all outgoing edges, but it must not have both incoming and outgoing edges.&#xA;true"/>
+        <details key="documentation" value="Activity parameter object nodes with no outgoing edges and one or more incoming edges must have a parameter with out, inout, or return direction.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="same_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The type of an activity parameter node is the same as the type of its parameter.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="has_parameters" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Activity parameter nodes must have parameters from the containing activity.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -10537,9 +10551,9 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="An add structural feature value action is a write structural feature action for adding values to a structural feature."/>
     </eAnnotations>
-    <eOperations name="required_value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="unlimited_natural_and_multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A value input pin is required.&#xA;self.value -> notEmpty()"/>
+        <details key="documentation" value="Actions adding a value to ordered structural features must have a single input pin for the insertion point with type UnlimitedNatural and multiplicity of 1..1, otherwise the action has no input pin for the insertion point.&#xA;let insertAtPins : Collection = self.insertAt in&#xA;if self.structuralFeature.isOrdered = #false&#xA;then insertAtPins->size() = 0&#xA;else let insertAtPin : InputPin= insertAt->asSequence()->first() in&#xA;insertAtPins->size() = 1&#xA;and insertAtPin.type = UnlimitedNatural&#xA;and insertAtPin.multiplicity.is(1,1))&#xA;endif&#xA;"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -10556,9 +10570,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="unlimited_natural_and_multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="required_value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Actions adding a value to ordered structural features must have a single input pin for the insertion point with type UnlimitedNatural and multiplicity of 1..1, otherwise the action has no input pin for the insertion point.&#xA;let insertAtPins : Collection = self.insertAt in&#xA;if self.structuralFeature.isOrdered = #false&#xA;then insertAtPins->size() = 0&#xA;else let insertAtPin : InputPin= insertAt->asSequence()->first() in&#xA;insertAtPins->size() = 1&#xA;and insertAtPin.type = UnlimitedNatural&#xA;and insertAtPin.multiplicity.is(1,1))&#xA;endif&#xA;"/>
+        <details key="documentation" value="A value input pin is required.&#xA;self.value -> notEmpty()"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -10617,25 +10631,6 @@
         </eParameters>
       </contents>
     </eAnnotations>
-    <eOperations name="multiplicity_of_result" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The multiplicity of the result output pin must be 1..1.&#xA;result->notEmpty() implies self.result.multiplicity.is(1,1)"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="input_pin" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="The type of the value input pin is the same as the type of the structural feature.&#xA;self.value->notEmpty() implies self.value.type =  self.structuralFeature.type"/>
@@ -10674,6 +10669,25 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="multiplicity_of_result" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The multiplicity of the result output pin must be 1..1.&#xA;result->notEmpty() implies self.result.multiplicity.is(1,1)"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="result" ordered="false"
         eType="#//OutputPin" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -10694,44 +10708,6 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="StructuralFeatureAction is an abstract class for all structural feature actions."/>
     </eAnnotations>
-    <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The multiplicity of the object input pin must be 1..1.&#xA;self.object.lowerBound()=1 and self.object.upperBound()=1"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="same_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The structural feature must either be owned by the type of the object input pin, or it must be an owned end of a binary association with the type of the opposite end being the type of the object input pin.&#xA;self.structuralFeature.featuringClassifier.oclAsType(Type)->includes(self.object.type) or&#xA;&#x9;self.structuralFeature.oclAsType(Property).opposite.type = self.object.type"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="visibility" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Visibility of structural feature must allow access to the object performing the action.&#xA;let host : Classifier = self.context in&#xA;self.structuralFeature.visibility = #public&#xA;or host = self.structuralFeature.featuringClassifier.type&#xA;or (self.structuralFeature.visibility = #protected and host.allSupertypes&#xA;->includes(self.structuralFeature.featuringClassifier.type)))&#xA;"/>
@@ -10751,6 +10727,25 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The multiplicity of the object input pin must be 1..1.&#xA;self.object.lowerBound()=1 and self.object.upperBound()=1"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eOperations name="not_static" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="The structural feature must not be static.&#xA;self.structuralFeature.isStatic = #false"/>
@@ -10789,6 +10784,25 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="same_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The structural feature must either be owned by the type of the object input pin, or it must be an owned end of a binary association with the type of the opposite end being the type of the object input pin.&#xA;self.structuralFeature.featuringClassifier.oclAsType(Type)->includes(self.object.type) or&#xA;&#x9;self.structuralFeature.oclAsType(Property).opposite.type = self.object.type"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="object" ordered="false"
         lowerBound="1" eType="#//InputPin" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -10865,9 +10879,9 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="WriteVariableAction is an abstract class for variable actions that change variable values."/>
     </eAnnotations>
-    <eOperations name="same_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The type input pin is the same as the type of the variable.&#xA;self.value -> notEmpty() implies self.value.type = self.variable.type"/>
+        <details key="documentation" value="The multiplicity of the input pin is 1..1.&#xA;self.value.multiplicity.is(1,1)"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -10884,9 +10898,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="same_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The multiplicity of the input pin is 1..1.&#xA;self.value.multiplicity.is(1,1)"/>
+        <details key="documentation" value="The type input pin is the same as the type of the variable.&#xA;self.value -> notEmpty() implies self.value.type = self.variable.type"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -10955,9 +10969,9 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A model element that has both association and class properties. An AssociationClass can be seen as an association that also has class properties, or as a class that also has association properties. It not only connects a set of classifiers but also defines a set of features that belong to the relationship itself and not to any of the classifiers."/>
     </eAnnotations>
-    <eOperations name="cannot_be_defined" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="disjoint_attributes_ends" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An AssociationClass cannot be defined between itself and something else.&#xA;self.endType->excludes(self) and self.endType>collect(et|et.allparents()->excludes(self))"/>
+        <details key="documentation" value="The owned attributes and owned ends of an AssociationClass are disjoint&#xA;ownedAttribute->intersection(ownedEnd)->isEmpty()"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -10974,9 +10988,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="disjoint_attributes_ends" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="cannot_be_defined" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The owned attributes and owned ends of an AssociationClass are disjoint&#xA;ownedAttribute->intersection(ownedEnd)->isEmpty()"/>
+        <details key="documentation" value="An AssociationClass cannot be defined between itself and something else.&#xA;self.endType->excludes(self) and self.endType>collect(et|et.allparents()->excludes(self))"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -11009,9 +11023,9 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A broadcast signal action is an action that transmits a signal instance to all the potential target objects in the system, which may cause the firing of a state machine transitions or the execution of associated activities of a target object. The argument values are available to the execution of associated behaviors. The requestor continues execution immediately after the signals are sent out. It does not wait for receipt. Any reply messages are ignored and are not transmitted to the requestor."/>
     </eAnnotations>
-    <eOperations name="number_and_order" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="type_ordering_multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The number and order of argument pins must be the same as the number and order of attributes in the signal.&#xA;true"/>
+        <details key="documentation" value="The type, ordering, and multiplicity of an argument pin must be the same as the corresponding attribute of the signal.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -11028,9 +11042,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="type_ordering_multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="number_and_order" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The type, ordering, and multiplicity of an argument pin must be the same as the corresponding attribute of the signal.&#xA;true"/>
+        <details key="documentation" value="The number and order of argument pins must be the same as the number and order of attributes in the signal.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -11056,7 +11070,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="InvocationAction" abstract="true" eSuperTypes="#//Action">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="In addition to targeting an object, invocation actions can also invoke behavioral features on ports from where the invocation requests are routed onwards on links deriving from attached connectors. Invocation actions may also be sent to a target via a given port, either on the sending object or on another object.&#xA;InvocationAction is an abstract class for the various actions that invoke behavior."/>
+      <details key="documentation" value="InvocationAction is an abstract class for the various actions that invoke behavior.&#xA;In addition to targeting an object, invocation actions can also invoke behavioral features on ports from where the invocation requests are routed onwards on links deriving from attached connectors. Invocation actions may also be sent to a target via a given port, either on the sending object or on another object."/>
     </eAnnotations>
     <eOperations name="on_port_receiver" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -11095,9 +11109,9 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="CallAction is an abstract class for actions that invoke behavior and receive return values."/>
     </eAnnotations>
-    <eOperations name="type_ordering_multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="synchronous_call" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The type, ordering, and multiplicity of an argument pin must be the same as the corresponding parameter of the behavior or behavioral feature.&#xA;true"/>
+        <details key="documentation" value="Only synchronous call actions can have result pins.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -11133,9 +11147,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="synchronous_call" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="type_ordering_multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Only synchronous call actions can have result pins.&#xA;true"/>
+        <details key="documentation" value="The type, ordering, and multiplicity of an argument pin must be the same as the corresponding parameter of the behavior or behavioral feature.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -11275,25 +11289,6 @@
         </eParameters>
       </contents>
     </eAnnotations>
-    <eOperations name="type_target_pin" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The type of the target pin must be the same as the type that owns the operation.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="argument_pin_equal_parameter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="The number of argument pins and the number of owned parameters of the operation of type in and in-out must be equal.&#xA;true"/>
@@ -11332,6 +11327,25 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="type_target_pin" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The type of the target pin must be the same as the type that owns the operation.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="operation" ordered="false"
         lowerBound="1" eType="#//Operation">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -11367,6 +11381,25 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A clause is an element that represents a single branch of a conditional construct, including a test and a body section. The body section is executed only if (but not necessarily if) the test section evaluates true."/>
     </eAnnotations>
+    <eOperations name="test_and_body" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The test and body parts must be disjoint.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eOperations name="body_output_pins" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="The bodyOutput pins are output pins on actions in the body of the clause.&#xA;true"/>
@@ -11405,25 +11438,6 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="test_and_body" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The test and body parts must be disjoint.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="body" ordered="false" upperBound="-1"
         eType="#//ExecutableNode">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -11521,9 +11535,9 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A clear structural feature action is a structural feature action that removes all values of a structural feature."/>
     </eAnnotations>
-    <eOperations name="type_of_result" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="multiplicity_of_result" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The type of the result output pin is the same as the type of the inherited object input pin.&#xA;result->notEmpty() implies self.result.type = self.object.type"/>
+        <details key="documentation" value="The multiplicity of the result output pin must be 1..1.&#xA;result->notEmpty() implies self.result.multiplicity.is(1,1)"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -11540,9 +11554,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="multiplicity_of_result" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="type_of_result" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The multiplicity of the result output pin must be 1..1.&#xA;result->notEmpty() implies self.result.multiplicity.is(1,1)"/>
+        <details key="documentation" value="The type of the result output pin is the same as the type of the inherited object input pin.&#xA;result->notEmpty() implies self.result.type = self.object.type"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -11576,9 +11590,9 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A combined fragment defines an expression of interaction fragments. A combined fragment is defined by an interaction operator and corresponding interaction operands. Through the use of combined fragments the user will be able to describe a number of traces in a compact and concise manner."/>
     </eAnnotations>
-    <eOperations name="minint_and_maxint" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="break" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The InteractionConstraint with minint and maxint only apply when attached to an InteractionOperand where the interactionOperator is loop.&#xA;true"/>
+        <details key="documentation" value="If the interactionOperator is break, the corresponding InteractionOperand must cover all Lifelines within the enclosing InteractionFragment.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -11595,9 +11609,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="break" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="opt_loop_break_neg" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If the interactionOperator is break, the corresponding InteractionOperand must cover all Lifelines within the enclosing InteractionFragment.&#xA;true"/>
+        <details key="documentation" value="If the interactionOperator is opt, loop, break, assert or neg, there must be exactly one operand.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -11633,9 +11647,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="opt_loop_break_neg" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="minint_and_maxint" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If the interactionOperator is opt, loop, break, assert or neg, there must be exactly one operand.&#xA;true"/>
+        <details key="documentation" value="The InteractionConstraint with minint and maxint only apply when attached to an InteractionOperand where the interactionOperator is loop.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -11767,11 +11781,11 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Component" eSuperTypes="#//Class">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A component represents a modular part of a system that encapsulates its contents and whose manifestation is replaceable within its environment.&#xA;In the namespace of a component, all model elements that are involved in or related to its definition are either owned or imported explicitly. This may include, for example, use cases and dependencies (e.g. mappings), packages, components, and artifacts."/>
+      <details key="documentation" value="In the namespace of a component, all model elements that are involved in or related to its definition are either owned or imported explicitly. This may include, for example, use cases and dependencies (e.g. mappings), packages, components, and artifacts.&#xA;A component represents a modular part of a system that encapsulates its contents and whose manifestation is replaceable within its environment."/>
     </eAnnotations>
-    <eOperations name="no_nested_classifiers" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="no_packaged_elements" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A component cannot nest classifiers.&#xA;self.nestedClassifier->isEmpty()"/>
+        <details key="documentation" value="component nested in a Class cannot have any packaged elements.&#xA;(not self.class->isEmpty()) implies self.packagedElement->isEmpty()"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -11788,9 +11802,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="no_packaged_elements" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="no_nested_classifiers" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="component nested in a Class cannot have any packaged elements.&#xA;(not self.class->isEmpty()) implies self.packagedElement->isEmpty()"/>
+        <details key="documentation" value="A component cannot nest classifiers.&#xA;self.nestedClassifier->isEmpty()"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -11935,9 +11949,9 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A conditional node is a structured activity node that represents an exclusive choice among some number of alternatives."/>
     </eAnnotations>
-    <eOperations name="result_no_incoming" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="executable_nodes" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The result output pins have no incoming edges.&#xA;true"/>
+        <details key="documentation" value="The union of the ExecutabledNodes in the test and body parts of all clauses must be the same as the subset of nodes contained in the ConditionalNode (considered as a StructuredActivityNode) that are ExecutableNodes.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -11954,28 +11968,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="no_input_pins" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="clause_no_predecessor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A conditional node has no input pins.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="one_clause_with_executable_node" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="No ExecutableNode may appear in the test or body part of more than one clause of a conditional node.&#xA;true"/>
+        <details key="documentation" value="No two clauses within a ConditionalNode maybe predecessor clauses of each other, either directly or indirectly.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -12011,9 +12006,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="executable_nodes" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="one_clause_with_executable_node" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The union of the ExecutabledNodes in the test and body parts of all clauses must be the same as the subset of nodes contained in the ConditionalNode (considered as a StructuredActivityNode) that are ExecutableNodes.&#xA;true"/>
+        <details key="documentation" value="No ExecutableNode may appear in the test or body part of more than one clause of a conditional node.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -12030,9 +12025,28 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="clause_no_predecessor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="result_no_incoming" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="No two clauses within a ConditionalNode maybe predecessor clauses of each other, either directly or indirectly.&#xA;true"/>
+        <details key="documentation" value="The result output pins have no incoming edges.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="no_input_pins" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A conditional node has no input pins.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -12082,9 +12096,9 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A consider ignore fragment is a kind of combined fragment that is used for the consider and ignore cases, which require lists of pertinent messages to be specified."/>
     </eAnnotations>
-    <eOperations name="consider_or_ignore" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The interaction operator of a ConsiderIgnoreFragment must be either 'consider' or 'ignore'.&#xA;(interactionOperator = #consider) or (interactionOperator = #ignore)"/>
+        <details key="documentation" value="The NamedElements must be of a type of element that identifies a message (e.g., an Operation, Reception, or a Signal).&#xA;message->forAll(m | m.oclIsKindOf(Operation) or m.oclIsKindOf(Reception) or m.oclIsKindOf(Signal))"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -12101,9 +12115,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="consider_or_ignore" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The NamedElements must be of a type of element that identifies a message (e.g., an Operation, Reception, or a Signal).&#xA;message->forAll(m | m.oclIsKindOf(Operation) or m.oclIsKindOf(Reception) or m.oclIsKindOf(Signal))"/>
+        <details key="documentation" value="The interaction operator of a ConsiderIgnoreFragment must be either 'consider' or 'ignore'.&#xA;(interactionOperator = #consider) or (interactionOperator = #ignore)"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -12131,9 +12145,9 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A continuation is a syntactic way to define continuations of different branches of an alternative combined fragment. Continuations is intuitively similar to labels representing intermediate points in a flow of control."/>
     </eAnnotations>
-    <eOperations name="first_or_last_interaction_fragment" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="same_name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Continuations always occur as the very first InteractionFragment or the very last InteractionFragment of the enclosing InteractionFragment.&#xA;true"/>
+        <details key="documentation" value="Continuations with the same name may only cover the same set of Lifelines (within one Classifier).&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -12150,9 +12164,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="same_name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="first_or_last_interaction_fragment" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Continuations with the same name may only cover the same set of Lifelines (within one Classifier).&#xA;true"/>
+        <details key="documentation" value="Continuations always occur as the very first InteractionFragment or the very last InteractionFragment of the enclosing InteractionFragment.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -12362,28 +12376,9 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A link end data is not an action. It is an element that identifies links. It identifies one end of a link to be read or written by the children of a link action. A link cannot be passed as a runtime value to or from an action. Instead, a link is identified by its end objects and qualifier values, if any. This requires more than one piece of data, namely, the statically-specified end in the user model, the object on the end, and the qualifier values for that end, if any. These pieces are brought together around a link end data. Each association end is identified separately with an instance of the LinkEndData class."/>
     </eAnnotations>
-    <eOperations name="same_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="property_is_association_end" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The type of the end object input pin is the same as the type of the association end.&#xA;self.value.type = self.end.type"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The multiplicity of the end object input pin must be 1..1.&#xA;self.value.multiplicity.is(1,1)"/>
+        <details key="documentation" value="The property must be an association end.&#xA;self.end.association->size() = 1"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -12419,9 +12414,28 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="property_is_association_end" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="same_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The property must be an association end.&#xA;self.end.association->size() = 1"/>
+        <details key="documentation" value="The type of the end object input pin is the same as the type of the association end.&#xA;self.value.type = self.end.type"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The multiplicity of the end object input pin must be 1..1.&#xA;self.value.multiplicity.is(1,1)"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -12481,6 +12495,25 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A qualifier value is not an action. It is an element that identifies links. It gives a single qualifier within a link end data specification."/>
     </eAnnotations>
+    <eOperations name="qualifier_attribute" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The qualifier attribute must be a qualifier of the association end of the link-end data.&#xA;self.LinkEndData.end->collect(qualifier)->includes(self.qualifier)"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eOperations name="multiplicity_of_qualifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="The multiplicity of the qualifier value input pin is &quot;1..1&quot;.&#xA;self.value.multiplicity.is(1,1)"/>
@@ -12519,25 +12552,6 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="qualifier_attribute" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The qualifier attribute must be a qualifier of the association end of the link-end data.&#xA;self.LinkEndData.end->collect(qualifier)->includes(self.qualifier)"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="qualifier" ordered="false"
         lowerBound="1" eType="#//Property">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -12555,9 +12569,9 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A link end creation data is not an action. It is an element that identifies links. It identifies one end of a link to be created by a create link action."/>
     </eAnnotations>
-    <eOperations name="single_input_pin" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="create_link_action" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Link end creation data for ordered association ends must have a single input pin for the insertion point with type UnlimitedNatural and multiplicity of 1..1, otherwise the action has no input pin for the insertion point.&#xA;let insertAtPins : Collection = self.insertAt in&#xA;if self.end.ordering = #unordered&#xA;then insertAtPins->size() = 0&#xA;else let insertAtPin : InputPin = insertAts->asSequence()->first() in&#xA;insertAtPins->size() = 1&#xA;and insertAtPin.type = UnlimitedNatural&#xA;and insertAtPin.multiplicity.is(1,1))&#xA;endif&#xA;"/>
+        <details key="documentation" value="LinkEndCreationData can only be end data for CreateLinkAction or one of its specializations.&#xA;self.LinkAction.oclIsKindOf(CreateLinkAction)"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -12574,9 +12588,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="create_link_action" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="single_input_pin" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="LinkEndCreationData can only be end data for CreateLinkAction or one of its specializations.&#xA;self.LinkAction.oclIsKindOf(CreateLinkAction)"/>
+        <details key="documentation" value="Link end creation data for ordered association ends must have a single input pin for the insertion point with type UnlimitedNatural and multiplicity of 1..1, otherwise the action has no input pin for the insertion point.&#xA;let insertAtPins : Collection = self.insertAt in&#xA;if self.end.ordering = #unordered&#xA;then insertAtPins->size() = 0&#xA;else let insertAtPin : InputPin = insertAts->asSequence()->first() in&#xA;insertAtPins->size() = 1&#xA;and insertAtPin.type = UnlimitedNatural&#xA;and insertAtPin.multiplicity.is(1,1))&#xA;endif&#xA;"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -12611,9 +12625,9 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A create link object action creates a link object."/>
     </eAnnotations>
-    <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="association_class" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The multiplicity of the output pin is 1..1.&#xA;self.result.multiplicity.is(1,1)"/>
+        <details key="documentation" value="The association must be an association class.&#xA;self.association().oclIsKindOf(Class)"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -12649,9 +12663,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="association_class" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The association must be an association class.&#xA;self.association().oclIsKindOf(Class)"/>
+        <details key="documentation" value="The multiplicity of the output pin is 1..1.&#xA;self.result.multiplicity.is(1,1)"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -12680,44 +12694,6 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A create object action is an action that creates an object that conforms to a statically specified classifier and puts it on an output pin at runtime."/>
     </eAnnotations>
-    <eOperations name="classifier_not_abstract" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The classifier cannot be abstract.&#xA;not (self.classifier.isAbstract = #true)"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The multiplicity of the output pin is 1..1.&#xA;self.result.multiplicity.is(1,1)"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="classifier_not_association_class" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="The classifier cannot be an association class&#xA;not self.classifier.oclIsKindOf(AssociationClass)"/>
@@ -12737,6 +12713,25 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="classifier_not_abstract" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The classifier cannot be abstract.&#xA;not (self.classifier.isAbstract = #true)"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eOperations name="same_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="The type of the result pin must be the same as the classifier of the action.&#xA;self.result.type = self.classifier"/>
@@ -12756,6 +12751,25 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The multiplicity of the output pin is 1..1.&#xA;self.result.multiplicity.is(1,1)"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="classifier" ordered="false"
         lowerBound="1" eType="#//Classifier">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -12779,9 +12793,9 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A decision node is a control node that chooses between outgoing flows."/>
     </eAnnotations>
-    <eOperations name="zero_input_parameters" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="parameters" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If the decision node has no decision input flow and an incoming control flow, then a decision input behavior has zero input parameters.&#xA;true"/>
+        <details key="documentation" value="A decision input behavior has no output parameters, no in-out parameters and one return parameter.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -12798,47 +12812,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="incoming_object_one_input_parameter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The edges coming into and out of a decision node, other than the decision input flow (if any), must be either all object flows or all control flows.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="decision_input_flow_incoming" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The decisionInputFlow of a decision node must be an incoming edge of the decision node.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="two_input_parameters" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If the decision node has a decision input flow and an second incoming object flow, then a decision input behavior has two input parameters, the first of which has a type that is the same as or a supertype of the type of the type of object tokens offered on the nondecision input flow and the second of which has a type that is the same as or a supertype of the type of object tokens offered on the decision input flow.&#xA;true"/>
+        <details key="documentation" value="If the decision node has no decision input flow and an incoming object flow, then a decision input behavior has one input parameter whose type is the same as or a supertype of the type of object tokens offered on the incoming edge.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -12893,9 +12869,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="parameters" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="two_input_parameters" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A decision input behavior has no output parameters, no in-out parameters and one return parameter.&#xA;true"/>
+        <details key="documentation" value="If the decision node has a decision input flow and an second incoming object flow, then a decision input behavior has two input parameters, the first of which has a type that is the same as or a supertype of the type of the type of object tokens offered on the nondecision input flow and the second of which has a type that is the same as or a supertype of the type of object tokens offered on the decision input flow.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -12912,9 +12888,47 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="incoming_object_one_input_parameter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="decision_input_flow_incoming" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If the decision node has no decision input flow and an incoming object flow, then a decision input behavior has one input parameter whose type is the same as or a supertype of the type of object tokens offered on the incoming edge.&#xA;true"/>
+        <details key="documentation" value="The decisionInputFlow of a decision node must be an incoming edge of the decision node.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="zero_input_parameters" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="If the decision node has no decision input flow and an incoming control flow, then a decision input behavior has zero input parameters.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The edges coming into and out of a decision node, other than the decision input flow (if any), must be either all object flows or all control flows.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -12948,47 +12962,9 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="An object flow is an activity edge that can have objects or data passing along it.&#xA;Object flows have support for multicast/receive, token selection from object nodes, and transformation of tokens."/>
     </eAnnotations>
-    <eOperations name="input_and_output_parameter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="is_multicast_or_is_multireceive" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A selection behavior has one input parameter and one output parameter. The input parameter must be a bag of elements of the same as or a supertype of the type of source object node. The output parameter must be the same or a subtype of the type of source object node. The behavior cannot have side effects.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="no_actions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Object flows may not have actions at either end.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="transformation_behaviour" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A transformation behavior has one input parameter and one output parameter. The input parameter must be the same as or a supertype of the type of object token coming from the source end. The output parameter must be the same or a subtype of the type of object token expected downstream. The behavior cannot have side effects.&#xA;true"/>
+        <details key="documentation" value="isMulticast and isMultireceive cannot both be true.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -13043,9 +13019,47 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="same_upper_bounds" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="no_actions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Object nodes connected by an object flow, with optionally intervening control nodes, must have the same upper bounds.&#xA;true"/>
+        <details key="documentation" value="Object flows may not have actions at either end.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="input_and_output_parameter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A selection behavior has one input parameter and one output parameter. The input parameter must be a bag of elements of the same as or a supertype of the type of source object node. The output parameter must be the same or a subtype of the type of source object node. The behavior cannot have side effects.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="transformation_behaviour" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A transformation behavior has one input parameter and one output parameter. The input parameter must be the same as or a supertype of the type of object token coming from the source end. The output parameter must be the same or a subtype of the type of object token expected downstream. The behavior cannot have side effects.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -13081,9 +13095,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="is_multicast_or_is_multireceive" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="same_upper_bounds" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="isMulticast and isMultireceive cannot both be true.&#xA;true"/>
+        <details key="documentation" value="Object nodes connected by an object flow, with optionally intervening control nodes, must have the same upper bounds.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -13145,9 +13159,9 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A link end destruction data is not an action. It is an element that identifies links. It identifies one end of a link to be destroyed by destroy link action."/>
     </eAnnotations>
-    <eOperations name="unlimited_natural_and_multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="destroy_link_action" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="LinkEndDestructionData for ordered nonunique association ends must have a single destroyAt input pin if isDestroyDuplicates is false. It must be of type UnlimitedNatural and have a multiplicity of 1..1. Otherwise, the action has no input pin for the removal position.&#xA;true"/>
+        <details key="documentation" value="LinkEndDestructionData can only be end data for DestroyLinkAction or one of its specializations.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -13164,9 +13178,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="destroy_link_action" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="unlimited_natural_and_multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="LinkEndDestructionData can only be end data for DestroyLinkAction or one of its specializations.&#xA;true"/>
+        <details key="documentation" value="LinkEndDestructionData for ordered nonunique association ends must have a single destroyAt input pin if isDestroyDuplicates is false. It must be of type UnlimitedNatural and have a multiplicity of 1..1. Otherwise, the action has no input pin for the removal position.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -13668,25 +13682,6 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A special kind of state signifying that the enclosing region is completed. If the enclosing region is directly contained in a state machine and all other regions in the state machine also are completed, then it means that the entire state machine is completed."/>
     </eAnnotations>
-    <eOperations name="no_exit_behavior" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A final state has no exit behavior.&#xA;self.exit->isEmpty()"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="no_outgoing_transitions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="A final state cannot have any outgoing transitions.&#xA;self.outgoing->size() = 0"/>
@@ -13706,9 +13701,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="no_regions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="cannot_reference_submachine" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A final state cannot have regions.&#xA;self.region->size() = 0"/>
+        <details key="documentation" value="A final state cannot reference a submachine.&#xA;self.submachine->isEmpty()"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -13725,9 +13720,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="cannot_reference_submachine" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="no_exit_behavior" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A final state cannot reference a submachine.&#xA;self.submachine->isEmpty()"/>
+        <details key="documentation" value="A final state has no exit behavior.&#xA;self.exit->isEmpty()"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -13782,6 +13777,25 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="no_regions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A final state cannot have regions.&#xA;self.region->size() = 0"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="FlowFinalNode" eSuperTypes="#//FinalNode">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -13898,9 +13912,9 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="An information flow specifies that one or more information items circulates from its sources to its targets. Information flows require some kind of information channel for transmitting information items from the source to the destination. An information channel is represented in various ways depending on the nature of its sources and targets. It may be represented by connectors, links, associations, or even dependencies. For example, if the source and destination are parts in some composite structure such as a collaboration, then the information channel is likely to be represented by a connector between them. Or, if the source and target are objects (which are a kind of instance specification), they may be represented by a link that joins the two, and so on."/>
     </eAnnotations>
-    <eOperations name="must_conform" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="sources_and_targets_kind" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The sources and targets of the information flow must conform with the sources and targets or conversely the targets and sources of the realization relationships.&#xA;true"/>
+        <details key="documentation" value="The sources and targets of the information flow can only be one of the following kind: Actor, Node, UseCase, Artifact, Class, Component, Port, Property, Interface, Package, ActivityNode, ActivityPartition and InstanceSpecification except when its classifier is a relationship (i.e. it represents a link).&#xA;(self.informationSource->forAll(p | p->oclIsKindOf(Actor) or oclIsKindOf(Node) or&#xA;  oclIsKindOf(UseCase) or oclIsKindOf(Artifact) or oclIsKindOf(Class) or&#xA;  oclIsKindOf(Component) or oclIsKindOf(Port) or oclIsKindOf(Property) or&#xA;  oclIsKindOf(Interface) or oclIsKindOf(Package) or oclIsKindOf(ActivityNode) or&#xA;  oclIsKindOf(ActivityPartition) or oclIsKindOf(InstanceSpecification))) and&#xA;    (self.informationTarget->forAll(p | p->oclIsKindOf(Actor) or oclIsKindOf(Node) or&#xA;      oclIsKindOf(UseCase) or oclIsKindOf(Artifact) or oclIsKindOf(Class) or&#xA;      oclIsKindOf(Component) or oclIsKindOf(Port) or oclIsKindOf(Property) or&#xA;      oclIsKindOf(Interface) or oclIsKindOf(Package) or oclIsKindOf(ActivityNode) or&#xA;      oclIsKindOf(ActivityPartition) or oclIsKindOf(InstanceSpecification)))"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -13917,9 +13931,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="sources_and_targets_kind" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="must_conform" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The sources and targets of the information flow can only be one of the following kind: Actor, Node, UseCase, Artifact, Class, Component, Port, Property, Interface, Package, ActivityNode, ActivityPartition and InstanceSpecification except when its classifier is a relationship (i.e. it represents a link).&#xA;(self.informationSource->forAll(p | p->oclIsKindOf(Actor) or oclIsKindOf(Node) or&#xA;  oclIsKindOf(UseCase) or oclIsKindOf(Artifact) or oclIsKindOf(Class) or&#xA;  oclIsKindOf(Component) or oclIsKindOf(Port) or oclIsKindOf(Property) or&#xA;  oclIsKindOf(Interface) or oclIsKindOf(Package) or oclIsKindOf(ActivityNode) or&#xA;  oclIsKindOf(ActivityPartition) or oclIsKindOf(InstanceSpecification))) and&#xA;    (self.informationTarget->forAll(p | p->oclIsKindOf(Actor) or oclIsKindOf(Node) or&#xA;      oclIsKindOf(UseCase) or oclIsKindOf(Artifact) or oclIsKindOf(Class) or&#xA;      oclIsKindOf(Component) or oclIsKindOf(Port) or oclIsKindOf(Property) or&#xA;      oclIsKindOf(Interface) or oclIsKindOf(Package) or oclIsKindOf(ActivityNode) or&#xA;      oclIsKindOf(ActivityPartition) or oclIsKindOf(InstanceSpecification)))"/>
+        <details key="documentation" value="The sources and targets of the information flow must conform with the sources and targets or conversely the targets and sources of the realization relationships.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -14004,25 +14018,6 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="An information item is an abstraction of all kinds of information that can be exchanged between objects. It is a kind of classifier intended for representing information in a very abstract way, one which cannot be instantiated."/>
     </eAnnotations>
-    <eOperations name="sources_and_targets" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The sources and targets of an information item (its related information flows) must designate subsets of the sources and targets of the representation information item, if any.The Classifiers that can realize an information item can only be of the following kind: Class, Interface, InformationItem, Signal, Component.&#xA;(self.represented->select(p | p->oclIsKindOf(InformationItem))->forAll(p |&#xA;  p.informationFlow.source->forAll(q | self.informationFlow.source->include(q)) and&#xA;    p.informationFlow.target->forAll(q | self.informationFlow.target->include(q)))) and&#xA;      (self.represented->forAll(p | p->oclIsKindOf(Class) or oclIsKindOf(Interface) or&#xA;        oclIsKindOf(InformationItem) or oclIsKindOf(Signal) or oclIsKindOf(Component)))"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="has_no" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="An informationItem has no feature, no generalization, and no associations.&#xA;self.generalization->isEmpty() and self.feature->isEmpty()"/>
@@ -14061,6 +14056,25 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="sources_and_targets" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The sources and targets of an information item (its related information flows) must designate subsets of the sources and targets of the representation information item, if any.The Classifiers that can realize an information item can only be of the following kind: Class, Interface, InformationItem, Signal, Component.&#xA;(self.represented->select(p | p->oclIsKindOf(InformationItem))->forAll(p |&#xA;  p.informationFlow.source->forAll(q | self.informationFlow.source->include(q)) and&#xA;    p.informationFlow.target->forAll(q | self.informationFlow.target->include(q)))) and&#xA;      (self.represented->forAll(p | p->oclIsKindOf(Class) or oclIsKindOf(Interface) or&#xA;        oclIsKindOf(InformationItem) or oclIsKindOf(Signal) or oclIsKindOf(Component)))"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="represented" ordered="false"
         upperBound="-1" eType="#//Classifier">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -14382,44 +14396,6 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A loop node is a structured activity node that represents a loop with setup, test, and body sections."/>
     </eAnnotations>
-    <eOperations name="result_no_incoming" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The result output pins have no incoming edges.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="input_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Loop variable inputs must not have outgoing edges.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="executable_nodes" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="The union of the ExecutableNodes in the setupPart, test and bodyPart of a LoopNode must be the same as the subset of nodes contained in the LoopNode (considered as a StructuredActivityNode) that are ExecutableNodes.&#xA;true"/>
@@ -14458,6 +14434,44 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="result_no_incoming" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The result output pins have no incoming edges.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="input_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Loop variable inputs must not have outgoing edges.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="bodyOutput" upperBound="-1"
         eType="#//OutputPin">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -14881,44 +14895,6 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="compatible_multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The multiplicity of the open association end must be compatible with the multiplicity of the result output pin.&#xA;let openend : Property = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in&#xA;openend.multiplicity.compatibleWith(self.result.multiplicity)&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="visibility" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Visibility of the open end must allow access to the object performing the action.&#xA;let host : Classifier = self.context in&#xA;let openend : Property = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in&#xA;openend.visibility = #public&#xA;or self.endData->exists(oed | not oed.end = openend&#xA;and (host = oed.end.participant&#xA;or (openend.visibility = #protected&#xA;and host.allSupertypes->includes(oed.end.participant))))&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="one_open_end" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Exactly one link-end data specification (the 'open' end) must not have an end object input pin.&#xA;self.endData->select(ed | ed.value->size() = 0)->size() = 1"/>
@@ -14938,6 +14914,25 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="compatible_multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The multiplicity of the open association end must be compatible with the multiplicity of the result output pin.&#xA;let openend : Property = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in&#xA;openend.multiplicity.compatibleWith(self.result.multiplicity)&#xA;"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eOperations name="navigable_open_end" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="The open end must be navigable.&#xA;let openend : Property = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in&#xA;openend.isNavigable()&#xA;"/>
@@ -14957,6 +14952,25 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="visibility" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Visibility of the open end must allow access to the object performing the action.&#xA;let host : Classifier = self.context in&#xA;let openend : Property = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in&#xA;openend.visibility = #public&#xA;or self.endData->exists(oed | not oed.end = openend&#xA;and (host = oed.end.participant&#xA;or (openend.visibility = #protected&#xA;and host.allSupertypes->includes(oed.end.participant))))&#xA;"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="result" ordered="false"
         lowerBound="1" eType="#//OutputPin" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -14969,9 +14983,9 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A read link object end action is an action that retrieves an end object from a link object."/>
     </eAnnotations>
-    <eOperations name="property" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="association_of_association" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The property must be an association end.&#xA;self.end.association.notEmpty()"/>
+        <details key="documentation" value="The association of the association end must be an association class.&#xA;self.end.Association.oclIsKindOf(AssociationClass)"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -15007,25 +15021,6 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="ends_of_association" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The ends of the association must not be static.&#xA;self.end.association.memberEnd->forall(e | not e.isStatic)"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="type_of_result" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="The type of the result output pin is the same as the type of the association end.&#xA;self.result.type = self.end.type"/>
@@ -15045,25 +15040,6 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="multiplicity_of_result" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The multiplicity of the result output pin is 1..1.&#xA;self.result.multiplicity.is(1,1)"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="type_of_object" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="The type of the object input pin is the association class that owns the association end.&#xA;self.object.type = self.end.association"/>
@@ -15083,9 +15059,47 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="association_of_association" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="property" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The association of the association end must be an association class.&#xA;self.end.Association.oclIsKindOf(AssociationClass)"/>
+        <details key="documentation" value="The property must be an association end.&#xA;self.end.association.notEmpty()"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="multiplicity_of_result" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The multiplicity of the result output pin is 1..1.&#xA;self.result.multiplicity.is(1,1)"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="ends_of_association" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The ends of the association must not be static.&#xA;self.end.association.memberEnd->forall(e | not e.isStatic)"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -15127,25 +15141,6 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A read link object end qualifier action is an action that retrieves a qualifier end value from a link object."/>
     </eAnnotations>
-    <eOperations name="multiplicity_of_object" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The multiplicity of the object input pin is 1..1.&#xA;self.object.multiplicity.is(1,1)"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="type_of_object" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="The type of the object input pin is the association class that owns the association end that has the given qualifier attribute.&#xA;self.object.type = self.qualifier.associationEnd.association"/>
@@ -15165,44 +15160,6 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="multiplicity_of_qualifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The multiplicity of the qualifier attribute is 1..1.&#xA;self.qualifier.multiplicity.is(1,1)"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="ends_of_association" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The ends of the association must not be static.&#xA;self.qualifier.associationEnd.association.memberEnd->forall(e | not e.isStatic)"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="multiplicity_of_result" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="The multiplicity of the result output pin is 1..1.&#xA;self.result.multiplicity.is(1,1)"/>
@@ -15241,6 +15198,63 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="ends_of_association" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The ends of the association must not be static.&#xA;self.qualifier.associationEnd.association.memberEnd->forall(e | not e.isStatic)"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="multiplicity_of_qualifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The multiplicity of the qualifier attribute is 1..1.&#xA;self.qualifier.multiplicity.is(1,1)"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="multiplicity_of_object" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The multiplicity of the object input pin is 1..1.&#xA;self.object.multiplicity.is(1,1)"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eOperations name="association_of_association" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="The association of the association end of the qualifier attribute must be an association class.&#xA;self.qualifier.associationEnd.association.oclIsKindOf(AssociationClass)"/>
@@ -15323,9 +15337,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The multiplicity of the result output pin is 1..1.&#xA;self.result.multiplicity.is(1,1)"/>
+        <details key="documentation" value="The type of the result output pin is the host classifier.&#xA;self.result.type = self.context"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -15361,9 +15375,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The type of the result output pin is the host classifier.&#xA;self.result.type = self.context"/>
+        <details key="documentation" value="The multiplicity of the result output pin is 1..1.&#xA;self.result.multiplicity.is(1,1)"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -15514,9 +15528,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="classifier_not_abstract" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="None of the new classifiers may be abstract.&#xA;not self.newClassifier->exists(isAbstract = true)"/>
+        <details key="documentation" value="The multiplicity of the input pin is 1..1.&#xA;self.argument.multiplicity.is(1,1)"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -15533,9 +15547,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="classifier_not_abstract" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The multiplicity of the input pin is 1..1.&#xA;self.argument.multiplicity.is(1,1)"/>
+        <details key="documentation" value="None of the new classifiers may be abstract.&#xA;not self.newClassifier->exists(isAbstract = true)"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -15583,6 +15597,25 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A reduce action is an action that reduces a collection to a single value by combining the elements of the collection."/>
     </eAnnotations>
+    <eOperations name="output_types_are_compatible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The type of the output must be compatible with the type of the output of the reducer behavior.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eOperations name="reducer_inputs_output" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="The reducer behavior must have two input parameters and one output parameter, of types compatible with the types of elements of the input collection.&#xA;true"/>
@@ -15621,25 +15654,6 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="output_types_are_compatible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The type of the output must be compatible with the type of the output of the reducer behavior.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="collection" ordered="false"
         lowerBound="1" eType="#//InputPin" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -15749,9 +15763,9 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A reply action is an action that accepts a set of return values and a value containing return information produced by a previous accept call action. The reply action returns the values to the caller of the previous call, completing execution of the call."/>
     </eAnnotations>
-    <eOperations name="pins_match_parameter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="event_on_reply_to_call_trigger" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The reply value pins must match the return, out, and inout parameters of the operation on the event on the trigger in number, type, and order.&#xA;true"/>
+        <details key="documentation" value="The event on replyToCall trigger must be a CallEvent replyToCallEvent.oclIsKindOf(CallEvent)&#xA;replyToCallEvent.oclIsKindOf(CallEvent)"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -15768,9 +15782,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="event_on_reply_to_call_trigger" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="pins_match_parameter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The event on replyToCall trigger must be a CallEvent replyToCallEvent.oclIsKindOf(CallEvent)&#xA;replyToCallEvent.oclIsKindOf(CallEvent)"/>
+        <details key="documentation" value="The reply value pins must match the return, out, and inout parameters of the operation on the event on the trigger in number, type, and order.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -15910,9 +15924,9 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A start classifier behavior action is an action that starts the classifier behavior of the input."/>
     </eAnnotations>
-    <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="type_has_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The multiplicity of the input pin is 1..1&#xA;true"/>
+        <details key="documentation" value="If the input pin has a type, then the type must have a classifier behavior.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -15929,9 +15943,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="type_has_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If the input pin has a type, then the type must have a classifier behavior.&#xA;true"/>
+        <details key="documentation" value="The multiplicity of the input pin is 1..1&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -15960,28 +15974,9 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="StartObjectBehaviorAction is an action that starts the execution either of a directly instantiated behavior or of the classifier behavior of an object. Argument values may be supplied for the input parameters of the behavior. If the behavior is invoked synchronously, then output values may be obtained for output parameters."/>
     </eAnnotations>
-    <eOperations name="number_order_results" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="number_order_arguments" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The number and order of result pins must be the same as the number and order of the in-out, out and return parameters of the invoked behavior. Pins are matched to parameters by order.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="multiplicity_of_object" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The multiplicity of the object input pin must be [1..1].&#xA;true"/>
+        <details key="documentation" value="The number and order of the argument pins must be the same as the number and order of the in and in-out parameters of the invoked behavior. Pins are matched to parameters by order.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -16017,9 +16012,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="number_order_arguments" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="number_order_results" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The number and order of the argument pins must be the same as the number and order of the in and in-out parameters of the invoked behavior. Pins are matched to parameters by order.&#xA;true"/>
+        <details key="documentation" value="The number and order of result pins must be the same as the number and order of the in-out, out and return parameters of the invoked behavior. Pins are matched to parameters by order.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -16055,6 +16050,25 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="multiplicity_of_object" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The multiplicity of the object input pin must be [1..1].&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="object" ordered="false"
         lowerBound="1" eType="#//InputPin" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -16239,9 +16253,9 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A time event can be defined relative to entering the current state of the executing state machine.&#xA;A time event specifies a point in time. At the specified time, the event occurs."/>
     </eAnnotations>
-    <eOperations name="when_non_negative" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="starting_time" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The ValueSpecification when must return a non-negative Integer.&#xA;true"/>
+        <details key="documentation" value="The starting time for a relative time event may only be omitted for a time event that is the trigger of a state machine.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -16258,9 +16272,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="starting_time" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="when_non_negative" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The starting time for a relative time event may only be omitted for a time event that is the trigger of a state machine.&#xA;true"/>
+        <details key="documentation" value="The ValueSpecification when must return a non-negative Integer.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -16314,6 +16328,25 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="An unmarshall action is an action that breaks an object of a known type into outputs each of which is equal to a value from a structural feature of the object."/>
     </eAnnotations>
+    <eOperations name="same_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The type of the object input pin must be the same as the unmarshall classifier.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eOperations name="structural_feature" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="The unmarshall classifier must have at least one structural feature.&#xA;true"/>
@@ -16333,82 +16366,6 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="number_of_result" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The number of result output pins must be the same as the number of structural features of the unmarshall classifier.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="multiplicity_of_result" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The multiplicity of each result output pin must be compatible with the multiplicity of the corresponding structural features of the unmarshall classifier.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="type_and_ordering" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The type and ordering of each result output pin must be the same as the corresponding structural feature of the unmarshall classifier.&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="unmarshallType_is_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="unmarshallType must be a Classifier with ordered attributes&#xA;true"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
-        </eAnnotations>
-      </eParameters>
-      <eParameters name="context">
-        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The cache of context-specific information."/>
-        </eAnnotations>
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="multiplicity_of_object" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="The multiplicity of the object input pin is 1..1&#xA;true"/>
@@ -16428,9 +16385,66 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="same_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="type_and_ordering" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The type of the object input pin must be the same as the unmarshall classifier.&#xA;true"/>
+        <details key="documentation" value="The type and ordering of each result output pin must be the same as the corresponding structural feature of the unmarshall classifier.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="number_of_result" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The number of result output pins must be the same as the number of structural features of the unmarshall classifier.&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="unmarshallType_is_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="unmarshallType must be a Classifier with ordered attributes&#xA;true"/>
+      </eAnnotations>
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+        </eAnnotations>
+      </eParameters>
+      <eParameters name="context">
+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+          <details key="documentation" value="The cache of context-specific information."/>
+        </eAnnotations>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="multiplicity_of_result" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="The multiplicity of each result output pin must be compatible with the multiplicity of the corresponding structural features of the unmarshall classifier.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -16472,9 +16486,9 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A value pin is an input pin that provides a value by evaluating a value specification."/>
     </eAnnotations>
-    <eOperations name="no_incoming_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="compatible_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Value pins have no incoming edges.&#xA;true"/>
+        <details key="documentation" value="The type of value specification must be compatible with the type of the value pin.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -16491,9 +16505,9 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="compatible_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="no_incoming_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The type of value specification must be compatible with the type of the value pin.&#xA;true"/>
+        <details key="documentation" value="Value pins have no incoming edges.&#xA;true"/>
       </eAnnotations>
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
diff --git a/plugins/org.eclipse.uml2.uml/model/UML.genmodel b/plugins/org.eclipse.uml2.uml/model/UML.genmodel
index d3e8d3e..1489354 100644
--- a/plugins/org.eclipse.uml2.uml/model/UML.genmodel
+++ b/plugins/org.eclipse.uml2.uml/model/UML.genmodel
@@ -1,15 +1,14 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<genmodel:GenModel xmi:version="2.0"
-    xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:genmodel="http://www.eclipse.org/uml2/2.2.0/GenModel" modelDirectory="/org.eclipse.uml2.uml/src"
-    creationIcons="false" creationSubmenus="true" modelPluginID="org.eclipse.uml2.uml"
-    templateDirectory="/org.eclipse.uml2/templates" runtimeJar="true" dynamicTemplates="true"
-    modelName="UML" modelPluginClass="org.eclipse.uml2.uml.UMLPlugin" editPluginClass="org.eclipse.uml2.uml.edit.UMLEditPlugin"
-    editorPluginClass="org.eclipse.uml2.uml.editor.UMLEditorPlugin" nonNLSMarkers="true"
-    rootExtendsInterface="" codeFormatting="true" booleanFlagsField="eFlags" booleanFlagsReservedBits="8"
-    importerID="org.eclipse.uml2.uml.ecore.importer" containmentProxies="true" minimalReflectiveMethods="false"
-    complianceLevel="5.0" colorProviders="true" fontProviders="true" packedEnums="true"
-    usedGenPackages="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore"
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:genmodel="http://www.eclipse.org/uml2/2.2.0/GenModel"
+    modelDirectory="/org.eclipse.uml2.uml/src" creationIcons="false"
+    creationSubmenus="true" modelPluginID="org.eclipse.uml2.uml" templateDirectory="/org.eclipse.uml2/templates"
+    runtimeJar="true" dynamicTemplates="true" modelName="UML" modelPluginClass="org.eclipse.uml2.uml.UMLPlugin"
+    editPluginClass="org.eclipse.uml2.uml.edit.UMLEditPlugin" editorPluginClass="org.eclipse.uml2.uml.editor.UMLEditorPlugin"
+    nonNLSMarkers="true" rootExtendsInterface="" codeFormatting="true" booleanFlagsField="eFlags"
+    booleanFlagsReservedBits="8" importerID="org.eclipse.uml2.uml.ecore.importer"
+    containmentProxies="true" minimalReflectiveMethods="false" complianceLevel="5.0"
+    colorProviders="true" fontProviders="true" packedEnums="true" usedGenPackages="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore"
     operationReflection="true" factoryMethods="true" pluralizedGetters="true" cacheAdapterSupport="true"
     invariantPrefix="validate">
   <genAnnotations source="http://www.eclipse.org/emf/2002/GenModel/importer/org.eclipse.uml2.uml.ecore.importer">
@@ -48,18 +47,6 @@
       <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="UML.ecore#//CallConcurrencyKind/guarded"/>
       <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="UML.ecore#//CallConcurrencyKind/concurrent"/>
     </genEnums>
-    <genEnums xsi:type="genmodel:GenEnum" ecoreEnum="UML.ecore#//ParameterDirectionKind">
-      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="UML.ecore#//ParameterDirectionKind/in"/>
-      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="UML.ecore#//ParameterDirectionKind/inout"/>
-      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="UML.ecore#//ParameterDirectionKind/out"/>
-      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="UML.ecore#//ParameterDirectionKind/return"/>
-    </genEnums>
-    <genEnums xsi:type="genmodel:GenEnum" ecoreEnum="UML.ecore#//ParameterEffectKind">
-      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="UML.ecore#//ParameterEffectKind/create"/>
-      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="UML.ecore#//ParameterEffectKind/read"/>
-      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="UML.ecore#//ParameterEffectKind/update"/>
-      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="UML.ecore#//ParameterEffectKind/delete"/>
-    </genEnums>
     <genEnums xsi:type="genmodel:GenEnum" ecoreEnum="UML.ecore#//TransitionKind">
       <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="UML.ecore#//TransitionKind/internal"/>
       <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="UML.ecore#//TransitionKind/local"/>
@@ -77,6 +64,18 @@
       <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="UML.ecore#//PseudostateKind/exitPoint"/>
       <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="UML.ecore#//PseudostateKind/terminate"/>
     </genEnums>
+    <genEnums xsi:type="genmodel:GenEnum" ecoreEnum="UML.ecore#//ParameterDirectionKind">
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="UML.ecore#//ParameterDirectionKind/in"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="UML.ecore#//ParameterDirectionKind/inout"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="UML.ecore#//ParameterDirectionKind/out"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="UML.ecore#//ParameterDirectionKind/return"/>
+    </genEnums>
+    <genEnums xsi:type="genmodel:GenEnum" ecoreEnum="UML.ecore#//ParameterEffectKind">
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="UML.ecore#//ParameterEffectKind/create"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="UML.ecore#//ParameterEffectKind/read"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="UML.ecore#//ParameterEffectKind/update"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="UML.ecore#//ParameterEffectKind/delete"/>
+    </genEnums>
     <genEnums xsi:type="genmodel:GenEnum" ecoreEnum="UML.ecore#//AggregationKind">
       <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="UML.ecore#//AggregationKind/none"/>
       <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="UML.ecore#//AggregationKind/shared"/>
@@ -137,21 +136,18 @@
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" propertySortChoices="true"
           ecoreFeature="ecore:EReference UML.ecore#//Dependency/supplier"/>
     </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//DirectedRelationship">
-      <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
-          createChild="false" ecoreFeature="ecore:EReference UML.ecore#//DirectedRelationship/source">
+    <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//PackageableElement"/>
+    <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//ParameterableElement">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//ParameterableElement/owningTemplateParameter">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
-          createChild="false" ecoreFeature="ecore:EReference UML.ecore#//DirectedRelationship/target">
-        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
-      </genFeatures>
-    </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//Relationship">
-      <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
-          createChild="false" ecoreFeature="ecore:EReference UML.ecore#//Relationship/relatedElement">
-        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
-      </genFeatures>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//ParameterableElement/templateParameter"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ParameterableElement/isCompatibleWith">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ParameterableElement/isCompatibleWith/p"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ParameterableElement/isTemplateParameter"/>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//Element">
       <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
@@ -280,6 +276,14 @@
           createChild="false" ecoreFeature="ecore:EReference UML.ecore#//Stereotype/profile">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Stereotype/associationEndOwnership">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Stereotype/associationEndOwnership/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Stereotype/associationEndOwnership/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Stereotype/name_not_clash">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Stereotype/name_not_clash/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Stereotype/name_not_clash/context"/>
+      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Stereotype/binaryAssociationsOnly">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Stereotype/binaryAssociationsOnly/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Stereotype/binaryAssociationsOnly/context"/>
@@ -288,14 +292,6 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Stereotype/generalize/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Stereotype/generalize/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Stereotype/name_not_clash">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Stereotype/name_not_clash/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Stereotype/name_not_clash/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Stereotype/associationEndOwnership">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Stereotype/associationEndOwnership/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Stereotype/associationEndOwnership/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Stereotype/createExtension">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Stereotype/createExtension/metaclass"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Stereotype/createExtension/isRequired"/>
@@ -354,25 +350,41 @@
           cacheAdapterScope="Global"/>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Class/getSuperClasses"/>
     </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//BehavioredClassifier">
+    <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//EncapsulatedClassifier">
       <genFeatures xsi:type="genmodel:GenFeature" createChild="true" propertySortChoices="true"
-          ecoreFeature="ecore:EReference UML.ecore#//BehavioredClassifier/classifierBehavior"/>
+          ecoreFeature="ecore:EReference UML.ecore#//EncapsulatedClassifier/ownedPort">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//EncapsulatedClassifier/getOwnedPorts"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//StructuredClassifier">
       <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//BehavioredClassifier/interfaceRealization">
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//StructuredClassifier/ownedAttribute">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
       <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//BehavioredClassifier/ownedBehavior">
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//StructuredClassifier/ownedConnector">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//BehavioredClassifier/class_behavior">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//BehavioredClassifier/class_behavior/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//BehavioredClassifier/class_behavior/context"/>
+      <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
+          createChild="false" ecoreFeature="ecore:EReference UML.ecore#//StructuredClassifier/part">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
+      <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
+          createChild="false" ecoreFeature="ecore:EReference UML.ecore#//StructuredClassifier/role">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//StructuredClassifier/multiplicities">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StructuredClassifier/multiplicities/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StructuredClassifier/multiplicities/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//BehavioredClassifier/getAllImplementedInterfaces"
-          cacheAdapterScope="Global"/>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//BehavioredClassifier/getImplementedInterfaces"
-          cacheAdapterScope="Global"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//StructuredClassifier/createOwnedAttribute">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StructuredClassifier/createOwnedAttribute/name"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StructuredClassifier/createOwnedAttribute/type"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StructuredClassifier/createOwnedAttribute/lower"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StructuredClassifier/createOwnedAttribute/upper"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//StructuredClassifier/getParts"/>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//Classifier">
       <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
@@ -417,14 +429,6 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Classifier/substitution">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Classifier/specialize_type">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Classifier/specialize_type/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Classifier/specialize_type/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Classifier/maps_to_generalization_set">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Classifier/maps_to_generalization_set/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Classifier/maps_to_generalization_set/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Classifier/non_final_parents">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Classifier/non_final_parents/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Classifier/non_final_parents/context"/>
@@ -433,6 +437,14 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Classifier/no_cycles_in_generalization/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Classifier/no_cycles_in_generalization/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Classifier/specialize_type">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Classifier/specialize_type/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Classifier/specialize_type/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Classifier/maps_to_generalization_set">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Classifier/maps_to_generalization_set/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Classifier/maps_to_generalization_set/context"/>
+      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Classifier/getAllAttributes"
           cacheAdapterScope="Global"/>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Classifier/getAllOperations"
@@ -554,10 +566,6 @@
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute UML.ecore#//NamedElement/visibility"/>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//NamedElement/visibility_needs_ownership">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//NamedElement/visibility_needs_ownership/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//NamedElement/visibility_needs_ownership/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//NamedElement/has_qualified_name">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//NamedElement/has_qualified_name/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//NamedElement/has_qualified_name/context"/>
@@ -566,6 +574,10 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//NamedElement/has_no_qualified_name/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//NamedElement/has_no_qualified_name/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//NamedElement/visibility_needs_ownership">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//NamedElement/visibility_needs_ownership/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//NamedElement/visibility_needs_ownership/context"/>
+      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//NamedElement/createDependency">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//NamedElement/createDependency/supplier"/>
       </genOperations>
@@ -597,114 +609,13 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//StringExpression/subExpression">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//StringExpression/operands">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StringExpression/operands/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StringExpression/operands/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//StringExpression/subexpressions">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StringExpression/subexpressions/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StringExpression/subexpressions/context"/>
       </genOperations>
-    </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//TemplateableElement">
-      <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//TemplateableElement/ownedTemplateSignature">
-        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
-      </genFeatures>
-      <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//TemplateableElement/templateBinding">
-        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
-      </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//TemplateableElement/isTemplate"/>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//TemplateableElement/parameterableElements"
-          cacheAdapterScope="Global"/>
-    </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//TemplateSignature">
-      <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//TemplateSignature/ownedParameter">
-        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
-      </genFeatures>
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//TemplateSignature/parameter"/>
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//TemplateSignature/template">
-        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
-      </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//TemplateSignature/own_elements">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//TemplateSignature/own_elements/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//TemplateSignature/own_elements/context"/>
-      </genOperations>
-    </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//TemplateParameter">
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//TemplateParameter/default"/>
-      <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//TemplateParameter/ownedParameteredElement">
-        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
-      </genFeatures>
-      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" propertySortChoices="true"
-          ecoreFeature="ecore:EReference UML.ecore#//TemplateParameter/parameteredElement"/>
-      <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//TemplateParameter/ownedDefault">
-        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
-      </genFeatures>
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//TemplateParameter/signature">
-        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
-      </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//TemplateParameter/must_be_compatible">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//TemplateParameter/must_be_compatible/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//TemplateParameter/must_be_compatible/context"/>
-      </genOperations>
-    </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//ParameterableElement">
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//ParameterableElement/owningTemplateParameter">
-        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
-      </genFeatures>
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//ParameterableElement/templateParameter"/>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ParameterableElement/isCompatibleWith">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ParameterableElement/isCompatibleWith/p"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ParameterableElement/isTemplateParameter"/>
-    </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//TemplateBinding">
-      <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//TemplateBinding/parameterSubstitution">
-        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
-      </genFeatures>
-      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" propertySortChoices="true"
-          ecoreFeature="ecore:EReference UML.ecore#//TemplateBinding/signature" key="true"/>
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//TemplateBinding/boundElement">
-        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
-      </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//TemplateBinding/parameter_substitution_formal">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//TemplateBinding/parameter_substitution_formal/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//TemplateBinding/parameter_substitution_formal/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//TemplateBinding/one_parameter_substitution">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//TemplateBinding/one_parameter_substitution/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//TemplateBinding/one_parameter_substitution/context"/>
-      </genOperations>
-    </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//TemplateParameterSubstitution">
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//TemplateParameterSubstitution/actual"/>
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//TemplateParameterSubstitution/formal"/>
-      <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//TemplateParameterSubstitution/ownedActual">
-        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
-      </genFeatures>
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//TemplateParameterSubstitution/templateBinding">
-        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
-      </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//TemplateParameterSubstitution/must_be_compatible">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//TemplateParameterSubstitution/must_be_compatible/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//TemplateParameterSubstitution/must_be_compatible/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//StringExpression/operands">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StringExpression/operands/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StringExpression/operands/context"/>
       </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//Expression">
@@ -751,7 +662,6 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Type/conformsTo/other"/>
       </genOperations>
     </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//PackageableElement"/>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//Package">
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute UML.ecore#//Package/URI"/>
       <genFeatures xsi:type="genmodel:GenFeature" createChild="true" propertySortChoices="true"
@@ -845,6 +755,111 @@
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Package/visibleMembers"
           cacheAdapterScope="Global"/>
     </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//TemplateableElement">
+      <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//TemplateableElement/ownedTemplateSignature">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
+      <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//TemplateableElement/templateBinding">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//TemplateableElement/isTemplate"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//TemplateableElement/parameterableElements"
+          cacheAdapterScope="Global"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//TemplateSignature">
+      <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//TemplateSignature/ownedParameter">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//TemplateSignature/parameter"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//TemplateSignature/template">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//TemplateSignature/own_elements">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//TemplateSignature/own_elements/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//TemplateSignature/own_elements/context"/>
+      </genOperations>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//TemplateParameter">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//TemplateParameter/default"/>
+      <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//TemplateParameter/ownedDefault">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
+      <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//TemplateParameter/ownedParameteredElement">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" propertySortChoices="true"
+          ecoreFeature="ecore:EReference UML.ecore#//TemplateParameter/parameteredElement"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//TemplateParameter/signature">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//TemplateParameter/must_be_compatible">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//TemplateParameter/must_be_compatible/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//TemplateParameter/must_be_compatible/context"/>
+      </genOperations>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//TemplateBinding">
+      <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//TemplateBinding/parameterSubstitution">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" propertySortChoices="true"
+          ecoreFeature="ecore:EReference UML.ecore#//TemplateBinding/signature" key="true"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//TemplateBinding/boundElement">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//TemplateBinding/parameter_substitution_formal">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//TemplateBinding/parameter_substitution_formal/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//TemplateBinding/parameter_substitution_formal/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//TemplateBinding/one_parameter_substitution">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//TemplateBinding/one_parameter_substitution/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//TemplateBinding/one_parameter_substitution/context"/>
+      </genOperations>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//DirectedRelationship">
+      <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
+          createChild="false" ecoreFeature="ecore:EReference UML.ecore#//DirectedRelationship/source">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
+      <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
+          createChild="false" ecoreFeature="ecore:EReference UML.ecore#//DirectedRelationship/target">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//Relationship">
+      <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
+          createChild="false" ecoreFeature="ecore:EReference UML.ecore#//Relationship/relatedElement">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//TemplateParameterSubstitution">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//TemplateParameterSubstitution/actual"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//TemplateParameterSubstitution/formal"/>
+      <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//TemplateParameterSubstitution/ownedActual">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//TemplateParameterSubstitution/templateBinding">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//TemplateParameterSubstitution/must_be_compatible">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//TemplateParameterSubstitution/must_be_compatible/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//TemplateParameterSubstitution/must_be_compatible/context"/>
+      </genOperations>
+    </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//PackageMerge">
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" propertySortChoices="true"
           ecoreFeature="ecore:EReference UML.ecore#//PackageMerge/mergedPackage" key="true"/>
@@ -911,14 +926,14 @@
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute UML.ecore#//ElementImport/visibility"/>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ElementImport/imported_element_is_public">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ElementImport/imported_element_is_public/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ElementImport/imported_element_is_public/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ElementImport/visibility_public_or_private">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ElementImport/visibility_public_or_private/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ElementImport/visibility_public_or_private/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ElementImport/imported_element_is_public">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ElementImport/imported_element_is_public/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ElementImport/imported_element_is_public/context"/>
+      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ElementImport/getName"/>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//PackageImport">
@@ -976,17 +991,17 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Association/specialized_end_number/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Association/specialized_end_number/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Association/specialized_end_types">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Association/specialized_end_types/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Association/specialized_end_types/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Association/association_ends">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Association/association_ends/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Association/association_ends/context"/>
       </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Association/binary_associations">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Association/binary_associations/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Association/binary_associations/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Association/association_ends">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Association/association_ends/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Association/association_ends/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Association/specialized_end_types">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Association/specialized_end_types/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Association/specialized_end_types/context"/>
       </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Association/isBinary"/>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Association/getEndTypes"
@@ -994,11 +1009,11 @@
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//Property">
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Property/datatype">
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Property/interface">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Property/interface">
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Property/datatype">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute UML.ecore#//Property/aggregation"/>
@@ -1039,41 +1054,41 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Property/subsettedProperty"/>
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Property/association"/>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Property/subsetting_context_conforms">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Property/subsetting_context_conforms/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Property/subsetting_context_conforms/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Property/derived_union_is_read_only">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Property/derived_union_is_read_only/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Property/derived_union_is_read_only/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Property/multiplicity_of_composite">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Property/multiplicity_of_composite/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Property/multiplicity_of_composite/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Property/redefined_property_inherited">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Property/redefined_property_inherited/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Property/redefined_property_inherited/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Property/subsetted_property_names">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Property/subsetted_property_names/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Property/subsetted_property_names/context"/>
       </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Property/subsetting_rules">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Property/subsetting_rules/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Property/subsetting_rules/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Property/multiplicity_of_composite">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Property/multiplicity_of_composite/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Property/multiplicity_of_composite/context"/>
+      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Property/binding_to_attribute">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Property/binding_to_attribute/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Property/binding_to_attribute/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Property/derived_union_is_derived">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Property/derived_union_is_derived/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Property/derived_union_is_derived/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Property/redefined_property_inherited">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Property/redefined_property_inherited/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Property/redefined_property_inherited/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Property/subsetting_context_conforms">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Property/subsetting_context_conforms/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Property/subsetting_context_conforms/context"/>
       </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Property/deployment_target">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Property/deployment_target/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Property/deployment_target/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Property/subsetted_property_names">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Property/subsetted_property_names/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Property/subsetted_property_names/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Property/derived_union_is_derived">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Property/derived_union_is_derived/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Property/derived_union_is_derived/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Property/derived_union_is_read_only">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Property/derived_union_is_read_only/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Property/derived_union_is_read_only/context"/>
       </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Property/getOtherEnd"/>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Property/isSetDefault"/>
@@ -1116,39 +1131,8 @@
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Property/subsettingContext"
           cacheAdapterScope="Global"/>
     </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//ConnectableElement">
-      <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
-          createChild="false" ecoreFeature="ecore:EReference UML.ecore#//ConnectableElement/end">
-        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
-      </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ConnectableElement/getEnds"/>
-    </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//ConnectorEnd">
-      <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
-          createChild="false" ecoreFeature="ecore:EReference UML.ecore#//ConnectorEnd/definingEnd">
-        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
-      </genFeatures>
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//ConnectorEnd/partWithPort"/>
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//ConnectorEnd/role"/>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ConnectorEnd/role_and_part_with_port">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConnectorEnd/role_and_part_with_port/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConnectorEnd/role_and_part_with_port/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ConnectorEnd/part_with_port_empty">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConnectorEnd/part_with_port_empty/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConnectorEnd/part_with_port_empty/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ConnectorEnd/multiplicity">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConnectorEnd/multiplicity/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConnectorEnd/multiplicity/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ConnectorEnd/self_part_with_port">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConnectorEnd/self_part_with_port/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConnectorEnd/self_part_with_port/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ConnectorEnd/getDefiningEnd"/>
+    <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//StructuralFeature">
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute UML.ecore#//StructuralFeature/isReadOnly"/>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//MultiplicityElement">
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute UML.ecore#//MultiplicityElement/isOrdered"/>
@@ -1163,22 +1147,22 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//MultiplicityElement/upperValue">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//MultiplicityElement/upper_ge_lower">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//MultiplicityElement/upper_ge_lower/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//MultiplicityElement/upper_ge_lower/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//MultiplicityElement/lower_ge_0">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//MultiplicityElement/lower_ge_0/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//MultiplicityElement/lower_ge_0/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//MultiplicityElement/value_specification_no_side_effects">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//MultiplicityElement/value_specification_no_side_effects/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//MultiplicityElement/value_specification_no_side_effects/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//MultiplicityElement/upper_ge_lower">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//MultiplicityElement/upper_ge_lower/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//MultiplicityElement/upper_ge_lower/context"/>
       </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//MultiplicityElement/value_specification_constant">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//MultiplicityElement/value_specification_constant/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//MultiplicityElement/value_specification_constant/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//MultiplicityElement/value_specification_no_side_effects">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//MultiplicityElement/value_specification_no_side_effects/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//MultiplicityElement/value_specification_no_side_effects/context"/>
+      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//MultiplicityElement/setLower">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//MultiplicityElement/setLower/newLower"/>
       </genOperations>
@@ -1204,6 +1188,76 @@
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//MultiplicityElement/getUpper"/>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//MultiplicityElement/upperBound"/>
     </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//Feature">
+      <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
+          createChild="false" ecoreFeature="ecore:EReference UML.ecore#//Feature/featuringClassifier">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute UML.ecore#//Feature/isStatic"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//RedefinableElement">
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute UML.ecore#//RedefinableElement/isLeaf"/>
+      <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
+          createChild="false" ecoreFeature="ecore:EReference UML.ecore#//RedefinableElement/redefinedElement">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
+      <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
+          createChild="false" ecoreFeature="ecore:EReference UML.ecore#//RedefinableElement/redefinitionContext">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//RedefinableElement/redefinition_consistent">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//RedefinableElement/redefinition_consistent/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//RedefinableElement/redefinition_consistent/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//RedefinableElement/non_leaf_redefinition">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//RedefinableElement/non_leaf_redefinition/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//RedefinableElement/non_leaf_redefinition/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//RedefinableElement/redefinition_context_valid">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//RedefinableElement/redefinition_context_valid/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//RedefinableElement/redefinition_context_valid/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//RedefinableElement/isConsistentWith">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//RedefinableElement/isConsistentWith/redefinee"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//RedefinableElement/isRedefinitionContextValid">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//RedefinableElement/isRedefinitionContextValid/redefined"/>
+      </genOperations>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//ConnectableElement">
+      <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
+          createChild="false" ecoreFeature="ecore:EReference UML.ecore#//ConnectableElement/end">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ConnectableElement/getEnds"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//ConnectorEnd">
+      <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
+          createChild="false" ecoreFeature="ecore:EReference UML.ecore#//ConnectorEnd/definingEnd">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//ConnectorEnd/partWithPort"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//ConnectorEnd/role"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ConnectorEnd/role_and_part_with_port">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConnectorEnd/role_and_part_with_port/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConnectorEnd/role_and_part_with_port/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ConnectorEnd/self_part_with_port">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConnectorEnd/self_part_with_port/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConnectorEnd/self_part_with_port/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ConnectorEnd/multiplicity">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConnectorEnd/multiplicity/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConnectorEnd/multiplicity/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ConnectorEnd/part_with_port_empty">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConnectorEnd/part_with_port_empty/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConnectorEnd/part_with_port_empty/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ConnectorEnd/getDefiningEnd"/>
+    </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//ConnectableElementTemplateParameter"/>
     <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//DeploymentTarget">
       <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
@@ -1236,14 +1290,14 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//DeploymentSpecification/deployment">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//DeploymentSpecification/deployment_target">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DeploymentSpecification/deployment_target/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DeploymentSpecification/deployment_target/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//DeploymentSpecification/deployed_elements">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DeploymentSpecification/deployed_elements/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DeploymentSpecification/deployed_elements/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//DeploymentSpecification/deployment_target">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DeploymentSpecification/deployment_target/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DeploymentSpecification/deployment_target/context"/>
+      </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//Artifact">
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute UML.ecore#//Artifact/fileName"/>
@@ -1283,6 +1337,10 @@
           key="true"/>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//Operation">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Operation/interface">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
       <genFeatures xsi:type="genmodel:GenFeature" createChild="true" propertySortChoices="true"
           ecoreFeature="ecore:EReference UML.ecore#//Operation/bodyCondition"/>
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
@@ -1293,10 +1351,6 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Operation/datatype">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Operation/interface">
-        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
-      </genFeatures>
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute UML.ecore#//Operation/isOrdered.1"/>
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute UML.ecore#//Operation/isQuery"/>
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute UML.ecore#//Operation/isUnique.1"/>
@@ -1363,42 +1417,6 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//BehavioralFeature/createReturnResult/type"/>
       </genOperations>
     </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//Feature">
-      <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
-          createChild="false" ecoreFeature="ecore:EReference UML.ecore#//Feature/featuringClassifier">
-        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
-      </genFeatures>
-      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute UML.ecore#//Feature/isStatic"/>
-    </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//RedefinableElement">
-      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute UML.ecore#//RedefinableElement/isLeaf"/>
-      <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
-          createChild="false" ecoreFeature="ecore:EReference UML.ecore#//RedefinableElement/redefinedElement">
-        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
-      </genFeatures>
-      <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
-          createChild="false" ecoreFeature="ecore:EReference UML.ecore#//RedefinableElement/redefinitionContext">
-        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
-      </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//RedefinableElement/redefinition_consistent">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//RedefinableElement/redefinition_consistent/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//RedefinableElement/redefinition_consistent/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//RedefinableElement/non_leaf_redefinition">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//RedefinableElement/non_leaf_redefinition/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//RedefinableElement/non_leaf_redefinition/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//RedefinableElement/redefinition_context_valid">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//RedefinableElement/redefinition_context_valid/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//RedefinableElement/redefinition_context_valid/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//RedefinableElement/isConsistentWith">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//RedefinableElement/isConsistentWith/redefinee"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//RedefinableElement/isRedefinitionContextValid">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//RedefinableElement/isRedefinitionContextValid/redefined"/>
-      </genOperations>
-    </genClasses>
     <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//Behavior">
       <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
           createChild="false" ecoreFeature="ecore:EReference UML.ecore#//Behavior/context">
@@ -1425,14 +1443,6 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Behavior/redefinedBehavior"/>
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Behavior/specification"/>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Behavior/most_one_behaviour">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Behavior/most_one_behaviour/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Behavior/most_one_behaviour/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Behavior/must_realize">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Behavior/must_realize/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Behavior/must_realize/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Behavior/parameters_match">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Behavior/parameters_match/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Behavior/parameters_match/context"/>
@@ -1441,135 +1451,46 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Behavior/feature_of_context_classifier/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Behavior/feature_of_context_classifier/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Behavior/must_realize">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Behavior/must_realize/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Behavior/must_realize/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Behavior/most_one_behaviour">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Behavior/most_one_behaviour/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Behavior/most_one_behaviour/context"/>
+      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Behavior/getContext"/>
     </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//Parameter">
-      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute UML.ecore#//Parameter/default"/>
+    <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//BehavioredClassifier">
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="true" propertySortChoices="true"
+          ecoreFeature="ecore:EReference UML.ecore#//BehavioredClassifier/classifierBehavior"/>
       <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Parameter/defaultValue">
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//BehavioredClassifier/interfaceRealization">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute UML.ecore#//Parameter/direction"/>
-      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute UML.ecore#//Parameter/effect"/>
-      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute UML.ecore#//Parameter/isException"/>
-      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute UML.ecore#//Parameter/isStream"/>
-      <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
-          createChild="false" ecoreFeature="ecore:EReference UML.ecore#//Parameter/operation"/>
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Parameter/parameterSet"/>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Parameter/in_and_out">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Parameter/in_and_out/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Parameter/in_and_out/context"/>
+      <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//BehavioredClassifier/ownedBehavior">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//BehavioredClassifier/class_behavior">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//BehavioredClassifier/class_behavior/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//BehavioredClassifier/class_behavior/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Parameter/not_exception">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Parameter/not_exception/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Parameter/not_exception/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Parameter/connector_end">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Parameter/connector_end/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Parameter/connector_end/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Parameter/reentrant_behaviors">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Parameter/reentrant_behaviors/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Parameter/reentrant_behaviors/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Parameter/stream_and_exception">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Parameter/stream_and_exception/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Parameter/stream_and_exception/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Parameter/isSetDefault"/>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Parameter/setBooleanDefaultValue">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Parameter/setBooleanDefaultValue/value"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Parameter/setDefault">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Parameter/setDefault/newDefault"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Parameter/setIntegerDefaultValue">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Parameter/setIntegerDefaultValue/value"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Parameter/setNullDefaultValue"/>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Parameter/setRealDefaultValue">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Parameter/setRealDefaultValue/value"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Parameter/setStringDefaultValue">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Parameter/setStringDefaultValue/value"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Parameter/setUnlimitedNaturalDefaultValue">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Parameter/setUnlimitedNaturalDefaultValue/value"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Parameter/unsetDefault"/>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Parameter/getDefault"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//BehavioredClassifier/getAllImplementedInterfaces"
+          cacheAdapterScope="Global"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//BehavioredClassifier/getImplementedInterfaces"
+          cacheAdapterScope="Global"/>
     </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//ParameterSet">
-      <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//ParameterSet/condition">
-        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
-      </genFeatures>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//InterfaceRealization">
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" propertySortChoices="true"
-          ecoreFeature="ecore:EReference UML.ecore#//ParameterSet/parameter"/>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ParameterSet/same_parameterized_entity">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ParameterSet/same_parameterized_entity/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ParameterSet/same_parameterized_entity/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ParameterSet/input">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ParameterSet/input/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ParameterSet/input/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ParameterSet/two_parameter_sets">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ParameterSet/two_parameter_sets/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ParameterSet/two_parameter_sets/context"/>
-      </genOperations>
-    </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//Constraint">
+          ecoreFeature="ecore:EReference UML.ecore#//InterfaceRealization/contract"
+          key="true"/>
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Constraint/constrainedElement"/>
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Constraint/context">
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//InterfaceRealization/implementingClassifier">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Constraint/specification">
-        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
-      </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Constraint/boolean_value">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Constraint/boolean_value/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Constraint/boolean_value/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Constraint/no_side_effects">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Constraint/no_side_effects/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Constraint/no_side_effects/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Constraint/not_apply_to_self">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Constraint/not_apply_to_self/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Constraint/not_apply_to_self/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Constraint/value_specification_boolean">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Constraint/value_specification_boolean/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Constraint/value_specification_boolean/context"/>
-      </genOperations>
     </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//DataType">
-      <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//DataType/ownedAttribute">
-        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
-      </genFeatures>
-      <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//DataType/ownedOperation">
-        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
-      </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//DataType/createOwnedAttribute">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DataType/createOwnedAttribute/name"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DataType/createOwnedAttribute/type"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DataType/createOwnedAttribute/lower"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DataType/createOwnedAttribute/upper"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//DataType/createOwnedOperation">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DataType/createOwnedOperation/name"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DataType/createOwnedOperation/parameterNames"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DataType/createOwnedOperation/parameterTypes"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DataType/createOwnedOperation/returnType"/>
-      </genOperations>
-    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//Realization"/>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//Interface">
       <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Interface/nestedClassifier">
@@ -1580,6 +1501,10 @@
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
       <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Interface/ownedOperation">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
+      <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Interface/ownedReception">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
@@ -1589,10 +1514,6 @@
       </genFeatures>
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Interface/redefinedInterface"/>
-      <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Interface/ownedOperation">
-        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
-      </genFeatures>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Interface/visibility">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Interface/visibility/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Interface/visibility/context"/>
@@ -1635,22 +1556,22 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//ProtocolStateMachine/conformance">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ProtocolStateMachine/deep_or_shallow_history">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ProtocolStateMachine/deep_or_shallow_history/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ProtocolStateMachine/deep_or_shallow_history/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ProtocolStateMachine/entry_exit_do">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ProtocolStateMachine/entry_exit_do/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ProtocolStateMachine/entry_exit_do/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ProtocolStateMachine/ports_connected">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ProtocolStateMachine/ports_connected/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ProtocolStateMachine/ports_connected/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ProtocolStateMachine/protocol_transitions">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ProtocolStateMachine/protocol_transitions/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ProtocolStateMachine/protocol_transitions/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ProtocolStateMachine/deep_or_shallow_history">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ProtocolStateMachine/deep_or_shallow_history/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ProtocolStateMachine/deep_or_shallow_history/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ProtocolStateMachine/ports_connected">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ProtocolStateMachine/ports_connected/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ProtocolStateMachine/ports_connected/context"/>
+      </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//StateMachine">
       <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
@@ -1665,22 +1586,22 @@
       </genFeatures>
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//StateMachine/extendedStateMachine"/>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//StateMachine/connection_points">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StateMachine/connection_points/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StateMachine/connection_points/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//StateMachine/method">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StateMachine/method/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StateMachine/method/context"/>
       </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//StateMachine/classifier_context">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StateMachine/classifier_context/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StateMachine/classifier_context/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//StateMachine/method">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StateMachine/method/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StateMachine/method/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//StateMachine/context_classifier">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StateMachine/context_classifier/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StateMachine/context_classifier/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//StateMachine/connection_points">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StateMachine/connection_points/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StateMachine/connection_points/context"/>
+      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//StateMachine/LCA">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StateMachine/LCA/s1"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StateMachine/LCA/s2"/>
@@ -1703,22 +1624,6 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Pseudostate/stateMachine">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Pseudostate/transitions_outgoing">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Pseudostate/transitions_outgoing/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Pseudostate/transitions_outgoing/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Pseudostate/choice_vertex">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Pseudostate/choice_vertex/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Pseudostate/choice_vertex/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Pseudostate/outgoing_from_initial">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Pseudostate/outgoing_from_initial/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Pseudostate/outgoing_from_initial/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Pseudostate/join_vertex">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Pseudostate/join_vertex/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Pseudostate/join_vertex/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Pseudostate/junction_vertex">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Pseudostate/junction_vertex/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Pseudostate/junction_vertex/context"/>
@@ -1727,14 +1632,30 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Pseudostate/history_vertices/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Pseudostate/history_vertices/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Pseudostate/initial_vertex">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Pseudostate/initial_vertex/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Pseudostate/initial_vertex/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Pseudostate/transitions_outgoing">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Pseudostate/transitions_outgoing/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Pseudostate/transitions_outgoing/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Pseudostate/outgoing_from_initial">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Pseudostate/outgoing_from_initial/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Pseudostate/outgoing_from_initial/context"/>
       </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Pseudostate/fork_vertex">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Pseudostate/fork_vertex/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Pseudostate/fork_vertex/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Pseudostate/join_vertex">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Pseudostate/join_vertex/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Pseudostate/join_vertex/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Pseudostate/choice_vertex">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Pseudostate/choice_vertex/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Pseudostate/choice_vertex/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Pseudostate/initial_vertex">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Pseudostate/initial_vertex/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Pseudostate/initial_vertex/context"/>
+      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Pseudostate/transitions_incoming">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Pseudostate/transitions_incoming/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Pseudostate/transitions_incoming/context"/>
@@ -1776,22 +1697,22 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Region/subvertex">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Region/deep_history_vertex">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Region/deep_history_vertex/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Region/deep_history_vertex/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Region/shallow_history_vertex">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Region/shallow_history_vertex/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Region/shallow_history_vertex/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Region/owned">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Region/owned/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Region/owned/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Region/deep_history_vertex">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Region/deep_history_vertex/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Region/deep_history_vertex/context"/>
       </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Region/initial_vertex">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Region/initial_vertex/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Region/initial_vertex/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Region/owned">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Region/owned/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Region/owned/context"/>
+      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Region/belongsToPSM"/>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Region/containingStateMachine"/>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Region/isRedefinitionContextValid">
@@ -1856,10 +1777,6 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//State/entry_or_exit/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//State/entry_or_exit/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//State/submachine_states">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//State/submachine_states/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//State/submachine_states/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//State/composite_states">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//State/composite_states/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//State/composite_states/context"/>
@@ -1872,6 +1789,10 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//State/submachine_or_regions/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//State/submachine_or_regions/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//State/submachine_states">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//State/submachine_states/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//State/submachine_states/context"/>
+      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//State/isComposite"/>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//State/isOrthogonal"/>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//State/isRedefinitionContextValid">
@@ -1890,14 +1811,14 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//ConnectionPointReference/state">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ConnectionPointReference/exit_pseudostates">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConnectionPointReference/exit_pseudostates/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConnectionPointReference/exit_pseudostates/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ConnectionPointReference/entry_pseudostates">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConnectionPointReference/entry_pseudostates/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConnectionPointReference/entry_pseudostates/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ConnectionPointReference/exit_pseudostates">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConnectionPointReference/exit_pseudostates/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConnectionPointReference/exit_pseudostates/context"/>
+      </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//Trigger">
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
@@ -1922,23 +1843,51 @@
           createChild="false" ecoreFeature="ecore:EReference UML.ecore#//Port/required">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Port/port_destroyed">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Port/port_destroyed/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Port/port_destroyed/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Port/default_value">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Port/default_value/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Port/default_value/context"/>
       </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Port/port_aggregation">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Port/port_aggregation/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Port/port_aggregation/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Port/default_value">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Port/default_value/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Port/default_value/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Port/port_destroyed">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Port/port_destroyed/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Port/port_destroyed/context"/>
       </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Port/getProvideds"
           cacheAdapterScope="Global"/>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Port/getRequireds"
           cacheAdapterScope="Global"/>
     </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//Constraint">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Constraint/constrainedElement"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Constraint/context">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
+      <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Constraint/specification">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Constraint/not_apply_to_self">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Constraint/not_apply_to_self/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Constraint/not_apply_to_self/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Constraint/no_side_effects">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Constraint/no_side_effects/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Constraint/no_side_effects/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Constraint/boolean_value">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Constraint/boolean_value/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Constraint/boolean_value/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Constraint/value_specification_boolean">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Constraint/value_specification_boolean/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Constraint/value_specification_boolean/context"/>
+      </genOperations>
+    </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//Transition">
       <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Transition/effect">
@@ -1963,45 +1912,45 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Transition/container">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Transition/state_is_external">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Transition/state_is_external/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Transition/state_is_external/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Transition/state_is_local">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Transition/state_is_local/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Transition/state_is_local/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Transition/join_segment_guards">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Transition/join_segment_guards/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Transition/join_segment_guards/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Transition/state_is_internal">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Transition/state_is_internal/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Transition/state_is_internal/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Transition/outgoing_pseudostates">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Transition/outgoing_pseudostates/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Transition/outgoing_pseudostates/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Transition/fork_segment_guards">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Transition/fork_segment_guards/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Transition/fork_segment_guards/context"/>
       </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Transition/join_segment_state">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Transition/join_segment_state/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Transition/join_segment_state/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Transition/fork_segment_state">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Transition/fork_segment_state/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Transition/fork_segment_state/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Transition/initial_transition">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Transition/initial_transition/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Transition/initial_transition/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Transition/outgoing_pseudostates">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Transition/outgoing_pseudostates/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Transition/outgoing_pseudostates/context"/>
       </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Transition/signatures_compatible">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Transition/signatures_compatible/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Transition/signatures_compatible/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Transition/state_is_local">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Transition/state_is_local/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Transition/state_is_local/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Transition/state_is_internal">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Transition/state_is_internal/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Transition/state_is_internal/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Transition/initial_transition">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Transition/initial_transition/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Transition/initial_transition/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Transition/join_segment_guards">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Transition/join_segment_guards/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Transition/join_segment_guards/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Transition/fork_segment_guards">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Transition/fork_segment_guards/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Transition/fork_segment_guards/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Transition/fork_segment_state">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Transition/fork_segment_state/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Transition/fork_segment_state/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Transition/state_is_external">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Transition/state_is_external/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Transition/state_is_external/context"/>
       </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Transition/containingStateMachine"/>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Transition/redefinitionContext"/>
@@ -2015,10 +1964,106 @@
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
     </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//OperationTemplateParameter"/>
-    <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//StructuralFeature">
-      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute UML.ecore#//StructuralFeature/isReadOnly"/>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//Parameter">
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute UML.ecore#//Parameter/default"/>
+      <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Parameter/defaultValue">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute UML.ecore#//Parameter/direction"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute UML.ecore#//Parameter/effect"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute UML.ecore#//Parameter/isException"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute UML.ecore#//Parameter/isStream"/>
+      <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
+          createChild="false" ecoreFeature="ecore:EReference UML.ecore#//Parameter/operation"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Parameter/parameterSet"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Parameter/reentrant_behaviors">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Parameter/reentrant_behaviors/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Parameter/reentrant_behaviors/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Parameter/connector_end">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Parameter/connector_end/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Parameter/connector_end/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Parameter/not_exception">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Parameter/not_exception/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Parameter/not_exception/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Parameter/in_and_out">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Parameter/in_and_out/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Parameter/in_and_out/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Parameter/stream_and_exception">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Parameter/stream_and_exception/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Parameter/stream_and_exception/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Parameter/isSetDefault"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Parameter/setBooleanDefaultValue">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Parameter/setBooleanDefaultValue/value"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Parameter/setDefault">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Parameter/setDefault/newDefault"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Parameter/setIntegerDefaultValue">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Parameter/setIntegerDefaultValue/value"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Parameter/setNullDefaultValue"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Parameter/setRealDefaultValue">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Parameter/setRealDefaultValue/value"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Parameter/setStringDefaultValue">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Parameter/setStringDefaultValue/value"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Parameter/setUnlimitedNaturalDefaultValue">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Parameter/setUnlimitedNaturalDefaultValue/value"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Parameter/unsetDefault"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Parameter/getDefault"/>
     </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//ParameterSet">
+      <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//ParameterSet/condition">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" propertySortChoices="true"
+          ecoreFeature="ecore:EReference UML.ecore#//ParameterSet/parameter"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ParameterSet/two_parameter_sets">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ParameterSet/two_parameter_sets/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ParameterSet/two_parameter_sets/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ParameterSet/input">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ParameterSet/input/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ParameterSet/input/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ParameterSet/same_parameterized_entity">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ParameterSet/same_parameterized_entity/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ParameterSet/same_parameterized_entity/context"/>
+      </genOperations>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//DataType">
+      <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//DataType/ownedAttribute">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
+      <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//DataType/ownedOperation">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//DataType/createOwnedAttribute">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DataType/createOwnedAttribute/name"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DataType/createOwnedAttribute/type"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DataType/createOwnedAttribute/lower"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DataType/createOwnedAttribute/upper"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//DataType/createOwnedOperation">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DataType/createOwnedOperation/name"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DataType/createOwnedOperation/parameterNames"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DataType/createOwnedOperation/parameterTypes"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DataType/createOwnedOperation/returnType"/>
+      </genOperations>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//OperationTemplateParameter"/>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//ExtensionEnd">
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ExtensionEnd/multiplicity">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ExtensionEnd/multiplicity/diagnostics"/>
@@ -2063,10 +2108,6 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//InstanceSpecification/specification">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//InstanceSpecification/deployment_artifact">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InstanceSpecification/deployment_artifact/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InstanceSpecification/deployment_artifact/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//InstanceSpecification/structural_feature">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InstanceSpecification/structural_feature/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InstanceSpecification/structural_feature/context"/>
@@ -2079,6 +2120,10 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InstanceSpecification/deployment_target/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InstanceSpecification/deployment_target/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//InstanceSpecification/deployment_artifact">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InstanceSpecification/deployment_artifact/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InstanceSpecification/deployment_artifact/context"/>
+      </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//Slot">
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" propertySortChoices="true"
@@ -2101,85 +2146,23 @@
       </genFeatures>
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//CollaborationUse/type"/>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//CollaborationUse/client_elements">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CollaborationUse/client_elements/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CollaborationUse/client_elements/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//CollaborationUse/connectors">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CollaborationUse/connectors/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CollaborationUse/connectors/context"/>
       </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//CollaborationUse/every_role">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CollaborationUse/every_role/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CollaborationUse/every_role/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//CollaborationUse/connectors">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CollaborationUse/connectors/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CollaborationUse/connectors/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//CollaborationUse/client_elements">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CollaborationUse/client_elements/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CollaborationUse/client_elements/context"/>
       </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//Collaboration">
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Collaboration/collaborationRole"/>
     </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//StructuredClassifier">
-      <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//StructuredClassifier/ownedAttribute">
-        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
-      </genFeatures>
-      <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//StructuredClassifier/ownedConnector">
-        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
-      </genFeatures>
-      <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
-          createChild="false" ecoreFeature="ecore:EReference UML.ecore#//StructuredClassifier/part">
-        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
-      </genFeatures>
-      <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
-          createChild="false" ecoreFeature="ecore:EReference UML.ecore#//StructuredClassifier/role">
-        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
-      </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//StructuredClassifier/multiplicities">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StructuredClassifier/multiplicities/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StructuredClassifier/multiplicities/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//StructuredClassifier/createOwnedAttribute">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StructuredClassifier/createOwnedAttribute/name"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StructuredClassifier/createOwnedAttribute/type"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StructuredClassifier/createOwnedAttribute/lower"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StructuredClassifier/createOwnedAttribute/upper"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//StructuredClassifier/getParts"/>
-    </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//Connector">
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Connector/contract"/>
-      <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Connector/end">
-        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
-      </genFeatures>
-      <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" createChild="false"
-          ecoreFeature="ecore:EAttribute UML.ecore#//Connector/kind">
-        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
-      </genFeatures>
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Connector/redefinedConnector"/>
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Connector/type"/>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Connector/types">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Connector/types/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Connector/types/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Connector/roles">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Connector/roles/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Connector/roles/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Connector/between_interfaces_ports">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Connector/between_interfaces_ports/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Connector/between_interfaces_ports/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Connector/compatible">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Connector/compatible/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Connector/compatible/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Connector/getKind"/>
-    </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//Generalization">
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" propertySortChoices="true"
           ecoreFeature="ecore:EReference UML.ecore#//Generalization/general" key="true"/>
@@ -2202,14 +2185,14 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//GeneralizationSet/powertype"/>
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" propertySortChoices="true"
           ecoreFeature="ecore:EReference UML.ecore#//GeneralizationSet/generalization"/>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//GeneralizationSet/generalization_same_classifier">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//GeneralizationSet/generalization_same_classifier/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//GeneralizationSet/generalization_same_classifier/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//GeneralizationSet/maps_to_generalization_set">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//GeneralizationSet/maps_to_generalization_set/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//GeneralizationSet/maps_to_generalization_set/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//GeneralizationSet/generalization_same_classifier">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//GeneralizationSet/generalization_same_classifier/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//GeneralizationSet/generalization_same_classifier/context"/>
+      </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//RedefinableTemplateSignature">
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
@@ -2244,6 +2227,14 @@
       </genFeatures>
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//UseCase/subject"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//UseCase/must_have_name">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//UseCase/must_have_name/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//UseCase/must_have_name/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//UseCase/cannot_include_self">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//UseCase/cannot_include_self/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//UseCase/cannot_include_self/context"/>
+      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//UseCase/binary_associations">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//UseCase/binary_associations/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//UseCase/binary_associations/context"/>
@@ -2252,14 +2243,6 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//UseCase/no_association_to_use_case/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//UseCase/no_association_to_use_case/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//UseCase/cannot_include_self">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//UseCase/cannot_include_self/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//UseCase/cannot_include_self/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//UseCase/must_have_name">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//UseCase/must_have_name/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//UseCase/must_have_name/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//UseCase/allIncludedUseCases"
           cacheAdapterScope="Global"/>
     </genClasses>
@@ -2307,7 +2290,6 @@
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
     </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//Realization"/>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//ClassifierTemplateParameter">
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute UML.ecore#//ClassifierTemplateParameter/allowSubstitutable"/>
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
@@ -2317,21 +2299,38 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ClassifierTemplateParameter/has_constraining_classifier/context"/>
       </genOperations>
     </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//InterfaceRealization">
-      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" propertySortChoices="true"
-          ecoreFeature="ecore:EReference UML.ecore#//InterfaceRealization/contract"
-          key="true"/>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//Connector">
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//InterfaceRealization/implementingClassifier">
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Connector/contract"/>
+      <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Connector/end">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-    </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//EncapsulatedClassifier">
-      <genFeatures xsi:type="genmodel:GenFeature" createChild="true" propertySortChoices="true"
-          ecoreFeature="ecore:EReference UML.ecore#//EncapsulatedClassifier/ownedPort">
+      <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" createChild="false"
+          ecoreFeature="ecore:EAttribute UML.ecore#//Connector/kind">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//EncapsulatedClassifier/getOwnedPorts"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Connector/redefinedConnector"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Connector/type"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Connector/compatible">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Connector/compatible/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Connector/compatible/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Connector/roles">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Connector/roles/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Connector/roles/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Connector/between_interfaces_ports">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Connector/between_interfaces_ports/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Connector/between_interfaces_ports/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Connector/types">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Connector/types/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Connector/types/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Connector/getKind"/>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//Image" labelFeature="#//uml/Image/format">
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" propertyMultiLine="true"
@@ -2349,17 +2348,17 @@
           createChild="false" ecoreFeature="ecore:EReference UML.ecore#//OpaqueExpression/result">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//OpaqueExpression/language_body_size">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//OpaqueExpression/language_body_size/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//OpaqueExpression/language_body_size/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//OpaqueExpression/only_return_result_parameters">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//OpaqueExpression/only_return_result_parameters/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//OpaqueExpression/only_return_result_parameters/context"/>
       </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//OpaqueExpression/one_return_result_parameter">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//OpaqueExpression/one_return_result_parameter/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//OpaqueExpression/one_return_result_parameter/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//OpaqueExpression/only_return_result_parameters">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//OpaqueExpression/only_return_result_parameters/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//OpaqueExpression/only_return_result_parameters/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//OpaqueExpression/language_body_size">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//OpaqueExpression/language_body_size/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//OpaqueExpression/language_body_size/context"/>
       </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//OpaqueExpression/isIntegral"/>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//OpaqueExpression/isNonNegative"/>
@@ -2372,10 +2371,6 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//AcceptCallAction/returnInformation">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//AcceptCallAction/result_pins">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//AcceptCallAction/result_pins/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//AcceptCallAction/result_pins/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//AcceptCallAction/trigger_call_event">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//AcceptCallAction/trigger_call_event/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//AcceptCallAction/trigger_call_event/context"/>
@@ -2384,6 +2379,10 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//AcceptCallAction/unmarshall/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//AcceptCallAction/unmarshall/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//AcceptCallAction/result_pins">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//AcceptCallAction/result_pins/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//AcceptCallAction/result_pins/context"/>
+      </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//AcceptEventAction">
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute UML.ecore#//AcceptEventAction/isUnmarshall"/>
@@ -2395,22 +2394,22 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//AcceptEventAction/trigger">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//AcceptEventAction/trigger_events">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//AcceptEventAction/trigger_events/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//AcceptEventAction/trigger_events/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//AcceptEventAction/no_input_pins">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//AcceptEventAction/no_input_pins/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//AcceptEventAction/no_input_pins/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//AcceptEventAction/no_output_pins">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//AcceptEventAction/no_output_pins/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//AcceptEventAction/no_output_pins/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//AcceptEventAction/trigger_events">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//AcceptEventAction/trigger_events/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//AcceptEventAction/trigger_events/context"/>
       </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//AcceptEventAction/unmarshall_signal_events">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//AcceptEventAction/unmarshall_signal_events/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//AcceptEventAction/unmarshall_signal_events/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//AcceptEventAction/no_output_pins">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//AcceptEventAction/no_output_pins/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//AcceptEventAction/no_output_pins/context"/>
+      </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//Action">
       <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
@@ -2447,10 +2446,6 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//ActivityNode/activity">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
-          createChild="false" ecoreFeature="ecore:EReference UML.ecore#//ActivityNode/inGroup">
-        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
-      </genFeatures>
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//ActivityNode/inPartition"/>
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
@@ -2463,6 +2458,10 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//ActivityNode/outgoing"/>
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//ActivityNode/incoming"/>
+      <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
+          createChild="false" ecoreFeature="ecore:EReference UML.ecore#//ActivityNode/inGroup">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//ActivityNode/redefinedNode"/>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ActivityNode/owned">
@@ -2475,22 +2474,20 @@
       </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//Activity">
-      <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Activity/edge">
-        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
-      </genFeatures>
-      <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Activity/group">
-        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
-      </genFeatures>
-      <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" createChild="true"
-          ecoreFeature="ecore:EReference UML.ecore#//Activity/structuredNode">
+      <genFeatures xsi:type="genmodel:GenFeature" property="None" children="true"
+          createChild="true" propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Activity/ownedGroup"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="true" propertySortChoices="true"
+          ecoreFeature="ecore:EReference UML.ecore#//Activity/edge">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
       <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Activity/variable">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" propertySortChoices="true"
+          ecoreFeature="ecore:EReference UML.ecore#//Activity/group"/>
+      <genFeatures xsi:type="genmodel:GenFeature" property="None" children="true"
+          createChild="true" propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Activity/ownedNode"/>
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute UML.ecore#//Activity/isReadOnly"/>
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute UML.ecore#//Activity/isSingleExecution"/>
       <genFeatures xsi:type="genmodel:GenFeature" createChild="true" propertySortChoices="true"
@@ -2498,9 +2495,15 @@
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
       <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Activity/node">
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Activity/structuredNode">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" propertySortChoices="true"
+          ecoreFeature="ecore:EReference UML.ecore#//Activity/node"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Activity/activity_parameter_node">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Activity/activity_parameter_node/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Activity/activity_parameter_node/context"/>
+      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Activity/autonomous">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Activity/autonomous/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Activity/autonomous/context"/>
@@ -2509,19 +2512,48 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Activity/no_supergroups/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Activity/no_supergroups/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Activity/activity_parameter_node">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Activity/activity_parameter_node/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Activity/activity_parameter_node/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Activity/getStructuredNodes"/>
     </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//ActivityEdge">
-      <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//ActivityEdge/guard">
+    <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//ActivityGroup">
+      <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
+          createChild="false" ecoreFeature="ecore:EReference UML.ecore#//ActivityGroup/containedEdge">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
       <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
-          createChild="false" ecoreFeature="ecore:EReference UML.ecore#//ActivityEdge/inGroup">
+          createChild="false" ecoreFeature="ecore:EReference UML.ecore#//ActivityGroup/containedNode">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//ActivityGroup/inActivity">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
+      <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
+          createChild="false" ecoreFeature="ecore:EReference UML.ecore#//ActivityGroup/subgroup">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
+      <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
+          createChild="false" ecoreFeature="ecore:EReference UML.ecore#//ActivityGroup/superGroup">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ActivityGroup/group_owned">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityGroup/group_owned/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityGroup/group_owned/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ActivityGroup/not_contained">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityGroup/not_contained/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityGroup/not_contained/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ActivityGroup/nodes_and_edges">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityGroup/nodes_and_edges/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityGroup/nodes_and_edges/context"/>
+      </genOperations>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//ActivityEdge">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//ActivityEdge/activity">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
+      <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
+          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//ActivityEdge/guard">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
@@ -2542,8 +2574,8 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//ActivityEdge/weight">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//ActivityEdge/activity">
+      <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
+          createChild="false" ecoreFeature="ecore:EReference UML.ecore#//ActivityEdge/inGroup">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ActivityEdge/owned">
@@ -2559,40 +2591,6 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityEdge/structured_node/context"/>
       </genOperations>
     </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//ActivityGroup">
-      <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
-          createChild="false" ecoreFeature="ecore:EReference UML.ecore#//ActivityGroup/containedNode">
-        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
-      </genFeatures>
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//ActivityGroup/inActivity">
-        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
-      </genFeatures>
-      <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
-          createChild="false" ecoreFeature="ecore:EReference UML.ecore#//ActivityGroup/subgroup">
-        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
-      </genFeatures>
-      <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
-          createChild="false" ecoreFeature="ecore:EReference UML.ecore#//ActivityGroup/superGroup">
-        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
-      </genFeatures>
-      <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
-          createChild="false" ecoreFeature="ecore:EReference UML.ecore#//ActivityGroup/containedEdge">
-        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
-      </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ActivityGroup/nodes_and_edges">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityGroup/nodes_and_edges/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityGroup/nodes_and_edges/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ActivityGroup/group_owned">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityGroup/group_owned/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityGroup/group_owned/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ActivityGroup/not_contained">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityGroup/not_contained/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityGroup/not_contained/context"/>
-      </genOperations>
-    </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//ActivityPartition">
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute UML.ecore#//ActivityPartition/isDimension"/>
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute UML.ecore#//ActivityPartition/isExternal"/>
@@ -2610,6 +2608,10 @@
       </genFeatures>
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//ActivityPartition/edge"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ActivityPartition/represents_part">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityPartition/represents_part/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityPartition/represents_part/context"/>
+      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ActivityPartition/represents_classifier">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityPartition/represents_classifier/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityPartition/represents_classifier/context"/>
@@ -2618,10 +2620,6 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityPartition/represents_part_and_is_contained/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityPartition/represents_part_and_is_contained/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ActivityPartition/represents_part">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityPartition/represents_part/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityPartition/represents_part/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ActivityPartition/dimension_not_contained">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityPartition/dimension_not_contained/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityPartition/dimension_not_contained/context"/>
@@ -2649,17 +2647,17 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//StructuredActivityNode/edge">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//StructuredActivityNode/output_pin_edges">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StructuredActivityNode/output_pin_edges/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StructuredActivityNode/output_pin_edges/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//StructuredActivityNode/input_pin_edges">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StructuredActivityNode/input_pin_edges/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StructuredActivityNode/input_pin_edges/context"/>
       </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//StructuredActivityNode/edges">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StructuredActivityNode/edges/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StructuredActivityNode/edges/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//StructuredActivityNode/input_pin_edges">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StructuredActivityNode/input_pin_edges/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StructuredActivityNode/input_pin_edges/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//StructuredActivityNode/output_pin_edges">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StructuredActivityNode/output_pin_edges/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StructuredActivityNode/output_pin_edges/context"/>
       </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//InputPin">
@@ -2686,17 +2684,17 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//ObjectNode/upperBound">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ObjectNode/input_output_parameter">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ObjectNode/input_output_parameter/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ObjectNode/input_output_parameter/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ObjectNode/object_flow_edges">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ObjectNode/object_flow_edges/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ObjectNode/object_flow_edges/context"/>
       </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ObjectNode/selection_behavior">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ObjectNode/selection_behavior/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ObjectNode/selection_behavior/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ObjectNode/object_flow_edges">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ObjectNode/object_flow_edges/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ObjectNode/object_flow_edges/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ObjectNode/input_output_parameter">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ObjectNode/input_output_parameter/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ObjectNode/input_output_parameter/context"/>
       </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//OutputPin">
@@ -2743,14 +2741,6 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//ExceptionHandler/protectedNode">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ExceptionHandler/exception_body">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ExceptionHandler/exception_body/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ExceptionHandler/exception_body/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ExceptionHandler/result_pins">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ExceptionHandler/result_pins/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ExceptionHandler/result_pins/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ExceptionHandler/one_input">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ExceptionHandler/one_input/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ExceptionHandler/one_input/context"/>
@@ -2759,6 +2749,14 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ExceptionHandler/edge_source_target/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ExceptionHandler/edge_source_target/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ExceptionHandler/result_pins">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ExceptionHandler/result_pins/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ExceptionHandler/result_pins/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ExceptionHandler/exception_body">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ExceptionHandler/exception_body/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ExceptionHandler/exception_body/context"/>
+      </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//ActionExecutionSpecification">
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
@@ -2809,10 +2807,6 @@
       </genFeatures>
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Lifeline/coveredBy"/>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Lifeline/selector_specified">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Lifeline/selector_specified/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Lifeline/selector_specified/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Lifeline/interaction_uses_share_lifeline">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Lifeline/interaction_uses_share_lifeline/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Lifeline/interaction_uses_share_lifeline/context"/>
@@ -2821,19 +2815,23 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Lifeline/same_classifier/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Lifeline/same_classifier/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Lifeline/selector_specified">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Lifeline/selector_specified/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Lifeline/selector_specified/context"/>
+      </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//PartDecomposition">
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//PartDecomposition/commutativity_of_decomposition">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//PartDecomposition/commutativity_of_decomposition/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//PartDecomposition/commutativity_of_decomposition/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//PartDecomposition/parts_of_internal_structures">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//PartDecomposition/parts_of_internal_structures/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//PartDecomposition/parts_of_internal_structures/context"/>
       </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//PartDecomposition/assume">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//PartDecomposition/assume/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//PartDecomposition/assume/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//PartDecomposition/parts_of_internal_structures">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//PartDecomposition/parts_of_internal_structures/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//PartDecomposition/parts_of_internal_structures/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//PartDecomposition/commutativity_of_decomposition">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//PartDecomposition/commutativity_of_decomposition/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//PartDecomposition/commutativity_of_decomposition/context"/>
       </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//InteractionUse">
@@ -2853,13 +2851,9 @@
       </genFeatures>
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//InteractionUse/returnValueRecipient"/>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//InteractionUse/gates_match">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InteractionUse/gates_match/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InteractionUse/gates_match/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//InteractionUse/arguments_are_constants">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InteractionUse/arguments_are_constants/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InteractionUse/arguments_are_constants/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//InteractionUse/all_lifelines">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InteractionUse/all_lifelines/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InteractionUse/all_lifelines/context"/>
       </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//InteractionUse/returnValueRecipient_coverage">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InteractionUse/returnValueRecipient_coverage/diagnostics"/>
@@ -2869,14 +2863,18 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InteractionUse/arguments_correspond_to_parameters/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InteractionUse/arguments_correspond_to_parameters/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//InteractionUse/gates_match">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InteractionUse/gates_match/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InteractionUse/gates_match/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//InteractionUse/arguments_are_constants">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InteractionUse/arguments_are_constants/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InteractionUse/arguments_are_constants/context"/>
+      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//InteractionUse/returnValue_type_recipient_correspondence">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InteractionUse/returnValue_type_recipient_correspondence/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InteractionUse/returnValue_type_recipient_correspondence/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//InteractionUse/all_lifelines">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InteractionUse/all_lifelines/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InteractionUse/all_lifelines/context"/>
-      </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//Gate">
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Gate/messages_combined_fragment">
@@ -2918,6 +2916,18 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Message/sending_receiving_message_event/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Message/sending_receiving_message_event/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Message/occurrence_specifications">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Message/occurrence_specifications/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Message/occurrence_specifications/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Message/signature_is_signal">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Message/signature_is_signal/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Message/signature_is_signal/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Message/signature_is_operation">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Message/signature_is_operation/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Message/signature_is_operation/context"/>
+      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Message/arguments">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Message/arguments/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Message/arguments/context"/>
@@ -2926,22 +2936,10 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Message/cannot_cross_boundaries/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Message/cannot_cross_boundaries/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Message/signature_is_signal">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Message/signature_is_signal/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Message/signature_is_signal/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Message/occurrence_specifications">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Message/occurrence_specifications/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Message/occurrence_specifications/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Message/signature_refer_to">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Message/signature_refer_to/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Message/signature_refer_to/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Message/signature_is_operation">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Message/signature_is_operation/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Message/signature_is_operation/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Message/getMessageKind"/>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//Interaction">
@@ -2975,14 +2973,14 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//InteractionOperand/fragment">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//InteractionOperand/guard_contain_references">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InteractionOperand/guard_contain_references/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InteractionOperand/guard_contain_references/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//InteractionOperand/guard_directly_prior">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InteractionOperand/guard_directly_prior/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InteractionOperand/guard_directly_prior/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//InteractionOperand/guard_contain_references">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InteractionOperand/guard_contain_references/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InteractionOperand/guard_contain_references/context"/>
+      </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//InteractionConstraint">
       <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
@@ -2993,6 +2991,10 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//InteractionConstraint/minint">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//InteractionConstraint/maxint_positive">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InteractionConstraint/maxint_positive/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InteractionConstraint/maxint_positive/context"/>
+      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//InteractionConstraint/minint_maxint">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InteractionConstraint/minint_maxint/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InteractionConstraint/minint_maxint/context"/>
@@ -3001,14 +3003,6 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InteractionConstraint/minint_non_negative/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InteractionConstraint/minint_non_negative/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//InteractionConstraint/maxint_positive">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InteractionConstraint/maxint_positive/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InteractionConstraint/maxint_positive/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//InteractionConstraint/dynamic_variables">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InteractionConstraint/dynamic_variables/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InteractionConstraint/dynamic_variables/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//InteractionConstraint/global_data">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InteractionConstraint/global_data/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InteractionConstraint/global_data/context"/>
@@ -3017,6 +3011,10 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InteractionConstraint/maxint_greater_equal_minint/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InteractionConstraint/maxint_greater_equal_minint/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//InteractionConstraint/dynamic_variables">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InteractionConstraint/dynamic_variables/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InteractionConstraint/dynamic_variables/context"/>
+      </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//GeneralOrdering">
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
@@ -3043,14 +3041,14 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActionInputPin/input_pin/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActionInputPin/input_pin/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ActionInputPin/one_output_pin">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActionInputPin/one_output_pin/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActionInputPin/one_output_pin/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ActionInputPin/no_control_or_data_flow">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActionInputPin/no_control_or_data_flow/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActionInputPin/no_control_or_data_flow/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ActionInputPin/one_output_pin">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActionInputPin/one_output_pin/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActionInputPin/one_output_pin/context"/>
+      </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//ActivityFinalNode"/>
     <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//FinalNode">
@@ -3063,33 +3061,33 @@
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//ActivityParameterNode">
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//ActivityParameterNode/parameter"/>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ActivityParameterNode/no_outgoing_edges">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityParameterNode/no_outgoing_edges/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityParameterNode/no_outgoing_edges/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ActivityParameterNode/maximum_one_parameter_node">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityParameterNode/maximum_one_parameter_node/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityParameterNode/maximum_one_parameter_node/context"/>
       </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ActivityParameterNode/maximum_two_parameter_nodes">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityParameterNode/maximum_two_parameter_nodes/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityParameterNode/maximum_two_parameter_nodes/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ActivityParameterNode/has_parameters">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityParameterNode/has_parameters/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityParameterNode/has_parameters/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ActivityParameterNode/same_type">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityParameterNode/same_type/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityParameterNode/same_type/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ActivityParameterNode/maximum_one_parameter_node">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityParameterNode/maximum_one_parameter_node/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityParameterNode/maximum_one_parameter_node/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ActivityParameterNode/no_edges">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityParameterNode/no_edges/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityParameterNode/no_edges/context"/>
       </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ActivityParameterNode/no_incoming_edges">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityParameterNode/no_incoming_edges/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityParameterNode/no_incoming_edges/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ActivityParameterNode/no_edges">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityParameterNode/no_edges/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityParameterNode/no_edges/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ActivityParameterNode/no_outgoing_edges">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityParameterNode/no_outgoing_edges/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityParameterNode/no_outgoing_edges/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ActivityParameterNode/same_type">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityParameterNode/same_type/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityParameterNode/same_type/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ActivityParameterNode/has_parameters">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityParameterNode/has_parameters/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ActivityParameterNode/has_parameters/context"/>
       </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//Actor">
@@ -3108,14 +3106,14 @@
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute UML.ecore#//AddStructuralFeatureValueAction/isReplaceAll"/>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//AddStructuralFeatureValueAction/required_value">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//AddStructuralFeatureValueAction/required_value/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//AddStructuralFeatureValueAction/required_value/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//AddStructuralFeatureValueAction/unlimited_natural_and_multiplicity">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//AddStructuralFeatureValueAction/unlimited_natural_and_multiplicity/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//AddStructuralFeatureValueAction/unlimited_natural_and_multiplicity/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//AddStructuralFeatureValueAction/required_value">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//AddStructuralFeatureValueAction/required_value/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//AddStructuralFeatureValueAction/required_value/context"/>
+      </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//WriteStructuralFeatureAction">
       <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
@@ -3126,10 +3124,6 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//WriteStructuralFeatureAction/value">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//WriteStructuralFeatureAction/multiplicity_of_result">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//WriteStructuralFeatureAction/multiplicity_of_result/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//WriteStructuralFeatureAction/multiplicity_of_result/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//WriteStructuralFeatureAction/input_pin">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//WriteStructuralFeatureAction/input_pin/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//WriteStructuralFeatureAction/input_pin/context"/>
@@ -3138,6 +3132,10 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//WriteStructuralFeatureAction/type_of_result/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//WriteStructuralFeatureAction/type_of_result/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//WriteStructuralFeatureAction/multiplicity_of_result">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//WriteStructuralFeatureAction/multiplicity_of_result/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//WriteStructuralFeatureAction/multiplicity_of_result/context"/>
+      </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//StructuralFeatureAction">
       <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
@@ -3146,18 +3144,14 @@
       </genFeatures>
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//StructuralFeatureAction/structuralFeature"/>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//StructuralFeatureAction/multiplicity">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StructuralFeatureAction/multiplicity/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StructuralFeatureAction/multiplicity/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//StructuralFeatureAction/same_type">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StructuralFeatureAction/same_type/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StructuralFeatureAction/same_type/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//StructuralFeatureAction/visibility">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StructuralFeatureAction/visibility/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StructuralFeatureAction/visibility/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//StructuralFeatureAction/multiplicity">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StructuralFeatureAction/multiplicity/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StructuralFeatureAction/multiplicity/context"/>
+      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//StructuralFeatureAction/not_static">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StructuralFeatureAction/not_static/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StructuralFeatureAction/not_static/context"/>
@@ -3166,6 +3160,10 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StructuralFeatureAction/one_featuring_classifier/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StructuralFeatureAction/one_featuring_classifier/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//StructuralFeatureAction/same_type">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StructuralFeatureAction/same_type/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StructuralFeatureAction/same_type/context"/>
+      </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//AddVariableValueAction">
       <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
@@ -3187,14 +3185,14 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//WriteVariableAction/value">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//WriteVariableAction/same_type">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//WriteVariableAction/same_type/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//WriteVariableAction/same_type/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//WriteVariableAction/multiplicity">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//WriteVariableAction/multiplicity/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//WriteVariableAction/multiplicity/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//WriteVariableAction/same_type">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//WriteVariableAction/same_type/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//WriteVariableAction/same_type/context"/>
+      </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//VariableAction">
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
@@ -3207,14 +3205,14 @@
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//AnyReceiveEvent"/>
     <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//MessageEvent"/>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//AssociationClass">
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//AssociationClass/cannot_be_defined">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//AssociationClass/cannot_be_defined/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//AssociationClass/cannot_be_defined/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//AssociationClass/disjoint_attributes_ends">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//AssociationClass/disjoint_attributes_ends/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//AssociationClass/disjoint_attributes_ends/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//AssociationClass/cannot_be_defined">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//AssociationClass/cannot_be_defined/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//AssociationClass/cannot_be_defined/context"/>
+      </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//BehaviorExecutionSpecification">
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
@@ -3223,14 +3221,14 @@
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//BroadcastSignalAction">
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//BroadcastSignalAction/signal"/>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//BroadcastSignalAction/number_and_order">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//BroadcastSignalAction/number_and_order/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//BroadcastSignalAction/number_and_order/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//BroadcastSignalAction/type_ordering_multiplicity">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//BroadcastSignalAction/type_ordering_multiplicity/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//BroadcastSignalAction/type_ordering_multiplicity/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//BroadcastSignalAction/number_and_order">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//BroadcastSignalAction/number_and_order/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//BroadcastSignalAction/number_and_order/context"/>
+      </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="UML.ecore#//InvocationAction">
       <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
@@ -3250,17 +3248,17 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//CallAction/result">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//CallAction/type_ordering_multiplicity">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CallAction/type_ordering_multiplicity/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CallAction/type_ordering_multiplicity/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//CallAction/synchronous_call">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CallAction/synchronous_call/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CallAction/synchronous_call/context"/>
       </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//CallAction/number_and_order">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CallAction/number_and_order/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CallAction/number_and_order/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//CallAction/synchronous_call">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CallAction/synchronous_call/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CallAction/synchronous_call/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//CallAction/type_ordering_multiplicity">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CallAction/type_ordering_multiplicity/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CallAction/type_ordering_multiplicity/context"/>
       </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//CallBehaviorAction">
@@ -3286,10 +3284,6 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//CallOperationAction/target">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//CallOperationAction/type_target_pin">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CallOperationAction/type_target_pin/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CallOperationAction/type_target_pin/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//CallOperationAction/argument_pin_equal_parameter">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CallOperationAction/argument_pin_equal_parameter/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CallOperationAction/argument_pin_equal_parameter/context"/>
@@ -3298,6 +3292,10 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CallOperationAction/result_pin_equal_parameter/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CallOperationAction/result_pin_equal_parameter/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//CallOperationAction/type_target_pin">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CallOperationAction/type_target_pin/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CallOperationAction/type_target_pin/context"/>
+      </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//CentralBufferNode"/>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//ChangeEvent">
@@ -3319,6 +3317,10 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Clause/successorClause"/>
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//Clause/test"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Clause/test_and_body">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Clause/test_and_body/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Clause/test_and_body/context"/>
+      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Clause/body_output_pins">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Clause/body_output_pins/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Clause/body_output_pins/context"/>
@@ -3327,10 +3329,6 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Clause/decider_output/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Clause/decider_output/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Clause/test_and_body">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Clause/test_and_body/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Clause/test_and_body/context"/>
-      </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//ClearAssociationAction">
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
@@ -3353,14 +3351,14 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//ClearStructuralFeatureAction/result">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ClearStructuralFeatureAction/type_of_result">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ClearStructuralFeatureAction/type_of_result/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ClearStructuralFeatureAction/type_of_result/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ClearStructuralFeatureAction/multiplicity_of_result">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ClearStructuralFeatureAction/multiplicity_of_result/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ClearStructuralFeatureAction/multiplicity_of_result/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ClearStructuralFeatureAction/type_of_result">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ClearStructuralFeatureAction/type_of_result/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ClearStructuralFeatureAction/type_of_result/context"/>
+      </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//ClearVariableAction"/>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//CombinedFragment">
@@ -3373,21 +3371,21 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//CombinedFragment/operand">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//CombinedFragment/minint_and_maxint">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CombinedFragment/minint_and_maxint/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CombinedFragment/minint_and_maxint/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//CombinedFragment/break">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CombinedFragment/break/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CombinedFragment/break/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//CombinedFragment/opt_loop_break_neg">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CombinedFragment/opt_loop_break_neg/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CombinedFragment/opt_loop_break_neg/context"/>
+      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//CombinedFragment/consider_and_ignore">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CombinedFragment/consider_and_ignore/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CombinedFragment/consider_and_ignore/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//CombinedFragment/opt_loop_break_neg">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CombinedFragment/opt_loop_break_neg/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CombinedFragment/opt_loop_break_neg/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//CombinedFragment/minint_and_maxint">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CombinedFragment/minint_and_maxint/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CombinedFragment/minint_and_maxint/context"/>
       </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//CommunicationPath"/>
@@ -3409,14 +3407,14 @@
           createChild="false" ecoreFeature="ecore:EReference UML.ecore#//Component/required">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Component/no_nested_classifiers">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Component/no_nested_classifiers/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Component/no_nested_classifiers/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Component/no_packaged_elements">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Component/no_packaged_elements/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Component/no_packaged_elements/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Component/no_nested_classifiers">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Component/no_nested_classifiers/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Component/no_nested_classifiers/context"/>
+      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Component/createOwnedClass">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Component/createOwnedClass/name"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Component/createOwnedClass/isAbstract"/>
@@ -3460,22 +3458,6 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//ConditionalNode/result">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ConditionalNode/result_no_incoming">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConditionalNode/result_no_incoming/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConditionalNode/result_no_incoming/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ConditionalNode/no_input_pins">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConditionalNode/no_input_pins/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConditionalNode/no_input_pins/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ConditionalNode/one_clause_with_executable_node">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConditionalNode/one_clause_with_executable_node/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConditionalNode/one_clause_with_executable_node/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ConditionalNode/matching_output_pins">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConditionalNode/matching_output_pins/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConditionalNode/matching_output_pins/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ConditionalNode/executable_nodes">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConditionalNode/executable_nodes/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConditionalNode/executable_nodes/context"/>
@@ -3484,29 +3466,45 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConditionalNode/clause_no_predecessor/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConditionalNode/clause_no_predecessor/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ConditionalNode/matching_output_pins">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConditionalNode/matching_output_pins/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConditionalNode/matching_output_pins/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ConditionalNode/one_clause_with_executable_node">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConditionalNode/one_clause_with_executable_node/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConditionalNode/one_clause_with_executable_node/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ConditionalNode/result_no_incoming">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConditionalNode/result_no_incoming/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConditionalNode/result_no_incoming/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ConditionalNode/no_input_pins">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConditionalNode/no_input_pins/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConditionalNode/no_input_pins/context"/>
+      </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//ConsiderIgnoreFragment">
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//ConsiderIgnoreFragment/message"/>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ConsiderIgnoreFragment/consider_or_ignore">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConsiderIgnoreFragment/consider_or_ignore/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConsiderIgnoreFragment/consider_or_ignore/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ConsiderIgnoreFragment/type">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConsiderIgnoreFragment/type/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConsiderIgnoreFragment/type/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ConsiderIgnoreFragment/consider_or_ignore">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConsiderIgnoreFragment/consider_or_ignore/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ConsiderIgnoreFragment/consider_or_ignore/context"/>
+      </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//Continuation">
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute UML.ecore#//Continuation/setting"/>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Continuation/first_or_last_interaction_fragment">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Continuation/first_or_last_interaction_fragment/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Continuation/first_or_last_interaction_fragment/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Continuation/same_name">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Continuation/same_name/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Continuation/same_name/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Continuation/first_or_last_interaction_fragment">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Continuation/first_or_last_interaction_fragment/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Continuation/first_or_last_interaction_fragment/context"/>
+      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//Continuation/global">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Continuation/global/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//Continuation/global/context"/>
@@ -3562,6 +3560,14 @@
       </genFeatures>
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//LinkEndData/value"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//LinkEndData/property_is_association_end">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//LinkEndData/property_is_association_end/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//LinkEndData/property_is_association_end/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//LinkEndData/end_object_input_pin">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//LinkEndData/end_object_input_pin/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//LinkEndData/end_object_input_pin/context"/>
+      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//LinkEndData/same_type">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//LinkEndData/same_type/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//LinkEndData/same_type/context"/>
@@ -3570,14 +3576,6 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//LinkEndData/multiplicity/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//LinkEndData/multiplicity/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//LinkEndData/end_object_input_pin">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//LinkEndData/end_object_input_pin/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//LinkEndData/end_object_input_pin/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//LinkEndData/property_is_association_end">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//LinkEndData/property_is_association_end/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//LinkEndData/property_is_association_end/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//LinkEndData/qualifiers">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//LinkEndData/qualifiers/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//LinkEndData/qualifiers/context"/>
@@ -3588,6 +3586,10 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//QualifierValue/qualifier"/>
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//QualifierValue/value"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//QualifierValue/qualifier_attribute">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//QualifierValue/qualifier_attribute/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//QualifierValue/qualifier_attribute/context"/>
+      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//QualifierValue/multiplicity_of_qualifier">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//QualifierValue/multiplicity_of_qualifier/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//QualifierValue/multiplicity_of_qualifier/context"/>
@@ -3596,40 +3598,36 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//QualifierValue/type_of_qualifier/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//QualifierValue/type_of_qualifier/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//QualifierValue/qualifier_attribute">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//QualifierValue/qualifier_attribute/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//QualifierValue/qualifier_attribute/context"/>
-      </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//LinkEndCreationData">
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//LinkEndCreationData/insertAt"/>
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute UML.ecore#//LinkEndCreationData/isReplaceAll"/>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//LinkEndCreationData/single_input_pin">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//LinkEndCreationData/single_input_pin/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//LinkEndCreationData/single_input_pin/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//LinkEndCreationData/create_link_action">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//LinkEndCreationData/create_link_action/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//LinkEndCreationData/create_link_action/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//LinkEndCreationData/single_input_pin">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//LinkEndCreationData/single_input_pin/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//LinkEndCreationData/single_input_pin/context"/>
+      </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//CreateLinkObjectAction">
       <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//CreateLinkObjectAction/result">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//CreateLinkObjectAction/multiplicity">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CreateLinkObjectAction/multiplicity/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CreateLinkObjectAction/multiplicity/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//CreateLinkObjectAction/association_class">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CreateLinkObjectAction/association_class/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CreateLinkObjectAction/association_class/context"/>
       </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//CreateLinkObjectAction/type_of_result">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CreateLinkObjectAction/type_of_result/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CreateLinkObjectAction/type_of_result/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//CreateLinkObjectAction/association_class">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CreateLinkObjectAction/association_class/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CreateLinkObjectAction/association_class/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//CreateLinkObjectAction/multiplicity">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CreateLinkObjectAction/multiplicity/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CreateLinkObjectAction/multiplicity/context"/>
       </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//CreateObjectAction">
@@ -3639,22 +3637,22 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//CreateObjectAction/result">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//CreateObjectAction/classifier_not_abstract">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CreateObjectAction/classifier_not_abstract/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CreateObjectAction/classifier_not_abstract/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//CreateObjectAction/multiplicity">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CreateObjectAction/multiplicity/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CreateObjectAction/multiplicity/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//CreateObjectAction/classifier_not_association_class">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CreateObjectAction/classifier_not_association_class/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CreateObjectAction/classifier_not_association_class/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//CreateObjectAction/classifier_not_abstract">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CreateObjectAction/classifier_not_abstract/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CreateObjectAction/classifier_not_abstract/context"/>
+      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//CreateObjectAction/same_type">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CreateObjectAction/same_type/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CreateObjectAction/same_type/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//CreateObjectAction/multiplicity">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CreateObjectAction/multiplicity/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//CreateObjectAction/multiplicity/context"/>
+      </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//DataStoreNode"/>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//DecisionNode">
@@ -3662,21 +3660,13 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//DecisionNode/decisionInput"/>
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//DecisionNode/decisionInputFlow"/>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//DecisionNode/zero_input_parameters">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DecisionNode/zero_input_parameters/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DecisionNode/zero_input_parameters/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//DecisionNode/parameters">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DecisionNode/parameters/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DecisionNode/parameters/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//DecisionNode/edges">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DecisionNode/edges/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DecisionNode/edges/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//DecisionNode/decision_input_flow_incoming">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DecisionNode/decision_input_flow_incoming/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DecisionNode/decision_input_flow_incoming/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//DecisionNode/two_input_parameters">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DecisionNode/two_input_parameters/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DecisionNode/two_input_parameters/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//DecisionNode/incoming_object_one_input_parameter">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DecisionNode/incoming_object_one_input_parameter/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DecisionNode/incoming_object_one_input_parameter/context"/>
       </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//DecisionNode/incoming_outgoing_edges">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DecisionNode/incoming_outgoing_edges/diagnostics"/>
@@ -3686,13 +3676,21 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DecisionNode/incoming_control_one_input_parameter/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DecisionNode/incoming_control_one_input_parameter/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//DecisionNode/parameters">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DecisionNode/parameters/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DecisionNode/parameters/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//DecisionNode/two_input_parameters">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DecisionNode/two_input_parameters/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DecisionNode/two_input_parameters/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//DecisionNode/incoming_object_one_input_parameter">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DecisionNode/incoming_object_one_input_parameter/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DecisionNode/incoming_object_one_input_parameter/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//DecisionNode/decision_input_flow_incoming">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DecisionNode/decision_input_flow_incoming/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DecisionNode/decision_input_flow_incoming/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//DecisionNode/zero_input_parameters">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DecisionNode/zero_input_parameters/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DecisionNode/zero_input_parameters/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//DecisionNode/edges">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DecisionNode/edges/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//DecisionNode/edges/context"/>
       </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//ObjectFlow">
@@ -3702,17 +3700,9 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//ObjectFlow/selection"/>
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//ObjectFlow/transformation"/>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ObjectFlow/input_and_output_parameter">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ObjectFlow/input_and_output_parameter/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ObjectFlow/input_and_output_parameter/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ObjectFlow/no_actions">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ObjectFlow/no_actions/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ObjectFlow/no_actions/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ObjectFlow/transformation_behaviour">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ObjectFlow/transformation_behaviour/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ObjectFlow/transformation_behaviour/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ObjectFlow/is_multicast_or_is_multireceive">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ObjectFlow/is_multicast_or_is_multireceive/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ObjectFlow/is_multicast_or_is_multireceive/context"/>
       </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ObjectFlow/selection_behaviour">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ObjectFlow/selection_behaviour/diagnostics"/>
@@ -3722,17 +3712,25 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ObjectFlow/compatible_types/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ObjectFlow/compatible_types/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ObjectFlow/same_upper_bounds">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ObjectFlow/same_upper_bounds/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ObjectFlow/same_upper_bounds/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ObjectFlow/no_actions">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ObjectFlow/no_actions/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ObjectFlow/no_actions/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ObjectFlow/input_and_output_parameter">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ObjectFlow/input_and_output_parameter/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ObjectFlow/input_and_output_parameter/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ObjectFlow/transformation_behaviour">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ObjectFlow/transformation_behaviour/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ObjectFlow/transformation_behaviour/context"/>
       </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ObjectFlow/target">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ObjectFlow/target/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ObjectFlow/target/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ObjectFlow/is_multicast_or_is_multireceive">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ObjectFlow/is_multicast_or_is_multireceive/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ObjectFlow/is_multicast_or_is_multireceive/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ObjectFlow/same_upper_bounds">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ObjectFlow/same_upper_bounds/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ObjectFlow/same_upper_bounds/context"/>
       </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//DestroyLinkAction"/>
@@ -3740,14 +3738,14 @@
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//LinkEndDestructionData/destroyAt"/>
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute UML.ecore#//LinkEndDestructionData/isDestroyDuplicates"/>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//LinkEndDestructionData/unlimited_natural_and_multiplicity">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//LinkEndDestructionData/unlimited_natural_and_multiplicity/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//LinkEndDestructionData/unlimited_natural_and_multiplicity/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//LinkEndDestructionData/destroy_link_action">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//LinkEndDestructionData/destroy_link_action/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//LinkEndDestructionData/destroy_link_action/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//LinkEndDestructionData/unlimited_natural_and_multiplicity">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//LinkEndDestructionData/unlimited_natural_and_multiplicity/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//LinkEndDestructionData/unlimited_natural_and_multiplicity/context"/>
+      </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//DestroyObjectAction">
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute UML.ecore#//DestroyObjectAction/isDestroyLinks"/>
@@ -3858,22 +3856,18 @@
       </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//FinalState">
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//FinalState/no_exit_behavior">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//FinalState/no_exit_behavior/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//FinalState/no_exit_behavior/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//FinalState/no_outgoing_transitions">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//FinalState/no_outgoing_transitions/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//FinalState/no_outgoing_transitions/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//FinalState/no_regions">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//FinalState/no_regions/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//FinalState/no_regions/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//FinalState/cannot_reference_submachine">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//FinalState/cannot_reference_submachine/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//FinalState/cannot_reference_submachine/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//FinalState/no_exit_behavior">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//FinalState/no_exit_behavior/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//FinalState/no_exit_behavior/context"/>
+      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//FinalState/no_entry_behavior">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//FinalState/no_entry_behavior/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//FinalState/no_entry_behavior/context"/>
@@ -3882,6 +3876,10 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//FinalState/no_state_behavior/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//FinalState/no_state_behavior/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//FinalState/no_regions">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//FinalState/no_regions/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//FinalState/no_regions/context"/>
+      </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//FlowFinalNode"/>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//ForkNode">
@@ -3924,14 +3922,14 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//InformationFlow/realizingConnector"/>
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//InformationFlow/realizingMessage"/>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//InformationFlow/must_conform">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InformationFlow/must_conform/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InformationFlow/must_conform/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//InformationFlow/sources_and_targets_kind">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InformationFlow/sources_and_targets_kind/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InformationFlow/sources_and_targets_kind/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//InformationFlow/must_conform">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InformationFlow/must_conform/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InformationFlow/must_conform/context"/>
+      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//InformationFlow/convey_classifiers">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InformationFlow/convey_classifiers/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InformationFlow/convey_classifiers/context"/>
@@ -3940,10 +3938,6 @@
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//InformationItem">
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//InformationItem/represented"/>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//InformationItem/sources_and_targets">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InformationItem/sources_and_targets/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InformationItem/sources_and_targets/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//InformationItem/has_no">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InformationItem/has_no/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InformationItem/has_no/context"/>
@@ -3952,6 +3946,10 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InformationItem/not_instantiable/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InformationItem/not_instantiable/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//InformationItem/sources_and_targets">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InformationItem/sources_and_targets/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//InformationItem/sources_and_targets/context"/>
+      </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//InitialNode">
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//InitialNode/no_incoming_edges">
@@ -4021,14 +4019,6 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//LoopNode/setupPart"/>
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//LoopNode/test"/>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//LoopNode/result_no_incoming">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//LoopNode/result_no_incoming/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//LoopNode/result_no_incoming/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//LoopNode/input_edges">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//LoopNode/input_edges/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//LoopNode/input_edges/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//LoopNode/executable_nodes">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//LoopNode/executable_nodes/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//LoopNode/executable_nodes/context"/>
@@ -4037,6 +4027,14 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//LoopNode/body_output_pins/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//LoopNode/body_output_pins/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//LoopNode/result_no_incoming">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//LoopNode/result_no_incoming/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//LoopNode/result_no_incoming/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//LoopNode/input_edges">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//LoopNode/input_edges/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//LoopNode/input_edges/context"/>
+      </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//MergeNode">
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//MergeNode/one_outgoing_edge">
@@ -4144,22 +4142,22 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkAction/type_and_ordering/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkAction/type_and_ordering/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReadLinkAction/compatible_multiplicity">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkAction/compatible_multiplicity/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkAction/compatible_multiplicity/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReadLinkAction/visibility">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkAction/visibility/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkAction/visibility/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReadLinkAction/one_open_end">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkAction/one_open_end/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkAction/one_open_end/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReadLinkAction/compatible_multiplicity">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkAction/compatible_multiplicity/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkAction/compatible_multiplicity/context"/>
+      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReadLinkAction/navigable_open_end">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkAction/navigable_open_end/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkAction/navigable_open_end/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReadLinkAction/visibility">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkAction/visibility/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkAction/visibility/context"/>
+      </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//ReadLinkObjectEndAction">
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
@@ -4172,33 +4170,33 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//ReadLinkObjectEndAction/result">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReadLinkObjectEndAction/property">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndAction/property/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndAction/property/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReadLinkObjectEndAction/association_of_association">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndAction/association_of_association/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndAction/association_of_association/context"/>
       </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReadLinkObjectEndAction/multiplicity_of_object">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndAction/multiplicity_of_object/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndAction/multiplicity_of_object/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReadLinkObjectEndAction/ends_of_association">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndAction/ends_of_association/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndAction/ends_of_association/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReadLinkObjectEndAction/type_of_result">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndAction/type_of_result/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndAction/type_of_result/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReadLinkObjectEndAction/multiplicity_of_result">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndAction/multiplicity_of_result/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndAction/multiplicity_of_result/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReadLinkObjectEndAction/type_of_object">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndAction/type_of_object/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndAction/type_of_object/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReadLinkObjectEndAction/association_of_association">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndAction/association_of_association/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndAction/association_of_association/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReadLinkObjectEndAction/property">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndAction/property/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndAction/property/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReadLinkObjectEndAction/multiplicity_of_result">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndAction/multiplicity_of_result/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndAction/multiplicity_of_result/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReadLinkObjectEndAction/ends_of_association">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndAction/ends_of_association/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndAction/ends_of_association/context"/>
       </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//ReadLinkObjectEndQualifierAction">
@@ -4212,22 +4210,10 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//ReadLinkObjectEndQualifierAction/result">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReadLinkObjectEndQualifierAction/multiplicity_of_object">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndQualifierAction/multiplicity_of_object/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndQualifierAction/multiplicity_of_object/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReadLinkObjectEndQualifierAction/type_of_object">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndQualifierAction/type_of_object/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndQualifierAction/type_of_object/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReadLinkObjectEndQualifierAction/multiplicity_of_qualifier">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndQualifierAction/multiplicity_of_qualifier/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndQualifierAction/multiplicity_of_qualifier/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReadLinkObjectEndQualifierAction/ends_of_association">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndQualifierAction/ends_of_association/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndQualifierAction/ends_of_association/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReadLinkObjectEndQualifierAction/multiplicity_of_result">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndQualifierAction/multiplicity_of_result/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndQualifierAction/multiplicity_of_result/context"/>
@@ -4236,6 +4222,18 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndQualifierAction/same_type/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndQualifierAction/same_type/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReadLinkObjectEndQualifierAction/ends_of_association">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndQualifierAction/ends_of_association/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndQualifierAction/ends_of_association/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReadLinkObjectEndQualifierAction/multiplicity_of_qualifier">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndQualifierAction/multiplicity_of_qualifier/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndQualifierAction/multiplicity_of_qualifier/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReadLinkObjectEndQualifierAction/multiplicity_of_object">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndQualifierAction/multiplicity_of_object/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndQualifierAction/multiplicity_of_object/context"/>
+      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReadLinkObjectEndQualifierAction/association_of_association">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndQualifierAction/association_of_association/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadLinkObjectEndQualifierAction/association_of_association/context"/>
@@ -4254,17 +4252,17 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadSelfAction/contained/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadSelfAction/contained/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReadSelfAction/multiplicity">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadSelfAction/multiplicity/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadSelfAction/multiplicity/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReadSelfAction/type">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadSelfAction/type/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadSelfAction/type/context"/>
       </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReadSelfAction/not_static">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadSelfAction/not_static/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadSelfAction/not_static/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReadSelfAction/type">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadSelfAction/type/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadSelfAction/type/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReadSelfAction/multiplicity">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadSelfAction/multiplicity/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReadSelfAction/multiplicity/context"/>
       </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//ReadStructuralFeatureAction">
@@ -4305,14 +4303,14 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReclassifyObjectAction/input_pin/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReclassifyObjectAction/input_pin/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReclassifyObjectAction/classifier_not_abstract">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReclassifyObjectAction/classifier_not_abstract/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReclassifyObjectAction/classifier_not_abstract/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReclassifyObjectAction/multiplicity">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReclassifyObjectAction/multiplicity/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReclassifyObjectAction/multiplicity/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReclassifyObjectAction/classifier_not_abstract">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReclassifyObjectAction/classifier_not_abstract/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReclassifyObjectAction/classifier_not_abstract/context"/>
+      </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//ReduceAction">
       <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
@@ -4326,6 +4324,10 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//ReduceAction/result">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReduceAction/output_types_are_compatible">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReduceAction/output_types_are_compatible/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReduceAction/output_types_are_compatible/context"/>
+      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReduceAction/reducer_inputs_output">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReduceAction/reducer_inputs_output/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReduceAction/reducer_inputs_output/context"/>
@@ -4334,10 +4336,6 @@
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReduceAction/input_type_is_collection/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReduceAction/input_type_is_collection/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReduceAction/output_types_are_compatible">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReduceAction/output_types_are_compatible/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReduceAction/output_types_are_compatible/context"/>
-      </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//RemoveStructuralFeatureValueAction">
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute UML.ecore#//RemoveStructuralFeatureValueAction/isRemoveDuplicates"/>
@@ -4372,14 +4370,14 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//ReplyAction/returnInformation">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReplyAction/pins_match_parameter">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReplyAction/pins_match_parameter/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReplyAction/pins_match_parameter/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReplyAction/event_on_reply_to_call_trigger">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReplyAction/event_on_reply_to_call_trigger/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReplyAction/event_on_reply_to_call_trigger/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ReplyAction/pins_match_parameter">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReplyAction/pins_match_parameter/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ReplyAction/pins_match_parameter/context"/>
+      </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//SendObjectAction">
       <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
@@ -4422,40 +4420,40 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//StartClassifierBehaviorAction/object">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//StartClassifierBehaviorAction/multiplicity">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StartClassifierBehaviorAction/multiplicity/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StartClassifierBehaviorAction/multiplicity/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//StartClassifierBehaviorAction/type_has_classifier">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StartClassifierBehaviorAction/type_has_classifier/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StartClassifierBehaviorAction/type_has_classifier/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//StartClassifierBehaviorAction/multiplicity">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StartClassifierBehaviorAction/multiplicity/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StartClassifierBehaviorAction/multiplicity/context"/>
+      </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//StartObjectBehaviorAction">
       <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//StartObjectBehaviorAction/object">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//StartObjectBehaviorAction/number_order_results">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StartObjectBehaviorAction/number_order_results/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StartObjectBehaviorAction/number_order_results/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//StartObjectBehaviorAction/multiplicity_of_object">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StartObjectBehaviorAction/multiplicity_of_object/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StartObjectBehaviorAction/multiplicity_of_object/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//StartObjectBehaviorAction/number_order_arguments">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StartObjectBehaviorAction/number_order_arguments/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StartObjectBehaviorAction/number_order_arguments/context"/>
       </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//StartObjectBehaviorAction/type_ordering_multiplicity_match">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StartObjectBehaviorAction/type_ordering_multiplicity_match/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StartObjectBehaviorAction/type_ordering_multiplicity_match/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//StartObjectBehaviorAction/number_order_arguments">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StartObjectBehaviorAction/number_order_arguments/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StartObjectBehaviorAction/number_order_arguments/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//StartObjectBehaviorAction/number_order_results">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StartObjectBehaviorAction/number_order_results/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StartObjectBehaviorAction/number_order_results/context"/>
       </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//StartObjectBehaviorAction/type_of_object">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StartObjectBehaviorAction/type_of_object/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StartObjectBehaviorAction/type_of_object/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//StartObjectBehaviorAction/multiplicity_of_object">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StartObjectBehaviorAction/multiplicity_of_object/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//StartObjectBehaviorAction/multiplicity_of_object/context"/>
+      </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//StateInvariant">
       <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
@@ -4507,14 +4505,14 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//TimeEvent/when">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//TimeEvent/when_non_negative">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//TimeEvent/when_non_negative/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//TimeEvent/when_non_negative/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//TimeEvent/starting_time">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//TimeEvent/starting_time/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//TimeEvent/starting_time/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//TimeEvent/when_non_negative">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//TimeEvent/when_non_negative/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//TimeEvent/when_non_negative/context"/>
+      </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//TimeObservation">
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
@@ -4532,33 +4530,33 @@
       </genFeatures>
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//UnmarshallAction/unmarshallType"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//UnmarshallAction/same_type">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//UnmarshallAction/same_type/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//UnmarshallAction/same_type/context"/>
+      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//UnmarshallAction/structural_feature">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//UnmarshallAction/structural_feature/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//UnmarshallAction/structural_feature/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//UnmarshallAction/number_of_result">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//UnmarshallAction/number_of_result/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//UnmarshallAction/number_of_result/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//UnmarshallAction/multiplicity_of_result">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//UnmarshallAction/multiplicity_of_result/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//UnmarshallAction/multiplicity_of_result/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//UnmarshallAction/type_and_ordering">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//UnmarshallAction/type_and_ordering/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//UnmarshallAction/type_and_ordering/context"/>
-      </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//UnmarshallAction/unmarshallType_is_classifier">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//UnmarshallAction/unmarshallType_is_classifier/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//UnmarshallAction/unmarshallType_is_classifier/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//UnmarshallAction/multiplicity_of_object">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//UnmarshallAction/multiplicity_of_object/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//UnmarshallAction/multiplicity_of_object/context"/>
       </genOperations>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//UnmarshallAction/same_type">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//UnmarshallAction/same_type/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//UnmarshallAction/same_type/context"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//UnmarshallAction/type_and_ordering">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//UnmarshallAction/type_and_ordering/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//UnmarshallAction/type_and_ordering/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//UnmarshallAction/number_of_result">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//UnmarshallAction/number_of_result/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//UnmarshallAction/number_of_result/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//UnmarshallAction/unmarshallType_is_classifier">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//UnmarshallAction/unmarshallType_is_classifier/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//UnmarshallAction/unmarshallType_is_classifier/context"/>
+      </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//UnmarshallAction/multiplicity_of_result">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//UnmarshallAction/multiplicity_of_result/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//UnmarshallAction/multiplicity_of_result/context"/>
       </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//ValuePin">
@@ -4566,14 +4564,14 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference UML.ecore#//ValuePin/value">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ValuePin/no_incoming_edges">
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ValuePin/no_incoming_edges/diagnostics"/>
-        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ValuePin/no_incoming_edges/context"/>
-      </genOperations>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ValuePin/compatible_type">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ValuePin/compatible_type/diagnostics"/>
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ValuePin/compatible_type/context"/>
       </genOperations>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="UML.ecore#//ValuePin/no_incoming_edges">
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ValuePin/no_incoming_edges/diagnostics"/>
+        <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="UML.ecore#//ValuePin/no_incoming_edges/context"/>
+      </genOperations>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="UML.ecore#//ValueSpecificationAction">
       <genFeatures xsi:type="genmodel:GenFeature" children="true" createChild="true"
diff --git a/plugins/org.eclipse.uml2.uml/model/UML.merged.uml b/plugins/org.eclipse.uml2.uml/model/UML.merged.uml
index ccd4e02..8124faa 100644
--- a/plugins/org.eclipse.uml2.uml/model/UML.merged.uml
+++ b/plugins/org.eclipse.uml2.uml/model/UML.merged.uml
@@ -1,2672 +1,2669 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<xmi:XMI xmi:version="20100901" xmlns:xmi="http://www.omg.org/spec/XMI/20100901" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/5" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
+<xmi:XMI xmi:version="20110701" xmlns:xmi="http://www.omg.org/spec/XMI/20110701" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/5" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
   <uml:Model xmi:id="_o8I_sGvaEdq4DLWZOhbdEA" name="UML">
     <packageImport xmi:id="__as3cGvaEdq4DLWZOhbdEA">
       <importedPackage xmi:type="uml:Model" href="Ecore.uml#_SeWiQMX_EduPJbEsMYXjUQ"/>
     </packageImport>
-    <packageImport xmi:id="_gyRZINwbEeCT5O2F6sGn5g">
+    <packageImport xmi:id="_VSmQEBE9EeGOffqMW1YiZA">
       <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
     </packageImport>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyRZIdwbEeCT5O2F6sGn5g" name="A_action_actionExecutionSpecification" memberEnd="_gzWXNtwbEeCT5O2F6sGn5g _gyRZItwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyRZItwbEeCT5O2F6sGn5g" name="actionExecutionSpecification" visibility="public" type="_gzWXMNwbEeCT5O2F6sGn5g" association="_gyRZIdwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyRZI9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyRZJNwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VS7nQBE9EeGOffqMW1YiZA" name="A_action_actionExecutionSpecification" memberEnd="_VU8ZdhE9EeGOffqMW1YiZA _VS7nQRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VS7nQRE9EeGOffqMW1YiZA" name="actionExecutionSpecification" visibility="public" type="_VU8ZcBE9EeGOffqMW1YiZA" association="_VS7nQBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VS7nQhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VS7nQxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gySAMNwbEeCT5O2F6sGn5g" name="A_action_interaction" memberEnd="_g0bVRNwbEeCT5O2F6sGn5g _gySAMdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gySAMdwbEeCT5O2F6sGn5g" name="interaction" visibility="public" type="_g0bVQNwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gySAMNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gySAMtwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VS8OUBE9EeGOffqMW1YiZA" name="A_action_interaction" memberEnd="_VZsWlBE9EeGOffqMW1YiZA _VS8OURE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VS8OURE9EeGOffqMW1YiZA" name="interaction" visibility="public" type="_VZsWkBE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VS8OUBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VS8OUhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gySAM9wbEeCT5O2F6sGn5g" name="A_actualGate_interactionUse" memberEnd="_g0dxldwbEeCT5O2F6sGn5g _gySANNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gySANNwbEeCT5O2F6sGn5g" name="interactionUse" visibility="public" type="_g0dxgNwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gySAM9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gySANdwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VS8OUxE9EeGOffqMW1YiZA" name="A_actualGate_interactionUse" memberEnd="_VZvZ9RE9EeGOffqMW1YiZA _VS8OVBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VS8OVBE9EeGOffqMW1YiZA" name="interactionUse" visibility="public" type="_VZvZ4BE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VS8OUxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VS8OVRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gySANtwbEeCT5O2F6sGn5g" name="A_actual_templateParameterSubstitution" memberEnd="_g2Nd9twbEeCT5O2F6sGn5g _gySAN9wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gySAN9wbEeCT5O2F6sGn5g" name="templateParameterSubstitution" visibility="public" type="_g2Nd8NwbEeCT5O2F6sGn5g" association="_gySANtwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gySAONwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gySAOdwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VS81YBE9EeGOffqMW1YiZA" name="A_actual_templateParameterSubstitution" memberEnd="_VesLVhE9EeGOffqMW1YiZA _VS81YRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VS81YRE9EeGOffqMW1YiZA" name="templateParameterSubstitution" visibility="public" type="_VesLUBE9EeGOffqMW1YiZA" association="_VS81YBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VS81YhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VS81YxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gySAOtwbEeCT5O2F6sGn5g" name="A_addition_include" memberEnd="_g0YR9NwbEeCT5O2F6sGn5g _gySAO9wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gySAO9wbEeCT5O2F6sGn5g" name="include" visibility="public" type="_g0YR8NwbEeCT5O2F6sGn5g" subsettedProperty="_gy8ukdwbEeCT5O2F6sGn5g" association="_gySAOtwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gySAPNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gySAPdwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VS81ZBE9EeGOffqMW1YiZA" name="A_addition_include" memberEnd="_VZneFBE9EeGOffqMW1YiZA _VS81ZRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VS81ZRE9EeGOffqMW1YiZA" name="include" visibility="public" type="_VZneEBE9EeGOffqMW1YiZA" subsettedProperty="_VUpegRE9EeGOffqMW1YiZA" association="_VS81ZBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VS81ZhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VS81ZxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gySAPtwbEeCT5O2F6sGn5g" name="A_annotatedElement_comment" memberEnd="_gz3Uq9wbEeCT5O2F6sGn5g _gySAP9wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gySAP9wbEeCT5O2F6sGn5g" name="comment" visibility="public" type="_Q8DcULGzEeCDe8CO90iVKQ" association="_gySAPtwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gySAQNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gySAQdwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VS9ccBE9EeGOffqMW1YiZA" name="A_annotatedElement_comment" memberEnd="_VX94QBE9EeGOffqMW1YiZA _VS9ccRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VS9ccRE9EeGOffqMW1YiZA" name="comment" visibility="public" type="_Q8DcULGzEeCDe8CO90iVKQ" association="_VS9ccBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VS9cchE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VS9ccxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gySAQtwbEeCT5O2F6sGn5g" name="A_appliedProfile_profileApplication" memberEnd="_g1rSctwbEeCT5O2F6sGn5g _gySnQNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gySnQNwbEeCT5O2F6sGn5g" name="profileApplication" visibility="public" type="_uY5yQGv5Edq7X4sGURiZYA" subsettedProperty="_gy8ukdwbEeCT5O2F6sGn5g" association="_gySAQtwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gySnQdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gySnQtwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VS9cdBE9EeGOffqMW1YiZA" name="A_appliedProfile_profileApplication" memberEnd="_VdDzoBE9EeGOffqMW1YiZA _VS9cdRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VS9cdRE9EeGOffqMW1YiZA" name="profileApplication" visibility="public" type="_uY5yQGv5Edq7X4sGURiZYA" subsettedProperty="_VUpegRE9EeGOffqMW1YiZA" association="_VS9cdBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VS9cdhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VS9cdxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gySnQ9wbEeCT5O2F6sGn5g" name="A_argument_interactionUse" memberEnd="_g0dxmdwbEeCT5O2F6sGn5g _gySnRNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gySnRNwbEeCT5O2F6sGn5g" name="interactionUse" visibility="public" type="_g0dxgNwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gySnQ9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gySnRdwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VS-DgBE9EeGOffqMW1YiZA" name="A_argument_interactionUse" memberEnd="_VZvZ-RE9EeGOffqMW1YiZA _VS-DgRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VS-DgRE9EeGOffqMW1YiZA" name="interactionUse" visibility="public" type="_VZvZ4BE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VS-DgBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VS-DghE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gySnRtwbEeCT5O2F6sGn5g" name="A_argument_invocationAction" memberEnd="_g0gNzNwbEeCT5O2F6sGn5g _gySnR9wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gySnR9wbEeCT5O2F6sGn5g" name="invocationAction" visibility="public" type="_g0gNxdwbEeCT5O2F6sGn5g" subsettedProperty="_gygpt9wbEeCT5O2F6sGn5g" association="_gySnRtwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gySnSNwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VS-DgxE9EeGOffqMW1YiZA" name="A_argument_invocationAction" memberEnd="_VZzERxE9EeGOffqMW1YiZA _VS-DhBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VS-DhBE9EeGOffqMW1YiZA" name="invocationAction" visibility="public" type="_VZzEQBE9EeGOffqMW1YiZA" subsettedProperty="_VTqnERE9EeGOffqMW1YiZA" association="_VS-DgxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VS-DhRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gySnSdwbEeCT5O2F6sGn5g" name="A_argument_message" memberEnd="_g1K8KtwbEeCT5O2F6sGn5g _gySnStwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gySnStwbEeCT5O2F6sGn5g" name="message" visibility="public" type="_gfgNwGveEdq4DLWZOhbdEA" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gySnSdwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gySnS9wbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VS-DhhE9EeGOffqMW1YiZA" name="A_argument_message" memberEnd="_VaBGsRE9EeGOffqMW1YiZA _VS-DhxE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VS-DhxE9EeGOffqMW1YiZA" name="message" visibility="public" type="_gfgNwGveEdq4DLWZOhbdEA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VS-DhhE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VS-DiBE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gySnTNwbEeCT5O2F6sGn5g" name="A_association_clearAssociationAction" memberEnd="_gz04a9wbEeCT5O2F6sGn5g _gySnTdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gySnTdwbEeCT5O2F6sGn5g" name="clearAssociationAction" visibility="public" type="_gz04YtwbEeCT5O2F6sGn5g" association="_gySnTNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gySnTtwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VS-qkBE9EeGOffqMW1YiZA" name="A_association_clearAssociationAction" memberEnd="_VX4_yRE9EeGOffqMW1YiZA _VS-qkRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VS-qkRE9EeGOffqMW1YiZA" name="clearAssociationAction" visibility="public" type="_VX4_wBE9EeGOffqMW1YiZA" association="_VS-qkBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VS-qkhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gySnT9wbEeCT5O2F6sGn5g" name="A_attribute_classifier" isDerived="true" memberEnd="_gzuKp9wbEeCT5O2F6sGn5g _gySnUNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gySnUNwbEeCT5O2F6sGn5g" name="classifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" subsettedProperty="_YUdlwLbAEeCRxrN1JUGuxA _zYrE4La-EeCRxrN1JUGuxA" association="_gySnT9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gySnUdwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VS-qkxE9EeGOffqMW1YiZA" name="A_attribute_classifier" isDerived="true" memberEnd="_VXldxBE9EeGOffqMW1YiZA _VS-qlBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VS-qlBE9EeGOffqMW1YiZA" name="classifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" subsettedProperty="_YUdlwLbAEeCRxrN1JUGuxA _zYrE4La-EeCRxrN1JUGuxA" association="_VS-qkxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VS-qlRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gySnUtwbEeCT5O2F6sGn5g" name="A_before_toAfter" memberEnd="_g0V1wdwbEeCT5O2F6sGn5g _g1XwddwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyTOUNwbEeCT5O2F6sGn5g" name="A_behavior_behaviorExecutionSpecification" memberEnd="_gzjyk9wbEeCT5O2F6sGn5g _gyTOUdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyTOUdwbEeCT5O2F6sGn5g" name="behaviorExecutionSpecification" visibility="public" type="_gzjykNwbEeCT5O2F6sGn5g" association="_gyTOUNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyTOUtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyTOU9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VS_RoBE9EeGOffqMW1YiZA" name="A_before_toAfter" memberEnd="_VZe7OBE9EeGOffqMW1YiZA _VbdRJRE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VS_RoRE9EeGOffqMW1YiZA" name="A_behavior_behaviorExecutionSpecification" memberEnd="_VWIFMxE9EeGOffqMW1YiZA _VS_RohE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VS_RohE9EeGOffqMW1YiZA" name="behaviorExecutionSpecification" visibility="public" type="_VWIFMBE9EeGOffqMW1YiZA" association="_VS_RoRE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VS_RoxE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VS_RpBE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyTOVNwbEeCT5O2F6sGn5g" name="A_behavior_callBehaviorAction" memberEnd="_gzm17NwbEeCT5O2F6sGn5g _gyTOVdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyTOVdwbEeCT5O2F6sGn5g" name="callBehaviorAction" visibility="public" type="_gzm14NwbEeCT5O2F6sGn5g" association="_gyTOVNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyTOVtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyTOV9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VS_RpRE9EeGOffqMW1YiZA" name="A_behavior_callBehaviorAction" memberEnd="_VWUSfBE9EeGOffqMW1YiZA _VS_RphE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VS_RphE9EeGOffqMW1YiZA" name="callBehaviorAction" visibility="public" type="_VWUScBE9EeGOffqMW1YiZA" association="_VS_RpRE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VS_RpxE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VS_RqBE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyTOWNwbEeCT5O2F6sGn5g" name="A_behavior_opaqueExpression" memberEnd="_g1aMsNwbEeCT5O2F6sGn5g _gyTOWdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyTOWdwbEeCT5O2F6sGn5g" name="opaqueExpression" visibility="public" type="_ChRfcGveEdq4DLWZOhbdEA" association="_gyTOWNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyTOWtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyTOW9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VS_4sBE9EeGOffqMW1YiZA" name="A_behavior_opaqueExpression" memberEnd="_VbmbGhE9EeGOffqMW1YiZA _VS_4sRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VS_4sRE9EeGOffqMW1YiZA" name="opaqueExpression" visibility="public" type="_ChRfcGveEdq4DLWZOhbdEA" association="_VS_4sBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VS_4shE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VS_4sxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyTOXNwbEeCT5O2F6sGn5g" name="A_bodyCondition_bodyContext" memberEnd="_g1co8NwbEeCT5O2F6sGn5g _gyTOXdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyTOXdwbEeCT5O2F6sGn5g" name="bodyContext" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" subsettedProperty="_g0Aek9wbEeCT5O2F6sGn5g" association="_gyTOXNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyTOXtwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VS_4tBE9EeGOffqMW1YiZA" name="A_bodyCondition_bodyContext" memberEnd="_Vb-1mRE9EeGOffqMW1YiZA _VS_4tRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VS_4tRE9EeGOffqMW1YiZA" name="bodyContext" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" subsettedProperty="_VYbLUxE9EeGOffqMW1YiZA" association="_VS_4tBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VS_4thE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyTOX9wbEeCT5O2F6sGn5g" name="A_bodyOutput_clause" memberEnd="_gz04UdwbEeCT5O2F6sGn5g _gyTOYNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyTOYNwbEeCT5O2F6sGn5g" name="clause" visibility="public" type="_gz0RQNwbEeCT5O2F6sGn5g" association="_gyTOX9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyTOYdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyTOYtwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTAfwBE9EeGOffqMW1YiZA" name="A_bodyOutput_clause" memberEnd="_VX3xsBE9EeGOffqMW1YiZA _VTAfwRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTAfwRE9EeGOffqMW1YiZA" name="clause" visibility="public" type="_VX3xoBE9EeGOffqMW1YiZA" association="_VTAfwBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTAfwhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTAfwxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyT1YNwbEeCT5O2F6sGn5g" name="A_bodyOutput_loopNode" memberEnd="_g1JuD9wbEeCT5O2F6sGn5g _gyT1YdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyT1YdwbEeCT5O2F6sGn5g" name="loopNode" visibility="public" type="_g1JuANwbEeCT5O2F6sGn5g" association="_gyT1YNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyT1YtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyT1Y9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTAfxBE9EeGOffqMW1YiZA" name="A_bodyOutput_loopNode" memberEnd="_VZ_RjxE9EeGOffqMW1YiZA _VTAfxRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTAfxRE9EeGOffqMW1YiZA" name="loopNode" visibility="public" type="_VZ_RgBE9EeGOffqMW1YiZA" association="_VTAfxBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTAfxhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTAfxxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyT1ZNwbEeCT5O2F6sGn5g" name="A_bodyPart_loopNode" memberEnd="_g1JuE9wbEeCT5O2F6sGn5g _gyT1ZdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyT1ZdwbEeCT5O2F6sGn5g" name="loopNode" visibility="public" type="_g1JuANwbEeCT5O2F6sGn5g" association="_gyT1ZNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyT1ZtwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTBG0BE9EeGOffqMW1YiZA" name="A_bodyPart_loopNode" memberEnd="_VZ_RkxE9EeGOffqMW1YiZA _VTBG0RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTBG0RE9EeGOffqMW1YiZA" name="loopNode" visibility="public" type="_VZ_RgBE9EeGOffqMW1YiZA" association="_VTBG0BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTBG0hE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyT1Z9wbEeCT5O2F6sGn5g" name="A_body_clause" memberEnd="_gz0RTNwbEeCT5O2F6sGn5g _gyT1aNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyT1aNwbEeCT5O2F6sGn5g" name="clause" visibility="public" type="_gz0RQNwbEeCT5O2F6sGn5g" association="_gyT1Z9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyT1adwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTBG0xE9EeGOffqMW1YiZA" name="A_body_clause" memberEnd="_VX3xrBE9EeGOffqMW1YiZA _VTBG1BE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTBG1BE9EeGOffqMW1YiZA" name="clause" visibility="public" type="_VX3xoBE9EeGOffqMW1YiZA" association="_VTBG0xE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTBG1RE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyT1atwbEeCT5O2F6sGn5g" name="A_cfragmentGate_combinedFragment" memberEnd="_gz3Un9wbEeCT5O2F6sGn5g _gyT1a9wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyT1a9wbEeCT5O2F6sGn5g" name="combinedFragment" visibility="public" type="_gz3UkNwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gyT1atwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyT1bNwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTBG1hE9EeGOffqMW1YiZA" name="A_cfragmentGate_combinedFragment" memberEnd="_VX8qLxE9EeGOffqMW1YiZA _VTBG1xE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTBG1xE9EeGOffqMW1YiZA" name="combinedFragment" visibility="public" type="_VX8qIBE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VTBG1hE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTBG2BE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyT1bdwbEeCT5O2F6sGn5g" name="A_changeExpression_changeEvent" memberEnd="_gzoEA9wbEeCT5O2F6sGn5g _gyT1btwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyT1btwbEeCT5O2F6sGn5g" name="changeEvent" visibility="public" type="_gzoEANwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gyT1bdwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyT1b9wbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTBt4BE9EeGOffqMW1YiZA" name="A_changeExpression_changeEvent" memberEnd="_VWWusxE9EeGOffqMW1YiZA _VTBt4RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTBt4RE9EeGOffqMW1YiZA" name="changeEvent" visibility="public" type="_VWWusBE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VTBt4BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTBt4hE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyUccNwbEeCT5O2F6sGn5g" name="A_classifierBehavior_behavioredClassifier" memberEnd="_gzlAttwbEeCT5O2F6sGn5g _gyUcctwbEeCT5O2F6sGn5g">
-      <generalization xmi:id="_gyUccdwbEeCT5O2F6sGn5g" general="_gyolh9wbEeCT5O2F6sGn5g"/>
-      <ownedEnd xmi:id="_gyUcctwbEeCT5O2F6sGn5g" name="behavioredClassifier" visibility="public" type="_iY7sMGvsEdqG6fBIPwe-mw" redefinedProperty="_gyoliNwbEeCT5O2F6sGn5g" association="_gyUccNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyUcc9wbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTBt4xE9EeGOffqMW1YiZA" name="A_classifierBehavior_behavioredClassifier" memberEnd="_VWLvkRE9EeGOffqMW1YiZA _VTBt5RE9EeGOffqMW1YiZA">
+      <generalization xmi:id="_VTBt5BE9EeGOffqMW1YiZA" general="_VT_XNxE9EeGOffqMW1YiZA"/>
+      <ownedEnd xmi:id="_VTBt5RE9EeGOffqMW1YiZA" name="behavioredClassifier" visibility="public" type="_iY7sMGvsEdqG6fBIPwe-mw" redefinedProperty="_VT_XOBE9EeGOffqMW1YiZA" association="_VTBt4xE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTBt5hE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyUcdNwbEeCT5O2F6sGn5g" name="A_classifier_createObjectAction" memberEnd="_g0CTv9wbEeCT5O2F6sGn5g _gyUcddwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyUcddwbEeCT5O2F6sGn5g" name="createObjectAction" visibility="public" type="_g0CTsNwbEeCT5O2F6sGn5g" association="_gyUcdNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyUcdtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyUcd9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTCU8BE9EeGOffqMW1YiZA" name="A_classifier_createObjectAction" memberEnd="_VYgq3xE9EeGOffqMW1YiZA _VTCU8RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTCU8RE9EeGOffqMW1YiZA" name="createObjectAction" visibility="public" type="_VYgq0BE9EeGOffqMW1YiZA" association="_VTCU8BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTCU8hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTCU8xE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyUceNwbEeCT5O2F6sGn5g" name="A_classifier_enumerationLiteral" isDerived="true" memberEnd="_g0NS1NwbEeCT5O2F6sGn5g _gyUcetwbEeCT5O2F6sGn5g">
-      <generalization xmi:id="_gyUcedwbEeCT5O2F6sGn5g" general="_gyUcfdwbEeCT5O2F6sGn5g"/>
-      <ownedEnd xmi:id="_gyUcetwbEeCT5O2F6sGn5g" name="enumerationLiteral" visibility="public" type="_OQcbgGwOEdq7X4sGURiZYA" redefinedProperty="_gyUcftwbEeCT5O2F6sGn5g" association="_gyUceNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyUce9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyUcfNwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTCU9BE9EeGOffqMW1YiZA" name="A_classifier_enumerationLiteral" isDerived="true" memberEnd="_VZNOZBE9EeGOffqMW1YiZA _VTCU9hE9EeGOffqMW1YiZA">
+      <generalization xmi:id="_VTCU9RE9EeGOffqMW1YiZA" general="_VTC8ABE9EeGOffqMW1YiZA"/>
+      <ownedEnd xmi:id="_VTCU9hE9EeGOffqMW1YiZA" name="enumerationLiteral" visibility="public" type="_OQcbgGwOEdq7X4sGURiZYA" redefinedProperty="_VTC8ARE9EeGOffqMW1YiZA" association="_VTCU9BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTCU9xE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTCU-BE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyUcfdwbEeCT5O2F6sGn5g" name="A_classifier_instanceSpecification" memberEnd="_g0auQtwbEeCT5O2F6sGn5g _gyUcftwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyUcftwbEeCT5O2F6sGn5g" name="instanceSpecification" visibility="public" type="_g0auMNwbEeCT5O2F6sGn5g" association="_gyUcfdwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyUcf9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyUcgNwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTC8ABE9EeGOffqMW1YiZA" name="A_classifier_instanceSpecification" memberEnd="_VZrIghE9EeGOffqMW1YiZA _VTC8ARE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTC8ARE9EeGOffqMW1YiZA" name="instanceSpecification" visibility="public" type="_VZrIcBE9EeGOffqMW1YiZA" association="_VTC8ABE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTC8AhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTC8AxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyUcgdwbEeCT5O2F6sGn5g" name="A_classifier_readExtentAction" memberEnd="_g1z1XtwbEeCT5O2F6sGn5g _gyUcgtwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyUcgtwbEeCT5O2F6sGn5g" name="readExtentAction" visibility="public" type="_g1z1VdwbEeCT5O2F6sGn5g" association="_gyUcgdwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyUcg9wbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTC8BBE9EeGOffqMW1YiZA" name="A_classifier_readExtentAction" memberEnd="_VdcOKRE9EeGOffqMW1YiZA _VTC8BRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTC8BRE9EeGOffqMW1YiZA" name="readExtentAction" visibility="public" type="_VdcOIBE9EeGOffqMW1YiZA" association="_VTC8BBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTC8BhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyVDgNwbEeCT5O2F6sGn5g" name="A_classifier_readIsClassifiedObjectAction" memberEnd="_g10cb9wbEeCT5O2F6sGn5g _gyVDgdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyVDgdwbEeCT5O2F6sGn5g" name="readIsClassifiedObjectAction" visibility="public" type="_g10cYNwbEeCT5O2F6sGn5g" association="_gyVDgNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyVDgtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyVDg9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTEKIBE9EeGOffqMW1YiZA" name="A_classifier_readIsClassifiedObjectAction" memberEnd="_Vdc1PxE9EeGOffqMW1YiZA _VTEKIRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTEKIRE9EeGOffqMW1YiZA" name="readIsClassifiedObjectAction" visibility="public" type="_Vdc1MBE9EeGOffqMW1YiZA" association="_VTEKIBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTEKIhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTEKIxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyVDhNwbEeCT5O2F6sGn5g" name="A_classifier_templateParameter_parameteredElement" memberEnd="_gzvY09wbEeCT5O2F6sGn5g _gzzqPdwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyVDhdwbEeCT5O2F6sGn5g" name="A_clause_conditionalNode" memberEnd="_gz7mFdwbEeCT5O2F6sGn5g _gyVDhtwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyVDhtwbEeCT5O2F6sGn5g" name="conditionalNode" visibility="public" type="_gz7mANwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gyVDhdwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTEKJBE9EeGOffqMW1YiZA" name="A_classifier_templateParameter_parameteredElement" memberEnd="_VXuAqxE9EeGOffqMW1YiZA _VX2jjRE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTEKJRE9EeGOffqMW1YiZA" name="A_clause_conditionalNode" memberEnd="_VYGbNRE9EeGOffqMW1YiZA _VTEKJhE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTEKJhE9EeGOffqMW1YiZA" name="conditionalNode" visibility="public" type="_VYGbIBE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VTEKJRE9EeGOffqMW1YiZA"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyVDh9wbEeCT5O2F6sGn5g" name="A_clientDependency_client" memberEnd="_g1QbsNwbEeCT5O2F6sGn5g _g0EI49wbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyVDiNwbEeCT5O2F6sGn5g" name="A_collaborationRole_collaboration" memberEnd="_gz2GgtwbEeCT5O2F6sGn5g _gyVDidwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyVDidwbEeCT5O2F6sGn5g" name="collaboration" visibility="public" type="_gz2GftwbEeCT5O2F6sGn5g" subsettedProperty="_gy32F9wbEeCT5O2F6sGn5g" association="_gyVDiNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyVDitwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyVDi9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTExMBE9EeGOffqMW1YiZA" name="A_clientDependency_client" memberEnd="_VaN7ABE9EeGOffqMW1YiZA _VYyXoBE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTExMRE9EeGOffqMW1YiZA" name="A_collaborationRole_collaboration" memberEnd="_VX609BE9EeGOffqMW1YiZA _VTExMhE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTExMhE9EeGOffqMW1YiZA" name="collaboration" visibility="public" type="_VX608BE9EeGOffqMW1YiZA" subsettedProperty="_VUhitBE9EeGOffqMW1YiZA" association="_VTExMRE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTExMxE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTExNBE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyVDjNwbEeCT5O2F6sGn5g" name="A_collaborationUse_classifier" memberEnd="_gzuKq9wbEeCT5O2F6sGn5g _gyVDjdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyVDjdwbEeCT5O2F6sGn5g" name="classifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gyVDjNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyVDjtwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTExNRE9EeGOffqMW1YiZA" name="A_collaborationUse_classifier" memberEnd="_VXmE0BE9EeGOffqMW1YiZA _VTExNhE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTExNhE9EeGOffqMW1YiZA" name="classifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VTExNRE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTExNxE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyVDj9wbEeCT5O2F6sGn5g" name="A_collection_reduceAction" memberEnd="_g17xLNwbEeCT5O2F6sGn5g _gyVDkNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyVDkNwbEeCT5O2F6sGn5g" name="reduceAction" visibility="public" type="_g17xINwbEeCT5O2F6sGn5g" subsettedProperty="_gygpt9wbEeCT5O2F6sGn5g" association="_gyVDj9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyVDkdwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTFYQBE9EeGOffqMW1YiZA" name="A_collection_reduceAction" memberEnd="_Vd46HBE9EeGOffqMW1YiZA _VTFYQRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTFYQRE9EeGOffqMW1YiZA" name="reduceAction" visibility="public" type="_Vd46EBE9EeGOffqMW1YiZA" subsettedProperty="_VTqnERE9EeGOffqMW1YiZA" association="_VTFYQBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTFYQhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyVqkNwbEeCT5O2F6sGn5g" name="A_condition_extend" memberEnd="_g0Q9N9wbEeCT5O2F6sGn5g _gyVqkdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyVqkdwbEeCT5O2F6sGn5g" name="extend" visibility="public" type="_g0Q9MNwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gyVqkNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyVqktwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTFYQxE9EeGOffqMW1YiZA" name="A_condition_extend" memberEnd="_VZTVBxE9EeGOffqMW1YiZA _VTFYRBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTFYRBE9EeGOffqMW1YiZA" name="extend" visibility="public" type="_VZTVABE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VTFYQxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTFYRRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyVqk9wbEeCT5O2F6sGn5g" name="A_condition_parameterSet" memberEnd="_g1nBC9wbEeCT5O2F6sGn5g _gyVqlNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyVqlNwbEeCT5O2F6sGn5g" name="parameterSet" visibility="public" type="_g1mZ8NwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gyVqk9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyVqldwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTF_UBE9EeGOffqMW1YiZA" name="A_condition_parameterSet" memberEnd="_Vc7QzBE9EeGOffqMW1YiZA _VTF_URE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTF_URE9EeGOffqMW1YiZA" name="parameterSet" visibility="public" type="_Vc7QwBE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VTF_UBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTF_UhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyVqltwbEeCT5O2F6sGn5g" name="A_configuration_deployment" memberEnd="_g0Ev9NwbEeCT5O2F6sGn5g _g0EwBtwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyVql9wbEeCT5O2F6sGn5g" name="A_conformance_specificMachine" memberEnd="_g1xZItwbEeCT5O2F6sGn5g _g1wyBdwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyVqmNwbEeCT5O2F6sGn5g" name="A_connectableElement_templateParameter_parameteredElement" memberEnd="_gz7mKtwbEeCT5O2F6sGn5g _gz80I9wbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyVqmdwbEeCT5O2F6sGn5g" name="A_connectionPoint_state" memberEnd="_g2Ce6dwbEeCT5O2F6sGn5g _g1zOYdwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyVqmtwbEeCT5O2F6sGn5g" name="A_connectionPoint_stateMachine" memberEnd="_g2EUD9wbEeCT5O2F6sGn5g _g1zOZNwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyVqm9wbEeCT5O2F6sGn5g" name="A_connection_state" memberEnd="_g2Ce5dwbEeCT5O2F6sGn5g _gz80NtwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyVqnNwbEeCT5O2F6sGn5g" name="A_connector_message" memberEnd="_g1K8LtwbEeCT5O2F6sGn5g _gyVqndwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyVqndwbEeCT5O2F6sGn5g" name="message" visibility="public" type="_gfgNwGveEdq4DLWZOhbdEA" association="_gyVqnNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyVqntwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyVqn9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTF_UxE9EeGOffqMW1YiZA" name="A_configuration_deployment" memberEnd="_VYy-tBE9EeGOffqMW1YiZA _VYzlxxE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTF_VBE9EeGOffqMW1YiZA" name="A_conformance_specificMachine" memberEnd="_VdXVshE9EeGOffqMW1YiZA _VdWHhRE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTF_VRE9EeGOffqMW1YiZA" name="A_connectableElement_templateParameter_parameteredElement" memberEnd="_VYIQVBE9EeGOffqMW1YiZA _VYJecxE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTGmYBE9EeGOffqMW1YiZA" name="A_connectionPoint_state" memberEnd="_VeR7tRE9EeGOffqMW1YiZA _VdaZERE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTGmYRE9EeGOffqMW1YiZA" name="A_connectionPoint_stateMachine" memberEnd="_VeWNHxE9EeGOffqMW1YiZA _VdaZFBE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTGmYhE9EeGOffqMW1YiZA" name="A_connection_state" memberEnd="_VeR7sRE9EeGOffqMW1YiZA _VYKsoRE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTHNcBE9EeGOffqMW1YiZA" name="A_connector_message" memberEnd="_VaBGtRE9EeGOffqMW1YiZA _VTHNcRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTHNcRE9EeGOffqMW1YiZA" name="message" visibility="public" type="_gfgNwGveEdq4DLWZOhbdEA" association="_VTHNcBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTHNchE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTHNcxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyWRoNwbEeCT5O2F6sGn5g" name="A_constrainedElement_constraint" memberEnd="_g0Aej9wbEeCT5O2F6sGn5g _gyWRodwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyWRodwbEeCT5O2F6sGn5g" name="constraint" visibility="public" type="_g0AegNwbEeCT5O2F6sGn5g" association="_gyWRoNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyWRotwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyWRo9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTHNdBE9EeGOffqMW1YiZA" name="A_constrainedElement_constraint" memberEnd="_VYbLTxE9EeGOffqMW1YiZA _VTHNdRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTHNdRE9EeGOffqMW1YiZA" name="constraint" visibility="public" type="_VYbLQBE9EeGOffqMW1YiZA" association="_VTHNdBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTHNdhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTHNdxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyWRpNwbEeCT5O2F6sGn5g" name="A_constrainingClassifier_classifierTemplateParameter" memberEnd="_gzzqOdwbEeCT5O2F6sGn5g _gyWRpdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyWRpdwbEeCT5O2F6sGn5g" name="classifierTemplateParameter" visibility="public" type="_gzzqMNwbEeCT5O2F6sGn5g" association="_gyWRpNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyWRptwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyWRp9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTHNeBE9EeGOffqMW1YiZA" name="A_constrainingClassifier_classifierTemplateParameter" memberEnd="_VX2jiRE9EeGOffqMW1YiZA _VTHNeRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTHNeRE9EeGOffqMW1YiZA" name="classifierTemplateParameter" visibility="public" type="_VX2jgBE9EeGOffqMW1YiZA" association="_VTHNeBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTHNehE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTHNexE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyWRqNwbEeCT5O2F6sGn5g" name="A_containedEdge_inGroup" isDerived="true" memberEnd="_gzaBnNwbEeCT5O2F6sGn5g _gzZaktwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyWRqdwbEeCT5O2F6sGn5g" name="A_containedNode_inGroup" isDerived="true" memberEnd="_gzaBoNwbEeCT5O2F6sGn5g _gzbPvNwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyWRqtwbEeCT5O2F6sGn5g" name="A_context_action" isDerived="true" memberEnd="_gzBnLdwbEeCT5O2F6sGn5g _gyWRq9wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyWRq9wbEeCT5O2F6sGn5g" name="action" visibility="public" type="_6WKakLLQEeCsYvaJqFFivQ" association="_gyWRqtwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyWRrNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyWRrdwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTH0gBE9EeGOffqMW1YiZA" name="A_containedEdge_inGroup" isDerived="true" memberEnd="_VVd95BE9EeGOffqMW1YiZA _VVcIwhE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTH0gRE9EeGOffqMW1YiZA" name="A_containedNode_inGroup" isDerived="true" memberEnd="_VVd96BE9EeGOffqMW1YiZA _VVfzFhE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTIbkBE9EeGOffqMW1YiZA" name="A_context_action" isDerived="true" memberEnd="_VU3g9BE9EeGOffqMW1YiZA _VTIbkRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTIbkRE9EeGOffqMW1YiZA" name="action" visibility="public" type="_6WKakLLQEeCsYvaJqFFivQ" association="_VTIbkBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTIbkhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTIbkxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyWRrtwbEeCT5O2F6sGn5g" name="A_context_behavior" isDerived="true" memberEnd="_gzh9ZNwbEeCT5O2F6sGn5g _gyWRr9wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyWRr9wbEeCT5O2F6sGn5g" name="behavior" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" subsettedProperty="_gyxIb9wbEeCT5O2F6sGn5g" association="_gyWRrtwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyWRsNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyWRsdwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTIblBE9EeGOffqMW1YiZA" name="A_context_behavior" isDerived="true" memberEnd="_VWAwcBE9EeGOffqMW1YiZA _VTIblRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTIblRE9EeGOffqMW1YiZA" name="behavior" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" subsettedProperty="_VUWjlxE9EeGOffqMW1YiZA" association="_VTIblBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTIblhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTIblxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyW4sNwbEeCT5O2F6sGn5g" name="A_contract_connector" memberEnd="_gz9bP9wbEeCT5O2F6sGn5g _gyW4sdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyW4sdwbEeCT5O2F6sGn5g" name="connector" visibility="public" type="_YxC2YLLWEeCsYvaJqFFivQ" association="_gyW4sNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyW4stwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyW4s9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTJCoBE9EeGOffqMW1YiZA" name="A_contract_connector" memberEnd="_VYL6tBE9EeGOffqMW1YiZA _VTJCoRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTJCoRE9EeGOffqMW1YiZA" name="connector" visibility="public" type="_YxC2YLLWEeCsYvaJqFFivQ" association="_VTJCoBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTJCohE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTJCoxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyW4tNwbEeCT5O2F6sGn5g" name="A_contract_interfaceRealization" memberEnd="_g0e_ptwbEeCT5O2F6sGn5g _gyW4tdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyW4tdwbEeCT5O2F6sGn5g" name="interfaceRealization" visibility="public" type="_l2mXcHLzEdqziYxiZo0YtA" subsettedProperty="_gy8HhdwbEeCT5O2F6sGn5g" association="_gyW4tNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyW4ttwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyW4t9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTJCpBE9EeGOffqMW1YiZA" name="A_contract_interfaceRealization" memberEnd="_VZxPEhE9EeGOffqMW1YiZA _VTJCpRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTJCpRE9EeGOffqMW1YiZA" name="interfaceRealization" visibility="public" type="_l2mXcHLzEdqziYxiZo0YtA" subsettedProperty="_VUo3cRE9EeGOffqMW1YiZA" association="_VTJCpBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTJCphE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTJCpxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyW4uNwbEeCT5O2F6sGn5g" name="A_contract_substitution" memberEnd="_g2Kao9wbEeCT5O2F6sGn5g _gyW4udwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyW4udwbEeCT5O2F6sGn5g" name="substitution" visibility="public" type="_g2KaoNwbEeCT5O2F6sGn5g" subsettedProperty="_gy8HhdwbEeCT5O2F6sGn5g" association="_gyW4uNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyW4utwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyW4u9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTJpsBE9EeGOffqMW1YiZA" name="A_contract_substitution" memberEnd="_VeldoxE9EeGOffqMW1YiZA _VTJpsRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTJpsRE9EeGOffqMW1YiZA" name="substitution" visibility="public" type="_VeldoBE9EeGOffqMW1YiZA" subsettedProperty="_VUo3cRE9EeGOffqMW1YiZA" association="_VTJpsBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTJpshE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTJpsxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyW4vNwbEeCT5O2F6sGn5g" name="A_conveyed_informationFlow" memberEnd="_g0Y5DdwbEeCT5O2F6sGn5g _gyW4vdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyW4vdwbEeCT5O2F6sGn5g" name="informationFlow" visibility="public" type="_g0Y5ANwbEeCT5O2F6sGn5g" association="_gyW4vNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyW4vtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyW4v9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTJptBE9EeGOffqMW1YiZA" name="A_conveyed_informationFlow" memberEnd="_VZosPRE9EeGOffqMW1YiZA _VTJptRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTJptRE9EeGOffqMW1YiZA" name="informationFlow" visibility="public" type="_VZosMBE9EeGOffqMW1YiZA" association="_VTJptBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTJpthE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTJptxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyW4wNwbEeCT5O2F6sGn5g" name="A_covered_coveredBy" memberEnd="_g0cjY9wbEeCT5O2F6sGn5g _g0hb7NwbEeCT5O2F6sGn5g">
-      <ownedComment xmi:id="_gyW4wdwbEeCT5O2F6sGn5g" annotatedElement="_gyW4wNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTKQwBE9EeGOffqMW1YiZA" name="A_covered_coveredBy" memberEnd="_VZuLwxE9EeGOffqMW1YiZA _VZ0SbBE9EeGOffqMW1YiZA">
+      <ownedComment xmi:id="_VTKQwRE9EeGOffqMW1YiZA" annotatedElement="_VTKQwBE9EeGOffqMW1YiZA">
         <body>This association shows the lifelines that make up an interaction. A lifeline may be part of more than one interaction use.</body>
       </ownedComment>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyXfwNwbEeCT5O2F6sGn5g" name="A_covered_events" memberEnd="_g1Xwc9wbEeCT5O2F6sGn5g _gyXfwdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyXfwdwbEeCT5O2F6sGn5g" name="events" visibility="public" type="_g1XwcNwbEeCT5O2F6sGn5g" isOrdered="true" subsettedProperty="_g0hb7NwbEeCT5O2F6sGn5g" association="_gyXfwNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyXfwtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyXfw9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTK30BE9EeGOffqMW1YiZA" name="A_covered_events" memberEnd="_VbdRIxE9EeGOffqMW1YiZA _VTK30RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTK30RE9EeGOffqMW1YiZA" name="events" visibility="public" type="_VbdRIBE9EeGOffqMW1YiZA" isOrdered="true" subsettedProperty="_VZ0SbBE9EeGOffqMW1YiZA" association="_VTK30BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTK30hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTK30xE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyXfxNwbEeCT5O2F6sGn5g" name="A_covered_stateInvariant" memberEnd="_g2DF69wbEeCT5O2F6sGn5g _gyXfxdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyXfxdwbEeCT5O2F6sGn5g" name="stateInvariant" visibility="public" type="_g2DF6NwbEeCT5O2F6sGn5g" subsettedProperty="_g0hb7NwbEeCT5O2F6sGn5g" association="_gyXfxNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyXfxtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyXfx9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTLe4BE9EeGOffqMW1YiZA" name="A_covered_stateInvariant" memberEnd="_VeSisxE9EeGOffqMW1YiZA _VTLe4RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTLe4RE9EeGOffqMW1YiZA" name="stateInvariant" visibility="public" type="_VeSisBE9EeGOffqMW1YiZA" subsettedProperty="_VZ0SbBE9EeGOffqMW1YiZA" association="_VTLe4BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTLe4hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTLe4xE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyXfyNwbEeCT5O2F6sGn5g" name="A_decider_clause" memberEnd="_gz04VdwbEeCT5O2F6sGn5g _gyXfydwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyXfydwbEeCT5O2F6sGn5g" name="clause" visibility="public" type="_gz0RQNwbEeCT5O2F6sGn5g" association="_gyXfyNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyXfytwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTLe5BE9EeGOffqMW1YiZA" name="A_decider_clause" memberEnd="_VX3xtBE9EeGOffqMW1YiZA _VTLe5RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTLe5RE9EeGOffqMW1YiZA" name="clause" visibility="public" type="_VX3xoBE9EeGOffqMW1YiZA" association="_VTLe5BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTLe5hE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyXfy9wbEeCT5O2F6sGn5g" name="A_decider_loopNode" memberEnd="_g1JuF9wbEeCT5O2F6sGn5g _gyXfzNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyXfzNwbEeCT5O2F6sGn5g" name="loopNode" visibility="public" type="_g1JuANwbEeCT5O2F6sGn5g" association="_gyXfy9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyXfzdwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTLe5xE9EeGOffqMW1YiZA" name="A_decider_loopNode" memberEnd="_VZ_RlxE9EeGOffqMW1YiZA _VTLe6BE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTLe6BE9EeGOffqMW1YiZA" name="loopNode" visibility="public" type="_VZ_RgBE9EeGOffqMW1YiZA" association="_VTLe5xE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTLe6RE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyXfztwbEeCT5O2F6sGn5g" name="A_decisionInputFlow_decisionNode" memberEnd="_g0Dh7twbEeCT5O2F6sGn5g _gyXfz9wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyXfz9wbEeCT5O2F6sGn5g" name="decisionNode" visibility="public" type="_g0Dh0NwbEeCT5O2F6sGn5g" association="_gyXfztwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyXf0NwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTMF8BE9EeGOffqMW1YiZA" name="A_decisionInputFlow_decisionNode" memberEnd="_VYxwrhE9EeGOffqMW1YiZA _VTMF8RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTMF8RE9EeGOffqMW1YiZA" name="decisionNode" visibility="public" type="_VYxwkBE9EeGOffqMW1YiZA" association="_VTMF8BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTMF8hE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyXf0dwbEeCT5O2F6sGn5g" name="A_decisionInput_decisionNode" memberEnd="_g0Dh69wbEeCT5O2F6sGn5g _gyXf0twbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyXf0twbEeCT5O2F6sGn5g" name="decisionNode" visibility="public" type="_g0Dh0NwbEeCT5O2F6sGn5g" association="_gyXf0dwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyYG0NwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyYG0dwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTMF8xE9EeGOffqMW1YiZA" name="A_decisionInput_decisionNode" memberEnd="_VYxwqxE9EeGOffqMW1YiZA _VTMF9BE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTMF9BE9EeGOffqMW1YiZA" name="decisionNode" visibility="public" type="_VYxwkBE9EeGOffqMW1YiZA" association="_VTMF8xE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTMF9RE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTMF9hE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyYG0twbEeCT5O2F6sGn5g" name="A_decomposedAs_lifeline" memberEnd="_g0hb8NwbEeCT5O2F6sGn5g _gyYG09wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyYG09wbEeCT5O2F6sGn5g" name="lifeline" visibility="public" type="_g0hb4NwbEeCT5O2F6sGn5g" association="_gyYG0twbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTMtABE9EeGOffqMW1YiZA" name="A_decomposedAs_lifeline" memberEnd="_VZ0ScBE9EeGOffqMW1YiZA _VTMtARE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTMtARE9EeGOffqMW1YiZA" name="lifeline" visibility="public" type="_VZ0SYBE9EeGOffqMW1YiZA" association="_VTMtABE9EeGOffqMW1YiZA"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyYG1NwbEeCT5O2F6sGn5g" name="A_defaultValue_owningParameter" memberEnd="_g1kkzdwbEeCT5O2F6sGn5g _gyYG1dwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyYG1dwbEeCT5O2F6sGn5g" name="owningParameter" visibility="public" type="_KyaPMGveEdq4DLWZOhbdEA" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gyYG1NwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyYG1twbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTMtAhE9EeGOffqMW1YiZA" name="A_defaultValue_owningParameter" memberEnd="_Vcyt4BE9EeGOffqMW1YiZA _VTMtAxE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTMtAxE9EeGOffqMW1YiZA" name="owningParameter" visibility="public" type="_KyaPMGveEdq4DLWZOhbdEA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VTMtAhE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTMtBBE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyYG19wbEeCT5O2F6sGn5g" name="A_defaultValue_owningProperty" memberEnd="_g1tHpdwbEeCT5O2F6sGn5g _gyYG2NwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyYG2NwbEeCT5O2F6sGn5g" name="owningProperty" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gyYG19wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyYG2dwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTNUEBE9EeGOffqMW1YiZA" name="A_defaultValue_owningProperty" memberEnd="_VdG28BE9EeGOffqMW1YiZA _VTNUERE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTNUERE9EeGOffqMW1YiZA" name="owningProperty" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VTNUEBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTNUEhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyYG2twbEeCT5O2F6sGn5g" name="A_default_templateParameter" memberEnd="_g2LBxtwbEeCT5O2F6sGn5g _gyYG29wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyYG29wbEeCT5O2F6sGn5g" name="templateParameter" visibility="public" type="_KxRzgGvuEdqG6fBIPwe-mw" association="_gyYG2twbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyYG3NwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyYG3dwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTNUExE9EeGOffqMW1YiZA" name="A_default_templateParameter" memberEnd="_VeqWJBE9EeGOffqMW1YiZA _VTNUFBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTNUFBE9EeGOffqMW1YiZA" name="templateParameter" visibility="public" type="_KxRzgGvuEdqG6fBIPwe-mw" association="_VTNUExE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTNUFRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTNUFhE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyYG3twbEeCT5O2F6sGn5g" name="A_deferrableTrigger_state" memberEnd="_g2Ce7dwbEeCT5O2F6sGn5g _gyYG39wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyYG39wbEeCT5O2F6sGn5g" name="state" visibility="public" type="_g2Ce0NwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gyYG3twbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyYG4NwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTN7IBE9EeGOffqMW1YiZA" name="A_deferrableTrigger_state" memberEnd="_VeR7uRE9EeGOffqMW1YiZA _VTN7IRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTN7IRE9EeGOffqMW1YiZA" name="state" visibility="public" type="_VeRUkBE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VTN7IBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTN7IhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyYt4NwbEeCT5O2F6sGn5g" name="A_definingEnd_connectorEnd" isDerived="true" memberEnd="_gz-pXtwbEeCT5O2F6sGn5g _gyYt4dwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyYt4dwbEeCT5O2F6sGn5g" name="connectorEnd" visibility="public" type="_aOgw0GveEdq4DLWZOhbdEA" association="_gyYt4NwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyYt4twbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyYt49wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTN7IxE9EeGOffqMW1YiZA" name="A_definingEnd_connectorEnd" isDerived="true" memberEnd="_VYSBUBE9EeGOffqMW1YiZA _VTN7JBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTN7JBE9EeGOffqMW1YiZA" name="connectorEnd" visibility="public" type="_aOgw0GveEdq4DLWZOhbdEA" association="_VTN7IxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTN7JRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTN7JhE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyYt5NwbEeCT5O2F6sGn5g" name="A_definingFeature_slot" memberEnd="_g2ACk9wbEeCT5O2F6sGn5g _gyYt5dwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyYt5dwbEeCT5O2F6sGn5g" name="slot" visibility="public" type="_g2ACkNwbEeCT5O2F6sGn5g" association="_gyYt5NwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyYt5twbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyYt59wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTOiMBE9EeGOffqMW1YiZA" name="A_definingFeature_slot" memberEnd="_VeMcExE9EeGOffqMW1YiZA _VTOiMRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTOiMRE9EeGOffqMW1YiZA" name="slot" visibility="public" type="_VeMcEBE9EeGOffqMW1YiZA" association="_VTOiMBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTOiMhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTOiMxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyYt6NwbEeCT5O2F6sGn5g" name="A_deployedArtifact_deployment" memberEnd="_g0Ev-NwbEeCT5O2F6sGn5g _gyYt6dwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyYt6dwbEeCT5O2F6sGn5g" name="deployment" visibility="public" type="_g0Ev8NwbEeCT5O2F6sGn5g" subsettedProperty="_gy8HhdwbEeCT5O2F6sGn5g" association="_gyYt6NwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyYt6twbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyYt69wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTOiNBE9EeGOffqMW1YiZA" name="A_deployedArtifact_deployment" memberEnd="_VYy-uBE9EeGOffqMW1YiZA _VTOiNRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTOiNRE9EeGOffqMW1YiZA" name="deployment" visibility="public" type="_VYy-sBE9EeGOffqMW1YiZA" subsettedProperty="_VUo3cRE9EeGOffqMW1YiZA" association="_VTOiNBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTOiNhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTOiNxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyYt7NwbEeCT5O2F6sGn5g" name="A_deployedElement_deploymentTarget" isDerived="true" memberEnd="_g0F-EtwbEeCT5O2F6sGn5g _gyYt7dwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyYt7dwbEeCT5O2F6sGn5g" name="deploymentTarget" visibility="public" type="_PkmfgLLXEeCsYvaJqFFivQ" association="_gyYt7NwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyYt7twbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyYt79wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTPJQBE9EeGOffqMW1YiZA" name="A_deployedElement_deploymentTarget" isDerived="true" memberEnd="_VY2pERE9EeGOffqMW1YiZA _VTPJQRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTPJQRE9EeGOffqMW1YiZA" name="deploymentTarget" visibility="public" type="_PkmfgLLXEeCsYvaJqFFivQ" association="_VTPJQBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTPJQhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTPJQxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyYt8NwbEeCT5O2F6sGn5g" name="A_deployment_location" memberEnd="_g0F-FtwbEeCT5O2F6sGn5g _g0Ev_NwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyYt8dwbEeCT5O2F6sGn5g" name="A_destroyAt_linkEndDestructionData" memberEnd="_g0j4KdwbEeCT5O2F6sGn5g _gyYt8twbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyYt8twbEeCT5O2F6sGn5g" name="linkEndDestructionData" visibility="public" type="_g0j4INwbEeCT5O2F6sGn5g" association="_gyYt8dwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyYt89wbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTPJRBE9EeGOffqMW1YiZA" name="A_deployment_location" memberEnd="_VY2pFRE9EeGOffqMW1YiZA _VYy-vBE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTPwUBE9EeGOffqMW1YiZA" name="A_destroyAt_linkEndDestructionData" memberEnd="_VZ38yRE9EeGOffqMW1YiZA _VTPwURE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTPwURE9EeGOffqMW1YiZA" name="linkEndDestructionData" visibility="public" type="_VZ38wBE9EeGOffqMW1YiZA" association="_VTPwUBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTPwUhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyZU8NwbEeCT5O2F6sGn5g" name="A_doActivity_state" memberEnd="_g2Ce8dwbEeCT5O2F6sGn5g _gyZU8dwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyZU8dwbEeCT5O2F6sGn5g" name="state" visibility="public" type="_g2Ce0NwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gyZU8NwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyZU8twbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTPwUxE9EeGOffqMW1YiZA" name="A_doActivity_state" memberEnd="_VeR7vRE9EeGOffqMW1YiZA _VTPwVBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTPwVBE9EeGOffqMW1YiZA" name="state" visibility="public" type="_VeRUkBE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VTPwUxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTPwVRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyZU89wbEeCT5O2F6sGn5g" name="A_edge_activity" memberEnd="_gzW-SdwbEeCT5O2F6sGn5g _gzZajdwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyZU9NwbEeCT5O2F6sGn5g" name="A_edge_inPartition" memberEnd="_gzcd39wbEeCT5O2F6sGn5g _gzZaltwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyZU9dwbEeCT5O2F6sGn5g" name="A_edge_inStructuredNode" memberEnd="_g2Ilc9wbEeCT5O2F6sGn5g _gzZamtwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyZU9twbEeCT5O2F6sGn5g" name="A_effect_transition" memberEnd="_g2SWetwbEeCT5O2F6sGn5g _gyZU99wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyZU99wbEeCT5O2F6sGn5g" name="transition" visibility="public" type="_ykKV8PnlEdunWsS3se92JQ" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gyZU9twbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyZU-NwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTQXYBE9EeGOffqMW1YiZA" name="A_edge_activity" memberEnd="_VU-OoBE9EeGOffqMW1YiZA _VVcIvRE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTQXYRE9EeGOffqMW1YiZA" name="A_edge_inPartition" memberEnd="_VVjddxE9EeGOffqMW1YiZA _VVcIxhE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTQXYhE9EeGOffqMW1YiZA" name="A_edge_inStructuredNode" memberEnd="_VehzSBE9EeGOffqMW1YiZA _VVcIyhE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTQXYxE9EeGOffqMW1YiZA" name="A_effect_transition" memberEnd="_Ve9REBE9EeGOffqMW1YiZA _VTQXZBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTQXZBE9EeGOffqMW1YiZA" name="transition" visibility="public" type="_ykKV8PnlEdunWsS3se92JQ" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VTQXYxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTQXZRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyZU-dwbEeCT5O2F6sGn5g" name="A_elementImport_importingNamespace" memberEnd="_g1S39dwbEeCT5O2F6sGn5g _g0LdotwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyZU-twbEeCT5O2F6sGn5g" name="A_endData_createLinkAction" memberEnd="_g0BsoNwbEeCT5O2F6sGn5g _gyZU_NwbEeCT5O2F6sGn5g">
-      <generalization xmi:id="_gyZU-9wbEeCT5O2F6sGn5g" general="_gyZ8A9wbEeCT5O2F6sGn5g"/>
-      <ownedEnd xmi:id="_gyZU_NwbEeCT5O2F6sGn5g" name="createLinkAction" visibility="public" type="_g0BFoNwbEeCT5O2F6sGn5g" redefinedProperty="_gyZ8BNwbEeCT5O2F6sGn5g" association="_gyZU-twbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTQ-cBE9EeGOffqMW1YiZA" name="A_elementImport_importingNamespace" memberEnd="_VarOABE9EeGOffqMW1YiZA _VZKLEhE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTRlgBE9EeGOffqMW1YiZA" name="A_endData_createLinkAction" memberEnd="_VYdAeRE9EeGOffqMW1YiZA _VTRlghE9EeGOffqMW1YiZA">
+      <generalization xmi:id="_VTRlgRE9EeGOffqMW1YiZA" general="_VTRlhhE9EeGOffqMW1YiZA"/>
+      <ownedEnd xmi:id="_VTRlghE9EeGOffqMW1YiZA" name="createLinkAction" visibility="public" type="_VYdAcxE9EeGOffqMW1YiZA" redefinedProperty="_VTRlhxE9EeGOffqMW1YiZA" association="_VTRlgBE9EeGOffqMW1YiZA"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyZ8ANwbEeCT5O2F6sGn5g" name="A_endData_destroyLinkAction" memberEnd="_g0GlI9wbEeCT5O2F6sGn5g _gyZ8AtwbEeCT5O2F6sGn5g">
-      <generalization xmi:id="_gyZ8AdwbEeCT5O2F6sGn5g" general="_gyZ8A9wbEeCT5O2F6sGn5g"/>
-      <ownedEnd xmi:id="_gyZ8AtwbEeCT5O2F6sGn5g" name="destroyLinkAction" visibility="public" type="_g0GlINwbEeCT5O2F6sGn5g" redefinedProperty="_gyZ8BNwbEeCT5O2F6sGn5g" association="_gyZ8ANwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTRlgxE9EeGOffqMW1YiZA" name="A_endData_destroyLinkAction" memberEnd="_VY4eQxE9EeGOffqMW1YiZA _VTRlhRE9EeGOffqMW1YiZA">
+      <generalization xmi:id="_VTRlhBE9EeGOffqMW1YiZA" general="_VTRlhhE9EeGOffqMW1YiZA"/>
+      <ownedEnd xmi:id="_VTRlhRE9EeGOffqMW1YiZA" name="destroyLinkAction" visibility="public" type="_VY4eQBE9EeGOffqMW1YiZA" redefinedProperty="_VTRlhxE9EeGOffqMW1YiZA" association="_VTRlgxE9EeGOffqMW1YiZA"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyZ8A9wbEeCT5O2F6sGn5g" name="A_endData_linkAction" memberEnd="_g0iC_NwbEeCT5O2F6sGn5g _gyZ8BNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyZ8BNwbEeCT5O2F6sGn5g" name="linkAction" visibility="public" type="_g0iC8NwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gyZ8A9wbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTRlhhE9EeGOffqMW1YiZA" name="A_endData_linkAction" memberEnd="_VZ1gjBE9EeGOffqMW1YiZA _VTRlhxE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTRlhxE9EeGOffqMW1YiZA" name="linkAction" visibility="public" type="_VZ1ggBE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VTRlhhE9EeGOffqMW1YiZA"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyZ8BdwbEeCT5O2F6sGn5g" name="A_endType_association" isDerived="true" memberEnd="_gzgIMtwbEeCT5O2F6sGn5g _gyZ8BtwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyZ8BtwbEeCT5O2F6sGn5g" name="association" visibility="public" type="_AwvxoGwNEdq7X4sGURiZYA" subsettedProperty="_gyyWi9wbEeCT5O2F6sGn5g" association="_gyZ8BdwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyZ8B9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyZ8CNwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTSMkBE9EeGOffqMW1YiZA" name="A_endType_association" isDerived="true" memberEnd="_VV3mgBE9EeGOffqMW1YiZA _VTSMkRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTSMkRE9EeGOffqMW1YiZA" name="association" visibility="public" type="_AwvxoGwNEdq7X4sGURiZYA" subsettedProperty="_VUZm4RE9EeGOffqMW1YiZA" association="_VTSMkBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTSMkhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTSMkxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyZ8CdwbEeCT5O2F6sGn5g" name="A_end_connector" memberEnd="_gz9bQ9wbEeCT5O2F6sGn5g _gyZ8CtwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyZ8CtwbEeCT5O2F6sGn5g" name="connector" visibility="public" type="_YxC2YLLWEeCsYvaJqFFivQ" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gyZ8CdwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTSMlBE9EeGOffqMW1YiZA" name="A_end_connector" memberEnd="_VYL6uBE9EeGOffqMW1YiZA _VTSMlRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTSMlRE9EeGOffqMW1YiZA" name="connector" visibility="public" type="_YxC2YLLWEeCsYvaJqFFivQ" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VTSMlBE9EeGOffqMW1YiZA"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyZ8C9wbEeCT5O2F6sGn5g" name="A_end_linkEndData" memberEnd="_g0jRItwbEeCT5O2F6sGn5g _gyZ8DNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyZ8DNwbEeCT5O2F6sGn5g" name="linkEndData" visibility="public" type="_g0jRENwbEeCT5O2F6sGn5g" association="_gyZ8C9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyZ8DdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyZ8DtwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTSzoBE9EeGOffqMW1YiZA" name="A_end_linkEndData" memberEnd="_VZ3VwhE9EeGOffqMW1YiZA _VTSzoRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTSzoRE9EeGOffqMW1YiZA" name="linkEndData" visibility="public" type="_VZ3VsBE9EeGOffqMW1YiZA" association="_VTSzoBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTSzohE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTSzoxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyajENwbEeCT5O2F6sGn5g" name="A_end_readLinkObjectEndAction" memberEnd="_g11qmNwbEeCT5O2F6sGn5g _gyajEdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyajEdwbEeCT5O2F6sGn5g" name="readLinkObjectEndAction" visibility="public" type="_g11qgNwbEeCT5O2F6sGn5g" association="_gyajENwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyajEtwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTSzpBE9EeGOffqMW1YiZA" name="A_end_readLinkObjectEndAction" memberEnd="_VdfRiBE9EeGOffqMW1YiZA _VTSzpRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTSzpRE9EeGOffqMW1YiZA" name="readLinkObjectEndAction" visibility="public" type="_VdfRcBE9EeGOffqMW1YiZA" association="_VTSzpBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTSzphE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_81UZgPnhEdunWsS3se92JQ" name="A_end_role" memberEnd="_gz7mJtwbEeCT5O2F6sGn5g _81UZgfnhEdunWsS3se92JQ _81UZhPnhEdunWsS3se92JQ">
+    <packagedElement xmi:type="uml:Association" xmi:id="_81UZgPnhEdunWsS3se92JQ" name="A_end_role" memberEnd="_VYIQUBE9EeGOffqMW1YiZA _81UZgfnhEdunWsS3se92JQ _81UZhPnhEdunWsS3se92JQ">
       <ownedEnd xmi:id="_81UZhPnhEdunWsS3se92JQ" name="end" visibility="private" type="_aOgw0GveEdq4DLWZOhbdEA" association="_81UZgPnhEdunWsS3se92JQ">
         <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_81UZhfnhEdunWsS3se92JQ"/>
         <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_81UZhvnhEdunWsS3se92JQ" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyajE9wbEeCT5O2F6sGn5g" name="A_entry_connectionPointReference" memberEnd="_gz80LtwbEeCT5O2F6sGn5g _gyajFNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyajFNwbEeCT5O2F6sGn5g" name="connectionPointReference" visibility="public" type="_gz80JdwbEeCT5O2F6sGn5g" association="_gyajE9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyajFdwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTUBwBE9EeGOffqMW1YiZA" name="A_entry_connectionPointReference" memberEnd="_VYKsmRE9EeGOffqMW1YiZA _VTUBwRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTUBwRE9EeGOffqMW1YiZA" name="connectionPointReference" visibility="public" type="_VYKskBE9EeGOffqMW1YiZA" association="_VTUBwBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTUBwhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyajFtwbEeCT5O2F6sGn5g" name="A_entry_state" memberEnd="_g2Ce9NwbEeCT5O2F6sGn5g _gyajF9wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyajF9wbEeCT5O2F6sGn5g" name="state" visibility="public" type="_g2Ce0NwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gyajFtwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyajGNwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTUBwxE9EeGOffqMW1YiZA" name="A_entry_state" memberEnd="_VeR7wBE9EeGOffqMW1YiZA _VTUBxBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTUBxBE9EeGOffqMW1YiZA" name="state" visibility="public" type="_VeRUkBE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VTUBwxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTUBxRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyajGdwbEeCT5O2F6sGn5g" name="A_event_durationObservation" memberEnd="_g0JBZtwbEeCT5O2F6sGn5g _gyajGtwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyajGtwbEeCT5O2F6sGn5g" name="durationObservation" visibility="public" type="_g0JBYNwbEeCT5O2F6sGn5g" association="_gyajGdwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyajG9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyajHNwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTUo0BE9EeGOffqMW1YiZA" name="A_event_durationObservation" memberEnd="_VY_L9hE9EeGOffqMW1YiZA _VTUo0RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTUo0RE9EeGOffqMW1YiZA" name="durationObservation" visibility="public" type="_VY_L8BE9EeGOffqMW1YiZA" association="_VTUo0BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTUo0hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTUo0xE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gybKINwbEeCT5O2F6sGn5g" name="A_event_timeObservation" memberEnd="_g2RIWtwbEeCT5O2F6sGn5g _gybKIdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gybKIdwbEeCT5O2F6sGn5g" name="timeObservation" visibility="public" type="_g2RIV9wbEeCT5O2F6sGn5g" association="_gybKINwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gybKItwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gybKI9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTUo1BE9EeGOffqMW1YiZA" name="A_event_timeObservation" memberEnd="_Vexq4xE9EeGOffqMW1YiZA _VTUo1RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTUo1RE9EeGOffqMW1YiZA" name="timeObservation" visibility="public" type="_Vexq4BE9EeGOffqMW1YiZA" association="_VTUo1BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTUo1hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTUo1xE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gybKJNwbEeCT5O2F6sGn5g" name="A_event_trigger" memberEnd="_g2TkmdwbEeCT5O2F6sGn5g _gybKJdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gybKJdwbEeCT5O2F6sGn5g" name="trigger" visibility="public" type="_g2TkldwbEeCT5O2F6sGn5g" association="_gybKJNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gybKJtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gybKJ9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTVP4BE9EeGOffqMW1YiZA" name="A_event_trigger" memberEnd="_VfCJlBE9EeGOffqMW1YiZA _VTVP4RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTVP4RE9EeGOffqMW1YiZA" name="trigger" visibility="public" type="_VfCJkBE9EeGOffqMW1YiZA" association="_VTVP4BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTVP4hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTVP4xE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gybKKNwbEeCT5O2F6sGn5g" name="A_exceptionInput_exceptionHandler" memberEnd="_g0Og_9wbEeCT5O2F6sGn5g _gybKKdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gybKKdwbEeCT5O2F6sGn5g" name="exceptionHandler" visibility="public" type="_g0Og8NwbEeCT5O2F6sGn5g" association="_gybKKNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gybKKtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gybKK9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTVP5BE9EeGOffqMW1YiZA" name="A_exceptionInput_exceptionHandler" memberEnd="_VZPDnxE9EeGOffqMW1YiZA _VTVP5RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTVP5RE9EeGOffqMW1YiZA" name="exceptionHandler" visibility="public" type="_VZPDkBE9EeGOffqMW1YiZA" association="_VTVP5BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTVP5hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTVP5xE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gybKLNwbEeCT5O2F6sGn5g" name="A_exceptionType_exceptionHandler" memberEnd="_g0OhAdwbEeCT5O2F6sGn5g _gybKLdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gybKLdwbEeCT5O2F6sGn5g" name="exceptionHandler" visibility="public" type="_g0Og8NwbEeCT5O2F6sGn5g" association="_gybKLNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gybKLtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gybKL9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTV28BE9EeGOffqMW1YiZA" name="A_exceptionType_exceptionHandler" memberEnd="_VZPDoRE9EeGOffqMW1YiZA _VTV28RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTV28RE9EeGOffqMW1YiZA" name="exceptionHandler" visibility="public" type="_VZPDkBE9EeGOffqMW1YiZA" association="_VTV28BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTV28hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTV28xE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gybKMNwbEeCT5O2F6sGn5g" name="A_exception_raiseExceptionAction" memberEnd="_g1z1U9wbEeCT5O2F6sGn5g _gybKMdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gybKMdwbEeCT5O2F6sGn5g" name="raiseExceptionAction" visibility="public" type="_g1z1UNwbEeCT5O2F6sGn5g" subsettedProperty="_gygpt9wbEeCT5O2F6sGn5g" association="_gybKMNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gybKMtwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTWeABE9EeGOffqMW1YiZA" name="A_exception_raiseExceptionAction" memberEnd="_VdbnIxE9EeGOffqMW1YiZA _VTWeARE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTWeARE9EeGOffqMW1YiZA" name="raiseExceptionAction" visibility="public" type="_VdbnIBE9EeGOffqMW1YiZA" subsettedProperty="_VTqnERE9EeGOffqMW1YiZA" association="_VTWeABE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTWeAhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gybxMNwbEeCT5O2F6sGn5g" name="A_executableNode_sequenceNode" memberEnd="_g1_bg9wbEeCT5O2F6sGn5g _gybxMdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gybxMdwbEeCT5O2F6sGn5g" name="sequenceNode" visibility="public" type="_g1_bgNwbEeCT5O2F6sGn5g" subsettedProperty="_gzbPyNwbEeCT5O2F6sGn5g" association="_gybxMNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gybxMtwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTWeAxE9EeGOffqMW1YiZA" name="A_executableNode_sequenceNode" memberEnd="_VeLN8xE9EeGOffqMW1YiZA _VTWeBBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTWeBBE9EeGOffqMW1YiZA" name="sequenceNode" visibility="public" type="_VeLN8BE9EeGOffqMW1YiZA" subsettedProperty="_VVgaKxE9EeGOffqMW1YiZA" association="_VTWeAxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTWeBRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gybxM9wbEeCT5O2F6sGn5g" name="A_execution_executionOccurrenceSpecification" memberEnd="_g0PIA9wbEeCT5O2F6sGn5g _gybxNNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gybxNNwbEeCT5O2F6sGn5g" name="executionOccurrenceSpecification" visibility="public" type="_g0PIANwbEeCT5O2F6sGn5g" association="_gybxM9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gybxNdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gybxNtwbEeCT5O2F6sGn5g" value="2"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTXFEBE9EeGOffqMW1YiZA" name="A_execution_executionOccurrenceSpecification" memberEnd="_VZQRsxE9EeGOffqMW1YiZA _VTXFERE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTXFERE9EeGOffqMW1YiZA" name="executionOccurrenceSpecification" visibility="public" type="_VZQRsBE9EeGOffqMW1YiZA" association="_VTXFEBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTXFEhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTXFExE9EeGOffqMW1YiZA" value="2"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gybxN9wbEeCT5O2F6sGn5g" name="A_exit_connectionPointReference" memberEnd="_gz80MtwbEeCT5O2F6sGn5g _gybxONwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gybxONwbEeCT5O2F6sGn5g" name="connectionPointReference" visibility="public" type="_gz80JdwbEeCT5O2F6sGn5g" association="_gybxN9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gybxOdwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTXFFBE9EeGOffqMW1YiZA" name="A_exit_connectionPointReference" memberEnd="_VYKsnRE9EeGOffqMW1YiZA _VTXFFRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTXFFRE9EeGOffqMW1YiZA" name="connectionPointReference" visibility="public" type="_VYKskBE9EeGOffqMW1YiZA" association="_VTXFFBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTXFFhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gybxOtwbEeCT5O2F6sGn5g" name="A_exit_state" memberEnd="_g2Ce99wbEeCT5O2F6sGn5g _gybxO9wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gybxO9wbEeCT5O2F6sGn5g" name="state" visibility="public" type="_g2Ce0NwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gybxOtwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gybxPNwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTXsIBE9EeGOffqMW1YiZA" name="A_exit_state" memberEnd="_VeR7wxE9EeGOffqMW1YiZA _VTXsIRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTXsIRE9EeGOffqMW1YiZA" name="state" visibility="public" type="_VeRUkBE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VTXsIBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTXsIhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gybxPdwbEeCT5O2F6sGn5g" name="A_expr_duration" memberEnd="_g0HzSdwbEeCT5O2F6sGn5g _gybxPtwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gybxPtwbEeCT5O2F6sGn5g" name="duration" visibility="public" type="_-Ixo8H4XEdq7cMP_l1l5Gg" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gybxPdwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gybxP9wbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTXsIxE9EeGOffqMW1YiZA" name="A_expr_duration" memberEnd="_VY7hkhE9EeGOffqMW1YiZA _VTXsJBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTXsJBE9EeGOffqMW1YiZA" name="duration" visibility="public" type="_-Ixo8H4XEdq7cMP_l1l5Gg" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VTXsIxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTXsJRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gybxQNwbEeCT5O2F6sGn5g" name="A_expr_timeExpression" memberEnd="_g2QhUdwbEeCT5O2F6sGn5g _gybxQdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gybxQdwbEeCT5O2F6sGn5g" name="timeExpression" visibility="public" type="_DylKEH4YEdq7cMP_l1l5Gg" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gybxQNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gycYQNwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTXsJhE9EeGOffqMW1YiZA" name="A_expr_timeExpression" memberEnd="_Vev1shE9EeGOffqMW1YiZA _VTXsJxE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTXsJxE9EeGOffqMW1YiZA" name="timeExpression" visibility="public" type="_DylKEH4YEdq7cMP_l1l5Gg" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VTXsJhE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTXsKBE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gycYQdwbEeCT5O2F6sGn5g" name="A_extend_extension" memberEnd="_g2WA39wbEeCT5O2F6sGn5g _g0Q9PNwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gycYQtwbEeCT5O2F6sGn5g" name="A_extendedCase_extend" memberEnd="_g0Q9OtwbEeCT5O2F6sGn5g _gycYQ9wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gycYQ9wbEeCT5O2F6sGn5g" name="extend" visibility="public" type="_g0Q9MNwbEeCT5O2F6sGn5g" subsettedProperty="_gy8ukdwbEeCT5O2F6sGn5g" association="_gycYQtwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gycYRNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gycYRdwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTYTMBE9EeGOffqMW1YiZA" name="A_extend_extension" memberEnd="_VfFM7xE9EeGOffqMW1YiZA _VZTVDBE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTY6QBE9EeGOffqMW1YiZA" name="A_extendedCase_extend" memberEnd="_VZTVChE9EeGOffqMW1YiZA _VTY6QRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTY6QRE9EeGOffqMW1YiZA" name="extend" visibility="public" type="_VZTVABE9EeGOffqMW1YiZA" subsettedProperty="_VUpegRE9EeGOffqMW1YiZA" association="_VTY6QBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTY6QhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTY6QxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gycYRtwbEeCT5O2F6sGn5g" name="A_extendedRegion_region" memberEnd="_g18_UNwbEeCT5O2F6sGn5g _gycYR9wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gycYR9wbEeCT5O2F6sGn5g" name="region" visibility="public" type="_g18_QNwbEeCT5O2F6sGn5g" subsettedProperty="_gywhUdwbEeCT5O2F6sGn5g" association="_gycYRtwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gycYSNwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTZhUBE9EeGOffqMW1YiZA" name="A_extendedRegion_region" memberEnd="_VeA18BE9EeGOffqMW1YiZA _VTZhURE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTZhURE9EeGOffqMW1YiZA" name="region" visibility="public" type="_VeA14BE9EeGOffqMW1YiZA" subsettedProperty="_VURrERE9EeGOffqMW1YiZA" association="_VTZhUBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTZhUhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gycYSdwbEeCT5O2F6sGn5g" name="A_extendedSignature_redefinableTemplateSignature" memberEnd="_g16jA9wbEeCT5O2F6sGn5g _gycYStwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gycYStwbEeCT5O2F6sGn5g" name="redefinableTemplateSignature" visibility="public" type="_9keOQGvdEdq4DLWZOhbdEA" subsettedProperty="_gywhUdwbEeCT5O2F6sGn5g" association="_gycYSdwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gycYS9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gycYTNwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTZhUxE9EeGOffqMW1YiZA" name="A_extendedSignature_redefinableTemplateSignature" memberEnd="_Vd3E4BE9EeGOffqMW1YiZA _VTZhVBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTZhVBE9EeGOffqMW1YiZA" name="redefinableTemplateSignature" visibility="public" type="_9keOQGvdEdq4DLWZOhbdEA" subsettedProperty="_VURrERE9EeGOffqMW1YiZA" association="_VTZhUxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTZhVRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTZhVhE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gycYTdwbEeCT5O2F6sGn5g" name="A_extendedStateMachine_stateMachine" memberEnd="_g2EUE9wbEeCT5O2F6sGn5g _gycYTtwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gycYTtwbEeCT5O2F6sGn5g" name="stateMachine" visibility="public" type="_g2EUANwbEeCT5O2F6sGn5g" subsettedProperty="_gyv6RNwbEeCT5O2F6sGn5g" association="_gycYTdwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gycYT9wbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTaIYBE9EeGOffqMW1YiZA" name="A_extendedStateMachine_stateMachine" memberEnd="_VeWNIxE9EeGOffqMW1YiZA _VTaIYRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTaIYRE9EeGOffqMW1YiZA" name="stateMachine" visibility="public" type="_VeWNEBE9EeGOffqMW1YiZA" subsettedProperty="_VUP16BE9EeGOffqMW1YiZA" association="_VTaIYBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTaIYhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyc_UNwbEeCT5O2F6sGn5g" name="A_extensionLocation_extension" memberEnd="_g0Q9PtwbEeCT5O2F6sGn5g _gyc_UdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyc_UdwbEeCT5O2F6sGn5g" name="extension" visibility="public" type="_g0Q9MNwbEeCT5O2F6sGn5g" association="_gyc_UNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyc_UtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyc_U9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTaIYxE9EeGOffqMW1YiZA" name="A_extensionLocation_extension" memberEnd="_VZTVDhE9EeGOffqMW1YiZA _VTaIZBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTaIZBE9EeGOffqMW1YiZA" name="extension" visibility="public" type="_VZTVABE9EeGOffqMW1YiZA" association="_VTaIYxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTaIZRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTaIZhE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyc_VNwbEeCT5O2F6sGn5g" name="A_extensionPoint_useCase" memberEnd="_g2WA49wbEeCT5O2F6sGn5g _g0TZdtwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyc_VdwbEeCT5O2F6sGn5g" name="A_extension_metaclass" isDerived="true" memberEnd="_gzoEDtwbEeCT5O2F6sGn5g _g0RkStwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyc_VtwbEeCT5O2F6sGn5g" name="A_feature_featuringClassifier" isDerived="true" memberEnd="_gzuKr9wbEeCT5O2F6sGn5g _YUdlwLbAEeCRxrN1JUGuxA"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyc_V9wbEeCT5O2F6sGn5g" name="A_finish_executionSpecification" memberEnd="_g0PIC9wbEeCT5O2F6sGn5g _gyc_WdwbEeCT5O2F6sGn5g">
-      <ownedComment xmi:id="_gyc_WNwbEeCT5O2F6sGn5g" annotatedElement="_gyc_V9wbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTavcBE9EeGOffqMW1YiZA" name="A_extensionPoint_useCase" memberEnd="_VfFM8xE9EeGOffqMW1YiZA _VZXmdhE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTavcRE9EeGOffqMW1YiZA" name="A_extension_metaclass" isDerived="true" memberEnd="_VWXVwhE9EeGOffqMW1YiZA _VZT8FxE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTavchE9EeGOffqMW1YiZA" name="A_feature_featuringClassifier" isDerived="true" memberEnd="_VXmE1BE9EeGOffqMW1YiZA _YUdlwLbAEeCRxrN1JUGuxA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTbWgBE9EeGOffqMW1YiZA" name="A_finish_executionSpecification" memberEnd="_VZQRuxE9EeGOffqMW1YiZA _VTbWghE9EeGOffqMW1YiZA">
+      <ownedComment xmi:id="_VTbWgRE9EeGOffqMW1YiZA" annotatedElement="_VTbWgBE9EeGOffqMW1YiZA">
         <body>The event shows the time point at which the action completes execution.</body>
       </ownedComment>
-      <ownedEnd xmi:id="_gyc_WdwbEeCT5O2F6sGn5g" name="executionSpecification" visibility="public" type="_g0PIBdwbEeCT5O2F6sGn5g" association="_gyc_V9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyc_WtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyc_W9wbEeCT5O2F6sGn5g" value="*"/>
+      <ownedEnd xmi:id="_VTbWghE9EeGOffqMW1YiZA" name="executionSpecification" visibility="public" type="_VZQRtRE9EeGOffqMW1YiZA" association="_VTbWgBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTbWgxE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTbWhBE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyc_XNwbEeCT5O2F6sGn5g" name="A_first_testIdentityAction" memberEnd="_g2P6PNwbEeCT5O2F6sGn5g _gyc_XdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyc_XdwbEeCT5O2F6sGn5g" name="testIdentityAction" visibility="public" type="_g2P6MNwbEeCT5O2F6sGn5g" subsettedProperty="_gygpt9wbEeCT5O2F6sGn5g" association="_gyc_XNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyc_XtwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTbWhRE9EeGOffqMW1YiZA" name="A_first_testIdentityAction" memberEnd="_VeunnBE9EeGOffqMW1YiZA _VTbWhhE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTbWhhE9EeGOffqMW1YiZA" name="testIdentityAction" visibility="public" type="_VeunkBE9EeGOffqMW1YiZA" subsettedProperty="_VTqnERE9EeGOffqMW1YiZA" association="_VTbWhRE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTbWhxE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyc_X9wbEeCT5O2F6sGn5g" name="A_formalGate_interaction" memberEnd="_g0bVSNwbEeCT5O2F6sGn5g _gyc_YNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyc_YNwbEeCT5O2F6sGn5g" name="interaction" visibility="public" type="_g0bVQNwbEeCT5O2F6sGn5g" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_gyc_X9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyc_YdwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTb9kBE9EeGOffqMW1YiZA" name="A_formalGate_interaction" memberEnd="_VZsWmBE9EeGOffqMW1YiZA _VTb9kRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTb9kRE9EeGOffqMW1YiZA" name="interaction" visibility="public" type="_VZsWkBE9EeGOffqMW1YiZA" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_VTb9kBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTb9khE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gydmYNwbEeCT5O2F6sGn5g" name="A_formal_templateParameterSubstitution" memberEnd="_g2Nd-NwbEeCT5O2F6sGn5g _gydmYdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gydmYdwbEeCT5O2F6sGn5g" name="templateParameterSubstitution" visibility="public" type="_g2Nd8NwbEeCT5O2F6sGn5g" association="_gydmYNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gydmYtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gydmY9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTb9kxE9EeGOffqMW1YiZA" name="A_formal_templateParameterSubstitution" memberEnd="_VesLWBE9EeGOffqMW1YiZA _VTb9lBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTb9lBE9EeGOffqMW1YiZA" name="templateParameterSubstitution" visibility="public" type="_VesLUBE9EeGOffqMW1YiZA" association="_VTb9kxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTb9lRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTb9lhE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gydmZNwbEeCT5O2F6sGn5g" name="A_fragment_enclosingInteraction" memberEnd="_g0bVTNwbEeCT5O2F6sGn5g _g0cjZ9wbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gydmZdwbEeCT5O2F6sGn5g" name="A_fragment_enclosingOperand" memberEnd="_g0dKetwbEeCT5O2F6sGn5g _g0cjatwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gydmZtwbEeCT5O2F6sGn5g" name="A_fromAction_actionInputPin" memberEnd="_gzWXRNwbEeCT5O2F6sGn5g _gydmZ9wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gydmZ9wbEeCT5O2F6sGn5g" name="actionInputPin" visibility="public" type="_gzWXONwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gydmZtwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gydmaNwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTb9lxE9EeGOffqMW1YiZA" name="A_fragment_enclosingInteraction" memberEnd="_VZsWnBE9EeGOffqMW1YiZA _VZuLxxE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTckoBE9EeGOffqMW1YiZA" name="A_fragment_enclosingOperand" memberEnd="_VZuy2hE9EeGOffqMW1YiZA _VZuLyhE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTckoRE9EeGOffqMW1YiZA" name="A_fromAction_actionInputPin" memberEnd="_VU9AjBE9EeGOffqMW1YiZA _VTckohE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTckohE9EeGOffqMW1YiZA" name="actionInputPin" visibility="public" type="_VU9AgBE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VTckoRE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTckoxE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gydmadwbEeCT5O2F6sGn5g" name="A_generalMachine_protocolConformance" memberEnd="_g1wyA9wbEeCT5O2F6sGn5g _gydmatwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gydmatwbEeCT5O2F6sGn5g" name="protocolConformance" visibility="public" type="_g1wyANwbEeCT5O2F6sGn5g" subsettedProperty="_gy8ukdwbEeCT5O2F6sGn5g" association="_gydmadwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gydma9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gydmbNwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTj5YBE9EeGOffqMW1YiZA" name="A_generalMachine_protocolConformance" memberEnd="_VdWHgxE9EeGOffqMW1YiZA _VTj5YRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTj5YRE9EeGOffqMW1YiZA" name="protocolConformance" visibility="public" type="_VdWHgBE9EeGOffqMW1YiZA" subsettedProperty="_VUpegRE9EeGOffqMW1YiZA" association="_VTj5YBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTj5YhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTj5YxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gydmbdwbEeCT5O2F6sGn5g" name="A_generalOrdering_interactionFragment" memberEnd="_g0cjbdwbEeCT5O2F6sGn5g _gydmbtwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gydmbtwbEeCT5O2F6sGn5g" name="interactionFragment" visibility="public" type="_g0cjYNwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gydmbdwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gydmb9wbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTkgcBE9EeGOffqMW1YiZA" name="A_generalOrdering_interactionFragment" memberEnd="_VZuLzRE9EeGOffqMW1YiZA _VTkgcRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTkgcRE9EeGOffqMW1YiZA" name="interactionFragment" visibility="public" type="_VZuLwBE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VTkgcBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTkgchE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyeNcNwbEeCT5O2F6sGn5g" name="A_general_classifier" isDerived="true" memberEnd="_gzuxs9wbEeCT5O2F6sGn5g _gyeNcdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyeNcdwbEeCT5O2F6sGn5g" name="classifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" association="_gyeNcNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyeNctwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyeNc9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTkgcxE9EeGOffqMW1YiZA" name="A_general_classifier" isDerived="true" memberEnd="_VXsygBE9EeGOffqMW1YiZA _VTkgdBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTkgdBE9EeGOffqMW1YiZA" name="classifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" association="_VTkgcxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTkgdRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTkgdhE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyeNdNwbEeCT5O2F6sGn5g" name="A_general_generalization" memberEnd="_g0WcwdwbEeCT5O2F6sGn5g _gyeNddwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyeNddwbEeCT5O2F6sGn5g" name="generalization" visibility="public" type="_C7AF4GwREdq14q0ETb1t3g" subsettedProperty="_gy8ukdwbEeCT5O2F6sGn5g" association="_gyeNdNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyeNdtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyeNd9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTlHgBE9EeGOffqMW1YiZA" name="A_general_generalization" memberEnd="_VZfiRBE9EeGOffqMW1YiZA _VTlHgRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTlHgRE9EeGOffqMW1YiZA" name="generalization" visibility="public" type="_C7AF4GwREdq14q0ETb1t3g" subsettedProperty="_VUpegRE9EeGOffqMW1YiZA" association="_VTlHgBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTlHghE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTlHgxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyeNeNwbEeCT5O2F6sGn5g" name="A_generalizationSet_generalization" memberEnd="_g0Wcw9wbEeCT5O2F6sGn5g _g0XD2dwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyeNedwbEeCT5O2F6sGn5g" name="A_generalization_specific" memberEnd="_gzuxuNwbEeCT5O2F6sGn5g _g0Wcy9wbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyeNetwbEeCT5O2F6sGn5g" name="A_group_inActivity" memberEnd="_gzW-TdwbEeCT5O2F6sGn5g _gzaBpNwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyeNe9wbEeCT5O2F6sGn5g" name="A_guard_activityEdge" memberEnd="_gzZakNwbEeCT5O2F6sGn5g _gyeNfNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyeNfNwbEeCT5O2F6sGn5g" name="activityEdge" visibility="public" type="_gzZagNwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gyeNe9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyeNfdwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTlHhBE9EeGOffqMW1YiZA" name="A_generalizationSet_generalization" memberEnd="_VZfiRhE9EeGOffqMW1YiZA _VZgwaRE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTlHhRE9EeGOffqMW1YiZA" name="A_generalization_specific" memberEnd="_VXsyhRE9EeGOffqMW1YiZA _VZgJVBE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_DwV68AtCEeGcpbeCPJfCmw" name="A_group_inActivity" memberEnd="_PCvjoAs_EeGcpbeCPJfCmw _5V2SAAtBEeGcpbeCPJfCmw"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTlukBE9EeGOffqMW1YiZA" name="A_guard_activityEdge" memberEnd="_VVcIwBE9EeGOffqMW1YiZA _VTlukRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTlukRE9EeGOffqMW1YiZA" name="activityEdge" visibility="public" type="_VVcIsBE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VTlukBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTlukhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyeNftwbEeCT5O2F6sGn5g" name="A_guard_interactionOperand" memberEnd="_g0dKftwbEeCT5O2F6sGn5g _gyeNf9wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyeNf9wbEeCT5O2F6sGn5g" name="interactionOperand" visibility="public" type="_g0dKcNwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gyeNftwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTlukxE9EeGOffqMW1YiZA" name="A_guard_interactionOperand" memberEnd="_VZuy3hE9EeGOffqMW1YiZA _VTlulBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTlulBE9EeGOffqMW1YiZA" name="interactionOperand" visibility="public" type="_VZuy0BE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VTlukxE9EeGOffqMW1YiZA"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gye0gNwbEeCT5O2F6sGn5g" name="A_guard_transition" memberEnd="_g2SWfdwbEeCT5O2F6sGn5g _gye0gdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gye0gdwbEeCT5O2F6sGn5g" name="transition" visibility="public" type="_ykKV8PnlEdunWsS3se92JQ" subsettedProperty="_g0Aek9wbEeCT5O2F6sGn5g" association="_gye0gNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gye0gtwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTlulRE9EeGOffqMW1YiZA" name="A_guard_transition" memberEnd="_Ve9RExE9EeGOffqMW1YiZA _VTmVoBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTmVoBE9EeGOffqMW1YiZA" name="transition" visibility="public" type="_ykKV8PnlEdunWsS3se92JQ" subsettedProperty="_VYbLUxE9EeGOffqMW1YiZA" association="_VTlulRE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTmVoRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gye0g9wbEeCT5O2F6sGn5g" name="A_handlerBody_exceptionHandler" memberEnd="_g0OhBNwbEeCT5O2F6sGn5g _gye0hNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gye0hNwbEeCT5O2F6sGn5g" name="exceptionHandler" visibility="public" type="_g0Og8NwbEeCT5O2F6sGn5g" association="_gye0g9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gye0hdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gye0htwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTmVohE9EeGOffqMW1YiZA" name="A_handlerBody_exceptionHandler" memberEnd="_VZPDpBE9EeGOffqMW1YiZA _VTmVoxE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTmVoxE9EeGOffqMW1YiZA" name="exceptionHandler" visibility="public" type="_VZPDkBE9EeGOffqMW1YiZA" association="_VTmVohE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTmVpBE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTmVpRE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gye0h9wbEeCT5O2F6sGn5g" name="A_handler_protectedNode" memberEnd="_g0OhDNwbEeCT5O2F6sGn5g _g0OhBtwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gye0iNwbEeCT5O2F6sGn5g" name="A_icon_stereotype" memberEnd="_g2E7HdwbEeCT5O2F6sGn5g _gye0idwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gye0idwbEeCT5O2F6sGn5g" name="stereotype" visibility="public" type="_A7vDAGv0Edq7X4sGURiZYA" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gye0iNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gye0itwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTmVphE9EeGOffqMW1YiZA" name="A_handler_protectedNode" memberEnd="_VZPqpBE9EeGOffqMW1YiZA _VZPDphE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTm8sBE9EeGOffqMW1YiZA" name="A_icon_stereotype" memberEnd="_VeW0KhE9EeGOffqMW1YiZA _VTm8sRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTm8sRE9EeGOffqMW1YiZA" name="stereotype" visibility="public" type="_A7vDAGv0Edq7X4sGURiZYA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VTm8sBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTm8shE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gye0i9wbEeCT5O2F6sGn5g" name="A_importedElement_elementImport" memberEnd="_g0LdoNwbEeCT5O2F6sGn5g _gye0jNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gye0jNwbEeCT5O2F6sGn5g" name="elementImport" visibility="public" type="_RPl78GwIEdq7X4sGURiZYA" subsettedProperty="_gy8ukdwbEeCT5O2F6sGn5g" association="_gye0i9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gye0jdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gye0jtwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTm8sxE9EeGOffqMW1YiZA" name="A_importedElement_elementImport" memberEnd="_VZKLEBE9EeGOffqMW1YiZA _VTm8tBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTm8tBE9EeGOffqMW1YiZA" name="elementImport" visibility="public" type="_RPl78GwIEdq7X4sGURiZYA" subsettedProperty="_VUpegRE9EeGOffqMW1YiZA" association="_VTm8sxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTm8tRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTm8thE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyfbkNwbEeCT5O2F6sGn5g" name="A_importedMember_namespace" isDerived="true" memberEnd="_g1S3-dwbEeCT5O2F6sGn5g _gyfbkdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyfbkdwbEeCT5O2F6sGn5g" name="namespace" visibility="public" type="_ZiwkoGwLEdq7X4sGURiZYA" subsettedProperty="_gyjF9NwbEeCT5O2F6sGn5g" association="_gyfbkNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyfbktwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyfbk9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTnjwBE9EeGOffqMW1YiZA" name="A_importedMember_namespace" isDerived="true" memberEnd="_VarOBBE9EeGOffqMW1YiZA _VTnjwRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTnjwRE9EeGOffqMW1YiZA" name="namespace" visibility="public" type="_ZiwkoGwLEdq7X4sGURiZYA" subsettedProperty="_VTwttRE9EeGOffqMW1YiZA" association="_VTnjwBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTnjwhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTnjwxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyfblNwbEeCT5O2F6sGn5g" name="A_importedPackage_packageImport" memberEnd="_g1jWpdwbEeCT5O2F6sGn5g _gyfbldwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyfbldwbEeCT5O2F6sGn5g" name="packageImport" visibility="public" type="_SnNPIGwIEdq7X4sGURiZYA" subsettedProperty="_gy8ukdwbEeCT5O2F6sGn5g" association="_gyfblNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyfbltwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyfbl9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTnjxBE9EeGOffqMW1YiZA" name="A_importedPackage_packageImport" memberEnd="_VcZsUBE9EeGOffqMW1YiZA _VTnjxRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTnjxRE9EeGOffqMW1YiZA" name="packageImport" visibility="public" type="_SnNPIGwIEdq7X4sGURiZYA" subsettedProperty="_VUpegRE9EeGOffqMW1YiZA" association="_VTnjxBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTnjxhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTnjxxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyfbmNwbEeCT5O2F6sGn5g" name="A_inInterruptibleRegion_node" memberEnd="_gzbPwNwbEeCT5O2F6sGn5g _g0fmutwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyfbmdwbEeCT5O2F6sGn5g" name="A_inPartition_node" memberEnd="_gzbPxNwbEeCT5O2F6sGn5g _gzcd6dwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyfbmtwbEeCT5O2F6sGn5g" name="A_inState_objectNode" memberEnd="_g1XJbtwbEeCT5O2F6sGn5g _gyfbm9wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyfbm9wbEeCT5O2F6sGn5g" name="objectNode" visibility="public" type="_g1XJYNwbEeCT5O2F6sGn5g" association="_gyfbmtwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyfbnNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyfbndwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTnjyBE9EeGOffqMW1YiZA" name="A_inInterruptibleRegion_node" memberEnd="_VVgaIxE9EeGOffqMW1YiZA _VZx2LBE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTnjyRE9EeGOffqMW1YiZA" name="A_inPartition_node" memberEnd="_VVgaJxE9EeGOffqMW1YiZA _VVkrkBE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VToK0BE9EeGOffqMW1YiZA" name="A_inState_objectNode" memberEnd="_VbcDDhE9EeGOffqMW1YiZA _VToK0RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VToK0RE9EeGOffqMW1YiZA" name="objectNode" visibility="public" type="_VbcDABE9EeGOffqMW1YiZA" association="_VToK0BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VToK0hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VToK0xE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyfbntwbEeCT5O2F6sGn5g" name="A_include_includingCase" memberEnd="_g2WA59wbEeCT5O2F6sGn5g _g0YR9twbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyfbn9wbEeCT5O2F6sGn5g" name="A_incoming_target_node" memberEnd="_gzbPy9wbEeCT5O2F6sGn5g _gzZaptwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_EhL8MPnmEdunWsS3se92JQ" name="A_incoming_target_vertex" memberEnd="_g2ZrPdwbEeCT5O2F6sGn5g _EhVtMPnmEdunWsS3se92JQ _EhVtM_nmEdunWsS3se92JQ">
+    <packagedElement xmi:type="uml:Association" xmi:id="_VToK1BE9EeGOffqMW1YiZA" name="A_include_includingCase" memberEnd="_VfFM9xE9EeGOffqMW1YiZA _VZneFhE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VToK1RE9EeGOffqMW1YiZA" name="A_incoming_target_node" memberEnd="_VVhBMBE9EeGOffqMW1YiZA _VVcI1hE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_EhL8MPnmEdunWsS3se92JQ" name="A_incoming_target_vertex" memberEnd="_VfI3RBE9EeGOffqMW1YiZA _EhVtMPnmEdunWsS3se92JQ _EhVtM_nmEdunWsS3se92JQ">
       <ownedEnd xmi:id="_EhVtM_nmEdunWsS3se92JQ" name="incoming" visibility="private" type="_ykKV8PnlEdunWsS3se92JQ" association="_EhL8MPnmEdunWsS3se92JQ">
         <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_EhVtNPnmEdunWsS3se92JQ"/>
         <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_EhVtNfnmEdunWsS3se92JQ" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gygCoNwbEeCT5O2F6sGn5g" name="A_informationSource_informationFlow" memberEnd="_g0Y5ENwbEeCT5O2F6sGn5g _gygCodwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gygCodwbEeCT5O2F6sGn5g" name="informationFlow" visibility="public" type="_g0Y5ANwbEeCT5O2F6sGn5g" subsettedProperty="_gy5rStwbEeCT5O2F6sGn5g" association="_gygCoNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gygCotwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gygCo9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTox4BE9EeGOffqMW1YiZA" name="A_informationSource_informationFlow" memberEnd="_VZosQBE9EeGOffqMW1YiZA _VTox4RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTox4RE9EeGOffqMW1YiZA" name="informationFlow" visibility="public" type="_VZosMBE9EeGOffqMW1YiZA" subsettedProperty="_VUkmBhE9EeGOffqMW1YiZA" association="_VTox4BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTox4hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTox4xE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gygCpNwbEeCT5O2F6sGn5g" name="A_informationTarget_informationFlow" memberEnd="_g0Y5E9wbEeCT5O2F6sGn5g _gygCpdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gygCpdwbEeCT5O2F6sGn5g" name="informationFlow" visibility="public" type="_g0Y5ANwbEeCT5O2F6sGn5g" subsettedProperty="_gy8ukdwbEeCT5O2F6sGn5g" association="_gygCpNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gygCptwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gygCp9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTpY8BE9EeGOffqMW1YiZA" name="A_informationTarget_informationFlow" memberEnd="_VZosQxE9EeGOffqMW1YiZA _VTpY8RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTpY8RE9EeGOffqMW1YiZA" name="informationFlow" visibility="public" type="_VZosMBE9EeGOffqMW1YiZA" subsettedProperty="_VUpegRE9EeGOffqMW1YiZA" association="_VTpY8BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTpY8hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTpY8xE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gygCqNwbEeCT5O2F6sGn5g" name="A_inheritedMember_classifier" isDerived="true" memberEnd="_gzuxvNwbEeCT5O2F6sGn5g _gygCqdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gygCqdwbEeCT5O2F6sGn5g" name="classifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" subsettedProperty="_gyjF9NwbEeCT5O2F6sGn5g" association="_gygCqNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gygCqtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gygCq9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTpY9BE9EeGOffqMW1YiZA" name="A_inheritedMember_classifier" isDerived="true" memberEnd="_VXsyiRE9EeGOffqMW1YiZA _VTpY9RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTpY9RE9EeGOffqMW1YiZA" name="classifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" subsettedProperty="_VTwttRE9EeGOffqMW1YiZA" association="_VTpY9BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTpY9hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTpY9xE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gygCrNwbEeCT5O2F6sGn5g" name="A_inheritedParameter_redefinableTemplateSignature" isDerived="true" memberEnd="_g16jB9wbEeCT5O2F6sGn5g _gygCrdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gygCrdwbEeCT5O2F6sGn5g" name="redefinableTemplateSignature" visibility="public" type="_9keOQGvdEdq4DLWZOhbdEA" subsettedProperty="_gyro2twbEeCT5O2F6sGn5g" association="_gygCrNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gygCrtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gygCr9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTqAABE9EeGOffqMW1YiZA" name="A_inheritedParameter_redefinableTemplateSignature" isDerived="true" memberEnd="_Vd3E5BE9EeGOffqMW1YiZA _VTqAARE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTqAARE9EeGOffqMW1YiZA" name="redefinableTemplateSignature" visibility="public" type="_9keOQGvdEdq4DLWZOhbdEA" subsettedProperty="_VUH6ERE9EeGOffqMW1YiZA" association="_VTqAABE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTqAAhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTqAAxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gygCsNwbEeCT5O2F6sGn5g" name="A_inputElement_regionAsInput" memberEnd="_g0PvItwbEeCT5O2F6sGn5g _g0PvFtwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gygpsNwbEeCT5O2F6sGn5g" name="A_inputValue_linkAction" memberEnd="_g0iDANwbEeCT5O2F6sGn5g _gygpsdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gygpsdwbEeCT5O2F6sGn5g" name="linkAction" visibility="public" type="_g0iC8NwbEeCT5O2F6sGn5g" subsettedProperty="_gygpt9wbEeCT5O2F6sGn5g" association="_gygpsNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gygpstwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTqABBE9EeGOffqMW1YiZA" name="A_inputElement_regionAsInput" memberEnd="_VZRf1hE9EeGOffqMW1YiZA _VZQ4xhE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTqABRE9EeGOffqMW1YiZA" name="A_inputValue_linkAction" memberEnd="_VZ1gkBE9EeGOffqMW1YiZA _VTqABhE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTqABhE9EeGOffqMW1YiZA" name="linkAction" visibility="public" type="_VZ1ggBE9EeGOffqMW1YiZA" subsettedProperty="_VTqnERE9EeGOffqMW1YiZA" association="_VTqABRE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTqABxE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gygps9wbEeCT5O2F6sGn5g" name="A_inputValue_opaqueAction" memberEnd="_g1YXgNwbEeCT5O2F6sGn5g _gygptNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gygptNwbEeCT5O2F6sGn5g" name="opaqueAction" visibility="public" type="__pbPMLG4EeCDe8CO90iVKQ" subsettedProperty="_gygpt9wbEeCT5O2F6sGn5g" association="_gygps9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gygptdwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTqACBE9EeGOffqMW1YiZA" name="A_inputValue_opaqueAction" memberEnd="_VbefQBE9EeGOffqMW1YiZA _VTqACRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTqACRE9EeGOffqMW1YiZA" name="opaqueAction" visibility="public" type="__pbPMLG4EeCDe8CO90iVKQ" subsettedProperty="_VTqnERE9EeGOffqMW1YiZA" association="_VTqACBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTqAChE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gygpttwbEeCT5O2F6sGn5g" name="A_input_action" isDerived="true" memberEnd="_gzBnMNwbEeCT5O2F6sGn5g _gygpt9wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gygpt9wbEeCT5O2F6sGn5g" name="action" visibility="public" type="_6WKakLLQEeCsYvaJqFFivQ" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gygpttwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gygpuNwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTqnEBE9EeGOffqMW1YiZA" name="A_input_action" isDerived="true" memberEnd="_VU4IABE9EeGOffqMW1YiZA _VTqnERE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTqnERE9EeGOffqMW1YiZA" name="action" visibility="public" type="_6WKakLLQEeCsYvaJqFFivQ" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VTqnEBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTqnEhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gygpudwbEeCT5O2F6sGn5g" name="A_insertAt_addStructuralFeatureValueAction" memberEnd="_gzdr-dwbEeCT5O2F6sGn5g _gygputwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gygputwbEeCT5O2F6sGn5g" name="addStructuralFeatureValueAction" visibility="public" type="_gzdr8NwbEeCT5O2F6sGn5g" subsettedProperty="_gygpt9wbEeCT5O2F6sGn5g" association="_gygpudwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gygpu9wbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTqnExE9EeGOffqMW1YiZA" name="A_insertAt_addStructuralFeatureValueAction" memberEnd="_VVmgyRE9EeGOffqMW1YiZA _VTqnFBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTqnFBE9EeGOffqMW1YiZA" name="addStructuralFeatureValueAction" visibility="public" type="_VVmgwBE9EeGOffqMW1YiZA" subsettedProperty="_VTqnERE9EeGOffqMW1YiZA" association="_VTqnExE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTqnFRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gygpvNwbEeCT5O2F6sGn5g" name="A_insertAt_addVariableValueAction" memberEnd="_gzdsCNwbEeCT5O2F6sGn5g _gygpvdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gygpvdwbEeCT5O2F6sGn5g" name="addVariableValueAction" visibility="public" type="_gzdr_9wbEeCT5O2F6sGn5g" subsettedProperty="_gygpt9wbEeCT5O2F6sGn5g" association="_gygpvNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gygpvtwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTrOIBE9EeGOffqMW1YiZA" name="A_insertAt_addVariableValueAction" memberEnd="_VVnH2RE9EeGOffqMW1YiZA _VTrOIRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTrOIRE9EeGOffqMW1YiZA" name="addVariableValueAction" visibility="public" type="_VVnH0BE9EeGOffqMW1YiZA" subsettedProperty="_VTqnERE9EeGOffqMW1YiZA" association="_VTrOIBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTrOIhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gygpv9wbEeCT5O2F6sGn5g" name="A_insertAt_linkEndCreationData" memberEnd="_g0iqCdwbEeCT5O2F6sGn5g _gygpwNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gygpwNwbEeCT5O2F6sGn5g" name="linkEndCreationData" visibility="public" type="_g0iqANwbEeCT5O2F6sGn5g" association="_gygpv9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gygpwdwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTrOIxE9EeGOffqMW1YiZA" name="A_insertAt_linkEndCreationData" memberEnd="_VZ2HmRE9EeGOffqMW1YiZA _VTrOJBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTrOJBE9EeGOffqMW1YiZA" name="linkEndCreationData" visibility="public" type="_VZ2HkBE9EeGOffqMW1YiZA" association="_VTrOIxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTrOJRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyhQwNwbEeCT5O2F6sGn5g" name="A_instance_instanceValue" memberEnd="_g0auT9wbEeCT5O2F6sGn5g _gyhQwdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyhQwdwbEeCT5O2F6sGn5g" name="instanceValue" visibility="public" type="_PyCx8GveEdq4DLWZOhbdEA" association="_gyhQwNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyhQwtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyhQw9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTrOJhE9EeGOffqMW1YiZA" name="A_instance_instanceValue" memberEnd="_VZrIjxE9EeGOffqMW1YiZA _VTrOJxE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTrOJxE9EeGOffqMW1YiZA" name="instanceValue" visibility="public" type="_PyCx8GveEdq4DLWZOhbdEA" association="_VTrOJhE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTrOKBE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTrOKRE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyhQxNwbEeCT5O2F6sGn5g" name="A_interfaceRealization_implementingClassifier" memberEnd="_gzlAudwbEeCT5O2F6sGn5g _g0e_qNwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyhQxdwbEeCT5O2F6sGn5g" name="A_interruptingEdge_interrupts" memberEnd="_g0fmttwbEeCT5O2F6sGn5g _gzZandwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyhQxtwbEeCT5O2F6sGn5g" name="A_invariant_stateInvariant" memberEnd="_g2DF7dwbEeCT5O2F6sGn5g _gyhQx9wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyhQx9wbEeCT5O2F6sGn5g" name="stateInvariant" visibility="public" type="_g2DF6NwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gyhQxtwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyhQyNwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTr1MBE9EeGOffqMW1YiZA" name="A_interfaceRealization_implementingClassifier" memberEnd="_VWMWoBE9EeGOffqMW1YiZA _VZx2IBE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTr1MRE9EeGOffqMW1YiZA" name="A_interruptingEdge_interrupts" memberEnd="_VZx2KBE9EeGOffqMW1YiZA _VVcIzRE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTr1MhE9EeGOffqMW1YiZA" name="A_invariant_stateInvariant" memberEnd="_VeSitRE9EeGOffqMW1YiZA _VTr1MxE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTr1MxE9EeGOffqMW1YiZA" name="stateInvariant" visibility="public" type="_VeSisBE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VTr1MhE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTr1NBE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyhQydwbEeCT5O2F6sGn5g" name="A_joinSpec_joinNode" memberEnd="_g0g03dwbEeCT5O2F6sGn5g _gyhQytwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyhQytwbEeCT5O2F6sGn5g" name="joinNode" visibility="public" type="_g0g00NwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gyhQydwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyhQy9wbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTr1NRE9EeGOffqMW1YiZA" name="A_joinSpec_joinNode" memberEnd="_VZzrXRE9EeGOffqMW1YiZA _VTr1NhE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTr1NhE9EeGOffqMW1YiZA" name="joinNode" visibility="public" type="_VZzrUBE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VTr1NRE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTr1NxE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyhQzNwbEeCT5O2F6sGn5g" name="A_lifeline_interaction" memberEnd="_g0bVUNwbEeCT5O2F6sGn5g _g0hb89wbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyh30NwbEeCT5O2F6sGn5g" name="A_localPostcondition_action" memberEnd="_gzCOI9wbEeCT5O2F6sGn5g _gyh30dwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyh30dwbEeCT5O2F6sGn5g" name="action" visibility="public" type="_6WKakLLQEeCsYvaJqFFivQ" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gyh30NwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyh30twbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTscQBE9EeGOffqMW1YiZA" name="A_lifeline_interaction" memberEnd="_VZsWoBE9EeGOffqMW1YiZA _VZ0ScxE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTscQRE9EeGOffqMW1YiZA" name="A_localPostcondition_action" memberEnd="_VU4IBxE9EeGOffqMW1YiZA _VTscQhE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTscQhE9EeGOffqMW1YiZA" name="action" visibility="public" type="_6WKakLLQEeCsYvaJqFFivQ" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VTscQRE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTscQxE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyh309wbEeCT5O2F6sGn5g" name="A_localPrecondition_action" memberEnd="_gzCOJ9wbEeCT5O2F6sGn5g _gyh31NwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyh31NwbEeCT5O2F6sGn5g" name="action" visibility="public" type="_6WKakLLQEeCsYvaJqFFivQ" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gyh309wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyh31dwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTtqYBE9EeGOffqMW1YiZA" name="A_localPrecondition_action" memberEnd="_VU4ICxE9EeGOffqMW1YiZA _VTtqYRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTtqYRE9EeGOffqMW1YiZA" name="action" visibility="public" type="_6WKakLLQEeCsYvaJqFFivQ" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VTtqYBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTtqYhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyh31twbEeCT5O2F6sGn5g" name="A_loopVariableInput_loopNode" memberEnd="_g1JuINwbEeCT5O2F6sGn5g _gyh319wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyh319wbEeCT5O2F6sGn5g" name="loopNode" visibility="public" type="_g1JuANwbEeCT5O2F6sGn5g" subsettedProperty="_gy65bdwbEeCT5O2F6sGn5g" association="_gyh31twbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyh32NwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTuRcBE9EeGOffqMW1YiZA" name="A_loopVariableInput_loopNode" memberEnd="_VZ_RoBE9EeGOffqMW1YiZA _VTuRcRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTuRcRE9EeGOffqMW1YiZA" name="loopNode" visibility="public" type="_VZ_RgBE9EeGOffqMW1YiZA" subsettedProperty="_VUnCQRE9EeGOffqMW1YiZA" association="_VTuRcBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTuRchE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyh32dwbEeCT5O2F6sGn5g" name="A_loopVariable_loopNode" memberEnd="_g1JuHNwbEeCT5O2F6sGn5g _gyh32twbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyh32twbEeCT5O2F6sGn5g" name="loopNode" visibility="public" type="_g1JuANwbEeCT5O2F6sGn5g" association="_gyh32dwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyh329wbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTuRcxE9EeGOffqMW1YiZA" name="A_loopVariable_loopNode" memberEnd="_VZ_RnBE9EeGOffqMW1YiZA _VTuRdBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTuRdBE9EeGOffqMW1YiZA" name="loopNode" visibility="public" type="_VZ_RgBE9EeGOffqMW1YiZA" association="_VTuRcxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTuRdRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyh33NwbEeCT5O2F6sGn5g" name="A_lowerValue_owningLower" memberEnd="_g1NYdNwbEeCT5O2F6sGn5g _gyh33dwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyh33dwbEeCT5O2F6sGn5g" name="owningLower" visibility="public" type="_Gjgl0GveEdq4DLWZOhbdEA" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gyh33NwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyh33twbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTuRdhE9EeGOffqMW1YiZA" name="A_lowerValue_owningLower" memberEnd="_VaHNVxE9EeGOffqMW1YiZA _VTuRdxE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTuRdxE9EeGOffqMW1YiZA" name="owningLower" visibility="public" type="_Gjgl0GveEdq4DLWZOhbdEA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VTuRdhE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTuReBE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyh339wbEeCT5O2F6sGn5g" name="A_manifestation_artifact" memberEnd="_gze6ENwbEeCT5O2F6sGn5g _gyh34NwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyh34NwbEeCT5O2F6sGn5g" name="artifact" visibility="public" type="_-lGRgHLzEdqziYxiZo0YtA" subsettedProperty="_g0EI49wbEeCT5O2F6sGn5g _g0JodNwbEeCT5O2F6sGn5g" association="_gyh339wbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTu4gBE9EeGOffqMW1YiZA" name="A_manifestation_artifact" memberEnd="_VVpkEBE9EeGOffqMW1YiZA _VTu4gRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTu4gRE9EeGOffqMW1YiZA" name="artifact" visibility="public" type="_-lGRgHLzEdqziYxiZo0YtA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw _VYyXoBE9EeGOffqMW1YiZA" association="_VTu4gBE9EeGOffqMW1YiZA"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyie4NwbEeCT5O2F6sGn5g" name="A_mapping_abstraction" memberEnd="_gzAY-dwbEeCT5O2F6sGn5g _gyie4dwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyie4dwbEeCT5O2F6sGn5g" name="abstraction" visibility="public" type="_gzAY9twbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gyie4NwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyie4twbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTu4ghE9EeGOffqMW1YiZA" name="A_mapping_abstraction" memberEnd="_VU1EsxE9EeGOffqMW1YiZA _VTu4gxE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTu4gxE9EeGOffqMW1YiZA" name="abstraction" visibility="public" type="_VU1EsBE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VTu4ghE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTu4hBE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyie49wbEeCT5O2F6sGn5g" name="A_max_durationInterval" memberEnd="_g0IaX9wbEeCT5O2F6sGn5g _gyie5dwbEeCT5O2F6sGn5g">
-      <generalization xmi:id="_gyie5NwbEeCT5O2F6sGn5g" general="_gyie6NwbEeCT5O2F6sGn5g"/>
-      <ownedEnd xmi:id="_gyie5dwbEeCT5O2F6sGn5g" name="durationInterval" visibility="public" type="_g0IaXNwbEeCT5O2F6sGn5g" redefinedProperty="_gyie6dwbEeCT5O2F6sGn5g" association="_gyie49wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyie5twbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyie59wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTu4hRE9EeGOffqMW1YiZA" name="A_max_durationInterval" memberEnd="_VY-k7xE9EeGOffqMW1YiZA _VTvfkRE9EeGOffqMW1YiZA">
+      <generalization xmi:id="_VTvfkBE9EeGOffqMW1YiZA" general="_VTvflBE9EeGOffqMW1YiZA"/>
+      <ownedEnd xmi:id="_VTvfkRE9EeGOffqMW1YiZA" name="durationInterval" visibility="public" type="_VY-k7BE9EeGOffqMW1YiZA" redefinedProperty="_VTvflRE9EeGOffqMW1YiZA" association="_VTu4hRE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTvfkhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTvfkxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyie6NwbEeCT5O2F6sGn5g" name="A_max_interval" memberEnd="_g0fmwdwbEeCT5O2F6sGn5g _gyie6dwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyie6dwbEeCT5O2F6sGn5g" name="interval" visibility="public" type="_g0fmvtwbEeCT5O2F6sGn5g" association="_gyie6NwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyie6twbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyie69wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTvflBE9EeGOffqMW1YiZA" name="A_max_interval" memberEnd="_VZydMxE9EeGOffqMW1YiZA _VTvflRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTvflRE9EeGOffqMW1YiZA" name="interval" visibility="public" type="_VZydMBE9EeGOffqMW1YiZA" association="_VTvflBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTvflhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTvflxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyie7NwbEeCT5O2F6sGn5g" name="A_max_timeInterval" memberEnd="_g2RIU9wbEeCT5O2F6sGn5g _gyie7twbEeCT5O2F6sGn5g">
-      <generalization xmi:id="_gyie7dwbEeCT5O2F6sGn5g" general="_gyie6NwbEeCT5O2F6sGn5g"/>
-      <ownedEnd xmi:id="_gyie7twbEeCT5O2F6sGn5g" name="timeInterval" visibility="public" type="_g2RIUNwbEeCT5O2F6sGn5g" redefinedProperty="_gyie6dwbEeCT5O2F6sGn5g" association="_gyie7NwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyie79wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyie8NwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTvfmBE9EeGOffqMW1YiZA" name="A_max_timeInterval" memberEnd="_VexD0xE9EeGOffqMW1YiZA _VTwGoRE9EeGOffqMW1YiZA">
+      <generalization xmi:id="_VTwGoBE9EeGOffqMW1YiZA" general="_VTvflBE9EeGOffqMW1YiZA"/>
+      <ownedEnd xmi:id="_VTwGoRE9EeGOffqMW1YiZA" name="timeInterval" visibility="public" type="_VexD0BE9EeGOffqMW1YiZA" redefinedProperty="_VTvflRE9EeGOffqMW1YiZA" association="_VTvfmBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTwGohE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTwGoxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyie8dwbEeCT5O2F6sGn5g" name="A_maxint_interactionConstraint" memberEnd="_g0b8ZdwbEeCT5O2F6sGn5g _gyjF8NwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyjF8NwbEeCT5O2F6sGn5g" name="interactionConstraint" visibility="public" type="_g0b8UNwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gyie8dwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyjF8dwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTwtsBE9EeGOffqMW1YiZA" name="A_maxint_interactionConstraint" memberEnd="_VZs9tRE9EeGOffqMW1YiZA _VTwtsRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTwtsRE9EeGOffqMW1YiZA" name="interactionConstraint" visibility="public" type="_VZs9oBE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VTwtsBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTwtshE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyjF8twbEeCT5O2F6sGn5g" name="A_memberEnd_association" memberEnd="_gzgIONwbEeCT5O2F6sGn5g _g1sgnNwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyjF89wbEeCT5O2F6sGn5g" name="A_member_memberNamespace" isDerived="true" memberEnd="_g1S3_dwbEeCT5O2F6sGn5g _gyjF9NwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyjF9NwbEeCT5O2F6sGn5g" name="memberNamespace" visibility="public" type="_ZiwkoGwLEdq7X4sGURiZYA" association="_gyjF89wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyjF9dwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyjF9twbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTwtsxE9EeGOffqMW1YiZA" name="A_memberEnd_association" memberEnd="_VV4NkxE9EeGOffqMW1YiZA _VdFo1BE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTwttBE9EeGOffqMW1YiZA" name="A_member_memberNamespace" isDerived="true" memberEnd="_VarOCBE9EeGOffqMW1YiZA _VTwttRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTwttRE9EeGOffqMW1YiZA" name="memberNamespace" visibility="public" type="_ZiwkoGwLEdq7X4sGURiZYA" association="_VTwttBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTwtthE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTwttxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyjF99wbEeCT5O2F6sGn5g" name="A_mergedPackage_packageMerge" memberEnd="_g1j9s9wbEeCT5O2F6sGn5g _gyjF-NwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyjF-NwbEeCT5O2F6sGn5g" name="packageMerge" visibility="public" type="_g1j9sNwbEeCT5O2F6sGn5g" subsettedProperty="_gy8ukdwbEeCT5O2F6sGn5g" association="_gyjF99wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyjF-dwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyjF-twbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTxUwBE9EeGOffqMW1YiZA" name="A_mergedPackage_packageMerge" memberEnd="_VcsAMxE9EeGOffqMW1YiZA _VTxUwRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTxUwRE9EeGOffqMW1YiZA" name="packageMerge" visibility="public" type="_VcsAMBE9EeGOffqMW1YiZA" subsettedProperty="_VUpegRE9EeGOffqMW1YiZA" association="_VTxUwBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTxUwhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTxUwxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyjF-9wbEeCT5O2F6sGn5g" name="A_message_considerIgnoreFragment" memberEnd="_gz_3edwbEeCT5O2F6sGn5g _gyjF_NwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyjF_NwbEeCT5O2F6sGn5g" name="considerIgnoreFragment" visibility="public" type="_gz_3cNwbEeCT5O2F6sGn5g" association="_gyjF-9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyjF_dwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyjF_twbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTxUxBE9EeGOffqMW1YiZA" name="A_message_considerIgnoreFragment" memberEnd="_VYZ9KRE9EeGOffqMW1YiZA _VTxUxRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTxUxRE9EeGOffqMW1YiZA" name="considerIgnoreFragment" visibility="public" type="_VYZ9IBE9EeGOffqMW1YiZA" association="_VTxUxBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTxUxhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTxUxxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyjF_9wbEeCT5O2F6sGn5g" name="A_message_interaction" memberEnd="_g0bVVNwbEeCT5O2F6sGn5g _g1K8MdwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyjtANwbEeCT5O2F6sGn5g" name="A_message_messageEnd" memberEnd="_g1MKQ9wbEeCT5O2F6sGn5g _gyjtAdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyjtAdwbEeCT5O2F6sGn5g" name="messageEnd" visibility="public" type="_g1MKQNwbEeCT5O2F6sGn5g" association="_gyjtANwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyjtAtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyjtA9wbEeCT5O2F6sGn5g" value="2"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTxUyBE9EeGOffqMW1YiZA" name="A_message_interaction" memberEnd="_VZsWpBE9EeGOffqMW1YiZA _VaBGuBE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTx70BE9EeGOffqMW1YiZA" name="A_message_messageEnd" memberEnd="_VaEKAxE9EeGOffqMW1YiZA _VTx70RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTx70RE9EeGOffqMW1YiZA" name="messageEnd" visibility="public" type="_VaEKABE9EeGOffqMW1YiZA" association="_VTx70BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTx70hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTx70xE9EeGOffqMW1YiZA" value="2"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyjtBNwbEeCT5O2F6sGn5g" name="A_metaclassReference_profile" memberEnd="_g1qradwbEeCT5O2F6sGn5g _gyjtBdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyjtBdwbEeCT5O2F6sGn5g" name="profile" visibility="public" type="__pew8GvzEdq7X4sGURiZYA" subsettedProperty="_g0LdotwbEeCT5O2F6sGn5g" association="_gyjtBNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyjtBtwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTx71BE9EeGOffqMW1YiZA" name="A_metaclassReference_profile" memberEnd="_VdB-eBE9EeGOffqMW1YiZA _VTx71RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTx71RE9EeGOffqMW1YiZA" name="profile" visibility="public" type="__pew8GvzEdq7X4sGURiZYA" subsettedProperty="_VZKLEhE9EeGOffqMW1YiZA" association="_VTx71BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTx71hE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyjtB9wbEeCT5O2F6sGn5g" name="A_metamodelReference_profile" memberEnd="_g1qrbdwbEeCT5O2F6sGn5g _gyjtCNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyjtCNwbEeCT5O2F6sGn5g" name="profile" visibility="public" type="__pew8GvzEdq7X4sGURiZYA" subsettedProperty="_g1jWp9wbEeCT5O2F6sGn5g" association="_gyjtB9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyjtCdwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTyi4BE9EeGOffqMW1YiZA" name="A_metamodelReference_profile" memberEnd="_VdClgBE9EeGOffqMW1YiZA _VTyi4RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTyi4RE9EeGOffqMW1YiZA" name="profile" visibility="public" type="__pew8GvzEdq7X4sGURiZYA" subsettedProperty="_VcZsUhE9EeGOffqMW1YiZA" association="_VTyi4BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTyi4hE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyjtCtwbEeCT5O2F6sGn5g" name="A_method_specification" memberEnd="_gzjyodwbEeCT5O2F6sGn5g _gzikgNwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyjtC9wbEeCT5O2F6sGn5g" name="A_min_durationInterval" memberEnd="_g0IaYdwbEeCT5O2F6sGn5g _gyjtDdwbEeCT5O2F6sGn5g">
-      <generalization xmi:id="_gyjtDNwbEeCT5O2F6sGn5g" general="_gyjtENwbEeCT5O2F6sGn5g"/>
-      <ownedEnd xmi:id="_gyjtDdwbEeCT5O2F6sGn5g" name="durationInterval" visibility="public" type="_g0IaXNwbEeCT5O2F6sGn5g" redefinedProperty="_gyjtEdwbEeCT5O2F6sGn5g" association="_gyjtC9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyjtDtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyjtD9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTyi4xE9EeGOffqMW1YiZA" name="A_method_specification" memberEnd="_VWJTVhE9EeGOffqMW1YiZA _VWEa1BE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTyi5BE9EeGOffqMW1YiZA" name="A_min_durationInterval" memberEnd="_VY-k8RE9EeGOffqMW1YiZA _VTyi5hE9EeGOffqMW1YiZA">
+      <generalization xmi:id="_VTyi5RE9EeGOffqMW1YiZA" general="_VTzJ8BE9EeGOffqMW1YiZA"/>
+      <ownedEnd xmi:id="_VTyi5hE9EeGOffqMW1YiZA" name="durationInterval" visibility="public" type="_VY-k7BE9EeGOffqMW1YiZA" redefinedProperty="_VTzJ8RE9EeGOffqMW1YiZA" association="_VTyi5BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTyi5xE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTyi6BE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyjtENwbEeCT5O2F6sGn5g" name="A_min_interval" memberEnd="_g0fmw9wbEeCT5O2F6sGn5g _gyjtEdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyjtEdwbEeCT5O2F6sGn5g" name="interval" visibility="public" type="_g0fmvtwbEeCT5O2F6sGn5g" association="_gyjtENwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyjtEtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyjtE9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTzJ8BE9EeGOffqMW1YiZA" name="A_min_interval" memberEnd="_VZydNRE9EeGOffqMW1YiZA _VTzJ8RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTzJ8RE9EeGOffqMW1YiZA" name="interval" visibility="public" type="_VZydMBE9EeGOffqMW1YiZA" association="_VTzJ8BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTzJ8hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTzJ8xE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gykUENwbEeCT5O2F6sGn5g" name="A_min_timeInterval" memberEnd="_g2RIVdwbEeCT5O2F6sGn5g _gykUEtwbEeCT5O2F6sGn5g">
-      <generalization xmi:id="_gykUEdwbEeCT5O2F6sGn5g" general="_gyjtENwbEeCT5O2F6sGn5g"/>
-      <ownedEnd xmi:id="_gykUEtwbEeCT5O2F6sGn5g" name="timeInterval" visibility="public" type="_g2RIUNwbEeCT5O2F6sGn5g" redefinedProperty="_gyjtEdwbEeCT5O2F6sGn5g" association="_gykUENwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gykUE9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gykUFNwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTzJ9BE9EeGOffqMW1YiZA" name="A_min_timeInterval" memberEnd="_VexD1RE9EeGOffqMW1YiZA _VTzJ9hE9EeGOffqMW1YiZA">
+      <generalization xmi:id="_VTzJ9RE9EeGOffqMW1YiZA" general="_VTzJ8BE9EeGOffqMW1YiZA"/>
+      <ownedEnd xmi:id="_VTzJ9hE9EeGOffqMW1YiZA" name="timeInterval" visibility="public" type="_VexD0BE9EeGOffqMW1YiZA" redefinedProperty="_VTzJ8RE9EeGOffqMW1YiZA" association="_VTzJ9BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTzJ9xE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VTzJ-BE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gykUFdwbEeCT5O2F6sGn5g" name="A_minint_interactionConstraint" memberEnd="_g0b8aNwbEeCT5O2F6sGn5g _gykUFtwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gykUFtwbEeCT5O2F6sGn5g" name="interactionConstraint" visibility="public" type="_g0b8UNwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gykUFdwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gykUF9wbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTzxABE9EeGOffqMW1YiZA" name="A_minint_interactionConstraint" memberEnd="_VZs9uBE9EeGOffqMW1YiZA _VTzxARE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTzxARE9EeGOffqMW1YiZA" name="interactionConstraint" visibility="public" type="_VZs9oBE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VTzxABE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTzxAhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gykUGNwbEeCT5O2F6sGn5g" name="A_nameExpression_namedElement" memberEnd="_g1QbttwbEeCT5O2F6sGn5g _gykUGdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gykUGdwbEeCT5O2F6sGn5g" name="namedElement" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gykUGNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gykUGtwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VTzxAxE9EeGOffqMW1YiZA" name="A_nameExpression_namedElement" memberEnd="_VaN7BhE9EeGOffqMW1YiZA _VTzxBBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VTzxBBE9EeGOffqMW1YiZA" name="namedElement" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VTzxAxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VTzxBRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gykUG9wbEeCT5O2F6sGn5g" name="A_navigableOwnedEnd_association" memberEnd="_gzgIPNwbEeCT5O2F6sGn5g _gykUHNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gykUHNwbEeCT5O2F6sGn5g" name="association" visibility="public" type="_AwvxoGwNEdq7X4sGURiZYA" subsettedProperty="_g1tuxdwbEeCT5O2F6sGn5g" association="_gykUG9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gykUHdwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT0YEBE9EeGOffqMW1YiZA" name="A_navigableOwnedEnd_association" memberEnd="_VV4NlxE9EeGOffqMW1YiZA _VT0YERE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VT0YERE9EeGOffqMW1YiZA" name="association" visibility="public" type="_AwvxoGwNEdq7X4sGURiZYA" subsettedProperty="_VdHeDRE9EeGOffqMW1YiZA" association="_VT0YEBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VT0YEhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gykUHtwbEeCT5O2F6sGn5g" name="A_nestedArtifact_artifact" memberEnd="_gze6FNwbEeCT5O2F6sGn5g _gyk7INwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyk7INwbEeCT5O2F6sGn5g" name="artifact" visibility="public" type="_-lGRgHLzEdqziYxiZo0YtA" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_gykUHtwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyk7IdwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT0YExE9EeGOffqMW1YiZA" name="A_nestedArtifact_artifact" memberEnd="_VVqLIBE9EeGOffqMW1YiZA _VT0YFBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VT0YFBE9EeGOffqMW1YiZA" name="artifact" visibility="public" type="_-lGRgHLzEdqziYxiZo0YtA" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_VT0YExE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VT0YFRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyk7ItwbEeCT5O2F6sGn5g" name="A_nestedClassifier_class" memberEnd="_gzpSJ9wbEeCT5O2F6sGn5g _gyk7I9wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyk7I9wbEeCT5O2F6sGn5g" name="class" visibility="public" type="_00owUGvdEdq4DLWZOhbdEA" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA _zYrE4La-EeCRxrN1JUGuxA" association="_gyk7ItwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyk7JNwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT0YFhE9EeGOffqMW1YiZA" name="A_nestedClassifier_class" memberEnd="_VWX80BE9EeGOffqMW1YiZA _VT0YFxE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VT0YFxE9EeGOffqMW1YiZA" name="class" visibility="public" type="_00owUGvdEdq4DLWZOhbdEA" subsettedProperty="_zYrE4La-EeCRxrN1JUGuxA _1vzv0LbIEeCRxrN1JUGuxA" association="_VT0YFhE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VT0YGBE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyk7JdwbEeCT5O2F6sGn5g" name="A_nestedClassifier_interface" memberEnd="_g0eYldwbEeCT5O2F6sGn5g _gyk7JtwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyk7JtwbEeCT5O2F6sGn5g" name="interface" visibility="public" type="_8Ugn8GvtEdqG6fBIPwe-mw" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA _zYrE4La-EeCRxrN1JUGuxA" association="_gyk7JdwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyk7J9wbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT0_IBE9EeGOffqMW1YiZA" name="A_nestedClassifier_interface" memberEnd="_VZwA9xE9EeGOffqMW1YiZA _VT0_IRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VT0_IRE9EeGOffqMW1YiZA" name="interface" visibility="public" type="_8Ugn8GvtEdqG6fBIPwe-mw" subsettedProperty="_zYrE4La-EeCRxrN1JUGuxA _1vzv0LbIEeCRxrN1JUGuxA" association="_VT0_IBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VT0_IhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyk7KNwbEeCT5O2F6sGn5g" name="A_nestedNode_node" memberEnd="_g1V7QNwbEeCT5O2F6sGn5g _gyk7KdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyk7KdwbEeCT5O2F6sGn5g" name="node" visibility="public" type="_5YOyUKJ8EdywJr5C4uHLKw" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_gyk7KNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyk7KtwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT0_IxE9EeGOffqMW1YiZA" name="A_nestedNode_node" memberEnd="_VbFdtRE9EeGOffqMW1YiZA _VT0_JBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VT0_JBE9EeGOffqMW1YiZA" name="node" visibility="public" type="_5YOyUKJ8EdywJr5C4uHLKw" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_VT0_IxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VT0_JRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyk7K9wbEeCT5O2F6sGn5g" name="A_nestedPackage_nestingPackage" memberEnd="_g1gTVtwbEeCT5O2F6sGn5g _XSjCgLbQEeCRxrN1JUGuxA"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyk7LNwbEeCT5O2F6sGn5g" name="A_newClassifier_reclassifyObjectAction" memberEnd="_g14t59wbEeCT5O2F6sGn5g _gyk7LdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyk7LdwbEeCT5O2F6sGn5g" name="reclassifyObjectAction" visibility="public" type="_g14t2NwbEeCT5O2F6sGn5g" association="_gyk7LNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyk7LtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyk7L9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT0_JhE9EeGOffqMW1YiZA" name="A_nestedPackage_nestingPackage" memberEnd="_VcKbwBE9EeGOffqMW1YiZA _XSjCgLbQEeCRxrN1JUGuxA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT1mMBE9EeGOffqMW1YiZA" name="A_newClassifier_reclassifyObjectAction" memberEnd="_VdlYHxE9EeGOffqMW1YiZA _VT1mMRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VT1mMRE9EeGOffqMW1YiZA" name="reclassifyObjectAction" visibility="public" type="_VdlYEBE9EeGOffqMW1YiZA" association="_VT1mMBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VT1mMhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VT1mMxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyk7MNwbEeCT5O2F6sGn5g" name="A_node_activity" memberEnd="_gzXlUNwbEeCT5O2F6sGn5g _gzbPudwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyliMNwbEeCT5O2F6sGn5g" name="A_node_inStructuredNode" memberEnd="_g2IletwbEeCT5O2F6sGn5g _gzbPyNwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyliMdwbEeCT5O2F6sGn5g" name="A_object_clearAssociationAction" memberEnd="_gz04bdwbEeCT5O2F6sGn5g _gyliMtwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyliMtwbEeCT5O2F6sGn5g" name="clearAssociationAction" visibility="public" type="_gz04YtwbEeCT5O2F6sGn5g" subsettedProperty="_gygpt9wbEeCT5O2F6sGn5g" association="_gyliMdwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyliM9wbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_RFCrMAtCEeGcpbeCPJfCmw" name="A_node_activity" memberEnd="_RoJfoAs_EeGcpbeCPJfCmw _X0ZfIAtCEeGcpbeCPJfCmw"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT1mNBE9EeGOffqMW1YiZA" name="A_node_inStructuredNode" memberEnd="_VeiaUxE9EeGOffqMW1YiZA _VVgaKxE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT2NQBE9EeGOffqMW1YiZA" name="A_object_clearAssociationAction" memberEnd="_VX4_yxE9EeGOffqMW1YiZA _VT2NQRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VT2NQRE9EeGOffqMW1YiZA" name="clearAssociationAction" visibility="public" type="_VX4_wBE9EeGOffqMW1YiZA" subsettedProperty="_VTqnERE9EeGOffqMW1YiZA" association="_VT2NQBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VT2NQhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyliNNwbEeCT5O2F6sGn5g" name="A_object_readIsClassifiedObjectAction" memberEnd="_g10cdNwbEeCT5O2F6sGn5g _gyliNdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyliNdwbEeCT5O2F6sGn5g" name="readIsClassifiedObjectAction" visibility="public" type="_g10cYNwbEeCT5O2F6sGn5g" subsettedProperty="_gygpt9wbEeCT5O2F6sGn5g" association="_gyliNNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyliNtwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT2NQxE9EeGOffqMW1YiZA" name="A_object_readIsClassifiedObjectAction" memberEnd="_Vdc1RBE9EeGOffqMW1YiZA _VT2NRBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VT2NRBE9EeGOffqMW1YiZA" name="readIsClassifiedObjectAction" visibility="public" type="_Vdc1MBE9EeGOffqMW1YiZA" subsettedProperty="_VTqnERE9EeGOffqMW1YiZA" association="_VT2NQxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VT2NRRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyliN9wbEeCT5O2F6sGn5g" name="A_object_readLinkObjectEndAction" memberEnd="_g11qmtwbEeCT5O2F6sGn5g _gyliONwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyliONwbEeCT5O2F6sGn5g" name="readLinkObjectEndAction" visibility="public" type="_g11qgNwbEeCT5O2F6sGn5g" subsettedProperty="_gygpt9wbEeCT5O2F6sGn5g" association="_gyliN9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyliOdwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT20UBE9EeGOffqMW1YiZA" name="A_object_readLinkObjectEndAction" memberEnd="_VdfRihE9EeGOffqMW1YiZA _VT20URE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VT20URE9EeGOffqMW1YiZA" name="readLinkObjectEndAction" visibility="public" type="_VdfRcBE9EeGOffqMW1YiZA" subsettedProperty="_VTqnERE9EeGOffqMW1YiZA" association="_VT20UBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VT20UhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyliOtwbEeCT5O2F6sGn5g" name="A_object_readLinkObjectEndQualifierAction" memberEnd="_g12Rq9wbEeCT5O2F6sGn5g _gyliO9wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyliO9wbEeCT5O2F6sGn5g" name="readLinkObjectEndQualifierAction" visibility="public" type="_g12RkNwbEeCT5O2F6sGn5g" subsettedProperty="_gygpt9wbEeCT5O2F6sGn5g" association="_gyliOtwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyliPNwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT20UxE9EeGOffqMW1YiZA" name="A_object_readLinkObjectEndQualifierAction" memberEnd="_VdgfqxE9EeGOffqMW1YiZA _VT20VBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VT20VBE9EeGOffqMW1YiZA" name="readLinkObjectEndQualifierAction" visibility="public" type="_VdgfkBE9EeGOffqMW1YiZA" subsettedProperty="_VTqnERE9EeGOffqMW1YiZA" association="_VT20UxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VT20VRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyliPdwbEeCT5O2F6sGn5g" name="A_object_reclassifyObjectAction" memberEnd="_g14t69wbEeCT5O2F6sGn5g _gyliPtwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyliPtwbEeCT5O2F6sGn5g" name="reclassifyObjectAction" visibility="public" type="_g14t2NwbEeCT5O2F6sGn5g" subsettedProperty="_gygpt9wbEeCT5O2F6sGn5g" association="_gyliPdwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyliP9wbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT20VhE9EeGOffqMW1YiZA" name="A_object_reclassifyObjectAction" memberEnd="_VdlYIxE9EeGOffqMW1YiZA _VT20VxE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VT20VxE9EeGOffqMW1YiZA" name="reclassifyObjectAction" visibility="public" type="_VdlYEBE9EeGOffqMW1YiZA" subsettedProperty="_VTqnERE9EeGOffqMW1YiZA" association="_VT20VhE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VT20WBE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gymJQNwbEeCT5O2F6sGn5g" name="A_object_startClassifierBehaviorAction" memberEnd="_g2ACpNwbEeCT5O2F6sGn5g _gymJQdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gymJQdwbEeCT5O2F6sGn5g" name="startClassifierBehaviorAction" visibility="public" type="_g2ACm9wbEeCT5O2F6sGn5g" subsettedProperty="_gygpt9wbEeCT5O2F6sGn5g" association="_gymJQNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gymJQtwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT3bYBE9EeGOffqMW1YiZA" name="A_object_startClassifierBehaviorAction" memberEnd="_VeNDKRE9EeGOffqMW1YiZA _VT3bYRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VT3bYRE9EeGOffqMW1YiZA" name="startClassifierBehaviorAction" visibility="public" type="_VeNDIBE9EeGOffqMW1YiZA" subsettedProperty="_VTqnERE9EeGOffqMW1YiZA" association="_VT3bYBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VT3bYhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gymJQ9wbEeCT5O2F6sGn5g" name="A_object_startObjectBehaviorAction" memberEnd="_g2ApstwbEeCT5O2F6sGn5g _gymJRNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gymJRNwbEeCT5O2F6sGn5g" name="startObjectBehaviorAction" visibility="public" type="_g2ApoNwbEeCT5O2F6sGn5g" subsettedProperty="_gygpt9wbEeCT5O2F6sGn5g" association="_gymJQ9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gymJRdwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT3bYxE9EeGOffqMW1YiZA" name="A_object_startObjectBehaviorAction" memberEnd="_VeORQRE9EeGOffqMW1YiZA _VT3bZBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VT3bZBE9EeGOffqMW1YiZA" name="startObjectBehaviorAction" visibility="public" type="_VeNqMBE9EeGOffqMW1YiZA" subsettedProperty="_VTqnERE9EeGOffqMW1YiZA" association="_VT3bYxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VT3bZRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gymJRtwbEeCT5O2F6sGn5g" name="A_object_structuralFeatureAction" memberEnd="_g2H-ctwbEeCT5O2F6sGn5g _gymJR9wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gymJR9wbEeCT5O2F6sGn5g" name="structuralFeatureAction" visibility="public" type="_g2H-YNwbEeCT5O2F6sGn5g" subsettedProperty="_gygpt9wbEeCT5O2F6sGn5g" association="_gymJRtwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gymJSNwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT4CcBE9EeGOffqMW1YiZA" name="A_object_structuralFeatureAction" memberEnd="_VehMQhE9EeGOffqMW1YiZA _VT4CcRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VT4CcRE9EeGOffqMW1YiZA" name="structuralFeatureAction" visibility="public" type="_VehMMBE9EeGOffqMW1YiZA" subsettedProperty="_VTqnERE9EeGOffqMW1YiZA" association="_VT4CcBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VT4CchE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gymJSdwbEeCT5O2F6sGn5g" name="A_object_unmarshallAction" memberEnd="_g2VZ2NwbEeCT5O2F6sGn5g _gymJStwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gymJStwbEeCT5O2F6sGn5g" name="unmarshallAction" visibility="public" type="_g2VZwNwbEeCT5O2F6sGn5g" subsettedProperty="_gygpt9wbEeCT5O2F6sGn5g" association="_gymJSdwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gymJS9wbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT4CcxE9EeGOffqMW1YiZA" name="A_object_unmarshallAction" memberEnd="_VfD-2BE9EeGOffqMW1YiZA _VT4CdBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VT4CdBE9EeGOffqMW1YiZA" name="unmarshallAction" visibility="public" type="_VfD-wBE9EeGOffqMW1YiZA" subsettedProperty="_VTqnERE9EeGOffqMW1YiZA" association="_VT4CcxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VT7FwBE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gymJTNwbEeCT5O2F6sGn5g" name="A_observation_duration" memberEnd="_g0HzTNwbEeCT5O2F6sGn5g _gymJTdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gymJTdwbEeCT5O2F6sGn5g" name="duration" visibility="public" type="_-Ixo8H4XEdq7cMP_l1l5Gg" association="_gymJTNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gymJTtwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT7s0BE9EeGOffqMW1YiZA" name="A_observation_duration" memberEnd="_VY8IoBE9EeGOffqMW1YiZA _VT7s0RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VT7s0RE9EeGOffqMW1YiZA" name="duration" visibility="public" type="_-Ixo8H4XEdq7cMP_l1l5Gg" association="_VT7s0BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VT7s0hE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gymwUNwbEeCT5O2F6sGn5g" name="A_observation_timeExpression" memberEnd="_g2QhVNwbEeCT5O2F6sGn5g _gymwUdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gymwUdwbEeCT5O2F6sGn5g" name="timeExpression" visibility="public" type="_DylKEH4YEdq7cMP_l1l5Gg" association="_gymwUNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gymwUtwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT7s0xE9EeGOffqMW1YiZA" name="A_observation_timeExpression" memberEnd="_Vev1tRE9EeGOffqMW1YiZA _VT7s1BE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VT7s1BE9EeGOffqMW1YiZA" name="timeExpression" visibility="public" type="_DylKEH4YEdq7cMP_l1l5Gg" association="_VT7s0xE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VT7s1RE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gymwU9wbEeCT5O2F6sGn5g" name="A_oldClassifier_reclassifyObjectAction" memberEnd="_g14t7dwbEeCT5O2F6sGn5g _gymwVNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gymwVNwbEeCT5O2F6sGn5g" name="reclassifyObjectAction" visibility="public" type="_g14t2NwbEeCT5O2F6sGn5g" association="_gymwU9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gymwVdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gymwVtwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT7s1hE9EeGOffqMW1YiZA" name="A_oldClassifier_reclassifyObjectAction" memberEnd="_VdlYJRE9EeGOffqMW1YiZA _VT7s1xE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VT7s1xE9EeGOffqMW1YiZA" name="reclassifyObjectAction" visibility="public" type="_VdlYEBE9EeGOffqMW1YiZA" association="_VT7s1hE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VT7s2BE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VT7s2RE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gymwV9wbEeCT5O2F6sGn5g" name="A_onPort_invocationAction" memberEnd="_g0gN0NwbEeCT5O2F6sGn5g _gymwWNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gymwWNwbEeCT5O2F6sGn5g" name="invocationAction" visibility="public" type="_g0gNxdwbEeCT5O2F6sGn5g" association="_gymwV9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gymwWdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gymwWtwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT8T4BE9EeGOffqMW1YiZA" name="A_onPort_invocationAction" memberEnd="_VZzESxE9EeGOffqMW1YiZA _VT8T4RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VT8T4RE9EeGOffqMW1YiZA" name="invocationAction" visibility="public" type="_VZzEQBE9EeGOffqMW1YiZA" association="_VT8T4BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VT8T4hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VT8T4xE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gymwW9wbEeCT5O2F6sGn5g" name="A_operand_combinedFragment" memberEnd="_gz3UptwbEeCT5O2F6sGn5g _gymwXNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gymwXNwbEeCT5O2F6sGn5g" name="combinedFragment" visibility="public" type="_gz3UkNwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gymwW9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gymwXdwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT8T5BE9EeGOffqMW1YiZA" name="A_operand_combinedFragment" memberEnd="_VX8qNhE9EeGOffqMW1YiZA _VT8T5RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VT8T5RE9EeGOffqMW1YiZA" name="combinedFragment" visibility="public" type="_VX8qIBE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VT8T5BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VT8T5hE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gymwXtwbEeCT5O2F6sGn5g" name="A_operand_expression" memberEnd="_g0QWI9wbEeCT5O2F6sGn5g _gymwX9wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gymwX9wbEeCT5O2F6sGn5g" name="expression" visibility="public" type="_8QuDcLG3EeCDe8CO90iVKQ" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gymwXtwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gymwYNwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT8T5xE9EeGOffqMW1YiZA" name="A_operand_expression" memberEnd="_VZSG4RE9EeGOffqMW1YiZA _VT8T6BE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VT8T6BE9EeGOffqMW1YiZA" name="expression" visibility="public" type="_8QuDcLG3EeCDe8CO90iVKQ" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VT8T5xE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VT8T6RE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gynXYNwbEeCT5O2F6sGn5g" name="A_operation_callEvent" memberEnd="_gzm18dwbEeCT5O2F6sGn5g _gynXYdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gynXYdwbEeCT5O2F6sGn5g" name="callEvent" visibility="public" type="_gzm17twbEeCT5O2F6sGn5g" association="_gynXYNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gynXYtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gynXY9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT868BE9EeGOffqMW1YiZA" name="A_operation_callEvent" memberEnd="_VWU5gxE9EeGOffqMW1YiZA _VT868RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VT868RE9EeGOffqMW1YiZA" name="callEvent" visibility="public" type="_VWU5gBE9EeGOffqMW1YiZA" association="_VT868BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VT868hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VT868xE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gynXZNwbEeCT5O2F6sGn5g" name="A_operation_callOperationAction" memberEnd="_gznc_9wbEeCT5O2F6sGn5g _gynXZdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gynXZdwbEeCT5O2F6sGn5g" name="callOperationAction" visibility="public" type="_gznc8NwbEeCT5O2F6sGn5g" association="_gynXZNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gynXZtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gynXZ9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT869BE9EeGOffqMW1YiZA" name="A_operation_callOperationAction" memberEnd="_VWVgnxE9EeGOffqMW1YiZA _VT869RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VT869RE9EeGOffqMW1YiZA" name="callOperationAction" visibility="public" type="_VWVgkBE9EeGOffqMW1YiZA" association="_VT869BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VT869hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VT869xE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gynXaNwbEeCT5O2F6sGn5g" name="A_operation_templateParameter_parameteredElement" memberEnd="_g1dQFdwbEeCT5O2F6sGn5g _g1fsQ9wbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gynXadwbEeCT5O2F6sGn5g" name="A_opposite_property" isDerived="true" memberEnd="_g1tuwtwbEeCT5O2F6sGn5g _gynXatwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gynXatwbEeCT5O2F6sGn5g" name="property" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" association="_gynXadwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gynXa9wbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT86-BE9EeGOffqMW1YiZA" name="A_operation_templateParameter_parameteredElement" memberEnd="_VcBR1BE9EeGOffqMW1YiZA _VcGxYxE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT9iABE9EeGOffqMW1YiZA" name="A_opposite_property" isDerived="true" memberEnd="_VdHeChE9EeGOffqMW1YiZA _VT9iARE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VT9iARE9EeGOffqMW1YiZA" name="property" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" association="_VT9iABE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VT9iAhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gynXbNwbEeCT5O2F6sGn5g" name="A_outgoing_source_node" memberEnd="_gzbPz9wbEeCT5O2F6sGn5g _gzZapNwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_JPYJoPnmEdunWsS3se92JQ" name="A_outgoing_source_vertex" memberEnd="_g2ZrQdwbEeCT5O2F6sGn5g _JPYJofnmEdunWsS3se92JQ _JPh6oPnmEdunWsS3se92JQ">
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT9iAxE9EeGOffqMW1YiZA" name="A_outgoing_source_node" memberEnd="_VVhBNBE9EeGOffqMW1YiZA _VVcI1BE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_JPYJoPnmEdunWsS3se92JQ" name="A_outgoing_source_vertex" memberEnd="_VfI3SBE9EeGOffqMW1YiZA _JPYJofnmEdunWsS3se92JQ _JPh6oPnmEdunWsS3se92JQ">
       <ownedEnd xmi:id="_JPh6oPnmEdunWsS3se92JQ" name="outgoing" visibility="private" type="_ykKV8PnlEdunWsS3se92JQ" association="_JPYJoPnmEdunWsS3se92JQ">
         <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JPh6ofnmEdunWsS3se92JQ"/>
         <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JPh6ovnmEdunWsS3se92JQ" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gynXbdwbEeCT5O2F6sGn5g" name="A_outputElement_regionAsOutput" memberEnd="_g0PvKNwbEeCT5O2F6sGn5g _g0PvGdwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyn-cNwbEeCT5O2F6sGn5g" name="A_outputValue_opaqueAction" memberEnd="_g1YXh9wbEeCT5O2F6sGn5g _gyn-cdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyn-cdwbEeCT5O2F6sGn5g" name="opaqueAction" visibility="public" type="__pbPMLG4EeCDe8CO90iVKQ" subsettedProperty="_gyn-dNwbEeCT5O2F6sGn5g" association="_gyn-cNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyn-ctwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT9iBBE9EeGOffqMW1YiZA" name="A_outputElement_regionAsOutput" memberEnd="_VZRf3BE9EeGOffqMW1YiZA _VZQ4yRE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT-JEBE9EeGOffqMW1YiZA" name="A_outputValue_opaqueAction" memberEnd="_VbfGUBE9EeGOffqMW1YiZA _VT-JERE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VT-JERE9EeGOffqMW1YiZA" name="opaqueAction" visibility="public" type="__pbPMLG4EeCDe8CO90iVKQ" subsettedProperty="_VT-JFBE9EeGOffqMW1YiZA" association="_VT-JEBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VT-JEhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyn-c9wbEeCT5O2F6sGn5g" name="A_output_action" isDerived="true" memberEnd="_gzCOK9wbEeCT5O2F6sGn5g _gyn-dNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyn-dNwbEeCT5O2F6sGn5g" name="action" visibility="public" type="_6WKakLLQEeCsYvaJqFFivQ" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gyn-c9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyn-ddwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT-JExE9EeGOffqMW1YiZA" name="A_output_action" isDerived="true" memberEnd="_VU4vEBE9EeGOffqMW1YiZA _VT-JFBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VT-JFBE9EeGOffqMW1YiZA" name="action" visibility="public" type="_6WKakLLQEeCsYvaJqFFivQ" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VT-JExE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VT-JFRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyn-dtwbEeCT5O2F6sGn5g" name="A_ownedActual_templateParameterSubstitution" memberEnd="_g2Nd-twbEeCT5O2F6sGn5g _gyn-eNwbEeCT5O2F6sGn5g">
-      <generalization xmi:id="_gyn-d9wbEeCT5O2F6sGn5g" general="_gySANtwbEeCT5O2F6sGn5g"/>
-      <ownedEnd xmi:id="_gyn-eNwbEeCT5O2F6sGn5g" name="templateParameterSubstitution" visibility="public" type="_g2Nd8NwbEeCT5O2F6sGn5g" redefinedProperty="_gySAN9wbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gyn-dtwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyn-edwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT-JFhE9EeGOffqMW1YiZA" name="A_ownedActual_templateParameterSubstitution" memberEnd="_VesLWhE9EeGOffqMW1YiZA _VT-JGBE9EeGOffqMW1YiZA">
+      <generalization xmi:id="_VT-JFxE9EeGOffqMW1YiZA" general="_VS81YBE9EeGOffqMW1YiZA"/>
+      <ownedEnd xmi:id="_VT-JGBE9EeGOffqMW1YiZA" name="templateParameterSubstitution" visibility="public" type="_VesLUBE9EeGOffqMW1YiZA" redefinedProperty="_VS81YRE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VT-JFhE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VT-JGRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyn-etwbEeCT5O2F6sGn5g" name="A_ownedAttribute_artifact" memberEnd="_gze6GNwbEeCT5O2F6sGn5g _gyn-e9wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyn-e9wbEeCT5O2F6sGn5g" name="artifact" visibility="public" type="_-lGRgHLzEdqziYxiZo0YtA" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA _gySnUNwbEeCT5O2F6sGn5g" association="_gyn-etwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyn-fNwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT-wIBE9EeGOffqMW1YiZA" name="A_ownedAttribute_artifact" memberEnd="_VVqLJBE9EeGOffqMW1YiZA _VT-wIRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VT-wIRE9EeGOffqMW1YiZA" name="artifact" visibility="public" type="_-lGRgHLzEdqziYxiZo0YtA" subsettedProperty="_VS-qlBE9EeGOffqMW1YiZA _1vzv0LbIEeCRxrN1JUGuxA" association="_VT-wIBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VT-wIhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyn-fdwbEeCT5O2F6sGn5g" name="A_ownedAttribute_class" memberEnd="_gzp5MNwbEeCT5O2F6sGn5g _Ef_yMLa_EeCRxrN1JUGuxA"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyn-ftwbEeCT5O2F6sGn5g" name="A_ownedAttribute_datatype" memberEnd="_g0CTyNwbEeCT5O2F6sGn5g _06bWELa_EeCRxrN1JUGuxA"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyn-f9wbEeCT5O2F6sGn5g" name="A_ownedAttribute_interface" memberEnd="_g0eYmdwbEeCT5O2F6sGn5g _68HLsLa_EeCRxrN1JUGuxA"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyolgNwbEeCT5O2F6sGn5g" name="A_ownedAttribute_owningSignal" memberEnd="_g1_bidwbEeCT5O2F6sGn5g _gyolgdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyolgdwbEeCT5O2F6sGn5g" name="owningSignal" visibility="public" type="_Pu3O0HL0EdqziYxiZo0YtA" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA _gySnUNwbEeCT5O2F6sGn5g" association="_gyolgNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyolgtwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT-wIxE9EeGOffqMW1YiZA" name="A_ownedAttribute_class" memberEnd="_VWX81BE9EeGOffqMW1YiZA _Ef_yMLa_EeCRxrN1JUGuxA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT-wJBE9EeGOffqMW1YiZA" name="A_ownedAttribute_datatype" memberEnd="_VYuGMRE9EeGOffqMW1YiZA _06bWELa_EeCRxrN1JUGuxA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT-wJRE9EeGOffqMW1YiZA" name="A_ownedAttribute_interface" memberEnd="_VZwoABE9EeGOffqMW1YiZA _68HLsLa_EeCRxrN1JUGuxA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT_XMBE9EeGOffqMW1YiZA" name="A_ownedAttribute_owningSignal" memberEnd="_VeL1ABE9EeGOffqMW1YiZA _VT_XMRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VT_XMRE9EeGOffqMW1YiZA" name="owningSignal" visibility="public" type="_Pu3O0HL0EdqziYxiZo0YtA" subsettedProperty="_VS-qlBE9EeGOffqMW1YiZA _1vzv0LbIEeCRxrN1JUGuxA" association="_VT_XMBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VT_XMhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyolg9wbEeCT5O2F6sGn5g" name="A_ownedAttribute_structuredClassifier" memberEnd="_g2JMhdwbEeCT5O2F6sGn5g _gyolhdwbEeCT5O2F6sGn5g">
-      <generalization xmi:id="_gyolhNwbEeCT5O2F6sGn5g" general="_gy32FtwbEeCT5O2F6sGn5g"/>
-      <ownedEnd xmi:id="_gyolhdwbEeCT5O2F6sGn5g" name="structuredClassifier" visibility="public" type="_FQiVsGwYEdqHKKVoxc0dlA" redefinedProperty="_gy32F9wbEeCT5O2F6sGn5g" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA _gySnUNwbEeCT5O2F6sGn5g" association="_gyolg9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyolhtwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT_XMxE9EeGOffqMW1YiZA" name="A_ownedAttribute_structuredClassifier" memberEnd="_VejocRE9EeGOffqMW1YiZA _VT_XNRE9EeGOffqMW1YiZA">
+      <generalization xmi:id="_VT_XNBE9EeGOffqMW1YiZA" general="_VUhisxE9EeGOffqMW1YiZA"/>
+      <ownedEnd xmi:id="_VT_XNRE9EeGOffqMW1YiZA" name="structuredClassifier" visibility="public" type="_FQiVsGwYEdqHKKVoxc0dlA" redefinedProperty="_VUhitBE9EeGOffqMW1YiZA" subsettedProperty="_VS-qlBE9EeGOffqMW1YiZA _1vzv0LbIEeCRxrN1JUGuxA" association="_VT_XMxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VT_XNhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyolh9wbEeCT5O2F6sGn5g" name="A_ownedBehavior_behavioredClassifier" memberEnd="_gzlAvdwbEeCT5O2F6sGn5g _gyoliNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyoliNwbEeCT5O2F6sGn5g" name="behavioredClassifier" visibility="public" type="_iY7sMGvsEdqG6fBIPwe-mw" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_gyolh9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyolidwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT_XNxE9EeGOffqMW1YiZA" name="A_ownedBehavior_behavioredClassifier" memberEnd="_VWMWpBE9EeGOffqMW1YiZA _VT_XOBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VT_XOBE9EeGOffqMW1YiZA" name="behavioredClassifier" visibility="public" type="_iY7sMGvsEdqG6fBIPwe-mw" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_VT_XNxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VT_XORE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyolitwbEeCT5O2F6sGn5g" name="A_ownedComment_owningElement" memberEnd="_g0JBdNwbEeCT5O2F6sGn5g _gyoli9wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyoli9wbEeCT5O2F6sGn5g" name="owningElement" visibility="public" type="_kl90MGvbEdq4DLWZOhbdEA" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gyolitwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyoljNwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT_-QBE9EeGOffqMW1YiZA" name="A_ownedComment_owningElement" memberEnd="_VZGgsxE9EeGOffqMW1YiZA _VT_-QRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VT_-QRE9EeGOffqMW1YiZA" name="owningElement" visibility="public" type="_kl90MGvbEdq4DLWZOhbdEA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VT_-QBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VT_-QhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyoljdwbEeCT5O2F6sGn5g" name="A_ownedConnector_structuredClassifier" memberEnd="_g2JMidwbEeCT5O2F6sGn5g _gyoljtwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyoljtwbEeCT5O2F6sGn5g" name="structuredClassifier" visibility="public" type="_FQiVsGwYEdqHKKVoxc0dlA" subsettedProperty="_YUdlwLbAEeCRxrN1JUGuxA _1vzv0LbIEeCRxrN1JUGuxA _zYrE4La-EeCRxrN1JUGuxA" association="_gyoljdwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyolj9wbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VT_-QxE9EeGOffqMW1YiZA" name="A_ownedConnector_structuredClassifier" memberEnd="_VejodRE9EeGOffqMW1YiZA _VT_-RBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VT_-RBE9EeGOffqMW1YiZA" name="structuredClassifier" visibility="public" type="_FQiVsGwYEdqHKKVoxc0dlA" subsettedProperty="_YUdlwLbAEeCRxrN1JUGuxA _zYrE4La-EeCRxrN1JUGuxA _1vzv0LbIEeCRxrN1JUGuxA" association="_VT_-QxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VT_-RRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gypMkNwbEeCT5O2F6sGn5g" name="A_ownedDefault_templateParameter" memberEnd="_g2M24NwbEeCT5O2F6sGn5g _gypMktwbEeCT5O2F6sGn5g">
-      <generalization xmi:id="_gypMkdwbEeCT5O2F6sGn5g" general="_gyYG2twbEeCT5O2F6sGn5g"/>
-      <ownedEnd xmi:id="_gypMktwbEeCT5O2F6sGn5g" name="templateParameter" visibility="public" type="_KxRzgGvuEdqG6fBIPwe-mw" redefinedProperty="_gyYG29wbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gypMkNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gypMk9wbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUAlUBE9EeGOffqMW1YiZA" name="A_ownedDefault_templateParameter" memberEnd="_VeqWJxE9EeGOffqMW1YiZA _VUAlUhE9EeGOffqMW1YiZA">
+      <generalization xmi:id="_VUAlURE9EeGOffqMW1YiZA" general="_VTNUExE9EeGOffqMW1YiZA"/>
+      <ownedEnd xmi:id="_VUAlUhE9EeGOffqMW1YiZA" name="templateParameter" visibility="public" type="_KxRzgGvuEdqG6fBIPwe-mw" redefinedProperty="_VTNUFBE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VUAlUBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUAlUxE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gypMlNwbEeCT5O2F6sGn5g" name="A_ownedElement_owner" isDerived="true" memberEnd="_g0JocNwbEeCT5O2F6sGn5g _g0JodNwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gypMldwbEeCT5O2F6sGn5g" name="A_ownedEnd_extension" memberEnd="_g0RkTNwbEeCT5O2F6sGn5g _gypMltwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gypMltwbEeCT5O2F6sGn5g" name="extension" visibility="public" type="_skHGwGvsEdqG6fBIPwe-mw" subsettedProperty="_g1tuxdwbEeCT5O2F6sGn5g" association="_gypMldwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_bU41QAtAEeGcpbeCPJfCmw" name="A_ownedElement_owner" isDerived="true" memberEnd="_GDD2YAtAEeGcpbeCPJfCmw _N3hRMAtAEeGcpbeCPJfCmw"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUAlVBE9EeGOffqMW1YiZA" name="A_ownedEnd_extension" memberEnd="_VZT8GRE9EeGOffqMW1YiZA _VUAlVRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUAlVRE9EeGOffqMW1YiZA" name="extension" visibility="public" type="_skHGwGvsEdqG6fBIPwe-mw" subsettedProperty="_VdHeDRE9EeGOffqMW1YiZA" association="_VUAlVBE9EeGOffqMW1YiZA"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gypMl9wbEeCT5O2F6sGn5g" name="A_ownedEnd_owningAssociation" memberEnd="_gzgIQNwbEeCT5O2F6sGn5g _g1tuxdwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gypMmNwbEeCT5O2F6sGn5g" name="A_ownedLiteral_enumeration" memberEnd="_g0MrxtwbEeCT5O2F6sGn5g _g0NS1twbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gypMmdwbEeCT5O2F6sGn5g" name="A_ownedMember_namespace" isDerived="true" memberEnd="_g1S4AdwbEeCT5O2F6sGn5g _1vzv0LbIEeCRxrN1JUGuxA"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gypMmtwbEeCT5O2F6sGn5g" name="A_ownedOperation_artifact" memberEnd="_gze6HNwbEeCT5O2F6sGn5g _gypMm9wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gypMm9wbEeCT5O2F6sGn5g" name="artifact" visibility="public" type="_-lGRgHLzEdqziYxiZo0YtA" subsettedProperty="_YUdlwLbAEeCRxrN1JUGuxA _1vzv0LbIEeCRxrN1JUGuxA _zYrE4La-EeCRxrN1JUGuxA" association="_gypMmtwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gypMnNwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUAlVhE9EeGOffqMW1YiZA" name="A_ownedEnd_owningAssociation" memberEnd="_VV40oBE9EeGOffqMW1YiZA _VdHeDRE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUBMYBE9EeGOffqMW1YiZA" name="A_ownedLiteral_enumeration" memberEnd="_VZMnUhE9EeGOffqMW1YiZA _VZNOZhE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUBMYRE9EeGOffqMW1YiZA" name="A_ownedMember_namespace" isDerived="true" memberEnd="_Var1EBE9EeGOffqMW1YiZA _1vzv0LbIEeCRxrN1JUGuxA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUBMYhE9EeGOffqMW1YiZA" name="A_ownedOperation_artifact" memberEnd="_VVqLKBE9EeGOffqMW1YiZA _VUBMYxE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUBMYxE9EeGOffqMW1YiZA" name="artifact" visibility="public" type="_-lGRgHLzEdqziYxiZo0YtA" subsettedProperty="_YUdlwLbAEeCRxrN1JUGuxA _zYrE4La-EeCRxrN1JUGuxA _1vzv0LbIEeCRxrN1JUGuxA" association="_VUBMYhE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUBMZBE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gypzoNwbEeCT5O2F6sGn5g" name="A_ownedOperation_class" memberEnd="_gzp5NNwbEeCT5O2F6sGn5g _g1co89wbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gypzodwbEeCT5O2F6sGn5g" name="A_ownedOperation_datatype" memberEnd="_g0C6wNwbEeCT5O2F6sGn5g _g1co9twbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gypzotwbEeCT5O2F6sGn5g" name="A_ownedOperation_interface" memberEnd="_g0eYndwbEeCT5O2F6sGn5g _g1co-dwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gypzo9wbEeCT5O2F6sGn5g" name="A_ownedParameterSet_behavior" memberEnd="_gzikcNwbEeCT5O2F6sGn5g _gypzpNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gypzpNwbEeCT5O2F6sGn5g" name="behavior" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_gypzo9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gypzpdwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUBzcBE9EeGOffqMW1YiZA" name="A_ownedOperation_class" memberEnd="_VWZK8BE9EeGOffqMW1YiZA _Vb-1nBE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUBzcRE9EeGOffqMW1YiZA" name="A_ownedOperation_datatype" memberEnd="_VYutQBE9EeGOffqMW1YiZA _Vb_coBE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUBzchE9EeGOffqMW1YiZA" name="A_ownedOperation_interface" memberEnd="_VZwoBBE9EeGOffqMW1YiZA _Vb_coxE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUBzcxE9EeGOffqMW1YiZA" name="A_ownedParameterSet_behavior" memberEnd="_VWDMtBE9EeGOffqMW1YiZA _VUBzdBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUBzdBE9EeGOffqMW1YiZA" name="behavior" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_VUBzcxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUBzdRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gypzptwbEeCT5O2F6sGn5g" name="A_ownedParameterSet_behavioralFeature" memberEnd="_gzkZpNwbEeCT5O2F6sGn5g _gypzp9wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gypzp9wbEeCT5O2F6sGn5g" name="behavioralFeature" visibility="public" type="_rHT3YKOsEdqi_5gqUMOQtA" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_gypzptwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gypzqNwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUCagBE9EeGOffqMW1YiZA" name="A_ownedParameterSet_behavioralFeature" memberEnd="_VWJ6ZBE9EeGOffqMW1YiZA _VUCagRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUCagRE9EeGOffqMW1YiZA" name="behavioralFeature" visibility="public" type="_rHT3YKOsEdqi_5gqUMOQtA" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_VUCagBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUCaghE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gypzqdwbEeCT5O2F6sGn5g" name="A_ownedParameter_behavior" memberEnd="_gzh9adwbEeCT5O2F6sGn5g _gypzqtwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gypzqtwbEeCT5O2F6sGn5g" name="behavior" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_gypzqdwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gypzq9wbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUCagxE9EeGOffqMW1YiZA" name="A_ownedParameter_behavior" memberEnd="_VWDMsBE9EeGOffqMW1YiZA _VUCahBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUCahBE9EeGOffqMW1YiZA" name="behavior" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_VUCagxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUCahRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gypzrNwbEeCT5O2F6sGn5g" name="A_ownedParameter_operation" memberEnd="_g1dQANwbEeCT5O2F6sGn5g _lHJ7gLbIEeCRxrN1JUGuxA"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyqasNwbEeCT5O2F6sGn5g" name="A_ownedParameter_ownerFormalParam" memberEnd="_gzkZoNwbEeCT5O2F6sGn5g _gyqasdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyqasdwbEeCT5O2F6sGn5g" name="ownerFormalParam" visibility="public" type="_rHT3YKOsEdqi_5gqUMOQtA" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_gyqasNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyqastwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUCahhE9EeGOffqMW1YiZA" name="A_ownedParameter_operation" memberEnd="_VcADuRE9EeGOffqMW1YiZA _lHJ7gLbIEeCRxrN1JUGuxA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUDBkBE9EeGOffqMW1YiZA" name="A_ownedParameter_ownerFormalParam" memberEnd="_VWJ6YBE9EeGOffqMW1YiZA _VUDBkRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUDBkRE9EeGOffqMW1YiZA" name="ownerFormalParam" visibility="public" type="_rHT3YKOsEdqi_5gqUMOQtA" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_VUDBkBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUDBkhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyqas9wbEeCT5O2F6sGn5g" name="A_ownedParameter_signature" memberEnd="_g2OsFtwbEeCT5O2F6sGn5g _g2M26NwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyqatNwbEeCT5O2F6sGn5g" name="A_ownedParameteredElement_owningTemplateParameter" memberEnd="_g2M249wbEeCT5O2F6sGn5g _g1noE9wbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyqatdwbEeCT5O2F6sGn5g" name="A_ownedPort_encapsulatedClassifier" isDerived="true" memberEnd="_g0MEstwbEeCT5O2F6sGn5g _gyqattwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyqattwbEeCT5O2F6sGn5g" name="encapsulatedClassifier" visibility="public" type="_HiSd0LL2EeCBifIhhuFqZA" subsettedProperty="_gyolhdwbEeCT5O2F6sGn5g" association="_gyqatdwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyqat9wbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUDBkxE9EeGOffqMW1YiZA" name="A_ownedParameter_signature" memberEnd="_VesyZhE9EeGOffqMW1YiZA _Veq9NRE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUDBlBE9EeGOffqMW1YiZA" name="A_ownedParameteredElement_owningTemplateParameter" memberEnd="_Veq9MBE9EeGOffqMW1YiZA _Vc730xE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUDBlRE9EeGOffqMW1YiZA" name="A_ownedPort_encapsulatedClassifier" isDerived="true" memberEnd="_VZLZMhE9EeGOffqMW1YiZA _VUDBlhE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUDBlhE9EeGOffqMW1YiZA" name="encapsulatedClassifier" visibility="public" type="_HiSd0LL2EeCBifIhhuFqZA" subsettedProperty="_VT_XNRE9EeGOffqMW1YiZA" association="_VUDBlRE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUDBlxE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyqauNwbEeCT5O2F6sGn5g" name="A_ownedReception_class" memberEnd="_gzp5ONwbEeCT5O2F6sGn5g _gyqaudwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyqaudwbEeCT5O2F6sGn5g" name="class" visibility="public" type="_00owUGvdEdq4DLWZOhbdEA" subsettedProperty="_YUdlwLbAEeCRxrN1JUGuxA _1vzv0LbIEeCRxrN1JUGuxA" association="_gyqauNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyqautwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUDooBE9EeGOffqMW1YiZA" name="A_ownedReception_class" memberEnd="_VWZyABE9EeGOffqMW1YiZA _VUDooRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUDooRE9EeGOffqMW1YiZA" name="class" visibility="public" type="_00owUGvdEdq4DLWZOhbdEA" subsettedProperty="_YUdlwLbAEeCRxrN1JUGuxA _1vzv0LbIEeCRxrN1JUGuxA" association="_VUDooBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUDoohE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyqau9wbEeCT5O2F6sGn5g" name="A_ownedReception_interface" memberEnd="_g0eYodwbEeCT5O2F6sGn5g _gyqavNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyqavNwbEeCT5O2F6sGn5g" name="interface" visibility="public" type="_8Ugn8GvtEdqG6fBIPwe-mw" subsettedProperty="_YUdlwLbAEeCRxrN1JUGuxA _1vzv0LbIEeCRxrN1JUGuxA" association="_gyqau9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyqavdwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUDooxE9EeGOffqMW1YiZA" name="A_ownedReception_interface" memberEnd="_VZwoCBE9EeGOffqMW1YiZA _VUDopBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUDopBE9EeGOffqMW1YiZA" name="interface" visibility="public" type="_8Ugn8GvtEdqG6fBIPwe-mw" subsettedProperty="_YUdlwLbAEeCRxrN1JUGuxA _1vzv0LbIEeCRxrN1JUGuxA" association="_VUDooxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUDopRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyqavtwbEeCT5O2F6sGn5g" name="A_ownedRule_context" memberEnd="_g1TfANwbEeCT5O2F6sGn5g _g0Aek9wbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyrBwNwbEeCT5O2F6sGn5g" name="A_ownedStereotype_owningPackage" isDerived="true" memberEnd="_g1gTXNwbEeCT5O2F6sGn5g _gyrBwtwbEeCT5O2F6sGn5g">
-      <generalization xmi:id="_gyrBwdwbEeCT5O2F6sGn5g" general="_gyro0NwbEeCT5O2F6sGn5g"/>
-      <ownedEnd xmi:id="_gyrBwtwbEeCT5O2F6sGn5g" name="owningPackage" visibility="public" type="_-cvRAGvzEdq7X4sGURiZYA" redefinedProperty="_gyro0dwbEeCT5O2F6sGn5g" association="_gyrBwNwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUDophE9EeGOffqMW1YiZA" name="A_ownedRule_context" memberEnd="_Var1FBE9EeGOffqMW1YiZA _VYbLUxE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUEPsBE9EeGOffqMW1YiZA" name="A_ownedStereotype_owningPackage" isDerived="true" memberEnd="_VcLC0BE9EeGOffqMW1YiZA _VUEPshE9EeGOffqMW1YiZA">
+      <generalization xmi:id="_VUEPsRE9EeGOffqMW1YiZA" general="_VUHTABE9EeGOffqMW1YiZA"/>
+      <ownedEnd xmi:id="_VUEPshE9EeGOffqMW1YiZA" name="owningPackage" visibility="public" type="_-cvRAGvzEdq7X4sGURiZYA" redefinedProperty="_VUHTARE9EeGOffqMW1YiZA" association="_VUEPsBE9EeGOffqMW1YiZA"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyrBw9wbEeCT5O2F6sGn5g" name="A_ownedTemplateSignature_classifier" memberEnd="_gzuxxtwbEeCT5O2F6sGn5g _g16jAdwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyrBxNwbEeCT5O2F6sGn5g" name="A_ownedTemplateSignature_template" memberEnd="_g2PTI9wbEeCT5O2F6sGn5g _g2OsHdwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyrBxdwbEeCT5O2F6sGn5g" name="A_ownedType_package" memberEnd="_g1gTYNwbEeCT5O2F6sGn5g _uvHaoLbQEeCRxrN1JUGuxA"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyrBxtwbEeCT5O2F6sGn5g" name="A_ownedUseCase_classifier" memberEnd="_gzvYwNwbEeCT5O2F6sGn5g _gyrBx9wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyrBx9wbEeCT5O2F6sGn5g" name="classifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_gyrBxtwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyrByNwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUEPsxE9EeGOffqMW1YiZA" name="A_ownedTemplateSignature_classifier" memberEnd="_VXtZlhE9EeGOffqMW1YiZA _Vd2d0RE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUEPtBE9EeGOffqMW1YiZA" name="A_ownedTemplateSignature_template" memberEnd="_VeuAgxE9EeGOffqMW1YiZA _VesybRE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUEPtRE9EeGOffqMW1YiZA" name="A_ownedType_package" memberEnd="_VcLC1BE9EeGOffqMW1YiZA _uvHaoLbQEeCRxrN1JUGuxA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUEPthE9EeGOffqMW1YiZA" name="A_ownedUseCase_classifier" memberEnd="_VXtZmRE9EeGOffqMW1YiZA _VUEPtxE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUEPtxE9EeGOffqMW1YiZA" name="classifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_VUEPthE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUEPuBE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyrBydwbEeCT5O2F6sGn5g" name="A_packageImport_importingNamespace" memberEnd="_g1TfBNwbEeCT5O2F6sGn5g _g1jWp9wbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyrBytwbEeCT5O2F6sGn5g" name="A_packageMerge_receivingPackage" memberEnd="_g1g6YNwbEeCT5O2F6sGn5g _g1j9tdwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyrBy9wbEeCT5O2F6sGn5g" name="A_packagedElement_component" memberEnd="_gz4iu9wbEeCT5O2F6sGn5g _gyrBzNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyrBzNwbEeCT5O2F6sGn5g" name="component" visibility="public" type="_DAbfwa69EdqjppZik4kD8A" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_gyrBy9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyrBzdwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUFd0BE9EeGOffqMW1YiZA" name="A_packageImport_importingNamespace" memberEnd="_Var1GBE9EeGOffqMW1YiZA _VcZsUhE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUGE4BE9EeGOffqMW1YiZA" name="A_packageMerge_receivingPackage" memberEnd="_VcP7UBE9EeGOffqMW1YiZA _VcsANRE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUGr8BE9EeGOffqMW1YiZA" name="A_packagedElement_component" memberEnd="_VYAUgxE9EeGOffqMW1YiZA _VUGr8RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUGr8RE9EeGOffqMW1YiZA" name="component" visibility="public" type="_DAbfwa69EdqjppZik4kD8A" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_VUGr8BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUGr8hE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyro0NwbEeCT5O2F6sGn5g" name="A_packagedElement_owningPackage" memberEnd="_g1g6ZNwbEeCT5O2F6sGn5g _gyro0dwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyro0dwbEeCT5O2F6sGn5g" name="owningPackage" visibility="public" type="_-cvRAGvzEdq7X4sGURiZYA" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_gyro0NwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyro0twbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUHTABE9EeGOffqMW1YiZA" name="A_packagedElement_owningPackage" memberEnd="_VcP7VBE9EeGOffqMW1YiZA _VUHTARE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUHTARE9EeGOffqMW1YiZA" name="owningPackage" visibility="public" type="_-cvRAGvzEdq7X4sGURiZYA" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_VUHTABE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUHTAhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyro09wbEeCT5O2F6sGn5g" name="A_parameterSet_parameter" memberEnd="_g1ly4NwbEeCT5O2F6sGn5g _g1nBD9wbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyro1NwbEeCT5O2F6sGn5g" name="A_parameterSubstitution_templateBinding" memberEnd="_g2LBu9wbEeCT5O2F6sGn5g _g2OFAdwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyro1dwbEeCT5O2F6sGn5g" name="A_parameter_activityParameterNode" memberEnd="_gzb22NwbEeCT5O2F6sGn5g _gyro1twbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyro1twbEeCT5O2F6sGn5g" name="activityParameterNode" visibility="public" type="_gzb2wNwbEeCT5O2F6sGn5g" association="_gyro1dwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyro19wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyro2NwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUHTAxE9EeGOffqMW1YiZA" name="A_parameterSet_parameter" memberEnd="_Vcz8BRE9EeGOffqMW1YiZA _Vc7Q0BE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUHTBBE9EeGOffqMW1YiZA" name="A_parameterSubstitution_templateBinding" memberEnd="_VemryxE9EeGOffqMW1YiZA _VesLXRE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUHTBRE9EeGOffqMW1YiZA" name="A_parameter_activityParameterNode" memberEnd="_VViPaBE9EeGOffqMW1YiZA _VUHTBhE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUHTBhE9EeGOffqMW1YiZA" name="activityParameterNode" visibility="public" type="_VViPUBE9EeGOffqMW1YiZA" association="_VUHTBRE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUHTBxE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUHTCBE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyro2dwbEeCT5O2F6sGn5g" name="A_parameter_templateSignature" memberEnd="_g2OsGtwbEeCT5O2F6sGn5g _gyro2twbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyro2twbEeCT5O2F6sGn5g" name="templateSignature" visibility="public" type="_g2OsENwbEeCT5O2F6sGn5g" association="_gyro2dwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyro29wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyro3NwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUH6EBE9EeGOffqMW1YiZA" name="A_parameter_templateSignature" memberEnd="_VesyahE9EeGOffqMW1YiZA _VUH6ERE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUH6ERE9EeGOffqMW1YiZA" name="templateSignature" visibility="public" type="_VesyYBE9EeGOffqMW1YiZA" association="_VUH6EBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUH6EhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUH6ExE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyro3dwbEeCT5O2F6sGn5g" name="A_parameteredElement_templateParameter" memberEnd="_g2M25twbEeCT5O2F6sGn5g _g1noFtwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gysP4NwbEeCT5O2F6sGn5g" name="A_partWithPort_connectorEnd" memberEnd="_gz_QYNwbEeCT5O2F6sGn5g _gysP4dwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gysP4dwbEeCT5O2F6sGn5g" name="connectorEnd" visibility="public" type="_aOgw0GveEdq4DLWZOhbdEA" association="_gysP4NwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gysP4twbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gysP49wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUH6FBE9EeGOffqMW1YiZA" name="A_parameteredElement_templateParameter" memberEnd="_Veq9MxE9EeGOffqMW1YiZA _Vc731hE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUH6FRE9EeGOffqMW1YiZA" name="A_partWithPort_connectorEnd" memberEnd="_VYSoYBE9EeGOffqMW1YiZA _VUH6FhE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUH6FhE9EeGOffqMW1YiZA" name="connectorEnd" visibility="public" type="_aOgw0GveEdq4DLWZOhbdEA" association="_VUH6FRE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUH6FxE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUH6GBE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gysP5NwbEeCT5O2F6sGn5g" name="A_part_structuredClassifier" isDerived="true" memberEnd="_g2JMjdwbEeCT5O2F6sGn5g _gysP5dwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gysP5dwbEeCT5O2F6sGn5g" name="structuredClassifier" visibility="public" type="_FQiVsGwYEdqHKKVoxc0dlA" association="_gysP5NwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gysP5twbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUIhIBE9EeGOffqMW1YiZA" name="A_part_structuredClassifier" isDerived="true" memberEnd="_VejoeRE9EeGOffqMW1YiZA _VUIhIRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUIhIRE9EeGOffqMW1YiZA" name="structuredClassifier" visibility="public" type="_FQiVsGwYEdqHKKVoxc0dlA" association="_VUIhIBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUIhIhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gysP59wbEeCT5O2F6sGn5g" name="A_partition_activity" memberEnd="_gzXlVNwbEeCT5O2F6sGn5g _gysP6NwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gysP6NwbEeCT5O2F6sGn5g" name="activity" visibility="public" type="_eGtFwLLREeCsYvaJqFFivQ" subsettedProperty="_gzaBpNwbEeCT5O2F6sGn5g" association="_gysP59wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gysP6dwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_3Ik3QAtDEeGcpbeCPJfCmw" name="A_partition_activity" memberEnd="_-_c7oAs9EeGcpbeCPJfCmw __DOZoAtDEeGcpbeCPJfCmw">
+      <ownedEnd xmi:id="__DOZoAtDEeGcpbeCPJfCmw" name="activity" visibility="public" type="_eGtFwLLREeCsYvaJqFFivQ" subsettedProperty="_5V2SAAtBEeGcpbeCPJfCmw" association="_3Ik3QAtDEeGcpbeCPJfCmw">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUIhIxE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gysP6twbEeCT5O2F6sGn5g" name="A_port_trigger" memberEnd="_g2Tkm9wbEeCT5O2F6sGn5g _gysP69wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gysP69wbEeCT5O2F6sGn5g" name="trigger" visibility="public" type="_g2TkldwbEeCT5O2F6sGn5g" association="_gysP6twbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gysP7NwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gysP7dwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUJIMBE9EeGOffqMW1YiZA" name="A_port_trigger" memberEnd="_VfCJlhE9EeGOffqMW1YiZA _VUJIMRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUJIMRE9EeGOffqMW1YiZA" name="trigger" visibility="public" type="_VfCJkBE9EeGOffqMW1YiZA" association="_VUJIMBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUJIMhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUJIMxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gysP7twbEeCT5O2F6sGn5g" name="A_postCondition_owningTransition" memberEnd="_g1xZMdwbEeCT5O2F6sGn5g _gysP79wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gysP79wbEeCT5O2F6sGn5g" name="owningTransition" visibility="public" type="_Dtp8ULL7EeCBifIhhuFqZA" subsettedProperty="_g0Aek9wbEeCT5O2F6sGn5g" association="_gysP7twbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gysP8NwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUJINBE9EeGOffqMW1YiZA" name="A_postCondition_owningTransition" memberEnd="_VdX8uhE9EeGOffqMW1YiZA _VUJINRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUJINRE9EeGOffqMW1YiZA" name="owningTransition" visibility="public" type="_Dtp8ULL7EeCBifIhhuFqZA" subsettedProperty="_VYbLUxE9EeGOffqMW1YiZA" association="_VUJINBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUJINhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gys28NwbEeCT5O2F6sGn5g" name="A_postcondition_behavior" memberEnd="_gzikdNwbEeCT5O2F6sGn5g _gys28dwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gys28dwbEeCT5O2F6sGn5g" name="behavior" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" subsettedProperty="_g0Aek9wbEeCT5O2F6sGn5g" association="_gys28NwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gys28twbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUJvQBE9EeGOffqMW1YiZA" name="A_postcondition_behavior" memberEnd="_VWDMuBE9EeGOffqMW1YiZA _VUJvQRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUJvQRE9EeGOffqMW1YiZA" name="behavior" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" subsettedProperty="_VYbLUxE9EeGOffqMW1YiZA" association="_VUJvQBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUJvQhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gys289wbEeCT5O2F6sGn5g" name="A_postcondition_postContext" memberEnd="_g1dQBdwbEeCT5O2F6sGn5g _gys29NwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gys29NwbEeCT5O2F6sGn5g" name="postContext" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" subsettedProperty="_g0Aek9wbEeCT5O2F6sGn5g" association="_gys289wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gys29dwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUJvQxE9EeGOffqMW1YiZA" name="A_postcondition_postContext" memberEnd="_VcADvhE9EeGOffqMW1YiZA _VUJvRBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUJvRBE9EeGOffqMW1YiZA" name="postContext" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" subsettedProperty="_VYbLUxE9EeGOffqMW1YiZA" association="_VUJvQxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUJvRRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gys29twbEeCT5O2F6sGn5g" name="A_powertypeExtent_powertype" memberEnd="_gzvYxNwbEeCT5O2F6sGn5g _g0XD49wbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gys299wbEeCT5O2F6sGn5g" name="A_preCondition_protocolTransition" memberEnd="_g1xZNNwbEeCT5O2F6sGn5g _gys2-dwbEeCT5O2F6sGn5g">
-      <generalization xmi:id="_gys2-NwbEeCT5O2F6sGn5g" general="_gye0gNwbEeCT5O2F6sGn5g"/>
-      <ownedEnd xmi:id="_gys2-dwbEeCT5O2F6sGn5g" name="protocolTransition" visibility="public" type="_Dtp8ULL7EeCBifIhhuFqZA" redefinedProperty="_gye0gdwbEeCT5O2F6sGn5g" association="_gys299wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gys2-twbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUJvRhE9EeGOffqMW1YiZA" name="A_powertypeExtent_powertype" memberEnd="_VXtZnRE9EeGOffqMW1YiZA _VZgwcxE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUKWUBE9EeGOffqMW1YiZA" name="A_preCondition_protocolTransition" memberEnd="_VdYjwBE9EeGOffqMW1YiZA _VUKWUhE9EeGOffqMW1YiZA">
+      <generalization xmi:id="_VUKWURE9EeGOffqMW1YiZA" general="_VTlulRE9EeGOffqMW1YiZA"/>
+      <ownedEnd xmi:id="_VUKWUhE9EeGOffqMW1YiZA" name="protocolTransition" visibility="public" type="_Dtp8ULL7EeCBifIhhuFqZA" redefinedProperty="_VTmVoBE9EeGOffqMW1YiZA" association="_VUKWUBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUKWUxE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gys2-9wbEeCT5O2F6sGn5g" name="A_precondition_behavior" memberEnd="_gzikeNwbEeCT5O2F6sGn5g _gys2_NwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gys2_NwbEeCT5O2F6sGn5g" name="behavior" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" subsettedProperty="_g0Aek9wbEeCT5O2F6sGn5g" association="_gys2-9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gys2_dwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUKWVBE9EeGOffqMW1YiZA" name="A_precondition_behavior" memberEnd="_VWDzwBE9EeGOffqMW1YiZA _VUKWVRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUKWVRE9EeGOffqMW1YiZA" name="behavior" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" subsettedProperty="_VYbLUxE9EeGOffqMW1YiZA" association="_VUKWVBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUKWVhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gys2_twbEeCT5O2F6sGn5g" name="A_precondition_preContext" memberEnd="_g1dQCdwbEeCT5O2F6sGn5g _gys2_9wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gys2_9wbEeCT5O2F6sGn5g" name="preContext" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" subsettedProperty="_g0Aek9wbEeCT5O2F6sGn5g" association="_gys2_twbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gys3ANwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUKWVxE9EeGOffqMW1YiZA" name="A_precondition_preContext" memberEnd="_VcAqwBE9EeGOffqMW1YiZA _VUKWWBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUKWWBE9EeGOffqMW1YiZA" name="preContext" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" subsettedProperty="_VYbLUxE9EeGOffqMW1YiZA" association="_VUKWVxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUKWWRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyteANwbEeCT5O2F6sGn5g" name="A_predecessorClause_successorClause" memberEnd="_gz04V9wbEeCT5O2F6sGn5g _gz04W9wbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyteAdwbEeCT5O2F6sGn5g" name="A_profileApplication_applyingPackage" memberEnd="_g1g6aNwbEeCT5O2F6sGn5g _g1rSdNwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyteAtwbEeCT5O2F6sGn5g" name="A_profile_stereotype" isDerived="true" memberEnd="_g2E7IdwbEeCT5O2F6sGn5g _gyteA9wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyteA9wbEeCT5O2F6sGn5g" name="stereotype" visibility="public" type="_A7vDAGv0Edq7X4sGURiZYA" association="_gyteAtwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyteBNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyteBdwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUKWWhE9EeGOffqMW1YiZA" name="A_predecessorClause_successorClause" memberEnd="_VX3xthE9EeGOffqMW1YiZA _VX3xuhE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUK9YBE9EeGOffqMW1YiZA" name="A_profileApplication_applyingPackage" memberEnd="_VcQiYBE9EeGOffqMW1YiZA _VdDzohE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUK9YRE9EeGOffqMW1YiZA" name="A_profile_stereotype" isDerived="true" memberEnd="_Vec6wBE9EeGOffqMW1YiZA _VUK9YhE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUK9YhE9EeGOffqMW1YiZA" name="stereotype" visibility="public" type="_A7vDAGv0Edq7X4sGURiZYA" association="_VUK9YRE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUK9YxE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUK9ZBE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyteBtwbEeCT5O2F6sGn5g" name="A_protocol_interface" memberEnd="_g0eYpdwbEeCT5O2F6sGn5g _gyteB9wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyteB9wbEeCT5O2F6sGn5g" name="interface" visibility="public" type="_8Ugn8GvtEdqG6fBIPwe-mw" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_gyteBtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gyteCNwbEeCT5O2F6sGn5g" annotatedElement="_gyteB9wbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUK9ZRE9EeGOffqMW1YiZA" name="A_protocol_interface" memberEnd="_VZwoDBE9EeGOffqMW1YiZA _VUK9ZhE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUK9ZhE9EeGOffqMW1YiZA" name="interface" visibility="public" type="_8Ugn8GvtEdqG6fBIPwe-mw" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_VUK9ZRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VUK9ZxE9EeGOffqMW1YiZA" annotatedElement="_VUK9ZhE9EeGOffqMW1YiZA">
           <body>Specifies the namespace in which the protocol state machine is defined.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyteCdwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUK9aBE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyteCtwbEeCT5O2F6sGn5g" name="A_protocol_port" memberEnd="_g1o2RNwbEeCT5O2F6sGn5g _gyteC9wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyteC9wbEeCT5O2F6sGn5g" name="port" visibility="public" type="_ZAuvEGveEdq4DLWZOhbdEA" association="_gyteCtwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyteDNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyteDdwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VULkcBE9EeGOffqMW1YiZA" name="A_protocol_port" memberEnd="_Vc-UFhE9EeGOffqMW1YiZA _VULkcRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VULkcRE9EeGOffqMW1YiZA" name="port" visibility="public" type="_ZAuvEGveEdq4DLWZOhbdEA" association="_VULkcBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VULkchE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VULkcxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyuFENwbEeCT5O2F6sGn5g" name="A_provided_component" isDerived="true" memberEnd="_gz4iv9wbEeCT5O2F6sGn5g _gyuFEdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyuFEdwbEeCT5O2F6sGn5g" name="component" visibility="public" type="_DAbfwa69EdqjppZik4kD8A" association="_gyuFENwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyuFEtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyuFE9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VULkdBE9EeGOffqMW1YiZA" name="A_provided_component" isDerived="true" memberEnd="_VYAUhxE9EeGOffqMW1YiZA _VULkdRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VULkdRE9EeGOffqMW1YiZA" name="component" visibility="public" type="_DAbfwa69EdqjppZik4kD8A" association="_VULkdBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VULkdhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VULkdxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyuFFNwbEeCT5O2F6sGn5g" name="A_provided_port" isDerived="true" memberEnd="_g1pdQNwbEeCT5O2F6sGn5g _gyuFFdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyuFFdwbEeCT5O2F6sGn5g" name="port" visibility="public" type="_ZAuvEGveEdq4DLWZOhbdEA" association="_gyuFFNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyuFFtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyuFF9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUMLgBE9EeGOffqMW1YiZA" name="A_provided_port" isDerived="true" memberEnd="_Vc-UGRE9EeGOffqMW1YiZA _VUMLgRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUMLgRE9EeGOffqMW1YiZA" name="port" visibility="public" type="_ZAuvEGveEdq4DLWZOhbdEA" association="_VUMLgBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUMLghE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUMLgxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyuFGNwbEeCT5O2F6sGn5g" name="A_qualifier_associationEnd" memberEnd="_g1tuyNwbEeCT5O2F6sGn5g _g1sgn9wbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyuFGdwbEeCT5O2F6sGn5g" name="A_qualifier_linkEndData" memberEnd="_g0jRJNwbEeCT5O2F6sGn5g _gyuFGtwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyuFGtwbEeCT5O2F6sGn5g" name="linkEndData" visibility="public" type="_g0jRENwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gyuFGdwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUMLhBE9EeGOffqMW1YiZA" name="A_qualifier_associationEnd" memberEnd="_VdHeEBE9EeGOffqMW1YiZA _VdFo1xE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUMLhRE9EeGOffqMW1YiZA" name="A_qualifier_linkEndData" memberEnd="_VZ3VxBE9EeGOffqMW1YiZA _VUMLhhE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUMLhhE9EeGOffqMW1YiZA" name="linkEndData" visibility="public" type="_VZ3VsBE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VUMLhRE9EeGOffqMW1YiZA"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyuFG9wbEeCT5O2F6sGn5g" name="A_qualifier_qualifierValue" memberEnd="_g1zOc9wbEeCT5O2F6sGn5g _gyuFHNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyuFHNwbEeCT5O2F6sGn5g" name="qualifierValue" visibility="public" type="_g1zOZ9wbEeCT5O2F6sGn5g" association="_gyuFG9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyuFHdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyuFHtwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUMykBE9EeGOffqMW1YiZA" name="A_qualifier_qualifierValue" memberEnd="_VdbnHBE9EeGOffqMW1YiZA _VUMykRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUMykRE9EeGOffqMW1YiZA" name="qualifierValue" visibility="public" type="_VdbnEBE9EeGOffqMW1YiZA" association="_VUMykBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUMykhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUMykxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyusINwbEeCT5O2F6sGn5g" name="A_qualifier_readLinkObjectEndQualifierAction" memberEnd="_g12RrdwbEeCT5O2F6sGn5g _gyusIdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyusIdwbEeCT5O2F6sGn5g" name="readLinkObjectEndQualifierAction" visibility="public" type="_g12RkNwbEeCT5O2F6sGn5g" association="_gyusINwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyusItwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUMylBE9EeGOffqMW1YiZA" name="A_qualifier_readLinkObjectEndQualifierAction" memberEnd="_VdgfrRE9EeGOffqMW1YiZA _VUMylRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUMylRE9EeGOffqMW1YiZA" name="readLinkObjectEndQualifierAction" visibility="public" type="_VdgfkBE9EeGOffqMW1YiZA" association="_VUMylBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUMylhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyusI9wbEeCT5O2F6sGn5g" name="A_raisedException_behavioralFeature" memberEnd="_gzkZqNwbEeCT5O2F6sGn5g _gyusJNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyusJNwbEeCT5O2F6sGn5g" name="behavioralFeature" visibility="public" type="_rHT3YKOsEdqi_5gqUMOQtA" association="_gyusI9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyusJdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyusJtwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUMylxE9EeGOffqMW1YiZA" name="A_raisedException_behavioralFeature" memberEnd="_VWJ6aBE9EeGOffqMW1YiZA _VUMymBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUMymBE9EeGOffqMW1YiZA" name="behavioralFeature" visibility="public" type="_rHT3YKOsEdqi_5gqUMOQtA" association="_VUMylxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUMymRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUMymhE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyusJ9wbEeCT5O2F6sGn5g" name="A_raisedException_operation" memberEnd="_g1dQDdwbEeCT5O2F6sGn5g _gyusKNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyusKNwbEeCT5O2F6sGn5g" name="operation" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" subsettedProperty="_gyusJNwbEeCT5O2F6sGn5g" association="_gyusJ9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyusKdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyusKtwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUNZoBE9EeGOffqMW1YiZA" name="A_raisedException_operation" memberEnd="_VcAqxBE9EeGOffqMW1YiZA _VUNZoRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUNZoRE9EeGOffqMW1YiZA" name="operation" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" subsettedProperty="_VUMymBE9EeGOffqMW1YiZA" association="_VUNZoBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUNZohE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUNZoxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyusK9wbEeCT5O2F6sGn5g" name="A_realization_abstraction_component" memberEnd="_gz4iw9wbEeCT5O2F6sGn5g _gz6-89wbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyusLNwbEeCT5O2F6sGn5g" name="A_realization_abstraction_flow" memberEnd="_g0Y5FtwbEeCT5O2F6sGn5g _gyusLdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyusLdwbEeCT5O2F6sGn5g" name="abstraction" visibility="public" type="_g0Y5ANwbEeCT5O2F6sGn5g" association="_gyusLNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyusLtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyusL9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUNZpBE9EeGOffqMW1YiZA" name="A_realization_abstraction_component" memberEnd="_VYAUixE9EeGOffqMW1YiZA _VYEl8xE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUOAsBE9EeGOffqMW1YiZA" name="A_realization_abstraction_flow" memberEnd="_VZosRhE9EeGOffqMW1YiZA _VUOAsRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUOAsRE9EeGOffqMW1YiZA" name="abstraction" visibility="public" type="_VZosMBE9EeGOffqMW1YiZA" association="_VUOAsBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUOAshE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUOAsxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyvTMNwbEeCT5O2F6sGn5g" name="A_realizingActivityEdge_informationFlow" memberEnd="_g0Y5GtwbEeCT5O2F6sGn5g _gyvTMdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyvTMdwbEeCT5O2F6sGn5g" name="informationFlow" visibility="public" type="_g0Y5ANwbEeCT5O2F6sGn5g" association="_gyvTMNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyvTMtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyvTM9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUOnwBE9EeGOffqMW1YiZA" name="A_realizingActivityEdge_informationFlow" memberEnd="_VZosShE9EeGOffqMW1YiZA _VUOnwRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUOnwRE9EeGOffqMW1YiZA" name="informationFlow" visibility="public" type="_VZosMBE9EeGOffqMW1YiZA" association="_VUOnwBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUOnwhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUOnwxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyvTNNwbEeCT5O2F6sGn5g" name="A_realizingClassifier_componentRealization" memberEnd="_gz6-9twbEeCT5O2F6sGn5g _gyvTNdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyvTNdwbEeCT5O2F6sGn5g" name="componentRealization" visibility="public" type="_gz6-8NwbEeCT5O2F6sGn5g" subsettedProperty="_g1QbsNwbEeCT5O2F6sGn5g" association="_gyvTNNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyvTNtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyvTN9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUPO0BE9EeGOffqMW1YiZA" name="A_realizingClassifier_componentRealization" memberEnd="_VYEl9hE9EeGOffqMW1YiZA _VUPO0RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUPO0RE9EeGOffqMW1YiZA" name="componentRealization" visibility="public" type="_VYEl8BE9EeGOffqMW1YiZA" subsettedProperty="_VaN7ABE9EeGOffqMW1YiZA" association="_VUPO0BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUPO0hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUPO0xE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyvTONwbEeCT5O2F6sGn5g" name="A_realizingConnector_informationFlow" memberEnd="_g0Y5HtwbEeCT5O2F6sGn5g _gyvTOdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyvTOdwbEeCT5O2F6sGn5g" name="informationFlow" visibility="public" type="_g0Y5ANwbEeCT5O2F6sGn5g" association="_gyvTONwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyvTOtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyvTO9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUPO1BE9EeGOffqMW1YiZA" name="A_realizingConnector_informationFlow" memberEnd="_VZosThE9EeGOffqMW1YiZA _VUPO1RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUPO1RE9EeGOffqMW1YiZA" name="informationFlow" visibility="public" type="_VZosMBE9EeGOffqMW1YiZA" association="_VUPO1BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUPO1hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUPO1xE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyvTPNwbEeCT5O2F6sGn5g" name="A_realizingMessage_informationFlow" memberEnd="_g0ZgEdwbEeCT5O2F6sGn5g _gyvTPdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyvTPdwbEeCT5O2F6sGn5g" name="informationFlow" visibility="public" type="_g0Y5ANwbEeCT5O2F6sGn5g" association="_gyvTPNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyvTPtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyvTP9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUP14BE9EeGOffqMW1YiZA" name="A_realizingMessage_informationFlow" memberEnd="_VZosUhE9EeGOffqMW1YiZA _VUP14RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUP14RE9EeGOffqMW1YiZA" name="informationFlow" visibility="public" type="_VZosMBE9EeGOffqMW1YiZA" association="_VUP14BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUP14hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUP14xE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyv6QNwbEeCT5O2F6sGn5g" name="A_receiveEvent_endMessage" memberEnd="_g1LjMNwbEeCT5O2F6sGn5g _gyv6QdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyv6QdwbEeCT5O2F6sGn5g" name="endMessage" visibility="public" type="_gfgNwGveEdq4DLWZOhbdEA" subsettedProperty="_g1MKQ9wbEeCT5O2F6sGn5g" association="_gyv6QNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyv6QtwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUP15BE9EeGOffqMW1YiZA" name="A_receiveEvent_endMessage" memberEnd="_VaBtwxE9EeGOffqMW1YiZA _VUP15RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUP15RE9EeGOffqMW1YiZA" name="endMessage" visibility="public" type="_gfgNwGveEdq4DLWZOhbdEA" subsettedProperty="_VaEKAxE9EeGOffqMW1YiZA" association="_VUP15BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUP15hE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyv6Q9wbEeCT5O2F6sGn5g" name="A_redefinedBehavior_behavior" memberEnd="_gzikfNwbEeCT5O2F6sGn5g _gyv6RNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyv6RNwbEeCT5O2F6sGn5g" name="behavior" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" subsettedProperty="_gyv6SNwbEeCT5O2F6sGn5g" association="_gyv6Q9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyv6RdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyv6RtwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUP15xE9EeGOffqMW1YiZA" name="A_redefinedBehavior_behavior" memberEnd="_VWEa0BE9EeGOffqMW1YiZA _VUP16BE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUP16BE9EeGOffqMW1YiZA" name="behavior" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" subsettedProperty="_VUQc8RE9EeGOffqMW1YiZA" association="_VUP15xE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUP16RE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUP16hE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyv6R9wbEeCT5O2F6sGn5g" name="A_redefinedClassifier_classifier" memberEnd="_gzvYyNwbEeCT5O2F6sGn5g _gyv6SNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyv6SNwbEeCT5O2F6sGn5g" name="classifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" subsettedProperty="_gywhUdwbEeCT5O2F6sGn5g" association="_gyv6R9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyv6SdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyv6StwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUQc8BE9EeGOffqMW1YiZA" name="A_redefinedClassifier_classifier" memberEnd="_VXuAoBE9EeGOffqMW1YiZA _VUQc8RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUQc8RE9EeGOffqMW1YiZA" name="classifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" subsettedProperty="_VURrERE9EeGOffqMW1YiZA" association="_VUQc8BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUQc8hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUQc8xE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyv6S9wbEeCT5O2F6sGn5g" name="A_redefinedConnector_connector" memberEnd="_gz-CQtwbEeCT5O2F6sGn5g _gyv6TNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyv6TNwbEeCT5O2F6sGn5g" name="connector" visibility="public" type="_YxC2YLLWEeCsYvaJqFFivQ" subsettedProperty="_gywhUdwbEeCT5O2F6sGn5g" association="_gyv6S9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyv6TdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyv6TtwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUQc9BE9EeGOffqMW1YiZA" name="A_redefinedConnector_connector" memberEnd="_VYMhwBE9EeGOffqMW1YiZA _VUQc9RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUQc9RE9EeGOffqMW1YiZA" name="connector" visibility="public" type="_YxC2YLLWEeCsYvaJqFFivQ" subsettedProperty="_VURrERE9EeGOffqMW1YiZA" association="_VUQc9BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUQc9hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUQc9xE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyv6T9wbEeCT5O2F6sGn5g" name="A_redefinedEdge_activityEdge" memberEnd="_gzZaoNwbEeCT5O2F6sGn5g _gyv6UNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyv6UNwbEeCT5O2F6sGn5g" name="activityEdge" visibility="public" type="_gzZagNwbEeCT5O2F6sGn5g" subsettedProperty="_gywhUdwbEeCT5O2F6sGn5g" association="_gyv6T9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyv6UdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyv6UtwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUREABE9EeGOffqMW1YiZA" name="A_redefinedEdge_activityEdge" memberEnd="_VVcI0BE9EeGOffqMW1YiZA _VUREARE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUREARE9EeGOffqMW1YiZA" name="activityEdge" visibility="public" type="_VVcIsBE9EeGOffqMW1YiZA" subsettedProperty="_VURrERE9EeGOffqMW1YiZA" association="_VUREABE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUREAhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUREAxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gywhUNwbEeCT5O2F6sGn5g" name="A_redefinedElement_redefinableElement" isDerived="true" memberEnd="_g15U7twbEeCT5O2F6sGn5g _gywhUdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gywhUdwbEeCT5O2F6sGn5g" name="redefinableElement" visibility="public" type="_uCRA4La-EeCRxrN1JUGuxA" association="_gywhUNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gywhUtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gywhU9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VURrEBE9EeGOffqMW1YiZA" name="A_redefinedElement_redefinableElement" isDerived="true" memberEnd="_VdtT4BE9EeGOffqMW1YiZA _VURrERE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VURrERE9EeGOffqMW1YiZA" name="redefinableElement" visibility="public" type="_uCRA4La-EeCRxrN1JUGuxA" association="_VURrEBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VURrEhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VURrExE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gywhVNwbEeCT5O2F6sGn5g" name="A_redefinedInterface_interface" memberEnd="_g0e_oNwbEeCT5O2F6sGn5g _gywhVdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gywhVdwbEeCT5O2F6sGn5g" name="interface" visibility="public" type="_8Ugn8GvtEdqG6fBIPwe-mw" subsettedProperty="_gyv6SNwbEeCT5O2F6sGn5g" association="_gywhVNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gywhVtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gywhV9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VURrFBE9EeGOffqMW1YiZA" name="A_redefinedInterface_interface" memberEnd="_VZwoDxE9EeGOffqMW1YiZA _VURrFRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VURrFRE9EeGOffqMW1YiZA" name="interface" visibility="public" type="_8Ugn8GvtEdqG6fBIPwe-mw" subsettedProperty="_VUQc8RE9EeGOffqMW1YiZA" association="_VURrFBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VURrFhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VURrFxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gywhWNwbEeCT5O2F6sGn5g" name="A_redefinedNode_activityNode" memberEnd="_gzbP09wbEeCT5O2F6sGn5g _gywhWdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gywhWdwbEeCT5O2F6sGn5g" name="activityNode" visibility="public" type="_gzbPsNwbEeCT5O2F6sGn5g" subsettedProperty="_gywhUdwbEeCT5O2F6sGn5g" association="_gywhWNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gywhWtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gywhW9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUSSIBE9EeGOffqMW1YiZA" name="A_redefinedNode_activityNode" memberEnd="_VVhBOBE9EeGOffqMW1YiZA _VUSSIRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUSSIRE9EeGOffqMW1YiZA" name="activityNode" visibility="public" type="_WpiyYAs-EeGcpbeCPJfCmw" subsettedProperty="_VURrERE9EeGOffqMW1YiZA" association="_VUSSIBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUSSIhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUSSIxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gywhXNwbEeCT5O2F6sGn5g" name="A_redefinedOperation_operation" memberEnd="_g1dQEdwbEeCT5O2F6sGn5g _gywhXdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gywhXdwbEeCT5O2F6sGn5g" name="operation" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" subsettedProperty="_gywhUdwbEeCT5O2F6sGn5g" association="_gywhXNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gywhXtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gywhX9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUSSJBE9EeGOffqMW1YiZA" name="A_redefinedOperation_operation" memberEnd="_VcBR0BE9EeGOffqMW1YiZA _VUSSJRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUSSJRE9EeGOffqMW1YiZA" name="operation" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" subsettedProperty="_VURrERE9EeGOffqMW1YiZA" association="_VUSSJBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUSSJhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUSSJxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyxIYNwbEeCT5O2F6sGn5g" name="A_redefinedPort_port" memberEnd="_g1pdRNwbEeCT5O2F6sGn5g _gyxIYdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyxIYdwbEeCT5O2F6sGn5g" name="port" visibility="public" type="_ZAuvEGveEdq4DLWZOhbdEA" subsettedProperty="_gyxIZdwbEeCT5O2F6sGn5g" association="_gyxIYNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyxIYtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyxIY9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUS5MBE9EeGOffqMW1YiZA" name="A_redefinedPort_port" memberEnd="_Vc-UHRE9EeGOffqMW1YiZA _VUS5MRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUS5MRE9EeGOffqMW1YiZA" name="port" visibility="public" type="_ZAuvEGveEdq4DLWZOhbdEA" subsettedProperty="_VUV8gRE9EeGOffqMW1YiZA" association="_VUS5MBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUS5MhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUS5MxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyxIZNwbEeCT5O2F6sGn5g" name="A_redefinedProperty_property" memberEnd="_g1uVwNwbEeCT5O2F6sGn5g _gyxIZdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyxIZdwbEeCT5O2F6sGn5g" name="property" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" subsettedProperty="_gywhUdwbEeCT5O2F6sGn5g" association="_gyxIZNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyxIZtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyxIZ9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUV8gBE9EeGOffqMW1YiZA" name="A_redefinedProperty_property" memberEnd="_VdIFEBE9EeGOffqMW1YiZA _VUV8gRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUV8gRE9EeGOffqMW1YiZA" name="property" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" subsettedProperty="_VURrERE9EeGOffqMW1YiZA" association="_VUV8gBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUV8ghE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUV8gxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyxIaNwbEeCT5O2F6sGn5g" name="A_redefinedState_state" memberEnd="_g2CfBtwbEeCT5O2F6sGn5g _gyxIadwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyxIadwbEeCT5O2F6sGn5g" name="state" visibility="public" type="_g2Ce0NwbEeCT5O2F6sGn5g" subsettedProperty="_gywhUdwbEeCT5O2F6sGn5g" association="_gyxIaNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyxIatwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUWjkBE9EeGOffqMW1YiZA" name="A_redefinedState_state" memberEnd="_VeR70hE9EeGOffqMW1YiZA _VUWjkRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUWjkRE9EeGOffqMW1YiZA" name="state" visibility="public" type="_VeRUkBE9EeGOffqMW1YiZA" subsettedProperty="_VURrERE9EeGOffqMW1YiZA" association="_VUWjkBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUWjkhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyxIa9wbEeCT5O2F6sGn5g" name="A_redefinedTransition_transition" memberEnd="_g2SWg9wbEeCT5O2F6sGn5g _gyxIbNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyxIbNwbEeCT5O2F6sGn5g" name="transition" visibility="public" type="_ykKV8PnlEdunWsS3se92JQ" subsettedProperty="_gywhUdwbEeCT5O2F6sGn5g" association="_gyxIa9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyxIbdwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUWjkxE9EeGOffqMW1YiZA" name="A_redefinedTransition_transition" memberEnd="_Ve9RGRE9EeGOffqMW1YiZA _VUWjlBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUWjlBE9EeGOffqMW1YiZA" name="transition" visibility="public" type="_ykKV8PnlEdunWsS3se92JQ" subsettedProperty="_VURrERE9EeGOffqMW1YiZA" association="_VUWjkxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUWjlRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyxIbtwbEeCT5O2F6sGn5g" name="A_redefinitionContext_redefinableElement" isDerived="true" memberEnd="_zYrE4La-EeCRxrN1JUGuxA _gyxIb9wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyxIb9wbEeCT5O2F6sGn5g" name="redefinableElement" visibility="public" type="_uCRA4La-EeCRxrN1JUGuxA" association="_gyxIbtwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyxIcNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyxIcdwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUWjlhE9EeGOffqMW1YiZA" name="A_redefinitionContext_redefinableElement" isDerived="true" memberEnd="_zYrE4La-EeCRxrN1JUGuxA _VUWjlxE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUWjlxE9EeGOffqMW1YiZA" name="redefinableElement" visibility="public" type="_uCRA4La-EeCRxrN1JUGuxA" association="_VUWjlhE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUWjmBE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUWjmRE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyxvcNwbEeCT5O2F6sGn5g" name="A_redefinitionContext_region" isDerived="true" memberEnd="_g18_U9wbEeCT5O2F6sGn5g _gyxvctwbEeCT5O2F6sGn5g">
-      <generalization xmi:id="_gyxvcdwbEeCT5O2F6sGn5g" general="_gyxIbtwbEeCT5O2F6sGn5g"/>
-      <ownedEnd xmi:id="_gyxvctwbEeCT5O2F6sGn5g" name="region" visibility="public" type="_g18_QNwbEeCT5O2F6sGn5g" redefinedProperty="_gyxIb9wbEeCT5O2F6sGn5g" association="_gyxvcNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyxvc9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyxvdNwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUXKoBE9EeGOffqMW1YiZA" name="A_redefinitionContext_region" isDerived="true" memberEnd="_VeA18xE9EeGOffqMW1YiZA _VUXKohE9EeGOffqMW1YiZA">
+      <generalization xmi:id="_VUXKoRE9EeGOffqMW1YiZA" general="_VUWjlhE9EeGOffqMW1YiZA"/>
+      <ownedEnd xmi:id="_VUXKohE9EeGOffqMW1YiZA" name="region" visibility="public" type="_VeA14BE9EeGOffqMW1YiZA" redefinedProperty="_VUWjlxE9EeGOffqMW1YiZA" association="_VUXKoBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUXKoxE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUXKpBE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyxvddwbEeCT5O2F6sGn5g" name="A_redefinitionContext_state" isDerived="true" memberEnd="_g2CfCdwbEeCT5O2F6sGn5g _gyxvd9wbEeCT5O2F6sGn5g">
-      <generalization xmi:id="_gyxvdtwbEeCT5O2F6sGn5g" general="_gyxIbtwbEeCT5O2F6sGn5g"/>
-      <ownedEnd xmi:id="_gyxvd9wbEeCT5O2F6sGn5g" name="state" visibility="public" type="_g2Ce0NwbEeCT5O2F6sGn5g" redefinedProperty="_gyxIb9wbEeCT5O2F6sGn5g" association="_gyxvddwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyxveNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyxvedwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUXKpRE9EeGOffqMW1YiZA" name="A_redefinitionContext_state" isDerived="true" memberEnd="_VeR71RE9EeGOffqMW1YiZA _VUXKpxE9EeGOffqMW1YiZA">
+      <generalization xmi:id="_VUXKphE9EeGOffqMW1YiZA" general="_VUWjlhE9EeGOffqMW1YiZA"/>
+      <ownedEnd xmi:id="_VUXKpxE9EeGOffqMW1YiZA" name="state" visibility="public" type="_VeRUkBE9EeGOffqMW1YiZA" redefinedProperty="_VUWjlxE9EeGOffqMW1YiZA" association="_VUXKpRE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUXKqBE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUXKqRE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyxvetwbEeCT5O2F6sGn5g" name="A_redefinitionContext_transition" isDerived="true" memberEnd="_g2SWhtwbEeCT5O2F6sGn5g _gyxvfNwbEeCT5O2F6sGn5g">
-      <generalization xmi:id="_gyxve9wbEeCT5O2F6sGn5g" general="_gyxIbtwbEeCT5O2F6sGn5g"/>
-      <ownedEnd xmi:id="_gyxvfNwbEeCT5O2F6sGn5g" name="transition" visibility="public" type="_ykKV8PnlEdunWsS3se92JQ" redefinedProperty="_gyxIb9wbEeCT5O2F6sGn5g" association="_gyxvetwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyxvfdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyxvftwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUXxsBE9EeGOffqMW1YiZA" name="A_redefinitionContext_transition" isDerived="true" memberEnd="_Ve9RHBE9EeGOffqMW1YiZA _VUXxshE9EeGOffqMW1YiZA">
+      <generalization xmi:id="_VUXxsRE9EeGOffqMW1YiZA" general="_VUWjlhE9EeGOffqMW1YiZA"/>
+      <ownedEnd xmi:id="_VUXxshE9EeGOffqMW1YiZA" name="transition" visibility="public" type="_ykKV8PnlEdunWsS3se92JQ" redefinedProperty="_VUWjlxE9EeGOffqMW1YiZA" association="_VUXxsBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUXxsxE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUXxtBE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyxvf9wbEeCT5O2F6sGn5g" name="A_reducer_reduceAction" memberEnd="_g17xMdwbEeCT5O2F6sGn5g _gyxvgNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyxvgNwbEeCT5O2F6sGn5g" name="reduceAction" visibility="public" type="_g17xINwbEeCT5O2F6sGn5g" association="_gyxvf9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyxvgdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyxvgtwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUYYwBE9EeGOffqMW1YiZA" name="A_reducer_reduceAction" memberEnd="_Vd9ylBE9EeGOffqMW1YiZA _VUYYwRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUYYwRE9EeGOffqMW1YiZA" name="reduceAction" visibility="public" type="_Vd46EBE9EeGOffqMW1YiZA" association="_VUYYwBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUYYwhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUYYwxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyyWgNwbEeCT5O2F6sGn5g" name="A_referred_protocolTransition" isDerived="true" memberEnd="_g1yAINwbEeCT5O2F6sGn5g _gyyWgdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyyWgdwbEeCT5O2F6sGn5g" name="protocolTransition" visibility="public" type="_Dtp8ULL7EeCBifIhhuFqZA" association="_gyyWgNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyyWgtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyyWg9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUYYxBE9EeGOffqMW1YiZA" name="A_referred_protocolTransition" isDerived="true" memberEnd="_VdYjwxE9EeGOffqMW1YiZA _VUYYxRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUYYxRE9EeGOffqMW1YiZA" name="protocolTransition" visibility="public" type="_Dtp8ULL7EeCBifIhhuFqZA" association="_VUYYxBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUYYxhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUYYxxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyyWhNwbEeCT5O2F6sGn5g" name="A_refersTo_interactionUse" memberEnd="_g0dxndwbEeCT5O2F6sGn5g _gyyWhdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyyWhdwbEeCT5O2F6sGn5g" name="interactionUse" visibility="public" type="_g0dxgNwbEeCT5O2F6sGn5g" association="_gyyWhNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyyWhtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyyWh9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUY_0BE9EeGOffqMW1YiZA" name="A_refersTo_interactionUse" memberEnd="_VZvZ_RE9EeGOffqMW1YiZA _VUY_0RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUY_0RE9EeGOffqMW1YiZA" name="interactionUse" visibility="public" type="_VZvZ4BE9EeGOffqMW1YiZA" association="_VUY_0BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUY_0hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUY_0xE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyyWiNwbEeCT5O2F6sGn5g" name="A_region_state" memberEnd="_g2CfC9wbEeCT5O2F6sGn5g _g18_VdwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyyWidwbEeCT5O2F6sGn5g" name="A_region_stateMachine" memberEnd="_g2EUF9wbEeCT5O2F6sGn5g _g18_WNwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyyWitwbEeCT5O2F6sGn5g" name="A_relatedElement_relationship" isDerived="true" memberEnd="_g18_gNwbEeCT5O2F6sGn5g _gyyWi9wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyyWi9wbEeCT5O2F6sGn5g" name="relationship" visibility="public" type="_DH62EKPAEdqi_5gqUMOQtA" association="_gyyWitwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyyWjNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyyWjdwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUY_1BE9EeGOffqMW1YiZA" name="A_region_state" memberEnd="_VeR71xE9EeGOffqMW1YiZA _VeA19RE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUY_1RE9EeGOffqMW1YiZA" name="A_region_stateMachine" memberEnd="_VeWNJxE9EeGOffqMW1YiZA _VeA1-BE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUZm4BE9EeGOffqMW1YiZA" name="A_relatedElement_relationship" isDerived="true" memberEnd="_VeBc8hE9EeGOffqMW1YiZA _VUZm4RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUZm4RE9EeGOffqMW1YiZA" name="relationship" visibility="public" type="_DH62EKPAEdqi_5gqUMOQtA" association="_VUZm4BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUZm4hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUZm4xE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyy9kNwbEeCT5O2F6sGn5g" name="A_removeAt_removeStructuralFeatureValueAction" memberEnd="_g19mWdwbEeCT5O2F6sGn5g _gyy9kdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyy9kdwbEeCT5O2F6sGn5g" name="removeStructuralFeatureValueAction" visibility="public" type="_g19mUNwbEeCT5O2F6sGn5g" subsettedProperty="_gygpt9wbEeCT5O2F6sGn5g" association="_gyy9kNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyy9ktwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUZm5BE9EeGOffqMW1YiZA" name="A_removeAt_removeStructuralFeatureValueAction" memberEnd="_VeCECRE9EeGOffqMW1YiZA _VUZm5RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUZm5RE9EeGOffqMW1YiZA" name="removeStructuralFeatureValueAction" visibility="public" type="_VeCEABE9EeGOffqMW1YiZA" subsettedProperty="_VTqnERE9EeGOffqMW1YiZA" association="_VUZm5BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUZm5hE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyy9k9wbEeCT5O2F6sGn5g" name="A_removeAt_removeVariableValueAction" memberEnd="_g1-NZ9wbEeCT5O2F6sGn5g _gyy9lNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyy9lNwbEeCT5O2F6sGn5g" name="removeVariableValueAction" visibility="public" type="_g19mXNwbEeCT5O2F6sGn5g" subsettedProperty="_gygpt9wbEeCT5O2F6sGn5g" association="_gyy9k9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyy9ldwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUZm5xE9EeGOffqMW1YiZA" name="A_removeAt_removeVariableValueAction" memberEnd="_VeCrGRE9EeGOffqMW1YiZA _VUZm6BE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUZm6BE9EeGOffqMW1YiZA" name="removeVariableValueAction" visibility="public" type="_VeCrEBE9EeGOffqMW1YiZA" subsettedProperty="_VTqnERE9EeGOffqMW1YiZA" association="_VUZm5xE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUZm6RE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyy9ltwbEeCT5O2F6sGn5g" name="A_replyToCall_replyAction" memberEnd="_g1-Nc9wbEeCT5O2F6sGn5g _gyy9l9wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyy9l9wbEeCT5O2F6sGn5g" name="replyAction" visibility="public" type="_g1-NatwbEeCT5O2F6sGn5g" association="_gyy9ltwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyy9mNwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUaN8BE9EeGOffqMW1YiZA" name="A_replyToCall_replyAction" memberEnd="_VeDSKRE9EeGOffqMW1YiZA _VUaN8RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUaN8RE9EeGOffqMW1YiZA" name="replyAction" visibility="public" type="_VeDSIBE9EeGOffqMW1YiZA" association="_VUaN8BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUaN8hE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyy9mdwbEeCT5O2F6sGn5g" name="A_replyValue_replyAction" memberEnd="_g1-NddwbEeCT5O2F6sGn5g _gyy9mtwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyy9mtwbEeCT5O2F6sGn5g" name="replyAction" visibility="public" type="_g1-NatwbEeCT5O2F6sGn5g" subsettedProperty="_gygpt9wbEeCT5O2F6sGn5g" association="_gyy9mdwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyy9m9wbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUaN8xE9EeGOffqMW1YiZA" name="A_replyValue_replyAction" memberEnd="_VeDSKxE9EeGOffqMW1YiZA _VUaN9BE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUaN9BE9EeGOffqMW1YiZA" name="replyAction" visibility="public" type="_VeDSIBE9EeGOffqMW1YiZA" subsettedProperty="_VTqnERE9EeGOffqMW1YiZA" association="_VUaN8xE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUaN9RE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyy9nNwbEeCT5O2F6sGn5g" name="A_representation_classifier" memberEnd="_gzvYzNwbEeCT5O2F6sGn5g _gyy9ntwbEeCT5O2F6sGn5g">
-      <generalization xmi:id="_gyy9ndwbEeCT5O2F6sGn5g" general="_gyVDjNwbEeCT5O2F6sGn5g"/>
-      <ownedEnd xmi:id="_gyy9ntwbEeCT5O2F6sGn5g" name="classifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" redefinedProperty="_gyVDjdwbEeCT5O2F6sGn5g" association="_gyy9nNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyy9n9wbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUa1ABE9EeGOffqMW1YiZA" name="A_representation_classifier" memberEnd="_VXuApBE9EeGOffqMW1YiZA _VUa1AhE9EeGOffqMW1YiZA">
+      <generalization xmi:id="_VUa1ARE9EeGOffqMW1YiZA" general="_VTExNRE9EeGOffqMW1YiZA"/>
+      <ownedEnd xmi:id="_VUa1AhE9EeGOffqMW1YiZA" name="classifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" redefinedProperty="_VTExNhE9EeGOffqMW1YiZA" association="_VUa1ABE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUa1AxE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyzkoNwbEeCT5O2F6sGn5g" name="A_represented_representation" memberEnd="_g0ZgIdwbEeCT5O2F6sGn5g _gyzkodwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyzkodwbEeCT5O2F6sGn5g" name="representation" visibility="public" type="_g0ZgFdwbEeCT5O2F6sGn5g" association="_gyzkoNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyzkotwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyzko9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUa1BBE9EeGOffqMW1YiZA" name="A_represented_representation" memberEnd="_VZpTTBE9EeGOffqMW1YiZA _VUa1BRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUa1BRE9EeGOffqMW1YiZA" name="representation" visibility="public" type="_VZpTQBE9EeGOffqMW1YiZA" association="_VUa1BBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUa1BhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUa1BxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyzkpNwbEeCT5O2F6sGn5g" name="A_represents_activityPartition" memberEnd="_gzcd7dwbEeCT5O2F6sGn5g _gyzkpdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gyzkpdwbEeCT5O2F6sGn5g" name="activityPartition" visibility="public" type="_gzcd0NwbEeCT5O2F6sGn5g" association="_gyzkpNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyzkptwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyzkp9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUa1CBE9EeGOffqMW1YiZA" name="A_represents_activityPartition" memberEnd="_VVkrlBE9EeGOffqMW1YiZA _VUa1CRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUa1CRE9EeGOffqMW1YiZA" name="activityPartition" visibility="public" type="_MIhqsAs-EeGcpbeCPJfCmw" association="_VUa1CBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUa1ChE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUa1CxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyzkqNwbEeCT5O2F6sGn5g" name="A_represents_lifeline" memberEnd="_g0hb9dwbEeCT5O2F6sGn5g _gyzkqtwbEeCT5O2F6sGn5g">
-      <ownedComment xmi:id="_gyzkqdwbEeCT5O2F6sGn5g" annotatedElement="_gyzkqNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUbcEBE9EeGOffqMW1YiZA" name="A_represents_lifeline" memberEnd="_VZ0SdRE9EeGOffqMW1YiZA _VUbcEhE9EeGOffqMW1YiZA">
+      <ownedComment xmi:id="_VUbcERE9EeGOffqMW1YiZA" annotatedElement="_VUbcEBE9EeGOffqMW1YiZA">
         <body>If a Part has multiplicity, multiple lifelines might be used to show it.</body>
       </ownedComment>
-      <ownedEnd xmi:id="_gyzkqtwbEeCT5O2F6sGn5g" name="lifeline" visibility="public" type="_g0hb4NwbEeCT5O2F6sGn5g" association="_gyzkqNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyzkq9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gyzkrNwbEeCT5O2F6sGn5g" value="*"/>
+      <ownedEnd xmi:id="_VUbcEhE9EeGOffqMW1YiZA" name="lifeline" visibility="public" type="_VZ0SYBE9EeGOffqMW1YiZA" association="_VUbcEBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUbcExE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUbcFBE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gyzkrdwbEeCT5O2F6sGn5g" name="A_request_sendObjectAction" memberEnd="_g1-0c9wbEeCT5O2F6sGn5g _gyzkr9wbEeCT5O2F6sGn5g">
-      <generalization xmi:id="_gyzkrtwbEeCT5O2F6sGn5g" general="_gySnRtwbEeCT5O2F6sGn5g"/>
-      <ownedEnd xmi:id="_gyzkr9wbEeCT5O2F6sGn5g" name="sendObjectAction" visibility="public" type="_g1-0cNwbEeCT5O2F6sGn5g" redefinedProperty="_gySnR9wbEeCT5O2F6sGn5g" association="_gyzkrdwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gyzksNwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUbcFRE9EeGOffqMW1YiZA" name="A_request_sendObjectAction" memberEnd="_VeD5MxE9EeGOffqMW1YiZA _VUbcFxE9EeGOffqMW1YiZA">
+      <generalization xmi:id="_VUbcFhE9EeGOffqMW1YiZA" general="_VS-DgxE9EeGOffqMW1YiZA"/>
+      <ownedEnd xmi:id="_VUbcFxE9EeGOffqMW1YiZA" name="sendObjectAction" visibility="public" type="_VeD5MBE9EeGOffqMW1YiZA" redefinedProperty="_VS-DhBE9EeGOffqMW1YiZA" association="_VUbcFRE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUbcGBE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy0LsNwbEeCT5O2F6sGn5g" name="A_required_component" isDerived="true" memberEnd="_gz5JwNwbEeCT5O2F6sGn5g _gy0LsdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy0LsdwbEeCT5O2F6sGn5g" name="component" visibility="public" type="_DAbfwa69EdqjppZik4kD8A" association="_gy0LsNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy0LstwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gy0Ls9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUcDIBE9EeGOffqMW1YiZA" name="A_required_component" isDerived="true" memberEnd="_VYA7kBE9EeGOffqMW1YiZA _VUcDIRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUcDIRE9EeGOffqMW1YiZA" name="component" visibility="public" type="_DAbfwa69EdqjppZik4kD8A" association="_VUcDIBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUcDIhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUcDIxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy0LtNwbEeCT5O2F6sGn5g" name="A_required_port" isDerived="true" memberEnd="_g1pdSNwbEeCT5O2F6sGn5g _gy0LtdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy0LtdwbEeCT5O2F6sGn5g" name="port" visibility="public" type="_ZAuvEGveEdq4DLWZOhbdEA" association="_gy0LtNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy0LttwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gy0Lt9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUcDJBE9EeGOffqMW1YiZA" name="A_required_port" isDerived="true" memberEnd="_Vc-7IBE9EeGOffqMW1YiZA _VUcDJRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUcDJRE9EeGOffqMW1YiZA" name="port" visibility="public" type="_ZAuvEGveEdq4DLWZOhbdEA" association="_VUcDJBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUcDJhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUcDJxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy0LuNwbEeCT5O2F6sGn5g" name="A_result_acceptEventAction" memberEnd="_gzBnItwbEeCT5O2F6sGn5g _gy0LudwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy0LudwbEeCT5O2F6sGn5g" name="acceptEventAction" visibility="public" type="_gzBnENwbEeCT5O2F6sGn5g" subsettedProperty="_gyn-dNwbEeCT5O2F6sGn5g" association="_gy0LuNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy0LutwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUcDKBE9EeGOffqMW1YiZA" name="A_result_acceptEventAction" memberEnd="_VU258hE9EeGOffqMW1YiZA _VUcDKRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUcDKRE9EeGOffqMW1YiZA" name="acceptEventAction" visibility="public" type="_VU254BE9EeGOffqMW1YiZA" subsettedProperty="_VT-JFBE9EeGOffqMW1YiZA" association="_VUcDKBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUcDKhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy0Lu9wbEeCT5O2F6sGn5g" name="A_result_callAction" memberEnd="_gzmO39wbEeCT5O2F6sGn5g _gy0LvNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy0LvNwbEeCT5O2F6sGn5g" name="callAction" visibility="public" type="_gzmO0NwbEeCT5O2F6sGn5g" subsettedProperty="_gyn-dNwbEeCT5O2F6sGn5g" association="_gy0Lu9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy0LvdwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUcqMBE9EeGOffqMW1YiZA" name="A_result_callAction" memberEnd="_VWTEXxE9EeGOffqMW1YiZA _VUcqMRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUcqMRE9EeGOffqMW1YiZA" name="callAction" visibility="public" type="_VWTEUBE9EeGOffqMW1YiZA" subsettedProperty="_VT-JFBE9EeGOffqMW1YiZA" association="_VUcqMBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUcqMhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy0LvtwbEeCT5O2F6sGn5g" name="A_result_clearStructuralFeatureAction" memberEnd="_gz2GeNwbEeCT5O2F6sGn5g _gy0Lv9wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy0Lv9wbEeCT5O2F6sGn5g" name="clearStructuralFeatureAction" visibility="public" type="_gz1fYNwbEeCT5O2F6sGn5g" subsettedProperty="_gyn-dNwbEeCT5O2F6sGn5g" association="_gy0LvtwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy0LwNwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUcqMxE9EeGOffqMW1YiZA" name="A_result_clearStructuralFeatureAction" memberEnd="_VX5m2RE9EeGOffqMW1YiZA _VUcqNBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUcqNBE9EeGOffqMW1YiZA" name="clearStructuralFeatureAction" visibility="public" type="_VX5m0BE9EeGOffqMW1YiZA" subsettedProperty="_VT-JFBE9EeGOffqMW1YiZA" association="_VUcqMxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUcqNRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy0ywNwbEeCT5O2F6sGn5g" name="A_result_conditionalNode" memberEnd="_gz7mHtwbEeCT5O2F6sGn5g _gy0ywdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy0ywdwbEeCT5O2F6sGn5g" name="conditionalNode" visibility="public" type="_gz7mANwbEeCT5O2F6sGn5g" subsettedProperty="_gy65cNwbEeCT5O2F6sGn5g" association="_gy0ywNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy0ywtwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUcqNhE9EeGOffqMW1YiZA" name="A_result_conditionalNode" memberEnd="_VYGbPhE9EeGOffqMW1YiZA _VUcqNxE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUcqNxE9EeGOffqMW1YiZA" name="conditionalNode" visibility="public" type="_VYGbIBE9EeGOffqMW1YiZA" subsettedProperty="_VUnCRBE9EeGOffqMW1YiZA" association="_VUcqNhE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUcqOBE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy0yw9wbEeCT5O2F6sGn5g" name="A_result_createLinkObjectAction" memberEnd="_g0BssNwbEeCT5O2F6sGn5g _gy0yxNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy0yxNwbEeCT5O2F6sGn5g" name="createLinkObjectAction" visibility="public" type="_g0BspNwbEeCT5O2F6sGn5g" subsettedProperty="_gyn-dNwbEeCT5O2F6sGn5g" association="_gy0yw9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy0yxdwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUdRQBE9EeGOffqMW1YiZA" name="A_result_createLinkObjectAction" memberEnd="_VYgDzBE9EeGOffqMW1YiZA _VUdRQRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUdRQRE9EeGOffqMW1YiZA" name="createLinkObjectAction" visibility="public" type="_VYgDwBE9EeGOffqMW1YiZA" subsettedProperty="_VT-JFBE9EeGOffqMW1YiZA" association="_VUdRQBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUdRQhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy0yxtwbEeCT5O2F6sGn5g" name="A_result_createObjectAction" memberEnd="_g0CTwdwbEeCT5O2F6sGn5g _gy0yx9wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy0yx9wbEeCT5O2F6sGn5g" name="createObjectAction" visibility="public" type="_g0CTsNwbEeCT5O2F6sGn5g" subsettedProperty="_gyn-dNwbEeCT5O2F6sGn5g" association="_gy0yxtwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy0yyNwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUdRQxE9EeGOffqMW1YiZA" name="A_result_createObjectAction" memberEnd="_VYgq4RE9EeGOffqMW1YiZA _VUdRRBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUdRRBE9EeGOffqMW1YiZA" name="createObjectAction" visibility="public" type="_VYgq0BE9EeGOffqMW1YiZA" subsettedProperty="_VT-JFBE9EeGOffqMW1YiZA" association="_VUdRQxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUdRRRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy0yydwbEeCT5O2F6sGn5g" name="A_result_loopNode" memberEnd="_g1JuJNwbEeCT5O2F6sGn5g _gy0yytwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy0yytwbEeCT5O2F6sGn5g" name="loopNode" visibility="public" type="_g1JuANwbEeCT5O2F6sGn5g" subsettedProperty="_gy65cNwbEeCT5O2F6sGn5g" association="_gy0yydwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy0yy9wbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUdRRhE9EeGOffqMW1YiZA" name="A_result_loopNode" memberEnd="_VZ_RpBE9EeGOffqMW1YiZA _VUdRRxE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUdRRxE9EeGOffqMW1YiZA" name="loopNode" visibility="public" type="_VZ_RgBE9EeGOffqMW1YiZA" subsettedProperty="_VUnCRBE9EeGOffqMW1YiZA" association="_VUdRRhE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUdRSBE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy0yzNwbEeCT5O2F6sGn5g" name="A_result_opaqueExpression" isDerived="true" memberEnd="_g1azwNwbEeCT5O2F6sGn5g _gy0yzdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy0yzdwbEeCT5O2F6sGn5g" name="opaqueExpression" visibility="public" type="_ChRfcGveEdq4DLWZOhbdEA" association="_gy0yzNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy0yztwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gy0yz9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUd4UBE9EeGOffqMW1YiZA" name="A_result_opaqueExpression" isDerived="true" memberEnd="_VboQQBE9EeGOffqMW1YiZA _VUd4URE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUd4URE9EeGOffqMW1YiZA" name="opaqueExpression" visibility="public" type="_ChRfcGveEdq4DLWZOhbdEA" association="_VUd4UBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUd4UhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUd4UxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy1Z0NwbEeCT5O2F6sGn5g" name="A_result_readExtentAction" memberEnd="_g1z1YNwbEeCT5O2F6sGn5g _gy1Z0dwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy1Z0dwbEeCT5O2F6sGn5g" name="readExtentAction" visibility="public" type="_g1z1VdwbEeCT5O2F6sGn5g" subsettedProperty="_gyn-dNwbEeCT5O2F6sGn5g" association="_gy1Z0NwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy1Z0twbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUd4VBE9EeGOffqMW1YiZA" name="A_result_readExtentAction" memberEnd="_VdcOKxE9EeGOffqMW1YiZA _VUd4VRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUd4VRE9EeGOffqMW1YiZA" name="readExtentAction" visibility="public" type="_VdcOIBE9EeGOffqMW1YiZA" subsettedProperty="_VT-JFBE9EeGOffqMW1YiZA" association="_VUd4VBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUd4VhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy1Z09wbEeCT5O2F6sGn5g" name="A_result_readIsClassifiedObjectAction" memberEnd="_g10cdtwbEeCT5O2F6sGn5g _gy1Z1NwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy1Z1NwbEeCT5O2F6sGn5g" name="readIsClassifiedObjectAction" visibility="public" type="_g10cYNwbEeCT5O2F6sGn5g" subsettedProperty="_gyn-dNwbEeCT5O2F6sGn5g" association="_gy1Z09wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy1Z1dwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUd4VxE9EeGOffqMW1YiZA" name="A_result_readIsClassifiedObjectAction" memberEnd="_Vdc1RhE9EeGOffqMW1YiZA _VUd4WBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUd4WBE9EeGOffqMW1YiZA" name="readIsClassifiedObjectAction" visibility="public" type="_Vdc1MBE9EeGOffqMW1YiZA" subsettedProperty="_VT-JFBE9EeGOffqMW1YiZA" association="_VUd4VxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUd4WRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy1Z1twbEeCT5O2F6sGn5g" name="A_result_readLinkAction" memberEnd="_g11DgtwbEeCT5O2F6sGn5g _gy1Z19wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy1Z19wbEeCT5O2F6sGn5g" name="readLinkAction" visibility="public" type="_g11DcNwbEeCT5O2F6sGn5g" subsettedProperty="_gyn-dNwbEeCT5O2F6sGn5g" association="_gy1Z1twbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy1Z2NwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUefYBE9EeGOffqMW1YiZA" name="A_result_readLinkAction" memberEnd="_VdeDYhE9EeGOffqMW1YiZA _VUefYRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUefYRE9EeGOffqMW1YiZA" name="readLinkAction" visibility="public" type="_VdeDUBE9EeGOffqMW1YiZA" subsettedProperty="_VT-JFBE9EeGOffqMW1YiZA" association="_VUefYBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUefYhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy1Z2dwbEeCT5O2F6sGn5g" name="A_result_readLinkObjectEndAction" memberEnd="_g11qnNwbEeCT5O2F6sGn5g _gy1Z2twbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy1Z2twbEeCT5O2F6sGn5g" name="readLinkObjectEndAction" visibility="public" type="_g11qgNwbEeCT5O2F6sGn5g" subsettedProperty="_gyn-dNwbEeCT5O2F6sGn5g" association="_gy1Z2dwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy1Z29wbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUefYxE9EeGOffqMW1YiZA" name="A_result_readLinkObjectEndAction" memberEnd="_VdfRjBE9EeGOffqMW1YiZA _VUefZBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUefZBE9EeGOffqMW1YiZA" name="readLinkObjectEndAction" visibility="public" type="_VdfRcBE9EeGOffqMW1YiZA" subsettedProperty="_VT-JFBE9EeGOffqMW1YiZA" association="_VUefYxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUefZRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy1Z3NwbEeCT5O2F6sGn5g" name="A_result_readLinkObjectEndQualifierAction" memberEnd="_g12Rr9wbEeCT5O2F6sGn5g _gy1Z3dwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy1Z3dwbEeCT5O2F6sGn5g" name="readLinkObjectEndQualifierAction" visibility="public" type="_g12RkNwbEeCT5O2F6sGn5g" subsettedProperty="_gyn-dNwbEeCT5O2F6sGn5g" association="_gy1Z3NwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy1Z3twbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUefZhE9EeGOffqMW1YiZA" name="A_result_readLinkObjectEndQualifierAction" memberEnd="_VdgfrxE9EeGOffqMW1YiZA _VUefZxE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUefZxE9EeGOffqMW1YiZA" name="readLinkObjectEndQualifierAction" visibility="public" type="_VdgfkBE9EeGOffqMW1YiZA" subsettedProperty="_VT-JFBE9EeGOffqMW1YiZA" association="_VUefZhE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUefaBE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy2A4NwbEeCT5O2F6sGn5g" name="A_result_readSelfAction" memberEnd="_g124r9wbEeCT5O2F6sGn5g _gy2A4dwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy2A4dwbEeCT5O2F6sGn5g" name="readSelfAction" visibility="public" type="_g124oNwbEeCT5O2F6sGn5g" subsettedProperty="_gyn-dNwbEeCT5O2F6sGn5g" association="_gy2A4NwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy2A4twbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUfGcBE9EeGOffqMW1YiZA" name="A_result_readSelfAction" memberEnd="_VdhGrxE9EeGOffqMW1YiZA _VUfGcRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUfGcRE9EeGOffqMW1YiZA" name="readSelfAction" visibility="public" type="_VdhGoBE9EeGOffqMW1YiZA" subsettedProperty="_VT-JFBE9EeGOffqMW1YiZA" association="_VUfGcBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUfGchE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy2A49wbEeCT5O2F6sGn5g" name="A_result_readStructuralFeatureAction" memberEnd="_g13fudwbEeCT5O2F6sGn5g _gy2A5NwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy2A5NwbEeCT5O2F6sGn5g" name="readStructuralFeatureAction" visibility="public" type="_g13fsNwbEeCT5O2F6sGn5g" subsettedProperty="_gyn-dNwbEeCT5O2F6sGn5g" association="_gy2A49wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy2A5dwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUfGcxE9EeGOffqMW1YiZA" name="A_result_readStructuralFeatureAction" memberEnd="_VdiUwBE9EeGOffqMW1YiZA _VUfGdBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUfGdBE9EeGOffqMW1YiZA" name="readStructuralFeatureAction" visibility="public" type="_VdhtsBE9EeGOffqMW1YiZA" subsettedProperty="_VT-JFBE9EeGOffqMW1YiZA" association="_VUfGcxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUfGdRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy2A5twbEeCT5O2F6sGn5g" name="A_result_readVariableAction" memberEnd="_g14GxdwbEeCT5O2F6sGn5g _gy2A59wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy2A59wbEeCT5O2F6sGn5g" name="readVariableAction" visibility="public" type="_g13fu9wbEeCT5O2F6sGn5g" subsettedProperty="_gyn-dNwbEeCT5O2F6sGn5g" association="_gy2A5twbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy2A6NwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUfGdhE9EeGOffqMW1YiZA" name="A_result_readVariableAction" memberEnd="_Vdi72RE9EeGOffqMW1YiZA _VUfGdxE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUfGdxE9EeGOffqMW1YiZA" name="readVariableAction" visibility="public" type="_Vdi70BE9EeGOffqMW1YiZA" subsettedProperty="_VT-JFBE9EeGOffqMW1YiZA" association="_VUfGdhE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUfGeBE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy2A6dwbEeCT5O2F6sGn5g" name="A_result_reduceAction" memberEnd="_g17xM9wbEeCT5O2F6sGn5g _gy2A6twbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy2A6twbEeCT5O2F6sGn5g" name="reduceAction" visibility="public" type="_g17xINwbEeCT5O2F6sGn5g" subsettedProperty="_gyn-dNwbEeCT5O2F6sGn5g" association="_gy2A6dwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy2A69wbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUftgBE9EeGOffqMW1YiZA" name="A_result_reduceAction" memberEnd="_Vd9ylhE9EeGOffqMW1YiZA _VUftgRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUftgRE9EeGOffqMW1YiZA" name="reduceAction" visibility="public" type="_Vd46EBE9EeGOffqMW1YiZA" subsettedProperty="_VT-JFBE9EeGOffqMW1YiZA" association="_VUftgBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUftghE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy2A7NwbEeCT5O2F6sGn5g" name="A_result_testIdentityAction" memberEnd="_g2P6PtwbEeCT5O2F6sGn5g _gy2A7dwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy2A7dwbEeCT5O2F6sGn5g" name="testIdentityAction" visibility="public" type="_g2P6MNwbEeCT5O2F6sGn5g" subsettedProperty="_gyn-dNwbEeCT5O2F6sGn5g" association="_gy2A7NwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy2A7twbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUftgxE9EeGOffqMW1YiZA" name="A_result_testIdentityAction" memberEnd="_VeunnhE9EeGOffqMW1YiZA _VUfthBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUfthBE9EeGOffqMW1YiZA" name="testIdentityAction" visibility="public" type="_VeunkBE9EeGOffqMW1YiZA" subsettedProperty="_VT-JFBE9EeGOffqMW1YiZA" association="_VUftgxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUfthRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy2A79wbEeCT5O2F6sGn5g" name="A_result_unmarshallAction" memberEnd="_g2VZ2twbEeCT5O2F6sGn5g _gy2n8NwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy2n8NwbEeCT5O2F6sGn5g" name="unmarshallAction" visibility="public" type="_g2VZwNwbEeCT5O2F6sGn5g" subsettedProperty="_gyn-dNwbEeCT5O2F6sGn5g" association="_gy2A79wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy2n8dwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUfthhE9EeGOffqMW1YiZA" name="A_result_unmarshallAction" memberEnd="_VfD-2hE9EeGOffqMW1YiZA _VUfthxE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUfthxE9EeGOffqMW1YiZA" name="unmarshallAction" visibility="public" type="_VfD-wBE9EeGOffqMW1YiZA" subsettedProperty="_VT-JFBE9EeGOffqMW1YiZA" association="_VUfthhE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUftiBE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy2n8twbEeCT5O2F6sGn5g" name="A_result_valueSpecificationAction" memberEnd="_g2ZEKdwbEeCT5O2F6sGn5g _gy2n89wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy2n89wbEeCT5O2F6sGn5g" name="valueSpecificationAction" visibility="public" type="_g2ZEINwbEeCT5O2F6sGn5g" subsettedProperty="_gyn-dNwbEeCT5O2F6sGn5g" association="_gy2n8twbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy2n9NwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUftiRE9EeGOffqMW1YiZA" name="A_result_valueSpecificationAction" memberEnd="_VfHpKRE9EeGOffqMW1YiZA _VUftihE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUftihE9EeGOffqMW1YiZA" name="valueSpecificationAction" visibility="public" type="_VfHpIBE9EeGOffqMW1YiZA" subsettedProperty="_VT-JFBE9EeGOffqMW1YiZA" association="_VUftiRE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUftixE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy2n9dwbEeCT5O2F6sGn5g" name="A_result_writeStructuralFeatureAction" memberEnd="_g2bgb9wbEeCT5O2F6sGn5g _gy2n9twbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy2n9twbEeCT5O2F6sGn5g" name="writeStructuralFeatureAction" visibility="public" type="_g2bgYNwbEeCT5O2F6sGn5g" subsettedProperty="_gyn-dNwbEeCT5O2F6sGn5g" association="_gy2n9dwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy2n99wbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUgUkBE9EeGOffqMW1YiZA" name="A_result_writeStructuralFeatureAction" memberEnd="_VfKsfxE9EeGOffqMW1YiZA _VUgUkRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUgUkRE9EeGOffqMW1YiZA" name="writeStructuralFeatureAction" visibility="public" type="_VfKscBE9EeGOffqMW1YiZA" subsettedProperty="_VT-JFBE9EeGOffqMW1YiZA" association="_VUgUkBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUgUkhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy2n-NwbEeCT5O2F6sGn5g" name="A_returnInformation_acceptCallAction" memberEnd="_gzBADNwbEeCT5O2F6sGn5g _gy2n-dwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy2n-dwbEeCT5O2F6sGn5g" name="acceptCallAction" visibility="public" type="_gzBAANwbEeCT5O2F6sGn5g" subsettedProperty="_gyn-dNwbEeCT5O2F6sGn5g" association="_gy2n-NwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy2n-twbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUgUkxE9EeGOffqMW1YiZA" name="A_returnInformation_acceptCallAction" memberEnd="_VU1rzBE9EeGOffqMW1YiZA _VUgUlBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUgUlBE9EeGOffqMW1YiZA" name="acceptCallAction" visibility="public" type="_VU1rwBE9EeGOffqMW1YiZA" subsettedProperty="_VT-JFBE9EeGOffqMW1YiZA" association="_VUgUkxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUgUlRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy3PANwbEeCT5O2F6sGn5g" name="A_returnInformation_replyAction" memberEnd="_g1-NedwbEeCT5O2F6sGn5g _gy3PAdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy3PAdwbEeCT5O2F6sGn5g" name="replyAction" visibility="public" type="_g1-NatwbEeCT5O2F6sGn5g" subsettedProperty="_gygpt9wbEeCT5O2F6sGn5g" association="_gy3PANwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy3PAtwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUg7oBE9EeGOffqMW1YiZA" name="A_returnInformation_replyAction" memberEnd="_VeDSLxE9EeGOffqMW1YiZA _VUg7oRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUg7oRE9EeGOffqMW1YiZA" name="replyAction" visibility="public" type="_VeDSIBE9EeGOffqMW1YiZA" subsettedProperty="_VTqnERE9EeGOffqMW1YiZA" association="_VUg7oBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUg7ohE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy3PA9wbEeCT5O2F6sGn5g" name="A_returnValueRecipient_interactionUse" memberEnd="_g0dxotwbEeCT5O2F6sGn5g _gy3PBNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy3PBNwbEeCT5O2F6sGn5g" name="interactionUse" visibility="public" type="_g0dxgNwbEeCT5O2F6sGn5g" association="_gy3PA9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy3PBdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gy3PBtwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUg7oxE9EeGOffqMW1YiZA" name="A_returnValueRecipient_interactionUse" memberEnd="_VZvaAhE9EeGOffqMW1YiZA _VUg7pBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUg7pBE9EeGOffqMW1YiZA" name="interactionUse" visibility="public" type="_VZvZ4BE9EeGOffqMW1YiZA" association="_VUg7oxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUg7pRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUg7phE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy32ENwbEeCT5O2F6sGn5g" name="A_returnValue_interactionUse" memberEnd="_g0dxn9wbEeCT5O2F6sGn5g _gy32EdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy32EdwbEeCT5O2F6sGn5g" name="interactionUse" visibility="public" type="_g0dxgNwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gy32ENwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy32EtwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUg7pxE9EeGOffqMW1YiZA" name="A_returnValue_interactionUse" memberEnd="_VZvZ_xE9EeGOffqMW1YiZA _VUg7qBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUg7qBE9EeGOffqMW1YiZA" name="interactionUse" visibility="public" type="_VZvZ4BE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VUg7pxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUg7qRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy32E9wbEeCT5O2F6sGn5g" name="A_roleBinding_collaborationUse" memberEnd="_gz2tjNwbEeCT5O2F6sGn5g _gy32FNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy32FNwbEeCT5O2F6sGn5g" name="collaborationUse" visibility="public" type="_gz2tgNwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gy32E9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy32FdwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUhisBE9EeGOffqMW1YiZA" name="A_roleBinding_collaborationUse" memberEnd="_VX7cDBE9EeGOffqMW1YiZA _VUhisRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUhisRE9EeGOffqMW1YiZA" name="collaborationUse" visibility="public" type="_VX7cABE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VUhisBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUhishE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy32FtwbEeCT5O2F6sGn5g" name="A_role_structuredClassifier" isDerived="true" memberEnd="_g2JMkdwbEeCT5O2F6sGn5g _gy32F9wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy32F9wbEeCT5O2F6sGn5g" name="structuredClassifier" visibility="public" type="_FQiVsGwYEdqHKKVoxc0dlA" subsettedProperty="_gyjF9NwbEeCT5O2F6sGn5g" association="_gy32FtwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy32GNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gy32GdwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUhisxE9EeGOffqMW1YiZA" name="A_role_structuredClassifier" isDerived="true" memberEnd="_VekPgBE9EeGOffqMW1YiZA _VUhitBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUhitBE9EeGOffqMW1YiZA" name="structuredClassifier" visibility="public" type="_FQiVsGwYEdqHKKVoxc0dlA" subsettedProperty="_VTwttRE9EeGOffqMW1YiZA" association="_VUhisxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUhitRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUhithE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy32GtwbEeCT5O2F6sGn5g" name="A_second_testIdentityAction" memberEnd="_g2P6QNwbEeCT5O2F6sGn5g _gy32G9wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy32G9wbEeCT5O2F6sGn5g" name="testIdentityAction" visibility="public" type="_g2P6MNwbEeCT5O2F6sGn5g" subsettedProperty="_gygpt9wbEeCT5O2F6sGn5g" association="_gy32GtwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy32HNwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUhitxE9EeGOffqMW1YiZA" name="A_second_testIdentityAction" memberEnd="_VeunoBE9EeGOffqMW1YiZA _VUhiuBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUhiuBE9EeGOffqMW1YiZA" name="testIdentityAction" visibility="public" type="_VeunkBE9EeGOffqMW1YiZA" subsettedProperty="_VTqnERE9EeGOffqMW1YiZA" association="_VUhitxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUhiuRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy4dINwbEeCT5O2F6sGn5g" name="A_selection_objectFlow" memberEnd="_g1WictwbEeCT5O2F6sGn5g _gy4dIdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy4dIdwbEeCT5O2F6sGn5g" name="objectFlow" visibility="public" type="_g1WiUNwbEeCT5O2F6sGn5g" association="_gy4dINwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy4dItwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gy4dI9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUiJwBE9EeGOffqMW1YiZA" name="A_selection_objectFlow" memberEnd="_VbVVchE9EeGOffqMW1YiZA _VUiJwRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUiJwRE9EeGOffqMW1YiZA" name="objectFlow" visibility="public" type="_VbVVUBE9EeGOffqMW1YiZA" association="_VUiJwBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUiJwhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUiJwxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy4dJNwbEeCT5O2F6sGn5g" name="A_selection_objectNode" memberEnd="_g1XJeNwbEeCT5O2F6sGn5g _gy4dJdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy4dJdwbEeCT5O2F6sGn5g" name="objectNode" visibility="public" type="_g1XJYNwbEeCT5O2F6sGn5g" association="_gy4dJNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy4dJtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gy4dJ9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUiJxBE9EeGOffqMW1YiZA" name="A_selection_objectNode" memberEnd="_VbcDGBE9EeGOffqMW1YiZA _VUiJxRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUiJxRE9EeGOffqMW1YiZA" name="objectNode" visibility="public" type="_VbcDABE9EeGOffqMW1YiZA" association="_VUiJxBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUiJxhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUiJxxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy4dKNwbEeCT5O2F6sGn5g" name="A_selector_lifeline" memberEnd="_g0hb-NwbEeCT5O2F6sGn5g _gy4dKdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy4dKdwbEeCT5O2F6sGn5g" name="lifeline" visibility="public" type="_g0hb4NwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gy4dKNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy4dKtwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUiw0BE9EeGOffqMW1YiZA" name="A_selector_lifeline" memberEnd="_VZ0SeBE9EeGOffqMW1YiZA _VUiw0RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUiw0RE9EeGOffqMW1YiZA" name="lifeline" visibility="public" type="_VZ0SYBE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VUiw0BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUiw0hE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy4dK9wbEeCT5O2F6sGn5g" name="A_sendEvent_endMessage" memberEnd="_g1LjM9wbEeCT5O2F6sGn5g _gy4dLNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy4dLNwbEeCT5O2F6sGn5g" name="endMessage" visibility="public" type="_gfgNwGveEdq4DLWZOhbdEA" subsettedProperty="_g1MKQ9wbEeCT5O2F6sGn5g" association="_gy4dK9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy4dLdwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUiw0xE9EeGOffqMW1YiZA" name="A_sendEvent_endMessage" memberEnd="_VaBtxhE9EeGOffqMW1YiZA _VUiw1BE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUiw1BE9EeGOffqMW1YiZA" name="endMessage" visibility="public" type="_gfgNwGveEdq4DLWZOhbdEA" subsettedProperty="_VaEKAxE9EeGOffqMW1YiZA" association="_VUiw0xE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUiw1RE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy4dLtwbEeCT5O2F6sGn5g" name="A_setupPart_loopNode" memberEnd="_g1JuKNwbEeCT5O2F6sGn5g _gy4dL9wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy4dL9wbEeCT5O2F6sGn5g" name="loopNode" visibility="public" type="_g1JuANwbEeCT5O2F6sGn5g" association="_gy4dLtwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy4dMNwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUiw1hE9EeGOffqMW1YiZA" name="A_setupPart_loopNode" memberEnd="_VZ_RqBE9EeGOffqMW1YiZA _VUiw1xE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUiw1xE9EeGOffqMW1YiZA" name="loopNode" visibility="public" type="_VZ_RgBE9EeGOffqMW1YiZA" association="_VUiw1hE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUiw2BE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy5EMNwbEeCT5O2F6sGn5g" name="A_signal_broadcastSignalAction" memberEnd="_gzlnydwbEeCT5O2F6sGn5g _gy5EMdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy5EMdwbEeCT5O2F6sGn5g" name="broadcastSignalAction" visibility="public" type="_gzlnwNwbEeCT5O2F6sGn5g" association="_gy5EMNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy5EMtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gy5EM9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUjX4BE9EeGOffqMW1YiZA" name="A_signal_broadcastSignalAction" memberEnd="_VWR2NhE9EeGOffqMW1YiZA _VUjX4RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUjX4RE9EeGOffqMW1YiZA" name="broadcastSignalAction" visibility="public" type="_VWRPIBE9EeGOffqMW1YiZA" association="_VUjX4BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUjX4hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUjX4xE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy5ENNwbEeCT5O2F6sGn5g" name="A_signal_reception" memberEnd="_g14t1twbEeCT5O2F6sGn5g _gy5ENdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy5ENdwbEeCT5O2F6sGn5g" name="reception" visibility="public" type="_g14t0NwbEeCT5O2F6sGn5g" association="_gy5ENNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy5ENtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gy5EN9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUjX5BE9EeGOffqMW1YiZA" name="A_signal_reception" memberEnd="_Vdji5hE9EeGOffqMW1YiZA _VUjX5RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUjX5RE9EeGOffqMW1YiZA" name="reception" visibility="public" type="_Vdji4BE9EeGOffqMW1YiZA" association="_VUjX5BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUjX5hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUjX5xE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy5EONwbEeCT5O2F6sGn5g" name="A_signal_sendSignalAction" memberEnd="_g1-0gNwbEeCT5O2F6sGn5g _gy5EOdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy5EOdwbEeCT5O2F6sGn5g" name="sendSignalAction" visibility="public" type="_g1-0d9wbEeCT5O2F6sGn5g" association="_gy5EONwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy5EOtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gy5EO9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUj-8BE9EeGOffqMW1YiZA" name="A_signal_sendSignalAction" memberEnd="_VeKm6RE9EeGOffqMW1YiZA _VUj-8RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUj-8RE9EeGOffqMW1YiZA" name="sendSignalAction" visibility="public" type="_VeKm4BE9EeGOffqMW1YiZA" association="_VUj-8BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUj-8hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUj-8xE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy5EPNwbEeCT5O2F6sGn5g" name="A_signal_signalEvent" memberEnd="_g1_bkNwbEeCT5O2F6sGn5g _gy5EPdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy5EPdwbEeCT5O2F6sGn5g" name="signalEvent" visibility="public" type="_g1_bjdwbEeCT5O2F6sGn5g" association="_gy5EPNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy5EPtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gy5EP9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUj-9BE9EeGOffqMW1YiZA" name="A_signal_signalEvent" memberEnd="_VeL1BxE9EeGOffqMW1YiZA _VUj-9RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUj-9RE9EeGOffqMW1YiZA" name="signalEvent" visibility="public" type="_VeL1BBE9EeGOffqMW1YiZA" association="_VUj-9BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUj-9hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUj-9xE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy5rQNwbEeCT5O2F6sGn5g" name="A_signature_message" memberEnd="_g1LjNtwbEeCT5O2F6sGn5g _gy5rQdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy5rQdwbEeCT5O2F6sGn5g" name="message" visibility="public" type="_gfgNwGveEdq4DLWZOhbdEA" association="_gy5rQNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy5rQtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gy5rQ9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUj--BE9EeGOffqMW1YiZA" name="A_signature_message" memberEnd="_VaBtyRE9EeGOffqMW1YiZA _VUj--RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUj--RE9EeGOffqMW1YiZA" name="message" visibility="public" type="_gfgNwGveEdq4DLWZOhbdEA" association="_VUj--BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUj--hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUj--xE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy5rRNwbEeCT5O2F6sGn5g" name="A_signature_templateBinding" memberEnd="_g2LBv9wbEeCT5O2F6sGn5g _gy5rRdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy5rRdwbEeCT5O2F6sGn5g" name="templateBinding" visibility="public" type="_g2LBsNwbEeCT5O2F6sGn5g" subsettedProperty="_gy8ukdwbEeCT5O2F6sGn5g" association="_gy5rRNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy5rRtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gy5rR9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUkmABE9EeGOffqMW1YiZA" name="A_signature_templateBinding" memberEnd="_VemrzxE9EeGOffqMW1YiZA _VUkmARE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUkmARE9EeGOffqMW1YiZA" name="templateBinding" visibility="public" type="_VemrwBE9EeGOffqMW1YiZA" subsettedProperty="_VUpegRE9EeGOffqMW1YiZA" association="_VUkmABE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUkmAhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUkmAxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy5rSNwbEeCT5O2F6sGn5g" name="A_slot_owningInstance" memberEnd="_g0auRtwbEeCT5O2F6sGn5g _g2ACldwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy5rSdwbEeCT5O2F6sGn5g" name="A_source_directedRelationship" isDerived="true" memberEnd="_g0HzQdwbEeCT5O2F6sGn5g _gy5rStwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy5rStwbEeCT5O2F6sGn5g" name="directedRelationship" visibility="public" type="_JBgfoKPAEdqi_5gqUMOQtA" subsettedProperty="_gyyWi9wbEeCT5O2F6sGn5g" association="_gy5rSdwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy5rS9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gy5rTNwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUkmBBE9EeGOffqMW1YiZA" name="A_slot_owningInstance" memberEnd="_VZrIhhE9EeGOffqMW1YiZA _VeMcFRE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUkmBRE9EeGOffqMW1YiZA" name="A_source_directedRelationship" isDerived="true" memberEnd="_VY66hRE9EeGOffqMW1YiZA _VUkmBhE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUkmBhE9EeGOffqMW1YiZA" name="directedRelationship" visibility="public" type="_JBgfoKPAEdqi_5gqUMOQtA" subsettedProperty="_VUZm4RE9EeGOffqMW1YiZA" association="_VUkmBRE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUkmBxE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUkmCBE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy5rTdwbEeCT5O2F6sGn5g" name="A_specification_durationConstraint" memberEnd="_g0IaWtwbEeCT5O2F6sGn5g _gy5rT9wbEeCT5O2F6sGn5g">
-      <generalization xmi:id="_gy5rTtwbEeCT5O2F6sGn5g" general="_gy6SUNwbEeCT5O2F6sGn5g"/>
-      <ownedEnd xmi:id="_gy5rT9wbEeCT5O2F6sGn5g" name="durationConstraint" visibility="public" type="_g0IaUNwbEeCT5O2F6sGn5g" redefinedProperty="_gy6SUtwbEeCT5O2F6sGn5g" association="_gy5rTdwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy5rUNwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUlNEBE9EeGOffqMW1YiZA" name="A_specification_durationConstraint" memberEnd="_VY-k6hE9EeGOffqMW1YiZA _VUlNEhE9EeGOffqMW1YiZA">
+      <generalization xmi:id="_VUlNERE9EeGOffqMW1YiZA" general="_VUlNFBE9EeGOffqMW1YiZA"/>
+      <ownedEnd xmi:id="_VUlNEhE9EeGOffqMW1YiZA" name="durationConstraint" visibility="public" type="_VY-k4BE9EeGOffqMW1YiZA" redefinedProperty="_VUlNFhE9EeGOffqMW1YiZA" association="_VUlNEBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUlNExE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy6SUNwbEeCT5O2F6sGn5g" name="A_specification_intervalConstraint" memberEnd="_g0gNw9wbEeCT5O2F6sGn5g _gy6SUtwbEeCT5O2F6sGn5g">
-      <generalization xmi:id="_gy6SUdwbEeCT5O2F6sGn5g" general="_gy6SVNwbEeCT5O2F6sGn5g"/>
-      <ownedEnd xmi:id="_gy6SUtwbEeCT5O2F6sGn5g" name="intervalConstraint" visibility="public" type="_g0gNwNwbEeCT5O2F6sGn5g" redefinedProperty="_gy6SVdwbEeCT5O2F6sGn5g" association="_gy6SUNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy6SU9wbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUlNFBE9EeGOffqMW1YiZA" name="A_specification_intervalConstraint" memberEnd="_VZydOhE9EeGOffqMW1YiZA _VUlNFhE9EeGOffqMW1YiZA">
+      <generalization xmi:id="_VUlNFRE9EeGOffqMW1YiZA" general="_VUl0IBE9EeGOffqMW1YiZA"/>
+      <ownedEnd xmi:id="_VUlNFhE9EeGOffqMW1YiZA" name="intervalConstraint" visibility="public" type="_VZydNxE9EeGOffqMW1YiZA" redefinedProperty="_VUl0IRE9EeGOffqMW1YiZA" association="_VUlNFBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUlNFxE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy6SVNwbEeCT5O2F6sGn5g" name="A_specification_owningConstraint" memberEnd="_g0AeltwbEeCT5O2F6sGn5g _gy6SVdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy6SVdwbEeCT5O2F6sGn5g" name="owningConstraint" visibility="public" type="_g0AegNwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gy6SVNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy6SVtwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUl0IBE9EeGOffqMW1YiZA" name="A_specification_owningConstraint" memberEnd="_VYbLVhE9EeGOffqMW1YiZA _VUl0IRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUl0IRE9EeGOffqMW1YiZA" name="owningConstraint" visibility="public" type="_VYbLQBE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VUl0IBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUl0IhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy6SV9wbEeCT5O2F6sGn5g" name="A_specification_owningInstanceSpec" memberEnd="_g0auStwbEeCT5O2F6sGn5g _gy6SWNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy6SWNwbEeCT5O2F6sGn5g" name="owningInstanceSpec" visibility="public" type="_g0auMNwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gy6SV9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy6SWdwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUl0IxE9EeGOffqMW1YiZA" name="A_specification_owningInstanceSpec" memberEnd="_VZrIihE9EeGOffqMW1YiZA _VUl0JBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUl0JBE9EeGOffqMW1YiZA" name="owningInstanceSpec" visibility="public" type="_VZrIcBE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VUl0IxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUl0JRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy6SWtwbEeCT5O2F6sGn5g" name="A_specification_timeConstraint" memberEnd="_g2P6SdwbEeCT5O2F6sGn5g _gy6SXNwbEeCT5O2F6sGn5g">
-      <generalization xmi:id="_gy6SW9wbEeCT5O2F6sGn5g" general="_gy6SUNwbEeCT5O2F6sGn5g"/>
-      <ownedEnd xmi:id="_gy6SXNwbEeCT5O2F6sGn5g" name="timeConstraint" visibility="public" type="_g2P6QtwbEeCT5O2F6sGn5g" redefinedProperty="_gy6SUtwbEeCT5O2F6sGn5g" association="_gy6SWtwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy6SXdwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUl0JhE9EeGOffqMW1YiZA" name="A_specification_timeConstraint" memberEnd="_VeunqRE9EeGOffqMW1YiZA _VUl0KBE9EeGOffqMW1YiZA">
+      <generalization xmi:id="_VUl0JxE9EeGOffqMW1YiZA" general="_VUlNFBE9EeGOffqMW1YiZA"/>
+      <ownedEnd xmi:id="_VUl0KBE9EeGOffqMW1YiZA" name="timeConstraint" visibility="public" type="_VeunohE9EeGOffqMW1YiZA" redefinedProperty="_VUlNFhE9EeGOffqMW1YiZA" association="_VUl0JhE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUl0KRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy65YNwbEeCT5O2F6sGn5g" name="A_start_executionSpecification" memberEnd="_g0PIDdwbEeCT5O2F6sGn5g _gy65YtwbEeCT5O2F6sGn5g">
-      <ownedComment xmi:id="_gy65YdwbEeCT5O2F6sGn5g" annotatedElement="_gy65YNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUmbMBE9EeGOffqMW1YiZA" name="A_start_executionSpecification" memberEnd="_VZQRvRE9EeGOffqMW1YiZA _VUmbMhE9EeGOffqMW1YiZA">
+      <ownedComment xmi:id="_VUmbMRE9EeGOffqMW1YiZA" annotatedElement="_VUmbMBE9EeGOffqMW1YiZA">
         <body>The event shows the time point at which the action begins execution.</body>
       </ownedComment>
-      <ownedEnd xmi:id="_gy65YtwbEeCT5O2F6sGn5g" name="executionSpecification" visibility="public" type="_g0PIBdwbEeCT5O2F6sGn5g" association="_gy65YNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy65Y9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gy65ZNwbEeCT5O2F6sGn5g" value="*"/>
+      <ownedEnd xmi:id="_VUmbMhE9EeGOffqMW1YiZA" name="executionSpecification" visibility="public" type="_VZQRtRE9EeGOffqMW1YiZA" association="_VUmbMBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUmbMxE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUmbNBE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy65ZdwbEeCT5O2F6sGn5g" name="A_stateInvariant_owningState" memberEnd="_g2CfD9wbEeCT5O2F6sGn5g _gy65ZtwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy65ZtwbEeCT5O2F6sGn5g" name="owningState" visibility="public" type="_g2Ce0NwbEeCT5O2F6sGn5g" subsettedProperty="_g0Aek9wbEeCT5O2F6sGn5g" association="_gy65ZdwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy65Z9wbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUmbNRE9EeGOffqMW1YiZA" name="A_stateInvariant_owningState" memberEnd="_VeR72xE9EeGOffqMW1YiZA _VUmbNhE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUmbNhE9EeGOffqMW1YiZA" name="owningState" visibility="public" type="_VeRUkBE9EeGOffqMW1YiZA" subsettedProperty="_VYbLUxE9EeGOffqMW1YiZA" association="_VUmbNRE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUmbNxE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy65aNwbEeCT5O2F6sGn5g" name="A_structuralFeature_structuralFeatureAction" memberEnd="_g2H-dNwbEeCT5O2F6sGn5g _gy65adwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy65adwbEeCT5O2F6sGn5g" name="structuralFeatureAction" visibility="public" type="_g2H-YNwbEeCT5O2F6sGn5g" association="_gy65aNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy65atwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gy65a9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUmbOBE9EeGOffqMW1YiZA" name="A_structuralFeature_structuralFeatureAction" memberEnd="_VehMRBE9EeGOffqMW1YiZA _VUmbORE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUmbORE9EeGOffqMW1YiZA" name="structuralFeatureAction" visibility="public" type="_VehMMBE9EeGOffqMW1YiZA" association="_VUmbOBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUmbOhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUmbOxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy65bNwbEeCT5O2F6sGn5g" name="A_structuredNodeInput_structuredActivityNode" memberEnd="_g2IlftwbEeCT5O2F6sGn5g _gy65bdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy65bdwbEeCT5O2F6sGn5g" name="structuredActivityNode" visibility="public" type="_w1_2cLLREeCsYvaJqFFivQ" subsettedProperty="_gygpt9wbEeCT5O2F6sGn5g" association="_gy65bNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy65btwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUnCQBE9EeGOffqMW1YiZA" name="A_structuredNodeInput_structuredActivityNode" memberEnd="_VeiaVxE9EeGOffqMW1YiZA _VUnCQRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUnCQRE9EeGOffqMW1YiZA" name="structuredActivityNode" visibility="public" type="_w1_2cLLREeCsYvaJqFFivQ" subsettedProperty="_VTqnERE9EeGOffqMW1YiZA" association="_VUnCQBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUnCQhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy65b9wbEeCT5O2F6sGn5g" name="A_structuredNodeOutput_structuredActivityNode" memberEnd="_g2IlgdwbEeCT5O2F6sGn5g _gy65cNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy65cNwbEeCT5O2F6sGn5g" name="structuredActivityNode" visibility="public" type="_w1_2cLLREeCsYvaJqFFivQ" subsettedProperty="_gyn-dNwbEeCT5O2F6sGn5g" association="_gy65b9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy65cdwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUnCQxE9EeGOffqMW1YiZA" name="A_structuredNodeOutput_structuredActivityNode" memberEnd="_VeiaWhE9EeGOffqMW1YiZA _VUnCRBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUnCRBE9EeGOffqMW1YiZA" name="structuredActivityNode" visibility="public" type="_w1_2cLLREeCsYvaJqFFivQ" subsettedProperty="_VT-JFBE9EeGOffqMW1YiZA" association="_VUnCQxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUnCRRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy65ctwbEeCT5O2F6sGn5g" name="A_structuredNode_activity" memberEnd="_gzXlWNwbEeCT5O2F6sGn5g _g2IlcNwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy7gcNwbEeCT5O2F6sGn5g" name="A_subExpression_owningExpression" memberEnd="_g2GwTdwbEeCT5O2F6sGn5g _g2GwStwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy7gcdwbEeCT5O2F6sGn5g" name="A_subgroup_superGroup" isDerived="true" memberEnd="_gzaBp9wbEeCT5O2F6sGn5g _gzaBq9wbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy7gctwbEeCT5O2F6sGn5g" name="A_subject_useCase" memberEnd="_g2WA69wbEeCT5O2F6sGn5g _gzvY1twbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy7gc9wbEeCT5O2F6sGn5g" name="A_submachineState_submachine" memberEnd="_g2EUGtwbEeCT5O2F6sGn5g _g2CfEtwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy7gdNwbEeCT5O2F6sGn5g" name="A_subpartition_superPartition" memberEnd="_gzcd8NwbEeCT5O2F6sGn5g _gzcd9NwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy7gddwbEeCT5O2F6sGn5g" name="A_subsettedProperty_property" memberEnd="_g1uVxNwbEeCT5O2F6sGn5g _gy7gdtwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy7gdtwbEeCT5O2F6sGn5g" name="property" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" association="_gy7gddwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy7gd9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gy7geNwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_w4820AtEEeGcpbeCPJfCmw" name="A_structuredNode_activity" memberEnd="_EOSYAAs-EeGcpbeCPJfCmw _gnnw0AtZEeGV4NAcunjVqQ _bQeSgAtEEeGcpbeCPJfCmw">
+      <ownedEnd xmi:id="_bQeSgAtEEeGcpbeCPJfCmw" name="activity" visibility="private" type="_eGtFwLLREeCsYvaJqFFivQ" association="_w4820AtEEeGcpbeCPJfCmw">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_cva8wAtEEeGcpbeCPJfCmw"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy7gedwbEeCT5O2F6sGn5g" name="A_substitution_substitutingClassifier" memberEnd="_gzvYz9wbEeCT5O2F6sGn5g _g2KapdwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy7getwbEeCT5O2F6sGn5g" name="A_subvertex_container" memberEnd="_g18_W9wbEeCT5O2F6sGn5g _g2ZrOtwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy8HgNwbEeCT5O2F6sGn5g" name="A_superClass_class" isDerived="true" memberEnd="_gzp5PNwbEeCT5O2F6sGn5g _gy8HgdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy8HgdwbEeCT5O2F6sGn5g" name="class" visibility="public" type="_00owUGvdEdq4DLWZOhbdEA" subsettedProperty="_gyeNcdwbEeCT5O2F6sGn5g" association="_gy8HgNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy8HgtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gy8Hg9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUnCRhE9EeGOffqMW1YiZA" name="A_subExpression_owningExpression" memberEnd="_VefXDRE9EeGOffqMW1YiZA _VefXChE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUnpUBE9EeGOffqMW1YiZA" name="A_subgroup_superGroup" isDerived="true" memberEnd="_VVek8hE9EeGOffqMW1YiZA _VVek9hE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUnpURE9EeGOffqMW1YiZA" name="A_subject_useCase" memberEnd="_VfFM-xE9EeGOffqMW1YiZA _VXunsBE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUnpUhE9EeGOffqMW1YiZA" name="A_submachineState_submachine" memberEnd="_VeWNKhE9EeGOffqMW1YiZA _VeR73hE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUnpUxE9EeGOffqMW1YiZA" name="A_subpartition_superPartition" memberEnd="_VVkrlxE9EeGOffqMW1YiZA _VVkrmxE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUnpVBE9EeGOffqMW1YiZA" name="A_subsettedProperty_property" memberEnd="_VdIFFBE9EeGOffqMW1YiZA _VUnpVRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUnpVRE9EeGOffqMW1YiZA" name="property" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" association="_VUnpVBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUnpVhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUnpVxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy8HhNwbEeCT5O2F6sGn5g" name="A_supplier_supplierDependency" memberEnd="_g0EI5twbEeCT5O2F6sGn5g _gy8HhdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy8HhdwbEeCT5O2F6sGn5g" name="supplierDependency" visibility="public" type="_rEDGkGwKEdq7X4sGURiZYA" subsettedProperty="_gy8ukdwbEeCT5O2F6sGn5g" association="_gy8HhNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gy8HhtwbEeCT5O2F6sGn5g" annotatedElement="_gy8HhdwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUoQYBE9EeGOffqMW1YiZA" name="A_substitution_substitutingClassifier" memberEnd="_VXuApxE9EeGOffqMW1YiZA _VeldpRE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUoQYRE9EeGOffqMW1YiZA" name="A_subvertex_container" memberEnd="_VeA1-xE9EeGOffqMW1YiZA _VfI3QRE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUoQYhE9EeGOffqMW1YiZA" name="A_superClass_class" isDerived="true" memberEnd="_VWaZEBE9EeGOffqMW1YiZA _VUoQYxE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUoQYxE9EeGOffqMW1YiZA" name="class" visibility="public" type="_00owUGvdEdq4DLWZOhbdEA" subsettedProperty="_VTkgdBE9EeGOffqMW1YiZA" association="_VUoQYhE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUoQZBE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUoQZRE9EeGOffqMW1YiZA" value="*"/>
+      </ownedEnd>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUo3cBE9EeGOffqMW1YiZA" name="A_supplier_supplierDependency" memberEnd="_VYyXoxE9EeGOffqMW1YiZA _VUo3cRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUo3cRE9EeGOffqMW1YiZA" name="supplierDependency" visibility="public" type="_rEDGkGwKEdq7X4sGURiZYA" subsettedProperty="_VUpegRE9EeGOffqMW1YiZA" association="_VUo3cBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VUo3chE9EeGOffqMW1YiZA" annotatedElement="_VUo3cRE9EeGOffqMW1YiZA">
           <body>Indicates the dependencies that reference the supplier.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy8Hh9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gy8HiNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUo3cxE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUo3dBE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy8HidwbEeCT5O2F6sGn5g" name="A_target_callOperationAction" memberEnd="_gzndAdwbEeCT5O2F6sGn5g _gy8HitwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy8HitwbEeCT5O2F6sGn5g" name="callOperationAction" visibility="public" type="_gznc8NwbEeCT5O2F6sGn5g" subsettedProperty="_gygpt9wbEeCT5O2F6sGn5g" association="_gy8HidwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy8Hi9wbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUo3dRE9EeGOffqMW1YiZA" name="A_target_callOperationAction" memberEnd="_VWVgoRE9EeGOffqMW1YiZA _VUo3dhE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUo3dhE9EeGOffqMW1YiZA" name="callOperationAction" visibility="public" type="_VWVgkBE9EeGOffqMW1YiZA" subsettedProperty="_VTqnERE9EeGOffqMW1YiZA" association="_VUo3dRE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUo3dxE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy8HjNwbEeCT5O2F6sGn5g" name="A_target_destroyObjectAction" memberEnd="_g0HMP9wbEeCT5O2F6sGn5g _gy8HjdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy8HjdwbEeCT5O2F6sGn5g" name="destroyObjectAction" visibility="public" type="_g0HMMNwbEeCT5O2F6sGn5g" subsettedProperty="_gygpt9wbEeCT5O2F6sGn5g" association="_gy8HjNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy8HjtwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUo3eBE9EeGOffqMW1YiZA" name="A_target_destroyObjectAction" memberEnd="_VY5FXxE9EeGOffqMW1YiZA _VUo3eRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUo3eRE9EeGOffqMW1YiZA" name="destroyObjectAction" visibility="public" type="_VY5FUBE9EeGOffqMW1YiZA" subsettedProperty="_VTqnERE9EeGOffqMW1YiZA" association="_VUo3eBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUo3ehE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy8ukNwbEeCT5O2F6sGn5g" name="A_target_directedRelationship" isDerived="true" memberEnd="_g0HzRNwbEeCT5O2F6sGn5g _gy8ukdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy8ukdwbEeCT5O2F6sGn5g" name="directedRelationship" visibility="public" type="_JBgfoKPAEdqi_5gqUMOQtA" subsettedProperty="_gyyWi9wbEeCT5O2F6sGn5g" association="_gy8ukNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy8uktwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gy8uk9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUpegBE9EeGOffqMW1YiZA" name="A_target_directedRelationship" isDerived="true" memberEnd="_VY66iBE9EeGOffqMW1YiZA _VUpegRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUpegRE9EeGOffqMW1YiZA" name="directedRelationship" visibility="public" type="_JBgfoKPAEdqi_5gqUMOQtA" subsettedProperty="_VUZm4RE9EeGOffqMW1YiZA" association="_VUpegBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUpeghE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUpegxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy8ulNwbEeCT5O2F6sGn5g" name="A_target_sendObjectAction" memberEnd="_g1-0ddwbEeCT5O2F6sGn5g _gy8uldwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy8uldwbEeCT5O2F6sGn5g" name="sendObjectAction" visibility="public" type="_g1-0cNwbEeCT5O2F6sGn5g" subsettedProperty="_gygpt9wbEeCT5O2F6sGn5g" association="_gy8ulNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy8ultwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUpehBE9EeGOffqMW1YiZA" name="A_target_sendObjectAction" memberEnd="_VeD5NRE9EeGOffqMW1YiZA _VUpehRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUpehRE9EeGOffqMW1YiZA" name="sendObjectAction" visibility="public" type="_VeD5MBE9EeGOffqMW1YiZA" subsettedProperty="_VTqnERE9EeGOffqMW1YiZA" association="_VUpehBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUpehhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy8ul9wbEeCT5O2F6sGn5g" name="A_target_sendSignalAction" memberEnd="_g1-0gtwbEeCT5O2F6sGn5g _gy8umNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy8umNwbEeCT5O2F6sGn5g" name="sendSignalAction" visibility="public" type="_g1-0d9wbEeCT5O2F6sGn5g" subsettedProperty="_gygpt9wbEeCT5O2F6sGn5g" association="_gy8ul9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy8umdwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUpehxE9EeGOffqMW1YiZA" name="A_target_sendSignalAction" memberEnd="_VeKm6xE9EeGOffqMW1YiZA _VUpeiBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUpeiBE9EeGOffqMW1YiZA" name="sendSignalAction" visibility="public" type="_VeKm4BE9EeGOffqMW1YiZA" subsettedProperty="_VTqnERE9EeGOffqMW1YiZA" association="_VUpehxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUpeiRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy8umtwbEeCT5O2F6sGn5g" name="A_templateBinding_boundElement" memberEnd="_g2PTJtwbEeCT5O2F6sGn5g _g2LBudwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy8um9wbEeCT5O2F6sGn5g" name="A_test_clause" memberEnd="_gz04X9wbEeCT5O2F6sGn5g _gy8unNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy8unNwbEeCT5O2F6sGn5g" name="clause" visibility="public" type="_gz0RQNwbEeCT5O2F6sGn5g" association="_gy8um9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy8undwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUqFkBE9EeGOffqMW1YiZA" name="A_templateBinding_boundElement" memberEnd="_VeuAhhE9EeGOffqMW1YiZA _VemryRE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUqFkRE9EeGOffqMW1YiZA" name="A_test_clause" memberEnd="_VX3xvhE9EeGOffqMW1YiZA _VUqFkhE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUqFkhE9EeGOffqMW1YiZA" name="clause" visibility="public" type="_VX3xoBE9EeGOffqMW1YiZA" association="_VUqFkRE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUqFkxE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy9VoNwbEeCT5O2F6sGn5g" name="A_test_loopNode" memberEnd="_g1JuLNwbEeCT5O2F6sGn5g _gy9VodwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy9VodwbEeCT5O2F6sGn5g" name="loopNode" visibility="public" type="_g1JuANwbEeCT5O2F6sGn5g" association="_gy9VoNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy9VotwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUqFlBE9EeGOffqMW1YiZA" name="A_test_loopNode" memberEnd="_VZ_RrBE9EeGOffqMW1YiZA _VUqFlRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUqFlRE9EeGOffqMW1YiZA" name="loopNode" visibility="public" type="_VZ_RgBE9EeGOffqMW1YiZA" association="_VUqFlBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUqFlhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy9Vo9wbEeCT5O2F6sGn5g" name="A_toBefore_after" memberEnd="_g1XwedwbEeCT5O2F6sGn5g _g0V1v9wbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy9VpNwbEeCT5O2F6sGn5g" name="A_transformation_objectFlow" memberEnd="_g1WiddwbEeCT5O2F6sGn5g _gy9VpdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy9VpdwbEeCT5O2F6sGn5g" name="objectFlow" visibility="public" type="_g1WiUNwbEeCT5O2F6sGn5g" association="_gy9VpNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy9VptwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gy9Vp9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUqFlxE9EeGOffqMW1YiZA" name="A_toBefore_after" memberEnd="_VbdRKRE9EeGOffqMW1YiZA _VZe7NhE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUqsoBE9EeGOffqMW1YiZA" name="A_transformation_objectFlow" memberEnd="_VbVVdRE9EeGOffqMW1YiZA _VUqsoRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUqsoRE9EeGOffqMW1YiZA" name="objectFlow" visibility="public" type="_VbVVUBE9EeGOffqMW1YiZA" association="_VUqsoBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUqsohE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUqsoxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy9VqNwbEeCT5O2F6sGn5g" name="A_transition_container" memberEnd="_g18_X9wbEeCT5O2F6sGn5g _g2SWeNwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy9VqdwbEeCT5O2F6sGn5g" name="A_trigger_acceptEventAction" memberEnd="_gzBnJtwbEeCT5O2F6sGn5g _gy9VqtwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy9VqtwbEeCT5O2F6sGn5g" name="acceptEventAction" visibility="public" type="_gzBnENwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gy9VqdwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy9Vq9wbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUqspBE9EeGOffqMW1YiZA" name="A_transition_container" memberEnd="_VeA1_xE9EeGOffqMW1YiZA _Ve8qBRE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUqspRE9EeGOffqMW1YiZA" name="A_trigger_acceptEventAction" memberEnd="_VU259hE9EeGOffqMW1YiZA _VUqsphE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUqsphE9EeGOffqMW1YiZA" name="acceptEventAction" visibility="public" type="_VU254BE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VUqspRE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUqspxE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy9VrNwbEeCT5O2F6sGn5g" name="A_trigger_transition" memberEnd="_g2S9gdwbEeCT5O2F6sGn5g _gy9VrdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy9VrdwbEeCT5O2F6sGn5g" name="transition" visibility="public" type="_ykKV8PnlEdunWsS3se92JQ" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gy9VrNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy9VrtwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUrTsBE9EeGOffqMW1YiZA" name="A_trigger_transition" memberEnd="_Ve94IBE9EeGOffqMW1YiZA _VUrTsRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUrTsRE9EeGOffqMW1YiZA" name="transition" visibility="public" type="_ykKV8PnlEdunWsS3se92JQ" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VUrTsBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUrTshE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy98sNwbEeCT5O2F6sGn5g" name="A_type_collaborationUse" memberEnd="_gz2tkNwbEeCT5O2F6sGn5g _gy98sdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy98sdwbEeCT5O2F6sGn5g" name="collaborationUse" visibility="public" type="_gz2tgNwbEeCT5O2F6sGn5g" association="_gy98sNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy98stwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gy98s9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUrTsxE9EeGOffqMW1YiZA" name="A_type_collaborationUse" memberEnd="_VX7cEBE9EeGOffqMW1YiZA _VUrTtBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUrTtBE9EeGOffqMW1YiZA" name="collaborationUse" visibility="public" type="_VX7cABE9EeGOffqMW1YiZA" association="_VUrTsxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUrTtRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUrTthE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy98tNwbEeCT5O2F6sGn5g" name="A_type_connector" memberEnd="_gz-CRtwbEeCT5O2F6sGn5g _gy98tdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy98tdwbEeCT5O2F6sGn5g" name="connector" visibility="public" type="_YxC2YLLWEeCsYvaJqFFivQ" association="_gy98tNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy98ttwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gy98t9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUr6wBE9EeGOffqMW1YiZA" name="A_type_connector" memberEnd="_VYOW8BE9EeGOffqMW1YiZA _VUr6wRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUr6wRE9EeGOffqMW1YiZA" name="connector" visibility="public" type="_YxC2YLLWEeCsYvaJqFFivQ" association="_VUr6wBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUr6whE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUr6wxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy98uNwbEeCT5O2F6sGn5g" name="A_type_extensionEnd" memberEnd="_g0Sya9wbEeCT5O2F6sGn5g _gy98udwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy98udwbEeCT5O2F6sGn5g" name="extensionEnd" visibility="public" type="_2QuT0GvdEdq4DLWZOhbdEA" subsettedProperty="_gy-jwdwbEeCT5O2F6sGn5g" association="_gy98uNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy98utwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gy98u9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUr6xBE9EeGOffqMW1YiZA" name="A_type_extensionEnd" memberEnd="_VZWYWBE9EeGOffqMW1YiZA _VUr6xRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUr6xRE9EeGOffqMW1YiZA" name="extensionEnd" visibility="public" type="_2QuT0GvdEdq4DLWZOhbdEA" subsettedProperty="_VUtv8RE9EeGOffqMW1YiZA" association="_VUr6xBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUr6xhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUr6xxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy98vNwbEeCT5O2F6sGn5g" name="A_type_operation" isDerived="true" memberEnd="_g1dQGNwbEeCT5O2F6sGn5g _gy98vdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy98vdwbEeCT5O2F6sGn5g" name="operation" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" association="_gy98vNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy98vtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gy98v9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUtI4BE9EeGOffqMW1YiZA" name="A_type_operation" isDerived="true" memberEnd="_VcBR1xE9EeGOffqMW1YiZA _VUtI4RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUtI4RE9EeGOffqMW1YiZA" name="operation" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" association="_VUtI4BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUtI4hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUtI4xE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy-jwNwbEeCT5O2F6sGn5g" name="A_type_typedElement" memberEnd="_g2UytNwbEeCT5O2F6sGn5g _gy-jwdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy-jwdwbEeCT5O2F6sGn5g" name="typedElement" visibility="public" type="_g2UysNwbEeCT5O2F6sGn5g" association="_gy-jwNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy-jwtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gy-jw9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUtv8BE9EeGOffqMW1YiZA" name="A_type_typedElement" memberEnd="_VfDXtBE9EeGOffqMW1YiZA _VUtv8RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUtv8RE9EeGOffqMW1YiZA" name="typedElement" visibility="public" type="_VfDXsBE9EeGOffqMW1YiZA" association="_VUtv8BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUtv8hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUtv8xE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy-jxNwbEeCT5O2F6sGn5g" name="A_unmarshallType_unmarshallAction" memberEnd="_g2VZ3dwbEeCT5O2F6sGn5g _gy-jxdwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy-jxdwbEeCT5O2F6sGn5g" name="unmarshallAction" visibility="public" type="_g2VZwNwbEeCT5O2F6sGn5g" association="_gy-jxNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy-jxtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gy-jx9wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUtv9BE9EeGOffqMW1YiZA" name="A_unmarshallType_unmarshallAction" memberEnd="_VfD-3RE9EeGOffqMW1YiZA _VUtv9RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUtv9RE9EeGOffqMW1YiZA" name="unmarshallAction" visibility="public" type="_VfD-wBE9EeGOffqMW1YiZA" association="_VUtv9BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUtv9hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUtv9xE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy-jyNwbEeCT5O2F6sGn5g" name="A_upperBound_objectNode" memberEnd="_g1XJe9wbEeCT5O2F6sGn5g _gy-jydwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy-jydwbEeCT5O2F6sGn5g" name="objectNode" visibility="public" type="_g1XJYNwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gy-jyNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy-jytwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUtv-BE9EeGOffqMW1YiZA" name="A_upperBound_objectNode" memberEnd="_VbcDGxE9EeGOffqMW1YiZA _VUtv-RE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUtv-RE9EeGOffqMW1YiZA" name="objectNode" visibility="public" type="_VbcDABE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VUtv-BE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUtv-hE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy-jy9wbEeCT5O2F6sGn5g" name="A_upperValue_owningUpper" memberEnd="_g1N_ctwbEeCT5O2F6sGn5g _gy-jzNwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy-jzNwbEeCT5O2F6sGn5g" name="owningUpper" visibility="public" type="_Gjgl0GveEdq4DLWZOhbdEA" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gy-jy9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy-jzdwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUuXABE9EeGOffqMW1YiZA" name="A_upperValue_owningUpper" memberEnd="_VaHNXhE9EeGOffqMW1YiZA _VUuXARE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUuXARE9EeGOffqMW1YiZA" name="owningUpper" visibility="public" type="_Gjgl0GveEdq4DLWZOhbdEA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VUuXABE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUuXAhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy-jztwbEeCT5O2F6sGn5g" name="A_utilizedElement_manifestation" memberEnd="_g1KVE9wbEeCT5O2F6sGn5g _gy-jz9wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy-jz9wbEeCT5O2F6sGn5g" name="manifestation" visibility="public" type="_g1KVENwbEeCT5O2F6sGn5g" subsettedProperty="_gy8HhdwbEeCT5O2F6sGn5g" association="_gy-jztwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy-j0NwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gy-j0dwbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUuXAxE9EeGOffqMW1YiZA" name="A_utilizedElement_manifestation" memberEnd="_VZ_RshE9EeGOffqMW1YiZA _VUuXBBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUuXBBE9EeGOffqMW1YiZA" name="manifestation" visibility="public" type="_VZ_RrxE9EeGOffqMW1YiZA" subsettedProperty="_VUo3cRE9EeGOffqMW1YiZA" association="_VUuXAxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUuXBRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUuXBhE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy_K0NwbEeCT5O2F6sGn5g" name="A_value_linkEndData" memberEnd="_g0jRKNwbEeCT5O2F6sGn5g _gy_K0dwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy_K0dwbEeCT5O2F6sGn5g" name="linkEndData" visibility="public" type="_g0jRENwbEeCT5O2F6sGn5g" association="_gy_K0NwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy_K0twbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUwMMBE9EeGOffqMW1YiZA" name="A_value_linkEndData" memberEnd="_VZ3VyBE9EeGOffqMW1YiZA _VUwMMRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUwMMRE9EeGOffqMW1YiZA" name="linkEndData" visibility="public" type="_VZ3VsBE9EeGOffqMW1YiZA" association="_VUwMMBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUwMMhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy_K09wbEeCT5O2F6sGn5g" name="A_value_owningSlot" memberEnd="_g2ACl9wbEeCT5O2F6sGn5g _gy_K1NwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy_K1NwbEeCT5O2F6sGn5g" name="owningSlot" visibility="public" type="_g2ACkNwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gy_K09wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy_K1dwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUwMMxE9EeGOffqMW1YiZA" name="A_value_owningSlot" memberEnd="_VeMcFxE9EeGOffqMW1YiZA _VUwMNBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUwMNBE9EeGOffqMW1YiZA" name="owningSlot" visibility="public" type="_VeMcEBE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VUwMMxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUwMNRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy_K1twbEeCT5O2F6sGn5g" name="A_value_qualifierValue" memberEnd="_g1zOddwbEeCT5O2F6sGn5g _gy_K19wbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy_K19wbEeCT5O2F6sGn5g" name="qualifierValue" visibility="public" type="_g1zOZ9wbEeCT5O2F6sGn5g" association="_gy_K1twbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy_K2NwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUwMNhE9EeGOffqMW1YiZA" name="A_value_qualifierValue" memberEnd="_VdbnHhE9EeGOffqMW1YiZA _VUwMNxE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUwMNxE9EeGOffqMW1YiZA" name="qualifierValue" visibility="public" type="_VdbnEBE9EeGOffqMW1YiZA" association="_VUwMNhE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUwMOBE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy_K2dwbEeCT5O2F6sGn5g" name="A_value_valuePin" memberEnd="_g2Wn6dwbEeCT5O2F6sGn5g _gy_K2twbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy_K2twbEeCT5O2F6sGn5g" name="valuePin" visibility="public" type="_g2Wn4NwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gy_K2dwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy_K29wbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUwzQBE9EeGOffqMW1YiZA" name="A_value_valuePin" memberEnd="_VfFNDxE9EeGOffqMW1YiZA _VUwzQRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUwzQRE9EeGOffqMW1YiZA" name="valuePin" visibility="public" type="_VfFNBhE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VUwzQBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUwzQhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy_K3NwbEeCT5O2F6sGn5g" name="A_value_valueSpecificationAction" memberEnd="_g2ZEK9wbEeCT5O2F6sGn5g _gy_K3dwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy_K3dwbEeCT5O2F6sGn5g" name="valueSpecificationAction" visibility="public" type="_g2ZEINwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gy_K3NwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy_K3twbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUwzQxE9EeGOffqMW1YiZA" name="A_value_valueSpecificationAction" memberEnd="_VfHpKxE9EeGOffqMW1YiZA _VUwzRBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUwzRBE9EeGOffqMW1YiZA" name="valueSpecificationAction" visibility="public" type="_VfHpIBE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VUwzQxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUwzRRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy_x4NwbEeCT5O2F6sGn5g" name="A_value_writeStructuralFeatureAction" memberEnd="_g2bgctwbEeCT5O2F6sGn5g _gy_x4dwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy_x4dwbEeCT5O2F6sGn5g" name="writeStructuralFeatureAction" visibility="public" type="_g2bgYNwbEeCT5O2F6sGn5g" subsettedProperty="_gygpt9wbEeCT5O2F6sGn5g" association="_gy_x4NwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy_x4twbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUyBYBE9EeGOffqMW1YiZA" name="A_value_writeStructuralFeatureAction" memberEnd="_VfKsghE9EeGOffqMW1YiZA _VUyBYRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUyBYRE9EeGOffqMW1YiZA" name="writeStructuralFeatureAction" visibility="public" type="_VfKscBE9EeGOffqMW1YiZA" subsettedProperty="_VTqnERE9EeGOffqMW1YiZA" association="_VUyBYBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUyBYhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy_x49wbEeCT5O2F6sGn5g" name="A_value_writeVariableAction" memberEnd="_g2bgftwbEeCT5O2F6sGn5g _gy_x5NwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy_x5NwbEeCT5O2F6sGn5g" name="writeVariableAction" visibility="public" type="_g2bgddwbEeCT5O2F6sGn5g" subsettedProperty="_gygpt9wbEeCT5O2F6sGn5g" association="_gy_x49wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy_x5dwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUyBYxE9EeGOffqMW1YiZA" name="A_value_writeVariableAction" memberEnd="_VfLTiRE9EeGOffqMW1YiZA _VUyBZBE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUyBZBE9EeGOffqMW1YiZA" name="writeVariableAction" visibility="public" type="_VfLTgBE9EeGOffqMW1YiZA" subsettedProperty="_VTqnERE9EeGOffqMW1YiZA" association="_VUyBYxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUyBZRE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy_x5twbEeCT5O2F6sGn5g" name="A_variable_activityScope" memberEnd="_gzXlXNwbEeCT5O2F6sGn5g _g2ZENdwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy_x59wbEeCT5O2F6sGn5g" name="A_variable_scope" memberEnd="_g2IlhNwbEeCT5O2F6sGn5g _g2ZEONwbEeCT5O2F6sGn5g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gy_x6NwbEeCT5O2F6sGn5g" name="A_variable_variableAction" memberEnd="_g2ZrNtwbEeCT5O2F6sGn5g _gy_x6dwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gy_x6dwbEeCT5O2F6sGn5g" name="variableAction" visibility="public" type="_g2ZrMNwbEeCT5O2F6sGn5g" association="_gy_x6NwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gy_x6twbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gy_x69wbEeCT5O2F6sGn5g" value="*"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUyocBE9EeGOffqMW1YiZA" name="A_variable_activityScope" memberEnd="_VVH_oxE9EeGOffqMW1YiZA _VfIQOBE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUyocRE9EeGOffqMW1YiZA" name="A_variable_scope" memberEnd="_VejBYBE9EeGOffqMW1YiZA _VfIQOxE9EeGOffqMW1YiZA"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUz2kBE9EeGOffqMW1YiZA" name="A_variable_variableAction" memberEnd="_VfIQShE9EeGOffqMW1YiZA _VUz2kRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUz2kRE9EeGOffqMW1YiZA" name="variableAction" visibility="public" type="_VfIQRBE9EeGOffqMW1YiZA" association="_VUz2kBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUz2khE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VUz2kxE9EeGOffqMW1YiZA" value="*"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gzAY8NwbEeCT5O2F6sGn5g" name="A_weight_activityEdge" memberEnd="_gzZaqNwbEeCT5O2F6sGn5g _gzAY8dwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gzAY8dwbEeCT5O2F6sGn5g" name="activityEdge" visibility="public" type="_gzZagNwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gzAY8NwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzAY8twbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VUz2lBE9EeGOffqMW1YiZA" name="A_weight_activityEdge" memberEnd="_VVcI2BE9EeGOffqMW1YiZA _VUz2lRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VUz2lRE9EeGOffqMW1YiZA" name="activityEdge" visibility="public" type="_VVcIsBE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VUz2lBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VUz2lhE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_gzAY89wbEeCT5O2F6sGn5g" name="A_when_timeEvent" memberEnd="_g2QhTdwbEeCT5O2F6sGn5g _gzAY9NwbEeCT5O2F6sGn5g">
-      <ownedEnd xmi:id="_gzAY9NwbEeCT5O2F6sGn5g" name="timeEvent" visibility="public" type="_g2QhQNwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gzAY89wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzAY9dwbEeCT5O2F6sGn5g"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VU0doBE9EeGOffqMW1YiZA" name="A_when_timeEvent" memberEnd="_VevOrRE9EeGOffqMW1YiZA _VU0doRE9EeGOffqMW1YiZA">
+      <ownedEnd xmi:id="_VU0doRE9EeGOffqMW1YiZA" name="timeEvent" visibility="public" type="_VevOoBE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VU0doBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VU0dohE9EeGOffqMW1YiZA"/>
       </ownedEnd>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_gzAY9twbEeCT5O2F6sGn5g" name="Abstraction">
-      <ownedComment xmi:id="_gzAY99wbEeCT5O2F6sGn5g" annotatedElement="_gzAY9twbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VU1EsBE9EeGOffqMW1YiZA" name="Abstraction">
+      <ownedComment xmi:id="_VU1EsRE9EeGOffqMW1YiZA" annotatedElement="_VU1EsBE9EeGOffqMW1YiZA">
         <body>An abstraction is a relationship that relates two elements or sets of elements that represent the same concept at different levels of abstraction or from different viewpoints.</body>
       </ownedComment>
-      <generalization xmi:id="_gzAY-NwbEeCT5O2F6sGn5g" general="_rEDGkGwKEdq7X4sGURiZYA"/>
-      <ownedAttribute xmi:id="_gzAY-dwbEeCT5O2F6sGn5g" name="mapping" visibility="public" type="_ChRfcGveEdq4DLWZOhbdEA" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gyie4NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzAY-twbEeCT5O2F6sGn5g" annotatedElement="_gzAY-dwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VU1EshE9EeGOffqMW1YiZA" general="_rEDGkGwKEdq7X4sGURiZYA"/>
+      <ownedAttribute xmi:id="_VU1EsxE9EeGOffqMW1YiZA" name="mapping" visibility="public" type="_ChRfcGveEdq4DLWZOhbdEA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VTu4ghE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VU1EtBE9EeGOffqMW1YiZA" annotatedElement="_VU1EsxE9EeGOffqMW1YiZA">
           <body>An composition of an Expression that states the abstraction relationship between the supplier and the client. In some cases, such as Derivation, it is usually formal and unidirectional; in other cases, such as Trace, it is usually informal and bidirectional. The mapping expression is optional and may be omitted if the precise relationship between the elements is not specified.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzAY-9wbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VU1EtRE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_gzBAANwbEeCT5O2F6sGn5g" name="AcceptCallAction">
-      <ownedComment xmi:id="_gzBAAdwbEeCT5O2F6sGn5g" annotatedElement="_gzBAANwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VU1rwBE9EeGOffqMW1YiZA" name="AcceptCallAction">
+      <ownedComment xmi:id="_VU1rwRE9EeGOffqMW1YiZA" annotatedElement="_VU1rwBE9EeGOffqMW1YiZA">
         <body>An accept call action is an accept event action representing the receipt of a synchronous call request. In addition to the normal operation parameters, the action produces an output that is needed later to supply the information to the reply action necessary to return control to the caller. This action is for synchronous calls. If it is used to handle an asynchronous call, execution of the subsequent reply action will complete immediately with no effects.</body>
       </ownedComment>
-      <ownedRule xmi:id="_gzBAAtwbEeCT5O2F6sGn5g" name="result_pins" constrainedElement="_gzBAANwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzBAA9wbEeCT5O2F6sGn5g" annotatedElement="_gzBAAtwbEeCT5O2F6sGn5g">
-          <body>The result pins must match the in and inout parameters of the operation specified by the trigger event in number, type, and order.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzBABNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gzBABdwbEeCT5O2F6sGn5g" name="trigger_call_event" constrainedElement="_gzBAANwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzBABtwbEeCT5O2F6sGn5g" annotatedElement="_gzBABdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VU1rwhE9EeGOffqMW1YiZA" name="trigger_call_event" constrainedElement="_VU1rwBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VU1rwxE9EeGOffqMW1YiZA" annotatedElement="_VU1rwhE9EeGOffqMW1YiZA">
           <body>The trigger event must be a CallEvent.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzBAB9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VU1rxBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>trigger.event.oclIsKindOf(CallEvent)</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_gzBACNwbEeCT5O2F6sGn5g" name="unmarshall" constrainedElement="_gzBAANwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzBACdwbEeCT5O2F6sGn5g" annotatedElement="_gzBACNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VU1rxRE9EeGOffqMW1YiZA" name="unmarshall" constrainedElement="_VU1rwBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VU1rxhE9EeGOffqMW1YiZA" annotatedElement="_VU1rxRE9EeGOffqMW1YiZA">
           <body>isUnmrashall must be true for an AcceptCallAction.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzBACtwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VU1rxxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>isUnmarshall = true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_gzBAC9wbEeCT5O2F6sGn5g" general="_gzBnENwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_gzBADNwbEeCT5O2F6sGn5g" name="returnInformation" visibility="public" type="_g1fsRdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzCOK9wbEeCT5O2F6sGn5g" association="_gy2n-NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzBADdwbEeCT5O2F6sGn5g" annotatedElement="_gzBADNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VU1ryBE9EeGOffqMW1YiZA" name="result_pins" constrainedElement="_VU1rwBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VU1ryRE9EeGOffqMW1YiZA" annotatedElement="_VU1ryBE9EeGOffqMW1YiZA">
+          <body>The result pins must match the in and inout parameters of the operation specified by the trigger event in number, type, and order.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VU1ryhE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VU1ryxE9EeGOffqMW1YiZA" general="_VU254BE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VU1rzBE9EeGOffqMW1YiZA" name="returnInformation" visibility="public" type="_VcHYcBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4vEBE9EeGOffqMW1YiZA" association="_VUgUkxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VU1rzRE9EeGOffqMW1YiZA" annotatedElement="_VU1rzBE9EeGOffqMW1YiZA">
           <body>Pin where a value is placed containing sufficient information to perform a subsequent reply and return control to the caller. The contents of this value are opaque. It can be passed and copied but it cannot be manipulated by the model.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_gzBnENwbEeCT5O2F6sGn5g" name="AcceptEventAction">
-      <ownedComment xmi:id="_gzBnEdwbEeCT5O2F6sGn5g" annotatedElement="_gzBnENwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VU254BE9EeGOffqMW1YiZA" name="AcceptEventAction">
+      <ownedComment xmi:id="_VU254RE9EeGOffqMW1YiZA" annotatedElement="_VU254BE9EeGOffqMW1YiZA">
         <body>A accept event action is an action that waits for the occurrence of an event meeting specified conditions.</body>
       </ownedComment>
-      <ownedRule xmi:id="_gzBnEtwbEeCT5O2F6sGn5g" name="trigger_events" constrainedElement="_gzBnENwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzBnE9wbEeCT5O2F6sGn5g" annotatedElement="_gzBnEtwbEeCT5O2F6sGn5g">
-          <body>If the trigger events are all TimeEvents, there is exactly one output pin.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzBnFNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gzBnFdwbEeCT5O2F6sGn5g" name="no_input_pins" constrainedElement="_gzBnENwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzBnFtwbEeCT5O2F6sGn5g" annotatedElement="_gzBnFdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VU254hE9EeGOffqMW1YiZA" name="no_input_pins" constrainedElement="_VU254BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VU254xE9EeGOffqMW1YiZA" annotatedElement="_VU254hE9EeGOffqMW1YiZA">
           <body>AcceptEventActions may have no input pins.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzBnF9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VU255BE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_gzBnGNwbEeCT5O2F6sGn5g" name="no_output_pins" constrainedElement="_gzBnENwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzBnGdwbEeCT5O2F6sGn5g" annotatedElement="_gzBnGNwbEeCT5O2F6sGn5g">
-          <body>There are no output pins if the trigger events are only ChangeEvents, or if they are only CallEvents when this action is an instance of AcceptEventAction and not an instance of a descendant of AcceptEventAction (such as AcceptCallAction).</body>
+      <ownedRule xmi:id="_VU255RE9EeGOffqMW1YiZA" name="trigger_events" constrainedElement="_VU254BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VU255hE9EeGOffqMW1YiZA" annotatedElement="_VU255RE9EeGOffqMW1YiZA">
+          <body>If the trigger events are all TimeEvents, there is exactly one output pin.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzBnGtwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VU255xE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_gzBnG9wbEeCT5O2F6sGn5g" name="unmarshall_signal_events" constrainedElement="_gzBnENwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzBnHNwbEeCT5O2F6sGn5g" annotatedElement="_gzBnG9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VU256BE9EeGOffqMW1YiZA" name="unmarshall_signal_events" constrainedElement="_VU254BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VU256RE9EeGOffqMW1YiZA" annotatedElement="_VU256BE9EeGOffqMW1YiZA">
           <body>If isUnmarshall is true, there must be exactly one trigger for events of type SignalEvent. The number of result output pins must be the same as the number of attributes of the signal. The type and ordering of each result output pin must be the same as the corresponding attribute of the signal. The multiplicity of each result output pin must be compatible with the multiplicity of the corresponding attribute.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzBnHdwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VU256hE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_gzBnHtwbEeCT5O2F6sGn5g" general="_6WKakLLQEeCsYvaJqFFivQ"/>
-      <ownedAttribute xmi:id="_gzBnH9wbEeCT5O2F6sGn5g" name="isUnmarshall" visibility="public">
-        <ownedComment xmi:id="_gzBnINwbEeCT5O2F6sGn5g" annotatedElement="_gzBnH9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VU256xE9EeGOffqMW1YiZA" name="no_output_pins" constrainedElement="_VU254BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VU257BE9EeGOffqMW1YiZA" annotatedElement="_VU256xE9EeGOffqMW1YiZA">
+          <body>There are no output pins if the trigger events are only ChangeEvents, or if they are only CallEvents when this action is an instance of AcceptEventAction and not an instance of a descendant of AcceptEventAction (such as AcceptCallAction).</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VU257RE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VU257hE9EeGOffqMW1YiZA" general="_6WKakLLQEeCsYvaJqFFivQ"/>
+      <ownedAttribute xmi:id="_VU257xE9EeGOffqMW1YiZA" name="isUnmarshall" visibility="public">
+        <ownedComment xmi:id="_VU258BE9EeGOffqMW1YiZA" annotatedElement="_VU257xE9EeGOffqMW1YiZA">
           <body>Indicates whether there is a single output pin for the event, or multiple output pins for attributes of the event.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_gzBnIdwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VU258RE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzBnItwbEeCT5O2F6sGn5g" name="result" visibility="public" type="_g1fsRdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzCOK9wbEeCT5O2F6sGn5g" association="_gy0LuNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzBnI9wbEeCT5O2F6sGn5g" annotatedElement="_gzBnItwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VU258hE9EeGOffqMW1YiZA" name="result" visibility="public" type="_VcHYcBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4vEBE9EeGOffqMW1YiZA" association="_VUcDKBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VU258xE9EeGOffqMW1YiZA" annotatedElement="_VU258hE9EeGOffqMW1YiZA">
           <body>Pins holding the received event objects or their attributes. Event objects may be copied in transmission, so identity might not be preserved.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzBnJNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzBnJdwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VU259BE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VU259RE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzBnJtwbEeCT5O2F6sGn5g" name="trigger" visibility="public" type="_g2TkldwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gy9VqdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzBnJ9wbEeCT5O2F6sGn5g" annotatedElement="_gzBnJtwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VU259hE9EeGOffqMW1YiZA" name="trigger" visibility="public" type="_VfCJkBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VUqspRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VU259xE9EeGOffqMW1YiZA" annotatedElement="_VU259hE9EeGOffqMW1YiZA">
           <body>The type of events accepted by the action, as specified by triggers. For triggers with signal events, a signal of the specified type or any subtype of the specified signal type is accepted.</body>
         </ownedComment>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzBnKNwbEeCT5O2F6sGn5g" value="*"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VU25-BE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_6WKakLLQEeCsYvaJqFFivQ" name="Action" isAbstract="true">
-      <ownedComment xmi:id="_gzBnKdwbEeCT5O2F6sGn5g" annotatedElement="_6WKakLLQEeCsYvaJqFFivQ">
+      <ownedComment xmi:id="_VU3g8BE9EeGOffqMW1YiZA" annotatedElement="_6WKakLLQEeCsYvaJqFFivQ">
         <body>An action has pre- and post-conditions.</body>
       </ownedComment>
-      <ownedComment xmi:id="_gzBnKtwbEeCT5O2F6sGn5g" annotatedElement="_6WKakLLQEeCsYvaJqFFivQ">
-        <body>An action is a named element that is the fundamental unit of executable functionality. The execution of an action represents some transformation or processing in the modeled system, be it a computer system or otherwise.</body>
-      </ownedComment>
-      <ownedComment xmi:id="_gzBnK9wbEeCT5O2F6sGn5g" annotatedElement="_6WKakLLQEeCsYvaJqFFivQ">
+      <ownedComment xmi:id="_VU3g8RE9EeGOffqMW1YiZA" annotatedElement="_6WKakLLQEeCsYvaJqFFivQ">
         <body>An action represents a single step within an activity, that is, one that is not further decomposed within the activity.</body>
       </ownedComment>
-      <generalization xmi:id="_gzBnLNwbEeCT5O2F6sGn5g" general="_g0OhCNwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_gzBnLdwbEeCT5O2F6sGn5g" name="context" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" isReadOnly="true" isDerived="true" association="_gyWRqtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzBnLtwbEeCT5O2F6sGn5g" annotatedElement="_gzBnLdwbEeCT5O2F6sGn5g">
+      <ownedComment xmi:id="_VU3g8hE9EeGOffqMW1YiZA" annotatedElement="_6WKakLLQEeCsYvaJqFFivQ">
+        <body>An action is a named element that is the fundamental unit of executable functionality. The execution of an action represents some transformation or processing in the modeled system, be it a computer system or otherwise.</body>
+      </ownedComment>
+      <generalization xmi:id="_VU3g8xE9EeGOffqMW1YiZA" general="_VZPqoBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VU3g9BE9EeGOffqMW1YiZA" name="context" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" isReadOnly="true" isDerived="true" association="_VTIbkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VU3g9RE9EeGOffqMW1YiZA" annotatedElement="_VU3g9BE9EeGOffqMW1YiZA">
           <body>The classifier that owns the behavior of which this action is a part.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzBnL9wbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VU3g9hE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzBnMNwbEeCT5O2F6sGn5g" name="input" visibility="public" type="_g0aHKdwbEeCT5O2F6sGn5g" isOrdered="true" isReadOnly="true" aggregation="composite" isDerived="true" isDerivedUnion="true" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gygpttwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzBnMdwbEeCT5O2F6sGn5g" annotatedElement="_gzBnMNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VU4IABE9EeGOffqMW1YiZA" name="input" visibility="public" type="_VZp6WRE9EeGOffqMW1YiZA" isOrdered="true" isReadOnly="true" aggregation="composite" isDerived="true" isDerivedUnion="true" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VTqnEBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VU4IARE9EeGOffqMW1YiZA" annotatedElement="_VU4IABE9EeGOffqMW1YiZA">
           <body>The ordered set of input pins connected to the Action. These are among the total set of inputs.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzBnMtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzBnM9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VU4IAhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VU4IAxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzCOINwbEeCT5O2F6sGn5g" name="isLocallyReentrant" visibility="public">
-        <ownedComment xmi:id="_gzCOIdwbEeCT5O2F6sGn5g" annotatedElement="_gzCOINwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VU4IBBE9EeGOffqMW1YiZA" name="isLocallyReentrant" visibility="public">
+        <ownedComment xmi:id="_VU4IBRE9EeGOffqMW1YiZA" annotatedElement="_VU4IBBE9EeGOffqMW1YiZA">
           <body>If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_gzCOItwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VU4IBhE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzCOI9wbEeCT5O2F6sGn5g" name="localPostcondition" visibility="public" type="_g0AegNwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gyh30NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzCOJNwbEeCT5O2F6sGn5g" annotatedElement="_gzCOI9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VU4IBxE9EeGOffqMW1YiZA" name="localPostcondition" visibility="public" type="_VYbLQBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VTscQRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VU4ICBE9EeGOffqMW1YiZA" annotatedElement="_VU4IBxE9EeGOffqMW1YiZA">
           <body>Constraint that must be satisfied when executed is completed.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzCOJdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzCOJtwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VU4ICRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VU4IChE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzCOJ9wbEeCT5O2F6sGn5g" name="localPrecondition" visibility="public" type="_g0AegNwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gyh309wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzCOKNwbEeCT5O2F6sGn5g" annotatedElement="_gzCOJ9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VU4ICxE9EeGOffqMW1YiZA" name="localPrecondition" visibility="public" type="_VYbLQBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VTtqYBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VU4IDBE9EeGOffqMW1YiZA" annotatedElement="_VU4ICxE9EeGOffqMW1YiZA">
           <body>Constraint that must be satisfied when execution is started.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzCOKdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzCOKtwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VU4IDRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VU4IDhE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzCOK9wbEeCT5O2F6sGn5g" name="output" visibility="public" type="_g1fsRdwbEeCT5O2F6sGn5g" isOrdered="true" isReadOnly="true" aggregation="composite" isDerived="true" isDerivedUnion="true" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gyn-c9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzCOLNwbEeCT5O2F6sGn5g" annotatedElement="_gzCOK9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VU4vEBE9EeGOffqMW1YiZA" name="output" visibility="public" type="_VcHYcBE9EeGOffqMW1YiZA" isOrdered="true" isReadOnly="true" aggregation="composite" isDerived="true" isDerivedUnion="true" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VT-JExE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VU4vERE9EeGOffqMW1YiZA" annotatedElement="_VU4vEBE9EeGOffqMW1YiZA">
           <body>The ordered set of output pins connected to the Action. The action places its results onto pins in this set.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzCOLdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzCOLtwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VU4vEhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VU4vExE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedOperation xmi:id="_CroQsLLREeCsYvaJqFFivQ" name="context" visibility="public" bodyCondition="_gzCOMNwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_gzCOL9wbEeCT5O2F6sGn5g" annotatedElement="_CroQsLLREeCsYvaJqFFivQ">
+      <ownedOperation xmi:id="_CroQsLLREeCsYvaJqFFivQ" name="context" visibility="public" bodyCondition="_VU59MBE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VU5WIBE9EeGOffqMW1YiZA" annotatedElement="_CroQsLLREeCsYvaJqFFivQ">
           <body>Missing derivation for Action::/context : Classifier</body>
         </ownedComment>
-        <ownedRule xmi:id="_gzCOMNwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_CroQsLLREeCsYvaJqFFivQ _gzBnLdwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzCOMdwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VU59MBE9EeGOffqMW1YiZA" name="spec" constrainedElement="_CroQsLLREeCsYvaJqFFivQ _VU3g9BE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VU59MRE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>true</body>
           </specification>
         </ownedRule>
         <ownedParameter xmi:id="_EGwx8LLREeCsYvaJqFFivQ" name="result" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzCOMtwbEeCT5O2F6sGn5g"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VU59MhE9EeGOffqMW1YiZA"/>
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_gzWXMNwbEeCT5O2F6sGn5g" name="ActionExecutionSpecification">
-      <ownedComment xmi:id="_gzWXMdwbEeCT5O2F6sGn5g" annotatedElement="_gzWXMNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VU8ZcBE9EeGOffqMW1YiZA" name="ActionExecutionSpecification">
+      <ownedComment xmi:id="_VU8ZcRE9EeGOffqMW1YiZA" annotatedElement="_VU8ZcBE9EeGOffqMW1YiZA">
         <body>An action execution specification is a kind of execution specification representing the execution of an action.</body>
       </ownedComment>
-      <ownedRule xmi:id="_gzWXMtwbEeCT5O2F6sGn5g" name="action_referenced" constrainedElement="_gzWXMNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzWXM9wbEeCT5O2F6sGn5g" annotatedElement="_gzWXMtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VU8ZchE9EeGOffqMW1YiZA" name="action_referenced" constrainedElement="_VU8ZcBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VU8ZcxE9EeGOffqMW1YiZA" annotatedElement="_VU8ZchE9EeGOffqMW1YiZA">
           <body>The Action referenced by the ActionExecutionSpecification, if any, must be owned by the Interaction owning the ActionExecutionOccurrence.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzWXNNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VU8ZdBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_gzWXNdwbEeCT5O2F6sGn5g" general="_g0PIBdwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_gzWXNtwbEeCT5O2F6sGn5g" name="action" visibility="public" type="_6WKakLLQEeCsYvaJqFFivQ" association="_gyRZIdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzWXN9wbEeCT5O2F6sGn5g" annotatedElement="_gzWXNtwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VU8ZdRE9EeGOffqMW1YiZA" general="_VZQRtRE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VU8ZdhE9EeGOffqMW1YiZA" name="action" visibility="public" type="_6WKakLLQEeCsYvaJqFFivQ" association="_VS7nQBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VU8ZdxE9EeGOffqMW1YiZA" annotatedElement="_VU8ZdhE9EeGOffqMW1YiZA">
           <body>Action whose execution is occurring.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_gzWXONwbEeCT5O2F6sGn5g" name="ActionInputPin">
-      <ownedComment xmi:id="_gzWXOdwbEeCT5O2F6sGn5g" annotatedElement="_gzWXONwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VU9AgBE9EeGOffqMW1YiZA" name="ActionInputPin">
+      <ownedComment xmi:id="_VU9AgRE9EeGOffqMW1YiZA" annotatedElement="_VU9AgBE9EeGOffqMW1YiZA">
         <body>An action input pin is a kind of pin that executes an action to determine the values to input to another.</body>
       </ownedComment>
-      <ownedRule xmi:id="_gzWXOtwbEeCT5O2F6sGn5g" name="input_pin" constrainedElement="_gzWXONwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzWXO9wbEeCT5O2F6sGn5g" annotatedElement="_gzWXOtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VU9AghE9EeGOffqMW1YiZA" name="input_pin" constrainedElement="_VU9AgBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VU9AgxE9EeGOffqMW1YiZA" annotatedElement="_VU9AghE9EeGOffqMW1YiZA">
           <body>The fromAction of an action input pin must only have action input pins as input pins.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzWXPNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VU9AhBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_gzWXPdwbEeCT5O2F6sGn5g" name="one_output_pin" constrainedElement="_gzWXONwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzWXPtwbEeCT5O2F6sGn5g" annotatedElement="_gzWXPdwbEeCT5O2F6sGn5g">
-          <body>The fromAction of an action input pin must have exactly one output pin.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzWXP9wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gzWXQNwbEeCT5O2F6sGn5g" name="no_control_or_data_flow" constrainedElement="_gzWXONwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzWXQdwbEeCT5O2F6sGn5g" annotatedElement="_gzWXQNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VU9AhRE9EeGOffqMW1YiZA" name="no_control_or_data_flow" constrainedElement="_VU9AgBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VU9AhhE9EeGOffqMW1YiZA" annotatedElement="_VU9AhRE9EeGOffqMW1YiZA">
           <body>The fromAction of an action input pin cannot have control or data flows coming into or out of it or its pins.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzWXQtwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VU9AhxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_gzWXQ9wbEeCT5O2F6sGn5g" general="_g0aHKdwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_gzWXRNwbEeCT5O2F6sGn5g" name="fromAction" visibility="public" type="_6WKakLLQEeCsYvaJqFFivQ" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gydmZtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzWXRdwbEeCT5O2F6sGn5g" annotatedElement="_gzWXRNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VU9AiBE9EeGOffqMW1YiZA" name="one_output_pin" constrainedElement="_VU9AgBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VU9AiRE9EeGOffqMW1YiZA" annotatedElement="_VU9AiBE9EeGOffqMW1YiZA">
+          <body>The fromAction of an action input pin must have exactly one output pin.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VU9AihE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VU9AixE9EeGOffqMW1YiZA" general="_VZp6WRE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VU9AjBE9EeGOffqMW1YiZA" name="fromAction" visibility="public" type="_6WKakLLQEeCsYvaJqFFivQ" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VTckoRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VU9AjRE9EeGOffqMW1YiZA" annotatedElement="_VU9AjBE9EeGOffqMW1YiZA">
           <body>The action used to provide values.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_eGtFwLLREeCsYvaJqFFivQ" name="Activity">
-      <ownedComment xmi:id="_gzWXRtwbEeCT5O2F6sGn5g" annotatedElement="_eGtFwLLREeCsYvaJqFFivQ">
+      <ownedComment xmi:id="_VU9nkBE9EeGOffqMW1YiZA" annotatedElement="_eGtFwLLREeCsYvaJqFFivQ">
         <body>An activity is the specification of parameterized behavior as the coordinated sequencing of subordinate units whose individual elements are actions.</body>
       </ownedComment>
-      <ownedRule xmi:id="_gzWXR9wbEeCT5O2F6sGn5g" name="autonomous" constrainedElement="_eGtFwLLREeCsYvaJqFFivQ">
-        <ownedComment xmi:id="_gzW-QNwbEeCT5O2F6sGn5g" annotatedElement="_gzWXR9wbEeCT5O2F6sGn5g">
-          <body>An activity cannot be autonomous and have a classifier or behavioral feature context at the same time.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzW-QdwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gzW-QtwbEeCT5O2F6sGn5g" name="no_supergroups" constrainedElement="_eGtFwLLREeCsYvaJqFFivQ">
-        <ownedComment xmi:id="_gzW-Q9wbEeCT5O2F6sGn5g" annotatedElement="_gzW-QtwbEeCT5O2F6sGn5g">
-          <body>The groups of an activity have no supergroups.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzW-RNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gzW-RdwbEeCT5O2F6sGn5g" name="activity_parameter_node" constrainedElement="_eGtFwLLREeCsYvaJqFFivQ">
-        <ownedComment xmi:id="_gzW-RtwbEeCT5O2F6sGn5g" annotatedElement="_gzW-RdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VU9nkRE9EeGOffqMW1YiZA" name="activity_parameter_node" constrainedElement="_eGtFwLLREeCsYvaJqFFivQ">
+        <ownedComment xmi:id="_VU9nkhE9EeGOffqMW1YiZA" annotatedElement="_VU9nkRE9EeGOffqMW1YiZA">
           <body>The nodes of the activity must include one ActivityParameterNode for each parameter.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzW-R9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VU9nkxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_gzW-SNwbEeCT5O2F6sGn5g" general="_TUPtYGveEdq4DLWZOhbdEA"/>
-      <ownedAttribute xmi:id="_gzW-SdwbEeCT5O2F6sGn5g" name="edge" visibility="public" type="_gzZagNwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gyZU89wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzW-StwbEeCT5O2F6sGn5g" annotatedElement="_gzW-SdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VU9nlBE9EeGOffqMW1YiZA" name="autonomous" constrainedElement="_eGtFwLLREeCsYvaJqFFivQ">
+        <ownedComment xmi:id="_VU9nlRE9EeGOffqMW1YiZA" annotatedElement="_VU9nlBE9EeGOffqMW1YiZA">
+          <body>An activity cannot be autonomous and have a classifier or behavioral feature context at the same time.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VU9nlhE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VU9nlxE9EeGOffqMW1YiZA" name="no_supergroups" constrainedElement="_eGtFwLLREeCsYvaJqFFivQ">
+        <ownedComment xmi:id="_VU9nmBE9EeGOffqMW1YiZA" annotatedElement="_VU9nlxE9EeGOffqMW1YiZA">
+          <body>The groups of an activity have no supergroups.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VU9nmRE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VU9nmhE9EeGOffqMW1YiZA" general="_TUPtYGveEdq4DLWZOhbdEA"/>
+      <ownedAttribute xmi:id="_zRopoAs9EeGcpbeCPJfCmw" name="ownedGroup" visibility="protected" type="_aZICgAs-EeGcpbeCPJfCmw" aggregation="composite" subsettedProperty="_PCvjoAs_EeGcpbeCPJfCmw">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hecfYAs-EeGcpbeCPJfCmw"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_iNvOUAs-EeGcpbeCPJfCmw" value="*"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_5DNmsAs9EeGcpbeCPJfCmw" name="ownedNode" visibility="protected" type="_WpiyYAs-EeGcpbeCPJfCmw" aggregation="composite" subsettedProperty="_RoJfoAs_EeGcpbeCPJfCmw">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jIyhUAs-EeGcpbeCPJfCmw"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jsV6UAs-EeGcpbeCPJfCmw" value="*"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_VU-OoBE9EeGOffqMW1YiZA" name="edge" visibility="public" type="_VVcIsBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VTQXYBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VU-OoRE9EeGOffqMW1YiZA" annotatedElement="_VU-OoBE9EeGOffqMW1YiZA">
           <body>Edges expressing flow between nodes of the activity.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzW-S9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzW-TNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VU-OohE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VU-OoxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzW-TdwbEeCT5O2F6sGn5g" name="group" visibility="public" type="_gzaBkNwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gyeNetwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzW-TtwbEeCT5O2F6sGn5g" annotatedElement="_gzW-TdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_PCvjoAs_EeGcpbeCPJfCmw" name="group" visibility="public" type="_aZICgAs-EeGcpbeCPJfCmw" aggregation="composite" isDerived="true" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_DwV68AtCEeGcpbeCPJfCmw">
+        <ownedComment xmi:id="_VU-OpBE9EeGOffqMW1YiZA" annotatedElement="_PCvjoAs_EeGcpbeCPJfCmw">
           <body>Top-level groups in the activity.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzW-T9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzW-UNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VU-OpRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VU-OphE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzW-UdwbEeCT5O2F6sGn5g" name="isReadOnly" visibility="public">
-        <ownedComment xmi:id="_gzW-UtwbEeCT5O2F6sGn5g" annotatedElement="_gzW-UdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VVAD0BE9EeGOffqMW1YiZA" name="isReadOnly" visibility="public">
+        <ownedComment xmi:id="_VVAD0RE9EeGOffqMW1YiZA" annotatedElement="_VVAD0BE9EeGOffqMW1YiZA">
           <body>If true, this activity must not make any changes to variables outside the activity or to objects. (This is an assertion, not an executable property. It may be used by an execution engine to optimize model execution. If the assertion is violated by the action, then the model is ill-formed.) The default is false (an activity may make nonlocal changes).</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_gzW-U9wbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VVAD0hE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzW-VNwbEeCT5O2F6sGn5g" name="isSingleExecution" visibility="public">
-        <ownedComment xmi:id="_gzW-VdwbEeCT5O2F6sGn5g" annotatedElement="_gzW-VNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VVEVQBE9EeGOffqMW1YiZA" name="isSingleExecution" visibility="public">
+        <ownedComment xmi:id="_VVEVQRE9EeGOffqMW1YiZA" annotatedElement="_VVEVQBE9EeGOffqMW1YiZA">
           <body>If true, all invocations of the activity are handled by the same execution.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_gzW-VtwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VVEVQhE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzXlUNwbEeCT5O2F6sGn5g" name="node" visibility="public" type="_gzbPsNwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gyk7MNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzXlUdwbEeCT5O2F6sGn5g" annotatedElement="_gzXlUNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_RoJfoAs_EeGcpbeCPJfCmw" name="node" visibility="public" type="_WpiyYAs-EeGcpbeCPJfCmw" aggregation="composite" isDerived="true" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_RFCrMAtCEeGcpbeCPJfCmw">
+        <ownedComment xmi:id="_VVEVQxE9EeGOffqMW1YiZA" annotatedElement="_RoJfoAs_EeGcpbeCPJfCmw">
           <body>Nodes coordinated by the activity.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzXlUtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzXlU9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VVEVRBE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VVE8UBE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzXlVNwbEeCT5O2F6sGn5g" name="partition" visibility="public" type="_gzcd0NwbEeCT5O2F6sGn5g" subsettedProperty="_gzW-TdwbEeCT5O2F6sGn5g" association="_gysP59wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzXlVdwbEeCT5O2F6sGn5g" annotatedElement="_gzXlVNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_-_c7oAs9EeGcpbeCPJfCmw" name="partition" visibility="public" type="_MIhqsAs-EeGcpbeCPJfCmw" subsettedProperty="_PCvjoAs_EeGcpbeCPJfCmw _zRopoAs9EeGcpbeCPJfCmw" association="_3Ik3QAtDEeGcpbeCPJfCmw">
+        <ownedComment xmi:id="_VVFjYBE9EeGOffqMW1YiZA" annotatedElement="_-_c7oAs9EeGcpbeCPJfCmw">
           <body>Top-level partitions in the activity.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzXlVtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzXlV9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VVHYkBE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VVHYkRE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzXlWNwbEeCT5O2F6sGn5g" name="structuredNode" visibility="public" type="_w1_2cLLREeCsYvaJqFFivQ" isReadOnly="true" aggregation="composite" isDerived="true" subsettedProperty="_gzW-TdwbEeCT5O2F6sGn5g _gzXlUNwbEeCT5O2F6sGn5g" association="_gy65ctwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzXlWdwbEeCT5O2F6sGn5g" annotatedElement="_gzXlWNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_EOSYAAs-EeGcpbeCPJfCmw" name="structuredNode" visibility="public" type="_w1_2cLLREeCsYvaJqFFivQ" aggregation="composite" subsettedProperty="_PCvjoAs_EeGcpbeCPJfCmw _RoJfoAs_EeGcpbeCPJfCmw" association="_w4820AtEEeGcpbeCPJfCmw">
+        <ownedComment xmi:id="_VVH_oBE9EeGOffqMW1YiZA" annotatedElement="_EOSYAAs-EeGcpbeCPJfCmw">
           <body>Top-level structured nodes in the activity.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzXlWtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzXlW9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VVH_oRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VVH_ohE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzXlXNwbEeCT5O2F6sGn5g" name="variable" visibility="public" type="_g2ZELdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g1S4AdwbEeCT5O2F6sGn5g" association="_gy_x5twbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzXlXdwbEeCT5O2F6sGn5g" annotatedElement="_gzXlXNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VVH_oxE9EeGOffqMW1YiZA" name="variable" visibility="public" type="_VfIQMBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_Var1EBE9EeGOffqMW1YiZA" association="_VUyocBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVH_pBE9EeGOffqMW1YiZA" annotatedElement="_VVH_oxE9EeGOffqMW1YiZA">
           <body>Top-level variables in the activity.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzXlXtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzXlX9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VVH_pRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VVH_phE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedOperation xmi:id="_gJvUgLLREeCsYvaJqFFivQ" name="structuredNode" visibility="public" bodyCondition="_gzXlYdwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_gzXlYNwbEeCT5O2F6sGn5g" annotatedElement="_gJvUgLLREeCsYvaJqFFivQ">
-          <body>Missing derivation for Activity::/structuredNode : StructuredActivityNode</body>
-        </ownedComment>
-        <ownedRule xmi:id="_gzXlYdwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_gJvUgLLREeCsYvaJqFFivQ _gzXlWNwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzXlYtwbEeCT5O2F6sGn5g">
-            <language>OCL</language>
-            <body>true</body>
-          </specification>
-        </ownedRule>
-        <ownedParameter xmi:id="_ilEHcLLREeCsYvaJqFFivQ" name="result" visibility="public" type="_w1_2cLLREeCsYvaJqFFivQ" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzXlY9wbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzXlZNwbEeCT5O2F6sGn5g" value="*"/>
-        </ownedParameter>
-      </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_gzZagNwbEeCT5O2F6sGn5g" name="ActivityEdge" isAbstract="true">
-      <ownedComment xmi:id="_gzZagdwbEeCT5O2F6sGn5g" annotatedElement="_gzZagNwbEeCT5O2F6sGn5g">
-        <body>An activity edge is an abstract class for directed connections between two activity nodes.</body>
-      </ownedComment>
-      <ownedComment xmi:id="_gzZagtwbEeCT5O2F6sGn5g" annotatedElement="_gzZagNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VVcIsBE9EeGOffqMW1YiZA" name="ActivityEdge" isAbstract="true">
+      <ownedComment xmi:id="_VVcIsRE9EeGOffqMW1YiZA" annotatedElement="_VVcIsBE9EeGOffqMW1YiZA">
         <body>Activity edges can be contained in interruptible regions.</body>
       </ownedComment>
-      <ownedRule xmi:id="_gzZag9wbEeCT5O2F6sGn5g" name="owned" constrainedElement="_gzZagNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzZahNwbEeCT5O2F6sGn5g" annotatedElement="_gzZag9wbEeCT5O2F6sGn5g">
+      <ownedComment xmi:id="_VVcIshE9EeGOffqMW1YiZA" annotatedElement="_VVcIsBE9EeGOffqMW1YiZA">
+        <body>An activity edge is an abstract class for directed connections between two activity nodes.</body>
+      </ownedComment>
+      <ownedRule xmi:id="_VVcIsxE9EeGOffqMW1YiZA" name="owned" constrainedElement="_VVcIsBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVcItBE9EeGOffqMW1YiZA" annotatedElement="_VVcIsxE9EeGOffqMW1YiZA">
           <body>Activity edges may be owned only by activities or groups.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzZahdwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VVcItRE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_gzZahtwbEeCT5O2F6sGn5g" name="source_and_target" constrainedElement="_gzZagNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzZah9wbEeCT5O2F6sGn5g" annotatedElement="_gzZahtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VVcIthE9EeGOffqMW1YiZA" name="source_and_target" constrainedElement="_VVcIsBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVcItxE9EeGOffqMW1YiZA" annotatedElement="_VVcIthE9EeGOffqMW1YiZA">
           <body>The source and target of an edge must be in the same activity as the edge.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzZaiNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VVcIuBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_gzZaidwbEeCT5O2F6sGn5g" name="structured_node" constrainedElement="_gzZagNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzZaitwbEeCT5O2F6sGn5g" annotatedElement="_gzZaidwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VVcIuRE9EeGOffqMW1YiZA" name="structured_node" constrainedElement="_VVcIsBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVcIuhE9EeGOffqMW1YiZA" annotatedElement="_VVcIuRE9EeGOffqMW1YiZA">
           <body>Activity edges may be owned by at most one structured node.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzZai9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VVcIuxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_gzZajNwbEeCT5O2F6sGn5g" general="_uCRA4La-EeCRxrN1JUGuxA"/>
-      <ownedAttribute xmi:id="_gzZajdwbEeCT5O2F6sGn5g" name="activity" visibility="public" type="_eGtFwLLREeCsYvaJqFFivQ" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gyZU89wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzZajtwbEeCT5O2F6sGn5g" annotatedElement="_gzZajdwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VVcIvBE9EeGOffqMW1YiZA" general="_uCRA4La-EeCRxrN1JUGuxA"/>
+      <ownedAttribute xmi:id="_VVcIvRE9EeGOffqMW1YiZA" name="activity" visibility="public" type="_eGtFwLLREeCsYvaJqFFivQ" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VTQXYBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVcIvhE9EeGOffqMW1YiZA" annotatedElement="_VVcIvRE9EeGOffqMW1YiZA">
           <body>Activity containing the edge.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzZaj9wbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VVcIvxE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzZakNwbEeCT5O2F6sGn5g" name="guard" visibility="public" type="_g2YdENwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gyeNe9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzZakdwbEeCT5O2F6sGn5g" annotatedElement="_gzZakNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VVcIwBE9EeGOffqMW1YiZA" name="guard" visibility="public" type="_VfGbABE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VTlukBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVcIwRE9EeGOffqMW1YiZA" annotatedElement="_VVcIwBE9EeGOffqMW1YiZA">
           <body>Specification evaluated at runtime to determine if the edge can be traversed.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzZaktwbEeCT5O2F6sGn5g" name="inGroup" visibility="public" type="_gzaBkNwbEeCT5O2F6sGn5g" isReadOnly="true" isDerived="true" isDerivedUnion="true" association="_gyWRqNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzZak9wbEeCT5O2F6sGn5g" annotatedElement="_gzZaktwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VVcIwhE9EeGOffqMW1YiZA" name="inGroup" visibility="public" type="_aZICgAs-EeGcpbeCPJfCmw" isReadOnly="true" isDerived="true" isDerivedUnion="true" association="_VTH0gBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVcIwxE9EeGOffqMW1YiZA" annotatedElement="_VVcIwhE9EeGOffqMW1YiZA">
           <body>Groups containing the edge.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzZalNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzZaldwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VVcIxBE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VVcIxRE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzZaltwbEeCT5O2F6sGn5g" name="inPartition" visibility="public" type="_gzcd0NwbEeCT5O2F6sGn5g" subsettedProperty="_gzZaktwbEeCT5O2F6sGn5g" association="_gyZU9NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzZal9wbEeCT5O2F6sGn5g" annotatedElement="_gzZaltwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VVcIxhE9EeGOffqMW1YiZA" name="inPartition" visibility="public" type="_MIhqsAs-EeGcpbeCPJfCmw" subsettedProperty="_VVcIwhE9EeGOffqMW1YiZA" association="_VTQXYRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVcIxxE9EeGOffqMW1YiZA" annotatedElement="_VVcIxhE9EeGOffqMW1YiZA">
           <body>Partitions containing the edge.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzZamNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzZamdwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VVcIyBE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VVcIyRE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzZamtwbEeCT5O2F6sGn5g" name="inStructuredNode" visibility="public" type="_w1_2cLLREeCsYvaJqFFivQ" subsettedProperty="_gzZaktwbEeCT5O2F6sGn5g _g0JodNwbEeCT5O2F6sGn5g" association="_gyZU9dwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzZam9wbEeCT5O2F6sGn5g" annotatedElement="_gzZamtwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VVcIyhE9EeGOffqMW1YiZA" name="inStructuredNode" visibility="public" type="_w1_2cLLREeCsYvaJqFFivQ" subsettedProperty="_VVcIwhE9EeGOffqMW1YiZA _N3hRMAtAEeGcpbeCPJfCmw" association="_VTQXYhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVcIyxE9EeGOffqMW1YiZA" annotatedElement="_VVcIyhE9EeGOffqMW1YiZA">
           <body>Structured activity node containing the edge.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzZanNwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VVcIzBE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzZandwbEeCT5O2F6sGn5g" name="interrupts" visibility="public" type="_g0fmsNwbEeCT5O2F6sGn5g" association="_gyhQxdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzZantwbEeCT5O2F6sGn5g" annotatedElement="_gzZandwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VVcIzRE9EeGOffqMW1YiZA" name="interrupts" visibility="public" type="_VZx2IhE9EeGOffqMW1YiZA" association="_VTr1MRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVcIzhE9EeGOffqMW1YiZA" annotatedElement="_VVcIzRE9EeGOffqMW1YiZA">
           <body>Region that the edge can interrupt.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzZan9wbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VVcIzxE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzZaoNwbEeCT5O2F6sGn5g" name="redefinedEdge" visibility="public" type="_gzZagNwbEeCT5O2F6sGn5g" subsettedProperty="_g15U7twbEeCT5O2F6sGn5g" association="_gyv6T9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzZaodwbEeCT5O2F6sGn5g" annotatedElement="_gzZaoNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VVcI0BE9EeGOffqMW1YiZA" name="redefinedEdge" visibility="public" type="_VVcIsBE9EeGOffqMW1YiZA" subsettedProperty="_VdtT4BE9EeGOffqMW1YiZA" association="_VUREABE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVcI0RE9EeGOffqMW1YiZA" annotatedElement="_VVcI0BE9EeGOffqMW1YiZA">
           <body>Inherited edges replaced by this edge in a specialization of the activity.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzZaotwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzZao9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VVcI0hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VVcI0xE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzZapNwbEeCT5O2F6sGn5g" name="source" visibility="public" type="_gzbPsNwbEeCT5O2F6sGn5g" association="_gynXbNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzZapdwbEeCT5O2F6sGn5g" annotatedElement="_gzZapNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VVcI1BE9EeGOffqMW1YiZA" name="source" visibility="public" type="_WpiyYAs-EeGcpbeCPJfCmw" association="_VT9iAxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVcI1RE9EeGOffqMW1YiZA" annotatedElement="_VVcI1BE9EeGOffqMW1YiZA">
           <body>Node from which tokens are taken when they traverse the edge.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzZaptwbEeCT5O2F6sGn5g" name="target" visibility="public" type="_gzbPsNwbEeCT5O2F6sGn5g" association="_gyfbn9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzZap9wbEeCT5O2F6sGn5g" annotatedElement="_gzZaptwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VVcI1hE9EeGOffqMW1YiZA" name="target" visibility="public" type="_WpiyYAs-EeGcpbeCPJfCmw" association="_VToK1RE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVcI1xE9EeGOffqMW1YiZA" annotatedElement="_VVcI1hE9EeGOffqMW1YiZA">
           <body>Node to which tokens are put when they traverse the edge.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzZaqNwbEeCT5O2F6sGn5g" name="weight" visibility="public" type="_g2YdENwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gzAY8NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzZaqdwbEeCT5O2F6sGn5g" annotatedElement="_gzZaqNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VVcI2BE9EeGOffqMW1YiZA" name="weight" visibility="public" type="_VfGbABE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VUz2lBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVcI2RE9EeGOffqMW1YiZA" annotatedElement="_VVcI2BE9EeGOffqMW1YiZA">
           <body>The minimum number of tokens that must traverse the edge at the same time.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_gzZaqtwbEeCT5O2F6sGn5g" name="ActivityFinalNode">
-      <ownedComment xmi:id="_gzZaq9wbEeCT5O2F6sGn5g" annotatedElement="_gzZaqtwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VVcvwBE9EeGOffqMW1YiZA" name="ActivityFinalNode">
+      <ownedComment xmi:id="_VVcvwRE9EeGOffqMW1YiZA" annotatedElement="_VVcvwBE9EeGOffqMW1YiZA">
         <body>An activity final node is a final node that stops all flows in an activity.</body>
       </ownedComment>
-      <generalization xmi:id="_gzZarNwbEeCT5O2F6sGn5g" general="_g0UAg9wbEeCT5O2F6sGn5g"/>
+      <generalization xmi:id="_VVcvwhE9EeGOffqMW1YiZA" general="_VZY0kBE9EeGOffqMW1YiZA"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_gzaBkNwbEeCT5O2F6sGn5g" name="ActivityGroup" isAbstract="true">
-      <ownedComment xmi:id="_gzaBkdwbEeCT5O2F6sGn5g" annotatedElement="_gzaBkNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_aZICgAs-EeGcpbeCPJfCmw" name="ActivityGroup" isAbstract="true">
+      <ownedComment xmi:id="_VVdW0BE9EeGOffqMW1YiZA" annotatedElement="_aZICgAs-EeGcpbeCPJfCmw">
         <body>ActivityGroup is an abstract class for defining sets of nodes and edges in an activity.</body>
       </ownedComment>
-      <ownedRule xmi:id="_gzaBktwbEeCT5O2F6sGn5g" name="nodes_and_edges" constrainedElement="_gzaBkNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzaBk9wbEeCT5O2F6sGn5g" annotatedElement="_gzaBktwbEeCT5O2F6sGn5g">
-          <body>All nodes and edges of the group must be in the same activity as the group.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzaBlNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gzaBldwbEeCT5O2F6sGn5g" name="group_owned" constrainedElement="_gzaBkNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzaBltwbEeCT5O2F6sGn5g" annotatedElement="_gzaBldwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VVdW0RE9EeGOffqMW1YiZA" name="group_owned" constrainedElement="_aZICgAs-EeGcpbeCPJfCmw">
+        <ownedComment xmi:id="_VVdW0hE9EeGOffqMW1YiZA" annotatedElement="_VVdW0RE9EeGOffqMW1YiZA">
           <body>Groups may only be owned by activities or groups.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzaBl9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VVdW0xE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_gzaBmNwbEeCT5O2F6sGn5g" name="not_contained" constrainedElement="_gzaBkNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzaBmdwbEeCT5O2F6sGn5g" annotatedElement="_gzaBmNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VVdW1BE9EeGOffqMW1YiZA" name="not_contained" constrainedElement="_aZICgAs-EeGcpbeCPJfCmw">
+        <ownedComment xmi:id="_VVdW1RE9EeGOffqMW1YiZA" annotatedElement="_VVdW1BE9EeGOffqMW1YiZA">
           <body>No node or edge in a group may be contained by its subgroups or its containing groups, transitively.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzaBmtwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VVdW1hE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_gzaBm9wbEeCT5O2F6sGn5g" general="_csVgUGvtEdqG6fBIPwe-mw"/>
-      <ownedAttribute xmi:id="_gzaBnNwbEeCT5O2F6sGn5g" name="containedEdge" visibility="public" type="_gzZagNwbEeCT5O2F6sGn5g" isReadOnly="true" isDerived="true" isDerivedUnion="true" association="_gyWRqNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzaBndwbEeCT5O2F6sGn5g" annotatedElement="_gzaBnNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VVd94BE9EeGOffqMW1YiZA" name="nodes_and_edges" constrainedElement="_aZICgAs-EeGcpbeCPJfCmw">
+        <ownedComment xmi:id="_VVd94RE9EeGOffqMW1YiZA" annotatedElement="_VVd94BE9EeGOffqMW1YiZA">
+          <body>All nodes and edges of the group must be in the same activity as the group.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VVd94hE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VVd94xE9EeGOffqMW1YiZA" general="_csVgUGvtEdqG6fBIPwe-mw"/>
+      <ownedAttribute xmi:id="_VVd95BE9EeGOffqMW1YiZA" name="containedEdge" visibility="public" type="_VVcIsBE9EeGOffqMW1YiZA" isReadOnly="true" isDerived="true" isDerivedUnion="true" association="_VTH0gBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVd95RE9EeGOffqMW1YiZA" annotatedElement="_VVd95BE9EeGOffqMW1YiZA">
           <body>Edges immediately contained in the group.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzaBntwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzaBn9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VVd95hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VVd95xE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzaBoNwbEeCT5O2F6sGn5g" name="containedNode" visibility="public" type="_gzbPsNwbEeCT5O2F6sGn5g" isReadOnly="true" isDerived="true" isDerivedUnion="true" association="_gyWRqdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzaBodwbEeCT5O2F6sGn5g" annotatedElement="_gzaBoNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VVd96BE9EeGOffqMW1YiZA" name="containedNode" visibility="public" type="_WpiyYAs-EeGcpbeCPJfCmw" isReadOnly="true" isDerived="true" isDerivedUnion="true" association="_VTH0gRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVd96RE9EeGOffqMW1YiZA" annotatedElement="_VVd96BE9EeGOffqMW1YiZA">
           <body>Nodes immediately contained in the group.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzaBotwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzaBo9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VVd96hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VVd96xE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzaBpNwbEeCT5O2F6sGn5g" name="inActivity" visibility="public" type="_eGtFwLLREeCsYvaJqFFivQ" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gyeNetwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzaBpdwbEeCT5O2F6sGn5g" annotatedElement="_gzaBpNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_5V2SAAtBEeGcpbeCPJfCmw" name="inActivity" visibility="public" type="_eGtFwLLREeCsYvaJqFFivQ" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_DwV68AtCEeGcpbeCPJfCmw">
+        <ownedComment xmi:id="_VVek8BE9EeGOffqMW1YiZA" annotatedElement="_5V2SAAtBEeGcpbeCPJfCmw">
           <body>Activity containing the group.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzaBptwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VVek8RE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzaBp9wbEeCT5O2F6sGn5g" name="subgroup" visibility="public" type="_gzaBkNwbEeCT5O2F6sGn5g" isReadOnly="true" aggregation="composite" isDerived="true" isDerivedUnion="true" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gy7gcdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzaBqNwbEeCT5O2F6sGn5g" annotatedElement="_gzaBp9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VVek8hE9EeGOffqMW1YiZA" name="subgroup" visibility="public" type="_aZICgAs-EeGcpbeCPJfCmw" isReadOnly="true" aggregation="composite" isDerived="true" isDerivedUnion="true" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VUnpUBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVek8xE9EeGOffqMW1YiZA" annotatedElement="_VVek8hE9EeGOffqMW1YiZA">
           <body>Groups immediately contained in the group.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzaBqdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzaBqtwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VVek9BE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VVek9RE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzaBq9wbEeCT5O2F6sGn5g" name="superGroup" visibility="public" type="_gzaBkNwbEeCT5O2F6sGn5g" isReadOnly="true" isDerived="true" isDerivedUnion="true" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gy7gcdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzaBrNwbEeCT5O2F6sGn5g" annotatedElement="_gzaBq9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VVek9hE9EeGOffqMW1YiZA" name="superGroup" visibility="public" type="_aZICgAs-EeGcpbeCPJfCmw" isReadOnly="true" isDerived="true" isDerivedUnion="true" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VUnpUBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVek9xE9EeGOffqMW1YiZA" annotatedElement="_VVek9hE9EeGOffqMW1YiZA">
           <body>Group immediately containing the group.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzaBrdwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VVek-BE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_gzbPsNwbEeCT5O2F6sGn5g" name="ActivityNode" isAbstract="true">
-      <ownedComment xmi:id="_gzbPsdwbEeCT5O2F6sGn5g" annotatedElement="_gzbPsNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_WpiyYAs-EeGcpbeCPJfCmw" name="ActivityNode" isAbstract="true">
+      <ownedComment xmi:id="_VVfMABE9EeGOffqMW1YiZA" annotatedElement="_WpiyYAs-EeGcpbeCPJfCmw">
         <body>ActivityNode is an abstract class for points in the flow of an activity connected by edges.</body>
       </ownedComment>
-      <ownedRule xmi:id="_gzbPstwbEeCT5O2F6sGn5g" name="owned" constrainedElement="_gzbPsNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzbPs9wbEeCT5O2F6sGn5g" annotatedElement="_gzbPstwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VVfMARE9EeGOffqMW1YiZA" name="owned" constrainedElement="_WpiyYAs-EeGcpbeCPJfCmw">
+        <ownedComment xmi:id="_VVfMAhE9EeGOffqMW1YiZA" annotatedElement="_VVfMARE9EeGOffqMW1YiZA">
           <body>Activity nodes can only be owned by activities or groups.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzbPtNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VVfMAxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_gzbPtdwbEeCT5O2F6sGn5g" name="owned_structured_node" constrainedElement="_gzbPsNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzbPttwbEeCT5O2F6sGn5g" annotatedElement="_gzbPtdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VVfzEBE9EeGOffqMW1YiZA" name="owned_structured_node" constrainedElement="_WpiyYAs-EeGcpbeCPJfCmw">
+        <ownedComment xmi:id="_VVfzERE9EeGOffqMW1YiZA" annotatedElement="_VVfzEBE9EeGOffqMW1YiZA">
           <body>Activity nodes may be owned by at most one structured node.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzbPt9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VVfzEhE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_gzbPuNwbEeCT5O2F6sGn5g" general="_uCRA4La-EeCRxrN1JUGuxA"/>
-      <ownedAttribute xmi:id="_gzbPudwbEeCT5O2F6sGn5g" name="activity" visibility="public" type="_eGtFwLLREeCsYvaJqFFivQ" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gyk7MNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzbPutwbEeCT5O2F6sGn5g" annotatedElement="_gzbPudwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VVfzExE9EeGOffqMW1YiZA" general="_uCRA4La-EeCRxrN1JUGuxA"/>
+      <ownedAttribute xmi:id="_X0ZfIAtCEeGcpbeCPJfCmw" name="activity" visibility="public" type="_eGtFwLLREeCsYvaJqFFivQ" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_RFCrMAtCEeGcpbeCPJfCmw">
+        <ownedComment xmi:id="_VVfzFBE9EeGOffqMW1YiZA" annotatedElement="_X0ZfIAtCEeGcpbeCPJfCmw">
           <body>Activity containing the node.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzbPu9wbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VVfzFRE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzbPvNwbEeCT5O2F6sGn5g" name="inGroup" visibility="public" type="_gzaBkNwbEeCT5O2F6sGn5g" isReadOnly="true" isDerived="true" isDerivedUnion="true" association="_gyWRqdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzbPvdwbEeCT5O2F6sGn5g" annotatedElement="_gzbPvNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VVfzFhE9EeGOffqMW1YiZA" name="inGroup" visibility="public" type="_aZICgAs-EeGcpbeCPJfCmw" isReadOnly="true" isDerived="true" isDerivedUnion="true" association="_VTH0gRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVgaIBE9EeGOffqMW1YiZA" annotatedElement="_VVfzFhE9EeGOffqMW1YiZA">
           <body>Groups containing the node.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzbPvtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzbPv9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VVgaIRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VVgaIhE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzbPwNwbEeCT5O2F6sGn5g" name="inInterruptibleRegion" visibility="public" type="_g0fmsNwbEeCT5O2F6sGn5g" subsettedProperty="_gzbPvNwbEeCT5O2F6sGn5g" association="_gyfbmNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzbPwdwbEeCT5O2F6sGn5g" annotatedElement="_gzbPwNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VVgaIxE9EeGOffqMW1YiZA" name="inInterruptibleRegion" visibility="public" type="_VZx2IhE9EeGOffqMW1YiZA" subsettedProperty="_VVfzFhE9EeGOffqMW1YiZA" association="_VTnjyBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVgaJBE9EeGOffqMW1YiZA" annotatedElement="_VVgaIxE9EeGOffqMW1YiZA">
           <body>Interruptible regions containing the node.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzbPwtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzbPw9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VVgaJRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VVgaJhE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzbPxNwbEeCT5O2F6sGn5g" name="inPartition" visibility="public" type="_gzcd0NwbEeCT5O2F6sGn5g" subsettedProperty="_gzbPvNwbEeCT5O2F6sGn5g" association="_gyfbmdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzbPxdwbEeCT5O2F6sGn5g" annotatedElement="_gzbPxNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VVgaJxE9EeGOffqMW1YiZA" name="inPartition" visibility="public" type="_MIhqsAs-EeGcpbeCPJfCmw" subsettedProperty="_VVfzFhE9EeGOffqMW1YiZA" association="_VTnjyRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVgaKBE9EeGOffqMW1YiZA" annotatedElement="_VVgaJxE9EeGOffqMW1YiZA">
           <body>Partitions containing the node.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzbPxtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzbPx9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VVgaKRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VVgaKhE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzbPyNwbEeCT5O2F6sGn5g" name="inStructuredNode" visibility="public" type="_w1_2cLLREeCsYvaJqFFivQ" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g _gzbPvNwbEeCT5O2F6sGn5g" association="_gyliMNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzbPydwbEeCT5O2F6sGn5g" annotatedElement="_gzbPyNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VVgaKxE9EeGOffqMW1YiZA" name="inStructuredNode" visibility="public" type="_w1_2cLLREeCsYvaJqFFivQ" subsettedProperty="_VVfzFhE9EeGOffqMW1YiZA _N3hRMAtAEeGcpbeCPJfCmw" association="_VT1mNBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVgaLBE9EeGOffqMW1YiZA" annotatedElement="_VVgaKxE9EeGOffqMW1YiZA">
           <body>Structured activity node containing the node.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzbPytwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VVgaLRE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzbPy9wbEeCT5O2F6sGn5g" name="incoming" visibility="public" type="_gzZagNwbEeCT5O2F6sGn5g" association="_gyfbn9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzbPzNwbEeCT5O2F6sGn5g" annotatedElement="_gzbPy9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VVhBMBE9EeGOffqMW1YiZA" name="incoming" visibility="public" type="_VVcIsBE9EeGOffqMW1YiZA" association="_VToK1RE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVhBMRE9EeGOffqMW1YiZA" annotatedElement="_VVhBMBE9EeGOffqMW1YiZA">
           <body>Edges that have the node as target.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzbPzdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzbPztwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VVhBMhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VVhBMxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzbPz9wbEeCT5O2F6sGn5g" name="outgoing" visibility="public" type="_gzZagNwbEeCT5O2F6sGn5g" association="_gynXbNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzbP0NwbEeCT5O2F6sGn5g" annotatedElement="_gzbPz9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VVhBNBE9EeGOffqMW1YiZA" name="outgoing" visibility="public" type="_VVcIsBE9EeGOffqMW1YiZA" association="_VT9iAxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVhBNRE9EeGOffqMW1YiZA" annotatedElement="_VVhBNBE9EeGOffqMW1YiZA">
           <body>Edges that have the node as source.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzbP0dwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzbP0twbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VVhBNhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VVhBNxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzbP09wbEeCT5O2F6sGn5g" name="redefinedNode" visibility="public" type="_gzbPsNwbEeCT5O2F6sGn5g" subsettedProperty="_g15U7twbEeCT5O2F6sGn5g" association="_gywhWNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzbP1NwbEeCT5O2F6sGn5g" annotatedElement="_gzbP09wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VVhBOBE9EeGOffqMW1YiZA" name="redefinedNode" visibility="public" type="_WpiyYAs-EeGcpbeCPJfCmw" subsettedProperty="_VdtT4BE9EeGOffqMW1YiZA" association="_VUSSIBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVhBORE9EeGOffqMW1YiZA" annotatedElement="_VVhBOBE9EeGOffqMW1YiZA">
           <body>Inherited nodes replaced by this node in a specialization of the activity.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzbP1dwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzbP1twbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VVhBOhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VVhBOxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_gzb2wNwbEeCT5O2F6sGn5g" name="ActivityParameterNode">
-      <ownedComment xmi:id="_gzb2wdwbEeCT5O2F6sGn5g" annotatedElement="_gzb2wNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VViPUBE9EeGOffqMW1YiZA" name="ActivityParameterNode">
+      <ownedComment xmi:id="_VViPURE9EeGOffqMW1YiZA" annotatedElement="_VViPUBE9EeGOffqMW1YiZA">
         <body>An activity parameter node is an object node for inputs and outputs to activities.</body>
       </ownedComment>
-      <ownedRule xmi:id="_gzb2wtwbEeCT5O2F6sGn5g" name="no_outgoing_edges" constrainedElement="_gzb2wNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzb2w9wbEeCT5O2F6sGn5g" annotatedElement="_gzb2wtwbEeCT5O2F6sGn5g">
-          <body>Activity parameter object nodes with no outgoing edges and one or more incoming edges must have a parameter with out, inout, or return direction.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzb2xNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gzb2xdwbEeCT5O2F6sGn5g" name="maximum_two_parameter_nodes" constrainedElement="_gzb2wNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzb2xtwbEeCT5O2F6sGn5g" annotatedElement="_gzb2xdwbEeCT5O2F6sGn5g">
-          <body>A parameter with direction inout must have at most two activity parameter nodes in an activity, one with incoming flows and one with outgoing flows.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzb2x9wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gzb2yNwbEeCT5O2F6sGn5g" name="has_parameters" constrainedElement="_gzb2wNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzb2ydwbEeCT5O2F6sGn5g" annotatedElement="_gzb2yNwbEeCT5O2F6sGn5g">
-          <body>Activity parameter nodes must have parameters from the containing activity.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzb2ytwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gzb2y9wbEeCT5O2F6sGn5g" name="same_type" constrainedElement="_gzb2wNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzb2zNwbEeCT5O2F6sGn5g" annotatedElement="_gzb2y9wbEeCT5O2F6sGn5g">
-          <body>The type of an activity parameter node is the same as the type of its parameter.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzb2zdwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gzb2ztwbEeCT5O2F6sGn5g" name="maximum_one_parameter_node" constrainedElement="_gzb2wNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzb2z9wbEeCT5O2F6sGn5g" annotatedElement="_gzb2ztwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VViPUhE9EeGOffqMW1YiZA" name="maximum_one_parameter_node" constrainedElement="_VViPUBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VViPUxE9EeGOffqMW1YiZA" annotatedElement="_VViPUhE9EeGOffqMW1YiZA">
           <body>A parameter with direction other than inout must have at most one activity parameter node in an activity.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzb20NwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VViPVBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_gzb20dwbEeCT5O2F6sGn5g" name="no_incoming_edges" constrainedElement="_gzb2wNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzb20twbEeCT5O2F6sGn5g" annotatedElement="_gzb20dwbEeCT5O2F6sGn5g">
-          <body>Activity parameter object nodes with no incoming edges and one or more outgoing edges must have a parameter with in or inout direction.</body>
+      <ownedRule xmi:id="_VViPVRE9EeGOffqMW1YiZA" name="maximum_two_parameter_nodes" constrainedElement="_VViPUBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VViPVhE9EeGOffqMW1YiZA" annotatedElement="_VViPVRE9EeGOffqMW1YiZA">
+          <body>A parameter with direction inout must have at most two activity parameter nodes in an activity, one with incoming flows and one with outgoing flows.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzb209wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VViPVxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_gzb21NwbEeCT5O2F6sGn5g" name="no_edges" constrainedElement="_gzb2wNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzb21dwbEeCT5O2F6sGn5g" annotatedElement="_gzb21NwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VViPWBE9EeGOffqMW1YiZA" name="no_edges" constrainedElement="_VViPUBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VViPWRE9EeGOffqMW1YiZA" annotatedElement="_VViPWBE9EeGOffqMW1YiZA">
           <body>An activity parameter node may have all incoming edges or all outgoing edges, but it must not have both incoming and outgoing edges.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzb21twbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VViPWhE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_gzb219wbEeCT5O2F6sGn5g" general="_g1XJYNwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_gzb22NwbEeCT5O2F6sGn5g" name="parameter" visibility="public" type="_KyaPMGveEdq4DLWZOhbdEA" association="_gyro1dwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzb22dwbEeCT5O2F6sGn5g" annotatedElement="_gzb22NwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VViPWxE9EeGOffqMW1YiZA" name="no_incoming_edges" constrainedElement="_VViPUBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VViPXBE9EeGOffqMW1YiZA" annotatedElement="_VViPWxE9EeGOffqMW1YiZA">
+          <body>Activity parameter object nodes with no incoming edges and one or more outgoing edges must have a parameter with in or inout direction.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VViPXRE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VViPXhE9EeGOffqMW1YiZA" name="no_outgoing_edges" constrainedElement="_VViPUBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VViPXxE9EeGOffqMW1YiZA" annotatedElement="_VViPXhE9EeGOffqMW1YiZA">
+          <body>Activity parameter object nodes with no outgoing edges and one or more incoming edges must have a parameter with out, inout, or return direction.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VViPYBE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VViPYRE9EeGOffqMW1YiZA" name="same_type" constrainedElement="_VViPUBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VViPYhE9EeGOffqMW1YiZA" annotatedElement="_VViPYRE9EeGOffqMW1YiZA">
+          <body>The type of an activity parameter node is the same as the type of its parameter.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VViPYxE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VViPZBE9EeGOffqMW1YiZA" name="has_parameters" constrainedElement="_VViPUBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VViPZRE9EeGOffqMW1YiZA" annotatedElement="_VViPZBE9EeGOffqMW1YiZA">
+          <body>Activity parameter nodes must have parameters from the containing activity.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VViPZhE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VViPZxE9EeGOffqMW1YiZA" general="_VbcDABE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VViPaBE9EeGOffqMW1YiZA" name="parameter" visibility="public" type="_KyaPMGveEdq4DLWZOhbdEA" association="_VUHTBRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VViPaRE9EeGOffqMW1YiZA" annotatedElement="_VViPaBE9EeGOffqMW1YiZA">
           <body>The parameter the object node will be accepting or providing values for.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_gzcd0NwbEeCT5O2F6sGn5g" name="ActivityPartition">
-      <ownedComment xmi:id="_gzcd0dwbEeCT5O2F6sGn5g" annotatedElement="_gzcd0NwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_MIhqsAs-EeGcpbeCPJfCmw" name="ActivityPartition">
+      <ownedComment xmi:id="_VVi2YBE9EeGOffqMW1YiZA" annotatedElement="_MIhqsAs-EeGcpbeCPJfCmw">
         <body>An activity partition is a kind of activity group for identifying actions that have some characteristic in common.</body>
       </ownedComment>
-      <ownedRule xmi:id="_gzcd0twbEeCT5O2F6sGn5g" name="represents_classifier" constrainedElement="_gzcd0NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzcd09wbEeCT5O2F6sGn5g" annotatedElement="_gzcd0twbEeCT5O2F6sGn5g">
-          <body>If a non-external partition represents a classifier and is contained in another partition, then the containing partition must represent a classifier, and the classifier of the subpartition must be nested in the classifier represented by the containing partition, or be at the contained end of a strong composition association with the classifier represented by the containing partition.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzcd1NwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gzcd1dwbEeCT5O2F6sGn5g" name="represents_part_and_is_contained" constrainedElement="_gzcd0NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzcd1twbEeCT5O2F6sGn5g" annotatedElement="_gzcd1dwbEeCT5O2F6sGn5g">
-          <body>If a partition represents a part and is contained by another partition, then the part must be of a classifier represented by the containing partition, or of a classifier that is the type of a part representing the containing partition.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzcd19wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gzcd2NwbEeCT5O2F6sGn5g" name="represents_part" constrainedElement="_gzcd0NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzcd2dwbEeCT5O2F6sGn5g" annotatedElement="_gzcd2NwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VVi2YRE9EeGOffqMW1YiZA" name="represents_part" constrainedElement="_MIhqsAs-EeGcpbeCPJfCmw">
+        <ownedComment xmi:id="_VVi2YhE9EeGOffqMW1YiZA" annotatedElement="_VVi2YRE9EeGOffqMW1YiZA">
           <body>If a partition represents a part, then all the non-external partitions in the same dimension and at the same level of nesting in that dimension must represent parts directly contained in the internal structure of the same classifier.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzcd2twbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VVi2YxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_gzcd29wbEeCT5O2F6sGn5g" name="dimension_not_contained" constrainedElement="_gzcd0NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzcd3NwbEeCT5O2F6sGn5g" annotatedElement="_gzcd29wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VVi2ZBE9EeGOffqMW1YiZA" name="represents_classifier" constrainedElement="_MIhqsAs-EeGcpbeCPJfCmw">
+        <ownedComment xmi:id="_VVi2ZRE9EeGOffqMW1YiZA" annotatedElement="_VVi2ZBE9EeGOffqMW1YiZA">
+          <body>If a non-external partition represents a classifier and is contained in another partition, then the containing partition must represent a classifier, and the classifier of the subpartition must be nested in the classifier represented by the containing partition, or be at the contained end of a strong composition association with the classifier represented by the containing partition.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VVi2ZhE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VVjdcBE9EeGOffqMW1YiZA" name="represents_part_and_is_contained" constrainedElement="_MIhqsAs-EeGcpbeCPJfCmw">
+        <ownedComment xmi:id="_VVjdcRE9EeGOffqMW1YiZA" annotatedElement="_VVjdcBE9EeGOffqMW1YiZA">
+          <body>If a partition represents a part and is contained by another partition, then the part must be of a classifier represented by the containing partition, or of a classifier that is the type of a part representing the containing partition.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VVjdchE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VVjdcxE9EeGOffqMW1YiZA" name="dimension_not_contained" constrainedElement="_MIhqsAs-EeGcpbeCPJfCmw">
+        <ownedComment xmi:id="_VVjddBE9EeGOffqMW1YiZA" annotatedElement="_VVjdcxE9EeGOffqMW1YiZA">
           <body>A partition with isDimension = true may not be contained by another partition.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzcd3dwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VVjddRE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_gzcd3twbEeCT5O2F6sGn5g" general="_gzaBkNwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_gzcd39wbEeCT5O2F6sGn5g" name="edge" visibility="public" type="_gzZagNwbEeCT5O2F6sGn5g" subsettedProperty="_gzaBnNwbEeCT5O2F6sGn5g" association="_gyZU9NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzcd4NwbEeCT5O2F6sGn5g" annotatedElement="_gzcd39wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VVjddhE9EeGOffqMW1YiZA" general="_aZICgAs-EeGcpbeCPJfCmw"/>
+      <ownedAttribute xmi:id="_VVjddxE9EeGOffqMW1YiZA" name="edge" visibility="public" type="_VVcIsBE9EeGOffqMW1YiZA" subsettedProperty="_VVd95BE9EeGOffqMW1YiZA" association="_VTQXYRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVjdeBE9EeGOffqMW1YiZA" annotatedElement="_VVjddxE9EeGOffqMW1YiZA">
           <body>Edges immediately contained in the group.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzcd4dwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzcd4twbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VVjdeRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VVjdehE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzcd49wbEeCT5O2F6sGn5g" name="isDimension" visibility="public">
-        <ownedComment xmi:id="_gzcd5NwbEeCT5O2F6sGn5g" annotatedElement="_gzcd49wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VVkEgBE9EeGOffqMW1YiZA" name="isDimension" visibility="public">
+        <ownedComment xmi:id="_VVkEgRE9EeGOffqMW1YiZA" annotatedElement="_VVkEgBE9EeGOffqMW1YiZA">
           <body>Tells whether the partition groups other partitions along a dimension.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_gzcd5dwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VVkEghE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzcd5twbEeCT5O2F6sGn5g" name="isExternal" visibility="public">
-        <ownedComment xmi:id="_gzcd59wbEeCT5O2F6sGn5g" annotatedElement="_gzcd5twbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VVkEgxE9EeGOffqMW1YiZA" name="isExternal" visibility="public">
+        <ownedComment xmi:id="_VVkEhBE9EeGOffqMW1YiZA" annotatedElement="_VVkEgxE9EeGOffqMW1YiZA">
           <body>Tells whether the partition represents an entity to which the partitioning structure does not apply.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_gzcd6NwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VVkEhRE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzcd6dwbEeCT5O2F6sGn5g" name="node" visibility="public" type="_gzbPsNwbEeCT5O2F6sGn5g" subsettedProperty="_gzaBoNwbEeCT5O2F6sGn5g" association="_gyfbmdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzcd6twbEeCT5O2F6sGn5g" annotatedElement="_gzcd6dwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VVkrkBE9EeGOffqMW1YiZA" name="node" visibility="public" type="_WpiyYAs-EeGcpbeCPJfCmw" subsettedProperty="_VVd96BE9EeGOffqMW1YiZA" association="_VTnjyRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVkrkRE9EeGOffqMW1YiZA" annotatedElement="_VVkrkBE9EeGOffqMW1YiZA">
           <body>Nodes immediately contained in the group.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzcd69wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzcd7NwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VVkrkhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VVkrkxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzcd7dwbEeCT5O2F6sGn5g" name="represents" visibility="public" type="_kl90MGvbEdq4DLWZOhbdEA" association="_gyzkpNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzcd7twbEeCT5O2F6sGn5g" annotatedElement="_gzcd7dwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VVkrlBE9EeGOffqMW1YiZA" name="represents" visibility="public" type="_kl90MGvbEdq4DLWZOhbdEA" association="_VUa1CBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVkrlRE9EeGOffqMW1YiZA" annotatedElement="_VVkrlBE9EeGOffqMW1YiZA">
           <body>An element constraining behaviors invoked by nodes in the partition.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzcd79wbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VVkrlhE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzcd8NwbEeCT5O2F6sGn5g" name="subpartition" visibility="public" type="_gzcd0NwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzaBp9wbEeCT5O2F6sGn5g" association="_gy7gdNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzcd8dwbEeCT5O2F6sGn5g" annotatedElement="_gzcd8NwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VVkrlxE9EeGOffqMW1YiZA" name="subpartition" visibility="public" type="_MIhqsAs-EeGcpbeCPJfCmw" aggregation="composite" subsettedProperty="_VVek8hE9EeGOffqMW1YiZA" association="_VUnpUxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVkrmBE9EeGOffqMW1YiZA" annotatedElement="_VVkrlxE9EeGOffqMW1YiZA">
           <body>Partitions immediately contained in the partition.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzcd8twbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzcd89wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VVkrmRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VVkrmhE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzcd9NwbEeCT5O2F6sGn5g" name="superPartition" visibility="public" type="_gzcd0NwbEeCT5O2F6sGn5g" subsettedProperty="_gzaBq9wbEeCT5O2F6sGn5g" association="_gy7gdNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzcd9dwbEeCT5O2F6sGn5g" annotatedElement="_gzcd9NwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VVkrmxE9EeGOffqMW1YiZA" name="superPartition" visibility="public" type="_MIhqsAs-EeGcpbeCPJfCmw" subsettedProperty="_VVek9hE9EeGOffqMW1YiZA" association="_VUnpUxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVkrnBE9EeGOffqMW1YiZA" annotatedElement="_VVkrmxE9EeGOffqMW1YiZA">
           <body>Partition immediately containing the partition.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzcd9twbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VVkrnRE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_gzdE4NwbEeCT5O2F6sGn5g" name="Actor">
-      <ownedComment xmi:id="_gzdE4dwbEeCT5O2F6sGn5g" annotatedElement="_gzdE4NwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VVl5sBE9EeGOffqMW1YiZA" name="Actor">
+      <ownedComment xmi:id="_VVl5sRE9EeGOffqMW1YiZA" annotatedElement="_VVl5sBE9EeGOffqMW1YiZA">
         <body>An actor specifies a role played by a user or any other system that interacts with the subject.</body>
       </ownedComment>
-      <ownedRule xmi:id="_gzdE4twbEeCT5O2F6sGn5g" name="associations" constrainedElement="_gzdE4NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzdE49wbEeCT5O2F6sGn5g" annotatedElement="_gzdE4twbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VVl5shE9EeGOffqMW1YiZA" name="associations" constrainedElement="_VVl5sBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVl5sxE9EeGOffqMW1YiZA" annotatedElement="_VVl5shE9EeGOffqMW1YiZA">
           <body>An actor can only have associations to use cases, components and classes. Furthermore these associations must be binary.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzdE5NwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VVl5tBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.ownedAttribute->forAll ( a |
 (a.association->notEmpty()) implies
@@ -2676,35 +2673,26 @@
 </body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_gzdE5dwbEeCT5O2F6sGn5g" name="must_have_name" constrainedElement="_gzdE4NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzdE5twbEeCT5O2F6sGn5g" annotatedElement="_gzdE5dwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VVl5tRE9EeGOffqMW1YiZA" name="must_have_name" constrainedElement="_VVl5sBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVl5thE9EeGOffqMW1YiZA" annotatedElement="_VVl5tRE9EeGOffqMW1YiZA">
           <body>An actor must have a name.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzdE59wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VVl5txE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>name->notEmpty()</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_gzdE6NwbEeCT5O2F6sGn5g" general="_iY7sMGvsEdqG6fBIPwe-mw"/>
+      <generalization xmi:id="_VVl5uBE9EeGOffqMW1YiZA" general="_iY7sMGvsEdqG6fBIPwe-mw"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_gzdr8NwbEeCT5O2F6sGn5g" name="AddStructuralFeatureValueAction">
-      <ownedComment xmi:id="_gzdr8dwbEeCT5O2F6sGn5g" annotatedElement="_gzdr8NwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VVmgwBE9EeGOffqMW1YiZA" name="AddStructuralFeatureValueAction">
+      <ownedComment xmi:id="_VVmgwRE9EeGOffqMW1YiZA" annotatedElement="_VVmgwBE9EeGOffqMW1YiZA">
         <body>An add structural feature value action is a write structural feature action for adding values to a structural feature.</body>
       </ownedComment>
-      <ownedRule xmi:id="_gzdr8twbEeCT5O2F6sGn5g" name="required_value" constrainedElement="_gzdr8NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzdr89wbEeCT5O2F6sGn5g" annotatedElement="_gzdr8twbEeCT5O2F6sGn5g">
-          <body>A value input pin is required.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzdr9NwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>self.value -> notEmpty()</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gzdr9dwbEeCT5O2F6sGn5g" name="unlimited_natural_and_multiplicity" constrainedElement="_gzdr8NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzdr9twbEeCT5O2F6sGn5g" annotatedElement="_gzdr9dwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VVmgwhE9EeGOffqMW1YiZA" name="unlimited_natural_and_multiplicity" constrainedElement="_VVmgwBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVmgwxE9EeGOffqMW1YiZA" annotatedElement="_VVmgwhE9EeGOffqMW1YiZA">
           <body>Actions adding a value to ordered structural features must have a single input pin for the insertion point with type UnlimitedNatural and multiplicity of 1..1, otherwise the action has no input pin for the insertion point.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzdr99wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VVmgxBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>let insertAtPins : Collection = self.insertAt in
 if self.structuralFeature.isOrdered = #false
@@ -2717,39 +2705,48 @@
 </body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_gzdr-NwbEeCT5O2F6sGn5g" general="_g2bgYNwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_gzdr-dwbEeCT5O2F6sGn5g" name="insertAt" visibility="public" type="_g0aHKdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzBnMNwbEeCT5O2F6sGn5g" association="_gygpudwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzdr-twbEeCT5O2F6sGn5g" annotatedElement="_gzdr-dwbEeCT5O2F6sGn5g">
-          <body>Gives the position at which to insert a new value or move an existing value in ordered structural features. The type of the pin is UnlimitedNatural, but the value cannot be zero. This pin is omitted for unordered structural features.</body>
-        </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzdr-9wbEeCT5O2F6sGn5g"/>
-      </ownedAttribute>
-      <ownedAttribute xmi:id="_gzdr_NwbEeCT5O2F6sGn5g" name="isReplaceAll" visibility="public">
-        <ownedComment xmi:id="_gzdr_dwbEeCT5O2F6sGn5g" annotatedElement="_gzdr_NwbEeCT5O2F6sGn5g">
-          <body>Specifies whether existing values of the structural feature of the object should be removed before adding the new value.</body>
-        </ownedComment>
-        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_gzdr_twbEeCT5O2F6sGn5g"/>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_gzdr_9wbEeCT5O2F6sGn5g" name="AddVariableValueAction">
-      <ownedComment xmi:id="_gzdsANwbEeCT5O2F6sGn5g" annotatedElement="_gzdr_9wbEeCT5O2F6sGn5g">
-        <body>An add variable value action is a write variable action for adding values to a variable.</body>
-      </ownedComment>
-      <ownedRule xmi:id="_gzdsAdwbEeCT5O2F6sGn5g" name="required_value" constrainedElement="_gzdr_9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzdsAtwbEeCT5O2F6sGn5g" annotatedElement="_gzdsAdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VVmgxRE9EeGOffqMW1YiZA" name="required_value" constrainedElement="_VVmgwBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVmgxhE9EeGOffqMW1YiZA" annotatedElement="_VVmgxRE9EeGOffqMW1YiZA">
           <body>A value input pin is required.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzdsA9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VVmgxxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.value -> notEmpty()</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_gzdsBNwbEeCT5O2F6sGn5g" name="single_input_pin" constrainedElement="_gzdr_9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzdsBdwbEeCT5O2F6sGn5g" annotatedElement="_gzdsBNwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VVmgyBE9EeGOffqMW1YiZA" general="_VfKscBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VVmgyRE9EeGOffqMW1YiZA" name="insertAt" visibility="public" type="_VZp6WRE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4IABE9EeGOffqMW1YiZA" association="_VTqnExE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVmgyhE9EeGOffqMW1YiZA" annotatedElement="_VVmgyRE9EeGOffqMW1YiZA">
+          <body>Gives the position at which to insert a new value or move an existing value in ordered structural features. The type of the pin is UnlimitedNatural, but the value cannot be zero. This pin is omitted for unordered structural features.</body>
+        </ownedComment>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VVmgyxE9EeGOffqMW1YiZA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_VVmgzBE9EeGOffqMW1YiZA" name="isReplaceAll" visibility="public">
+        <ownedComment xmi:id="_VVmgzRE9EeGOffqMW1YiZA" annotatedElement="_VVmgzBE9EeGOffqMW1YiZA">
+          <body>Specifies whether existing values of the structural feature of the object should be removed before adding the new value.</body>
+        </ownedComment>
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VVmgzhE9EeGOffqMW1YiZA"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Class" xmi:id="_VVnH0BE9EeGOffqMW1YiZA" name="AddVariableValueAction">
+      <ownedComment xmi:id="_VVnH0RE9EeGOffqMW1YiZA" annotatedElement="_VVnH0BE9EeGOffqMW1YiZA">
+        <body>An add variable value action is a write variable action for adding values to a variable.</body>
+      </ownedComment>
+      <ownedRule xmi:id="_VVnH0hE9EeGOffqMW1YiZA" name="required_value" constrainedElement="_VVnH0BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVnH0xE9EeGOffqMW1YiZA" annotatedElement="_VVnH0hE9EeGOffqMW1YiZA">
+          <body>A value input pin is required.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VVnH1BE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>self.value -> notEmpty()</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VVnH1RE9EeGOffqMW1YiZA" name="single_input_pin" constrainedElement="_VVnH0BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVnH1hE9EeGOffqMW1YiZA" annotatedElement="_VVnH1RE9EeGOffqMW1YiZA">
           <body>Actions adding values to ordered variables must have a single input pin for the insertion point with type UnlimtedNatural and multiplicity of 1..1, otherwise the action has no input pin for the insertion point.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzdsBtwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VVnH1xE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>let insertAtPins : Collection = self.insertAt in
 if self.variable.ordering = #unordered
@@ -2762,70 +2759,70 @@
 </body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_gzdsB9wbEeCT5O2F6sGn5g" general="_g2bgddwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_gzdsCNwbEeCT5O2F6sGn5g" name="insertAt" visibility="public" type="_g0aHKdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzBnMNwbEeCT5O2F6sGn5g" association="_gygpvNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzdsCdwbEeCT5O2F6sGn5g" annotatedElement="_gzdsCNwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VVnH2BE9EeGOffqMW1YiZA" general="_VfLTgBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VVnH2RE9EeGOffqMW1YiZA" name="insertAt" visibility="public" type="_VZp6WRE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4IABE9EeGOffqMW1YiZA" association="_VTrOIBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVnH2hE9EeGOffqMW1YiZA" annotatedElement="_VVnH2RE9EeGOffqMW1YiZA">
           <body>Gives the position at which to insert a new value or move an existing value in ordered variables. The types is UnlimitedINatural, but the value cannot be zero. This pin is omitted for unordered variables.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzdsCtwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VVnH2xE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzdsC9wbEeCT5O2F6sGn5g" name="isReplaceAll" visibility="public">
-        <ownedComment xmi:id="_gzdsDNwbEeCT5O2F6sGn5g" annotatedElement="_gzdsC9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VVnH3BE9EeGOffqMW1YiZA" name="isReplaceAll" visibility="public">
+        <ownedComment xmi:id="_VVnH3RE9EeGOffqMW1YiZA" annotatedElement="_VVnH3BE9EeGOffqMW1YiZA">
           <body>Specifies whether existing values of the variable should be removed before adding the new value.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_gzdsDdwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VVnH3hE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_gzeTANwbEeCT5O2F6sGn5g" name="AnyReceiveEvent">
-      <ownedComment xmi:id="_gzeTAdwbEeCT5O2F6sGn5g" annotatedElement="_gzeTANwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VVoV8BE9EeGOffqMW1YiZA" name="AnyReceiveEvent">
+      <ownedComment xmi:id="_VVoV8RE9EeGOffqMW1YiZA" annotatedElement="_VVoV8BE9EeGOffqMW1YiZA">
         <body>A trigger for an AnyReceiveEvent is triggered by the receipt of any message that is not explicitly handled by any related trigger.</body>
       </ownedComment>
-      <generalization xmi:id="_gzeTAtwbEeCT5O2F6sGn5g" general="_g1MKRtwbEeCT5O2F6sGn5g"/>
+      <generalization xmi:id="_VVoV8hE9EeGOffqMW1YiZA" general="_VaEKBhE9EeGOffqMW1YiZA"/>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_-lGRgHLzEdqziYxiZo0YtA" name="Artifact">
-      <ownedComment xmi:id="_gzeTA9wbEeCT5O2F6sGn5g" annotatedElement="_-lGRgHLzEdqziYxiZo0YtA">
-        <body>An artifact is the specification of a physical piece of information that is used or produced by a software development process, or by deployment and operation of a system. Examples of artifacts include model files, source files, scripts, and binary executable files, a table in a database system, a development deliverable, or a word-processing document, a mail message.</body>
-      </ownedComment>
-      <ownedComment xmi:id="_gzeTBNwbEeCT5O2F6sGn5g" annotatedElement="_-lGRgHLzEdqziYxiZo0YtA">
+      <ownedComment xmi:id="_VVoV8xE9EeGOffqMW1YiZA" annotatedElement="_-lGRgHLzEdqziYxiZo0YtA">
         <body>An artifact is the source of a deployment to a node.</body>
       </ownedComment>
-      <generalization xmi:id="_gzeTBdwbEeCT5O2F6sGn5g" general="_6UV2QGwJEdq7X4sGURiZYA"/>
-      <generalization xmi:id="_gzeTBtwbEeCT5O2F6sGn5g" general="_g0EI6dwbEeCT5O2F6sGn5g"/>
+      <ownedComment xmi:id="_VVoV9BE9EeGOffqMW1YiZA" annotatedElement="_-lGRgHLzEdqziYxiZo0YtA">
+        <body>An artifact is the specification of a physical piece of information that is used or produced by a software development process, or by deployment and operation of a system. Examples of artifacts include model files, source files, scripts, and binary executable files, a table in a database system, a development deliverable, or a word-processing document, a mail message.</body>
+      </ownedComment>
+      <generalization xmi:id="_VVoV9RE9EeGOffqMW1YiZA" general="_VYyXphE9EeGOffqMW1YiZA"/>
+      <generalization xmi:id="_VVo9ABE9EeGOffqMW1YiZA" general="_6UV2QGwJEdq7X4sGURiZYA"/>
       <ownedAttribute xmi:id="_wvc1ILG2EeCDe8CO90iVKQ" name="fileName" visibility="public">
-        <ownedComment xmi:id="_gzeTB9wbEeCT5O2F6sGn5g" annotatedElement="_wvc1ILG2EeCDe8CO90iVKQ">
+        <ownedComment xmi:id="_VVo9ARE9EeGOffqMW1YiZA" annotatedElement="_wvc1ILG2EeCDe8CO90iVKQ">
           <body>A concrete name that is used to refer to the Artifact in a physical context. Example: file system name, universal resource locator.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzeTCNwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VVo9AhE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gze6ENwbEeCT5O2F6sGn5g" name="manifestation" visibility="public" type="_g1KVENwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g _g1QbsNwbEeCT5O2F6sGn5g" association="_gyh339wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gze6EdwbEeCT5O2F6sGn5g" annotatedElement="_gze6ENwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VVpkEBE9EeGOffqMW1YiZA" name="manifestation" visibility="public" type="_VZ_RrxE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw _VaN7ABE9EeGOffqMW1YiZA" association="_VTu4gBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVpkERE9EeGOffqMW1YiZA" annotatedElement="_VVpkEBE9EeGOffqMW1YiZA">
           <body>The set of model elements that are manifested in the Artifact. That is, these model elements are utilized in the construction (or generation) of the artifact.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gze6EtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gze6E9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VVpkEhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VVpkExE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gze6FNwbEeCT5O2F6sGn5g" name="nestedArtifact" visibility="public" type="_-lGRgHLzEdqziYxiZo0YtA" aggregation="composite" subsettedProperty="_g1S4AdwbEeCT5O2F6sGn5g" association="_gykUHtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gze6FdwbEeCT5O2F6sGn5g" annotatedElement="_gze6FNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VVqLIBE9EeGOffqMW1YiZA" name="nestedArtifact" visibility="public" type="_-lGRgHLzEdqziYxiZo0YtA" aggregation="composite" subsettedProperty="_Var1EBE9EeGOffqMW1YiZA" association="_VT0YExE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVqLIRE9EeGOffqMW1YiZA" annotatedElement="_VVqLIBE9EeGOffqMW1YiZA">
           <body>The Artifacts that are defined (nested) within the Artifact. The association is a specialization of the ownedMember association from Namespace to NamedElement.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gze6FtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gze6F9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VVqLIhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VVqLIxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gze6GNwbEeCT5O2F6sGn5g" name="ownedAttribute" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" subsettedProperty="_gzuKp9wbEeCT5O2F6sGn5g _g1S4AdwbEeCT5O2F6sGn5g" association="_gyn-etwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gze6GdwbEeCT5O2F6sGn5g" annotatedElement="_gze6GNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VVqLJBE9EeGOffqMW1YiZA" name="ownedAttribute" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" subsettedProperty="_Var1EBE9EeGOffqMW1YiZA _VXldxBE9EeGOffqMW1YiZA" association="_VT-wIBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVqLJRE9EeGOffqMW1YiZA" annotatedElement="_VVqLJBE9EeGOffqMW1YiZA">
           <body>The attributes or association ends defined for the Artifact. The association is a specialization of the ownedMember association.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gze6GtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gze6G9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VVqLJhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VVqLJxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gze6HNwbEeCT5O2F6sGn5g" name="ownedOperation" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" subsettedProperty="_gzuKr9wbEeCT5O2F6sGn5g _gyxIb9wbEeCT5O2F6sGn5g _g1S4AdwbEeCT5O2F6sGn5g" association="_gypMmtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gze6HdwbEeCT5O2F6sGn5g" annotatedElement="_gze6HNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VVqLKBE9EeGOffqMW1YiZA" name="ownedOperation" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" subsettedProperty="_VXmE1BE9EeGOffqMW1YiZA _VUWjlxE9EeGOffqMW1YiZA _Var1EBE9EeGOffqMW1YiZA" association="_VUBMYhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VVqLKRE9EeGOffqMW1YiZA" annotatedElement="_VVqLKBE9EeGOffqMW1YiZA">
           <body>The Operations defined for the Artifact. The association is a specialization of the ownedMember association.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gze6HtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gze6H9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VVqLKhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VVqLKxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
       <ownedOperation xmi:id="_U7wxgHL0EdqziYxiZo0YtA" name="createOwnedAttribute">
         <ownedComment xmi:id="__9c1UOwlEdqYHf-imTcTdw" annotatedElement="_U7wxgHL0EdqziYxiZo0YtA">
@@ -2898,82 +2895,85 @@
       </ownedOperation>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_AwvxoGwNEdq7X4sGURiZYA" name="Association">
-      <ownedComment xmi:id="_gzfhIdwbEeCT5O2F6sGn5g" annotatedElement="_AwvxoGwNEdq7X4sGURiZYA">
+      <ownedComment xmi:id="_VVsAUBE9EeGOffqMW1YiZA" annotatedElement="_AwvxoGwNEdq7X4sGURiZYA">
+        <body>An association describes a set of tuples whose values refer to typed instances. An instance of an association is called a link.A link is a tuple with one value for each end of the association, where each value is an instance of the type of the end.</body>
+      </ownedComment>
+      <ownedComment xmi:id="_VVsAURE9EeGOffqMW1YiZA" annotatedElement="_AwvxoGwNEdq7X4sGURiZYA">
         <body>An association describes a set of tuples whose values refer to typed instances. An instance of an association is called a link. A link is a tuple with one value for each end of the association, where each value is an instance of the type of the end.</body>
       </ownedComment>
-      <ownedRule xmi:id="_gzfhItwbEeCT5O2F6sGn5g" name="specialized_end_number" constrainedElement="_AwvxoGwNEdq7X4sGURiZYA">
-        <ownedComment xmi:id="_gzfhI9wbEeCT5O2F6sGn5g" annotatedElement="_gzfhItwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VVsAUhE9EeGOffqMW1YiZA" name="specialized_end_number" constrainedElement="_AwvxoGwNEdq7X4sGURiZYA">
+        <ownedComment xmi:id="_VVsAUxE9EeGOffqMW1YiZA" annotatedElement="_VVsAUhE9EeGOffqMW1YiZA">
           <body>An association specializing another association has the same number of ends as the other association.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzfhJNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VVsAVBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>parents()->select(oclIsKindOf(Association)).oclAsType(Association)->forAll(p | p.memberEnd->size() = self.memberEnd->size())</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_gzfhJdwbEeCT5O2F6sGn5g" name="specialized_end_types" constrainedElement="_AwvxoGwNEdq7X4sGURiZYA">
-        <ownedComment xmi:id="_gzfhJtwbEeCT5O2F6sGn5g" annotatedElement="_gzfhJdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VVsAVRE9EeGOffqMW1YiZA" name="association_ends" constrainedElement="_AwvxoGwNEdq7X4sGURiZYA">
+        <ownedComment xmi:id="_VVsAVhE9EeGOffqMW1YiZA" annotatedElement="_VVsAVRE9EeGOffqMW1YiZA">
+          <body>Association ends of associations with more than two ends must be owned by the association.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VVsAVxE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>if memberEnd->size() > 2 then ownedEnd->includesAll(memberEnd)</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VVsnYBE9EeGOffqMW1YiZA" name="binary_associations" constrainedElement="_AwvxoGwNEdq7X4sGURiZYA">
+        <ownedComment xmi:id="_VVsnYRE9EeGOffqMW1YiZA" annotatedElement="_VVsnYBE9EeGOffqMW1YiZA">
+          <body>Only binary associations can be aggregations.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VVsnYhE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>self.memberEnd->exists(aggregation &lt;> Aggregation::none) implies self.memberEnd->size() = 2</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VVsnYxE9EeGOffqMW1YiZA" name="specialized_end_types" constrainedElement="_AwvxoGwNEdq7X4sGURiZYA">
+        <ownedComment xmi:id="_VVsnZBE9EeGOffqMW1YiZA" annotatedElement="_VVsnYxE9EeGOffqMW1YiZA">
           <body>When an association specializes another association, every end of the specific association corresponds to an end of the general association, and the specific end reaches the same type or a subtype of the more general end.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzfhJ9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VVsnZRE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>Sequence{1..self.memberEnd->size()}->
 	forAll(i | self.general->select(oclIsKindOf(Association)).oclAsType(Association)->
 		forAll(ga |self.memberEnd->at(i).type.conformsTo(ga.memberEnd->at(i).type)))</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_gzfhKNwbEeCT5O2F6sGn5g" name="binary_associations" constrainedElement="_AwvxoGwNEdq7X4sGURiZYA">
-        <ownedComment xmi:id="_gzfhKdwbEeCT5O2F6sGn5g" annotatedElement="_gzfhKNwbEeCT5O2F6sGn5g">
-          <body>Only binary associations can be aggregations.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzfhKtwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>self.memberEnd->exists(aggregation &lt;> Aggregation::none) implies self.memberEnd->size() = 2</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gzfhK9wbEeCT5O2F6sGn5g" name="association_ends" constrainedElement="_AwvxoGwNEdq7X4sGURiZYA">
-        <ownedComment xmi:id="_gzfhLNwbEeCT5O2F6sGn5g" annotatedElement="_gzfhK9wbEeCT5O2F6sGn5g">
-          <body>Association ends of associations with more than two ends must be owned by the association.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzfhLdwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>if memberEnd->size() > 2 then ownedEnd->includesAll(memberEnd)</body>
-        </specification>
-      </ownedRule>
-      <generalization xmi:id="_gzgIMNwbEeCT5O2F6sGn5g" general="_DH62EKPAEdqi_5gqUMOQtA"/>
-      <generalization xmi:id="_gzgIMdwbEeCT5O2F6sGn5g" general="_6UV2QGwJEdq7X4sGURiZYA"/>
-      <ownedAttribute xmi:id="_gzgIMtwbEeCT5O2F6sGn5g" name="endType" visibility="public" type="_ynRtoGvtEdqG6fBIPwe-mw" isOrdered="true" isReadOnly="true" isDerived="true" subsettedProperty="_g18_gNwbEeCT5O2F6sGn5g" association="_gyZ8BdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzgIM9wbEeCT5O2F6sGn5g" annotatedElement="_gzgIMtwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VVvDoBE9EeGOffqMW1YiZA" general="_6UV2QGwJEdq7X4sGURiZYA"/>
+      <generalization xmi:id="_VVvqsBE9EeGOffqMW1YiZA" general="_DH62EKPAEdqi_5gqUMOQtA"/>
+      <ownedAttribute xmi:id="_VV3mgBE9EeGOffqMW1YiZA" name="endType" visibility="public" type="_ynRtoGvtEdqG6fBIPwe-mw" isOrdered="true" isReadOnly="true" isDerived="true" subsettedProperty="_VeBc8hE9EeGOffqMW1YiZA" association="_VTSMkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VV3mgRE9EeGOffqMW1YiZA" annotatedElement="_VV3mgBE9EeGOffqMW1YiZA">
           <body>References the classifiers that are used as types of the ends of the association.</body>
         </ownedComment>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzgINNwbEeCT5O2F6sGn5g" value="*"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VV3mghE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzgINdwbEeCT5O2F6sGn5g" name="isDerived" visibility="public">
-        <ownedComment xmi:id="_gzgINtwbEeCT5O2F6sGn5g" annotatedElement="_gzgINdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VV4NkBE9EeGOffqMW1YiZA" name="isDerived" visibility="public">
+        <ownedComment xmi:id="_VV4NkRE9EeGOffqMW1YiZA" annotatedElement="_VV4NkBE9EeGOffqMW1YiZA">
           <body>Specifies whether the association is derived from other model elements such as other associations or constraints.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_gzgIN9wbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VV4NkhE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzgIONwbEeCT5O2F6sGn5g" name="memberEnd" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" isOrdered="true" subsettedProperty="_g1S3_dwbEeCT5O2F6sGn5g" association="_gyjF8twbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzgIOdwbEeCT5O2F6sGn5g" annotatedElement="_gzgIONwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VV4NkxE9EeGOffqMW1YiZA" name="memberEnd" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" isOrdered="true" subsettedProperty="_VarOCBE9EeGOffqMW1YiZA" association="_VTwtsxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VV4NlBE9EeGOffqMW1YiZA" annotatedElement="_VV4NkxE9EeGOffqMW1YiZA">
           <body>Each end represents participation of instances of the classifier connected to the end in links of the association.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzgIOtwbEeCT5O2F6sGn5g" value="2"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzgIO9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VV4NlRE9EeGOffqMW1YiZA" value="2"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VV4NlhE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzgIPNwbEeCT5O2F6sGn5g" name="navigableOwnedEnd" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" subsettedProperty="_gzgIQNwbEeCT5O2F6sGn5g" association="_gykUG9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzgIPdwbEeCT5O2F6sGn5g" annotatedElement="_gzgIPNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VV4NlxE9EeGOffqMW1YiZA" name="navigableOwnedEnd" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" subsettedProperty="_VV40oBE9EeGOffqMW1YiZA" association="_VT0YEBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VV4NmBE9EeGOffqMW1YiZA" annotatedElement="_VV4NlxE9EeGOffqMW1YiZA">
           <body>The navigable ends that are owned by the association itself.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzgIPtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzgIP9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VV4NmRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VV4NmhE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzgIQNwbEeCT5O2F6sGn5g" name="ownedEnd" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" subsettedProperty="_gzuKr9wbEeCT5O2F6sGn5g _gyxIb9wbEeCT5O2F6sGn5g _gzgIONwbEeCT5O2F6sGn5g _g1S4AdwbEeCT5O2F6sGn5g" association="_gypMl9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzgIQdwbEeCT5O2F6sGn5g" annotatedElement="_gzgIQNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VV40oBE9EeGOffqMW1YiZA" name="ownedEnd" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" subsettedProperty="_VV4NkxE9EeGOffqMW1YiZA _VXmE1BE9EeGOffqMW1YiZA _VUWjlxE9EeGOffqMW1YiZA _Var1EBE9EeGOffqMW1YiZA" association="_VUAlVhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VV40oRE9EeGOffqMW1YiZA" annotatedElement="_VV40oBE9EeGOffqMW1YiZA">
           <body>The ends that are owned by the association itself.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzgIQtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzgIQ9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VV40ohE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VV40oxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
       <ownedOperation xmi:id="_WSPusK69EdqjppZik4kD8A" name="isBinary">
         <ownedComment xmi:id="_4TWQYOwlEdqYHf-imTcTdw" annotatedElement="_WSPusK69EdqjppZik4kD8A">
@@ -2983,225 +2983,225 @@
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_6VRNQLLREeCsYvaJqFFivQ" name="endType" visibility="public" bodyCondition="_gzgvQNwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_gzgIRNwbEeCT5O2F6sGn5g" annotatedElement="_6VRNQLLREeCsYvaJqFFivQ">
+      <ownedOperation xmi:id="_6VRNQLLREeCsYvaJqFFivQ" name="endType" visibility="public" bodyCondition="_VV40pRE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VV40pBE9EeGOffqMW1YiZA" annotatedElement="_6VRNQLLREeCsYvaJqFFivQ">
           <body>endType is derived from the types of the member ends.</body>
         </ownedComment>
-        <ownedRule xmi:id="_gzgvQNwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_6VRNQLLREeCsYvaJqFFivQ _gzgIMtwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzgvQdwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VV40pRE9EeGOffqMW1YiZA" name="spec" constrainedElement="_6VRNQLLREeCsYvaJqFFivQ _VV3mgBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VV40phE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = self.memberEnd->collect(e | e.type)</body>
           </specification>
         </ownedRule>
         <ownedParameter xmi:id="_-obEgLLREeCsYvaJqFFivQ" name="result" visibility="public" type="_ynRtoGvtEdqG6fBIPwe-mw" isOrdered="true" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzgvQtwbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzgvQ9wbEeCT5O2F6sGn5g" value="*"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VV5bsBE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VV5bsRE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_gzhWUNwbEeCT5O2F6sGn5g" name="AssociationClass">
-      <ownedComment xmi:id="_gzhWUdwbEeCT5O2F6sGn5g" annotatedElement="_gzhWUNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VV7Q4BE9EeGOffqMW1YiZA" name="AssociationClass">
+      <ownedComment xmi:id="_VV7Q4RE9EeGOffqMW1YiZA" annotatedElement="_VV7Q4BE9EeGOffqMW1YiZA">
         <body>A model element that has both association and class properties. An AssociationClass can be seen as an association that also has class properties, or as a class that also has association properties. It not only connects a set of classifiers but also defines a set of features that belong to the relationship itself and not to any of the classifiers.</body>
       </ownedComment>
-      <ownedRule xmi:id="_gzhWUtwbEeCT5O2F6sGn5g" name="cannot_be_defined" constrainedElement="_gzhWUNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzhWU9wbEeCT5O2F6sGn5g" annotatedElement="_gzhWUtwbEeCT5O2F6sGn5g">
-          <body>An AssociationClass cannot be defined between itself and something else.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzhWVNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>self.endType->excludes(self) and self.endType>collect(et|et.allparents()->excludes(self))</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gzhWVdwbEeCT5O2F6sGn5g" name="disjoint_attributes_ends" constrainedElement="_gzhWUNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzhWVtwbEeCT5O2F6sGn5g" annotatedElement="_gzhWVdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VV7Q4hE9EeGOffqMW1YiZA" name="disjoint_attributes_ends" constrainedElement="_VV7Q4BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VV7Q4xE9EeGOffqMW1YiZA" annotatedElement="_VV7Q4hE9EeGOffqMW1YiZA">
           <body>The owned attributes and owned ends of an AssociationClass are disjoint</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzhWV9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VV7Q5BE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>ownedAttribute->intersection(ownedEnd)->isEmpty()</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_gzhWWNwbEeCT5O2F6sGn5g" general="_00owUGvdEdq4DLWZOhbdEA"/>
-      <generalization xmi:id="_gzhWWdwbEeCT5O2F6sGn5g" general="_AwvxoGwNEdq7X4sGURiZYA"/>
+      <ownedRule xmi:id="_VV7Q5RE9EeGOffqMW1YiZA" name="cannot_be_defined" constrainedElement="_VV7Q4BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VV7Q5hE9EeGOffqMW1YiZA" annotatedElement="_VV7Q5RE9EeGOffqMW1YiZA">
+          <body>An AssociationClass cannot be defined between itself and something else.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VV7Q5xE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>self.endType->excludes(self) and self.endType>collect(et|et.allparents()->excludes(self))</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VV7Q6BE9EeGOffqMW1YiZA" general="_00owUGvdEdq4DLWZOhbdEA"/>
+      <generalization xmi:id="_VV7Q6RE9EeGOffqMW1YiZA" general="_AwvxoGwNEdq7X4sGURiZYA"/>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_TUPtYGveEdq4DLWZOhbdEA" name="Behavior" isAbstract="true">
-      <ownedComment xmi:id="_gzhWWtwbEeCT5O2F6sGn5g" annotatedElement="_TUPtYGveEdq4DLWZOhbdEA">
+      <ownedComment xmi:id="_VV738BE9EeGOffqMW1YiZA" annotatedElement="_TUPtYGveEdq4DLWZOhbdEA">
         <body>Behavior is a specification of how its context classifier changes state over time. This specification may be either a definition of possible behavior execution or emergent behavior, or a selective illustration of an interesting subset of possible executions. The latter form is typically used for capturing examples, such as a trace of a particular execution.</body>
       </ownedComment>
-      <ownedComment xmi:id="_gzhWW9wbEeCT5O2F6sGn5g" annotatedElement="_TUPtYGveEdq4DLWZOhbdEA">
+      <ownedComment xmi:id="_VV738RE9EeGOffqMW1YiZA" annotatedElement="_TUPtYGveEdq4DLWZOhbdEA">
         <body>A behavior owns zero or more parameter sets.</body>
       </ownedComment>
-      <ownedRule xmi:id="_gzhWXNwbEeCT5O2F6sGn5g" name="most_one_behaviour" constrainedElement="_TUPtYGveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_gzhWXdwbEeCT5O2F6sGn5g" annotatedElement="_gzhWXNwbEeCT5O2F6sGn5g">
-          <body>There may be at most one behavior for a given pairing of classifier (as owner of the behavior) and behavioral feature (as specification of the behavior).</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzhWXtwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gzhWX9wbEeCT5O2F6sGn5g" name="must_realize" constrainedElement="_TUPtYGveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_gzhWYNwbEeCT5O2F6sGn5g" annotatedElement="_gzhWX9wbEeCT5O2F6sGn5g">
-          <body>If the implemented behavioral feature has been redefined in the ancestors of the owner of the behavior, then the behavior must realize the latest redefining behavioral feature.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzhWYdwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gzhWYtwbEeCT5O2F6sGn5g" name="parameters_match" constrainedElement="_TUPtYGveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_gzhWY9wbEeCT5O2F6sGn5g" annotatedElement="_gzhWYtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VV738hE9EeGOffqMW1YiZA" name="parameters_match" constrainedElement="_TUPtYGveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VV738xE9EeGOffqMW1YiZA" annotatedElement="_VV738hE9EeGOffqMW1YiZA">
           <body>The parameters of the behavior must match the parameters of the implemented behavioral feature.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzhWZNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VV739BE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_gzh9YNwbEeCT5O2F6sGn5g" name="feature_of_context_classifier" constrainedElement="_TUPtYGveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_gzh9YdwbEeCT5O2F6sGn5g" annotatedElement="_gzh9YNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VV_iUBE9EeGOffqMW1YiZA" name="feature_of_context_classifier" constrainedElement="_TUPtYGveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VV_iURE9EeGOffqMW1YiZA" annotatedElement="_VV_iUBE9EeGOffqMW1YiZA">
           <body>The implemented behavioral feature must be a feature (possibly inherited) of the context classifier of the behavior.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzh9YtwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VV_iUhE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_gzh9Y9wbEeCT5O2F6sGn5g" general="_00owUGvdEdq4DLWZOhbdEA"/>
-      <ownedAttribute xmi:id="_gzh9ZNwbEeCT5O2F6sGn5g" name="context" visibility="public" type="_iY7sMGvsEdqG6fBIPwe-mw" isReadOnly="true" isDerived="true" subsettedProperty="_zYrE4La-EeCRxrN1JUGuxA" association="_gyWRrtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzh9ZdwbEeCT5O2F6sGn5g" annotatedElement="_gzh9ZNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VWAJYBE9EeGOffqMW1YiZA" name="must_realize" constrainedElement="_TUPtYGveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VWAJYRE9EeGOffqMW1YiZA" annotatedElement="_VWAJYBE9EeGOffqMW1YiZA">
+          <body>If the implemented behavioral feature has been redefined in the ancestors of the owner of the behavior, then the behavior must realize the latest redefining behavioral feature.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VWAJYhE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VWAJYxE9EeGOffqMW1YiZA" name="most_one_behaviour" constrainedElement="_TUPtYGveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VWAJZBE9EeGOffqMW1YiZA" annotatedElement="_VWAJYxE9EeGOffqMW1YiZA">
+          <body>There may be at most one behavior for a given pairing of classifier (as owner of the behavior) and behavioral feature (as specification of the behavior).</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VWAJZRE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VWAJZhE9EeGOffqMW1YiZA" general="_00owUGvdEdq4DLWZOhbdEA"/>
+      <ownedAttribute xmi:id="_VWAwcBE9EeGOffqMW1YiZA" name="context" visibility="public" type="_iY7sMGvsEdqG6fBIPwe-mw" isReadOnly="true" isDerived="true" subsettedProperty="_zYrE4La-EeCRxrN1JUGuxA" association="_VTIblBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWAwcRE9EeGOffqMW1YiZA" annotatedElement="_VWAwcBE9EeGOffqMW1YiZA">
           <body>The classifier that is the context for the execution of the behavior. If the behavior is owned by a BehavioredClassifier, that classifier is the context. Otherwise, the context is the first BehavioredClassifier reached by following the chain of owner relationships. For example, following this algorithm, the context of an entry action in a state machine is the classifier that owns the state machine. The features of the context classifier as well as the elements visible to the context classifier are visible to the behavior.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzh9ZtwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VWAwchE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
       <ownedAttribute xmi:id="_Q1JqkNwaEeCT5O2F6sGn5g" name="isReentrant" visibility="public">
-        <ownedComment xmi:id="_gzh9Z9wbEeCT5O2F6sGn5g" annotatedElement="_Q1JqkNwaEeCT5O2F6sGn5g">
+        <ownedComment xmi:id="_VWB-kBE9EeGOffqMW1YiZA" annotatedElement="_Q1JqkNwaEeCT5O2F6sGn5g">
           <body>Tells whether the behavior can be invoked while it is still executing from a previous invocation.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_gzh9aNwbEeCT5O2F6sGn5g" value="true"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VWCloBE9EeGOffqMW1YiZA" value="true"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzh9adwbEeCT5O2F6sGn5g" name="ownedParameter" visibility="public" type="_KyaPMGveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" subsettedProperty="_g1S4AdwbEeCT5O2F6sGn5g" association="_gypzqdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzh9atwbEeCT5O2F6sGn5g" annotatedElement="_gzh9adwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VWDMsBE9EeGOffqMW1YiZA" name="ownedParameter" visibility="public" type="_KyaPMGveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" subsettedProperty="_Var1EBE9EeGOffqMW1YiZA" association="_VUCagxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWDMsRE9EeGOffqMW1YiZA" annotatedElement="_VWDMsBE9EeGOffqMW1YiZA">
           <body>References a list of parameters to the behavior which describes the order and type of arguments that can be given when the behavior is invoked and of the values which will be returned when the behavior completes its execution.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzh9a9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzh9bNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VWDMshE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VWDMsxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzikcNwbEeCT5O2F6sGn5g" name="ownedParameterSet" visibility="public" type="_g1mZ8NwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g1S4AdwbEeCT5O2F6sGn5g" association="_gypzo9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzikcdwbEeCT5O2F6sGn5g" annotatedElement="_gzikcNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VWDMtBE9EeGOffqMW1YiZA" name="ownedParameterSet" visibility="public" type="_Vc7QwBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_Var1EBE9EeGOffqMW1YiZA" association="_VUBzcxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWDMtRE9EeGOffqMW1YiZA" annotatedElement="_VWDMtBE9EeGOffqMW1YiZA">
           <body>The ParameterSets owned by this Behavior.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzikctwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzikc9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VWDMthE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VWDMtxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzikdNwbEeCT5O2F6sGn5g" name="postcondition" visibility="public" type="_g0AegNwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g1TfANwbEeCT5O2F6sGn5g" association="_gys28NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzikddwbEeCT5O2F6sGn5g" annotatedElement="_gzikdNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VWDMuBE9EeGOffqMW1YiZA" name="postcondition" visibility="public" type="_VYbLQBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_Var1FBE9EeGOffqMW1YiZA" association="_VUJvQBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWDMuRE9EeGOffqMW1YiZA" annotatedElement="_VWDMuBE9EeGOffqMW1YiZA">
           <body>An optional set of Constraints specifying what is fulfilled after the execution of the behavior is completed, if its precondition was fulfilled before its invocation.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzikdtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzikd9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VWDMuhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VWDMuxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzikeNwbEeCT5O2F6sGn5g" name="precondition" visibility="public" type="_g0AegNwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g1TfANwbEeCT5O2F6sGn5g" association="_gys2-9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzikedwbEeCT5O2F6sGn5g" annotatedElement="_gzikeNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VWDzwBE9EeGOffqMW1YiZA" name="precondition" visibility="public" type="_VYbLQBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_Var1FBE9EeGOffqMW1YiZA" association="_VUKWVBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWDzwRE9EeGOffqMW1YiZA" annotatedElement="_VWDzwBE9EeGOffqMW1YiZA">
           <body>An optional set of Constraints specifying what must be fulfilled when the behavior is invoked.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gziketwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzike9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VWDzwhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VWDzwxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzikfNwbEeCT5O2F6sGn5g" name="redefinedBehavior" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" subsettedProperty="_gzvYyNwbEeCT5O2F6sGn5g" association="_gyv6Q9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzikfdwbEeCT5O2F6sGn5g" annotatedElement="_gzikfNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VWEa0BE9EeGOffqMW1YiZA" name="redefinedBehavior" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" subsettedProperty="_VXuAoBE9EeGOffqMW1YiZA" association="_VUP15xE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWEa0RE9EeGOffqMW1YiZA" annotatedElement="_VWEa0BE9EeGOffqMW1YiZA">
           <body>References a behavior that this behavior redefines. A subtype of Behavior may redefine any other subtype of Behavior. If the behavior implements a behavioral feature, it replaces the redefined behavior. If the behavior is a classifier behavior, it extends the redefined behavior.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzikftwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzikf9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VWEa0hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VWEa0xE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzikgNwbEeCT5O2F6sGn5g" name="specification" visibility="public" type="_rHT3YKOsEdqi_5gqUMOQtA" association="_gyjtCtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzikgdwbEeCT5O2F6sGn5g" annotatedElement="_gzikgNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VWEa1BE9EeGOffqMW1YiZA" name="specification" visibility="public" type="_rHT3YKOsEdqi_5gqUMOQtA" association="_VTyi4xE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWEa1RE9EeGOffqMW1YiZA" annotatedElement="_VWEa1BE9EeGOffqMW1YiZA">
           <body>Designates a behavioral feature that the behavior implements. The behavioral feature must be owned by the classifier that owns the behavior or be inherited by it. The parameters of the behavioral feature and the implementing behavior must match. A behavior does not need to have a specification, in which case it either is the classifer behavior of a BehavioredClassifier or it can only be invoked by another behavior of the classifier.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzikgtwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VWEa1hE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedOperation xmi:id="_Zp2iwFYgEdqB6vblk3tuMA" name="context" visibility="public" bodyCondition="_gzikhNwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_gzikg9wbEeCT5O2F6sGn5g" annotatedElement="_Zp2iwFYgEdqB6vblk3tuMA">
+      <ownedOperation xmi:id="_Zp2iwFYgEdqB6vblk3tuMA" name="context" visibility="public" bodyCondition="_VWEa2BE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VWEa1xE9EeGOffqMW1YiZA" annotatedElement="_Zp2iwFYgEdqB6vblk3tuMA">
           <body>Missing derivation for Behavior::/context : BehavioredClassifier</body>
         </ownedComment>
-        <ownedRule xmi:id="_gzikhNwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_Zp2iwFYgEdqB6vblk3tuMA _gzh9ZNwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzikhdwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VWEa2BE9EeGOffqMW1YiZA" name="spec" constrainedElement="_Zp2iwFYgEdqB6vblk3tuMA _VWAwcBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VWEa2RE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>true</body>
           </specification>
         </ownedRule>
         <ownedParameter xmi:id="_flYtEFYgEdqB6vblk3tuMA" name="result" visibility="public" type="_iY7sMGvsEdqG6fBIPwe-mw" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzikhtwbEeCT5O2F6sGn5g"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VWFB4BE9EeGOffqMW1YiZA"/>
           <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FIHcsVYjEdqB6vblk3tuMA" value="1"/>
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_gzjykNwbEeCT5O2F6sGn5g" name="BehaviorExecutionSpecification">
-      <ownedComment xmi:id="_gzjykdwbEeCT5O2F6sGn5g" annotatedElement="_gzjykNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VWIFMBE9EeGOffqMW1YiZA" name="BehaviorExecutionSpecification">
+      <ownedComment xmi:id="_VWIFMRE9EeGOffqMW1YiZA" annotatedElement="_VWIFMBE9EeGOffqMW1YiZA">
         <body>A behavior execution specification is a kind of execution specification representing the execution of a behavior.</body>
       </ownedComment>
-      <generalization xmi:id="_gzjyktwbEeCT5O2F6sGn5g" general="_g0PIBdwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_gzjyk9wbEeCT5O2F6sGn5g" name="behavior" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" association="_gyTOUNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzjylNwbEeCT5O2F6sGn5g" annotatedElement="_gzjyk9wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VWIFMhE9EeGOffqMW1YiZA" general="_VZQRtRE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VWIFMxE9EeGOffqMW1YiZA" name="behavior" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" association="_VS_RoRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWIFNBE9EeGOffqMW1YiZA" annotatedElement="_VWIFMxE9EeGOffqMW1YiZA">
           <body>Behavior whose execution is occurring.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzjyldwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VWIFNRE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_rHT3YKOsEdqi_5gqUMOQtA" name="BehavioralFeature" isAbstract="true">
-      <ownedComment xmi:id="_gzjyltwbEeCT5O2F6sGn5g" annotatedElement="_rHT3YKOsEdqi_5gqUMOQtA">
+      <ownedComment xmi:id="_VWIFNhE9EeGOffqMW1YiZA" annotatedElement="_rHT3YKOsEdqi_5gqUMOQtA">
         <body>A behavioral feature is a feature of a classifier that specifies an aspect of the behavior of its instances.</body>
       </ownedComment>
-      <ownedComment xmi:id="_gzjyl9wbEeCT5O2F6sGn5g" annotatedElement="_rHT3YKOsEdqi_5gqUMOQtA">
-        <body>A behavioral feature owns zero or more parameter sets.</body>
-      </ownedComment>
-      <ownedComment xmi:id="_gzjymNwbEeCT5O2F6sGn5g" annotatedElement="_rHT3YKOsEdqi_5gqUMOQtA">
+      <ownedComment xmi:id="_VWIsQBE9EeGOffqMW1YiZA" annotatedElement="_rHT3YKOsEdqi_5gqUMOQtA">
         <body>A behavioral feature is implemented (realized) by a behavior. A behavioral feature specifies that a classifier will respond to a designated request by invoking its implementing method.</body>
       </ownedComment>
-      <generalization xmi:id="_gzjymdwbEeCT5O2F6sGn5g" general="_UL0VYLbAEeCRxrN1JUGuxA"/>
-      <generalization xmi:id="_gzjymtwbEeCT5O2F6sGn5g" general="_ZiwkoGwLEdq7X4sGURiZYA"/>
-      <ownedAttribute xmi:id="_gzjym9wbEeCT5O2F6sGn5g" name="concurrency" visibility="public" type="_g2cHd9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzjynNwbEeCT5O2F6sGn5g" annotatedElement="_gzjym9wbEeCT5O2F6sGn5g">
+      <ownedComment xmi:id="_VWIsQRE9EeGOffqMW1YiZA" annotatedElement="_rHT3YKOsEdqi_5gqUMOQtA">
+        <body>A behavioral feature owns zero or more parameter sets.</body>
+      </ownedComment>
+      <generalization xmi:id="_VWIsQhE9EeGOffqMW1YiZA" general="_ZiwkoGwLEdq7X4sGURiZYA"/>
+      <generalization xmi:id="_VWIsQxE9EeGOffqMW1YiZA" general="_UL0VYLbAEeCRxrN1JUGuxA"/>
+      <ownedAttribute xmi:id="_VWJTUBE9EeGOffqMW1YiZA" name="concurrency" visibility="public" type="_VfMhoBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWJTURE9EeGOffqMW1YiZA" annotatedElement="_VWJTUBE9EeGOffqMW1YiZA">
           <body>Specifies the semantics of concurrent calls to the same passive instance (i.e., an instance originating from a class with isActive being false). Active instances control access to their own behavioral features.</body>
         </ownedComment>
-        <defaultValue xmi:type="uml:InstanceValue" xmi:id="_gzjyndwbEeCT5O2F6sGn5g" type="_g2cHd9wbEeCT5O2F6sGn5g" instance="_g2cHedwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:InstanceValue" xmi:id="_VWJTUhE9EeGOffqMW1YiZA" type="_VfMhoBE9EeGOffqMW1YiZA" instance="_VfMhohE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzjyntwbEeCT5O2F6sGn5g" name="isAbstract" visibility="public">
-        <ownedComment xmi:id="_gzjyn9wbEeCT5O2F6sGn5g" annotatedElement="_gzjyntwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VWJTUxE9EeGOffqMW1YiZA" name="isAbstract" visibility="public">
+        <ownedComment xmi:id="_VWJTVBE9EeGOffqMW1YiZA" annotatedElement="_VWJTUxE9EeGOffqMW1YiZA">
           <body>If true, then the behavioral feature does not have an implementation, and one must be supplied by a more specific element. If false, the behavioral feature must have an implementation in the classifier or one must be inherited from a more general element.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_gzjyoNwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VWJTVRE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzjyodwbEeCT5O2F6sGn5g" name="method" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" association="_gyjtCtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzjyotwbEeCT5O2F6sGn5g" annotatedElement="_gzjyodwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VWJTVhE9EeGOffqMW1YiZA" name="method" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" association="_VTyi4xE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWJTVxE9EeGOffqMW1YiZA" annotatedElement="_VWJTVhE9EeGOffqMW1YiZA">
           <body>A behavioral description that implements the behavioral feature. There may be at most one behavior for a particular pairing of a classifier (as owner of the behavior) and a behavioral feature (as specification of the behavior).</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzjyo9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzjypNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VWJTWBE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VWJTWRE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzkZoNwbEeCT5O2F6sGn5g" name="ownedParameter" visibility="public" type="_KyaPMGveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" subsettedProperty="_g1S4AdwbEeCT5O2F6sGn5g" association="_gyqasNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzkZodwbEeCT5O2F6sGn5g" annotatedElement="_gzkZoNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VWJ6YBE9EeGOffqMW1YiZA" name="ownedParameter" visibility="public" type="_KyaPMGveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" subsettedProperty="_Var1EBE9EeGOffqMW1YiZA" association="_VUDBkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWJ6YRE9EeGOffqMW1YiZA" annotatedElement="_VWJ6YBE9EeGOffqMW1YiZA">
           <body>Specifies the ordered set of formal parameters of this BehavioralFeature.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzkZotwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzkZo9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VWJ6YhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VWJ6YxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzkZpNwbEeCT5O2F6sGn5g" name="ownedParameterSet" visibility="public" type="_g1mZ8NwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g1S4AdwbEeCT5O2F6sGn5g" association="_gypzptwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzkZpdwbEeCT5O2F6sGn5g" annotatedElement="_gzkZpNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VWJ6ZBE9EeGOffqMW1YiZA" name="ownedParameterSet" visibility="public" type="_Vc7QwBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_Var1EBE9EeGOffqMW1YiZA" association="_VUCagBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWJ6ZRE9EeGOffqMW1YiZA" annotatedElement="_VWJ6ZBE9EeGOffqMW1YiZA">
           <body>The ParameterSets owned by this BehavioralFeature.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzkZptwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzkZp9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VWJ6ZhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VWJ6ZxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzkZqNwbEeCT5O2F6sGn5g" name="raisedException" visibility="public" type="_ynRtoGvtEdqG6fBIPwe-mw" association="_gyusI9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzkZqdwbEeCT5O2F6sGn5g" annotatedElement="_gzkZqNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VWJ6aBE9EeGOffqMW1YiZA" name="raisedException" visibility="public" type="_ynRtoGvtEdqG6fBIPwe-mw" association="_VUMylxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWJ6aRE9EeGOffqMW1YiZA" annotatedElement="_VWJ6aBE9EeGOffqMW1YiZA">
           <body>References the Types representing exceptions that may be raised during an invocation of this feature.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzkZqtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzkZq9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VWJ6ahE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VWJ6axE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
       <ownedOperation xmi:id="_3Y0aYKOuEdqi_5gqUMOQtA" name="createReturnResult">
         <ownedComment xmi:id="_WdHFYPZPEdqYHf-imTcTdw" annotatedElement="_3Y0aYKOuEdqi_5gqUMOQtA">
@@ -3224,12 +3224,12 @@
           <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BJHvcaOyEdqi_5gqUMOQtA" value="1"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_gzkZrNwbEeCT5O2F6sGn5g" name="isDistinguishableFrom" visibility="public" bodyCondition="_gzkZrtwbEeCT5O2F6sGn5g" isQuery="true" redefinedOperation="_g1Rp0NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzkZrdwbEeCT5O2F6sGn5g" annotatedElement="_gzkZrNwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VWKhcBE9EeGOffqMW1YiZA" name="isDistinguishableFrom" visibility="public" bodyCondition="_VWKhchE9EeGOffqMW1YiZA" isQuery="true" redefinedOperation="_VaPwMBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWKhcRE9EeGOffqMW1YiZA" annotatedElement="_VWKhcBE9EeGOffqMW1YiZA">
           <body>The query isDistinguishableFrom() determines whether two BehavioralFeatures may coexist in the same Namespace. It specifies that they have to have different signatures.</body>
         </ownedComment>
-        <ownedRule xmi:id="_gzkZrtwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_gzkZrNwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzkZr9wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VWKhchE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VWKhcBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VWKhcxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = if n.oclIsKindOf(BehavioralFeature)
 then
@@ -3241,49 +3241,49 @@
 endif</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_gzkZsNwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VWKhdBE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
-        <ownedParameter xmi:id="_gzkZsdwbEeCT5O2F6sGn5g" name="n" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw"/>
-        <ownedParameter xmi:id="_gzkZstwbEeCT5O2F6sGn5g" name="ns" visibility="public" type="_ZiwkoGwLEdq7X4sGURiZYA"/>
+        <ownedParameter xmi:id="_VWKhdRE9EeGOffqMW1YiZA" name="n" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw"/>
+        <ownedParameter xmi:id="_VWKhdhE9EeGOffqMW1YiZA" name="ns" visibility="public" type="_ZiwkoGwLEdq7X4sGURiZYA"/>
       </ownedOperation>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_iY7sMGvsEdqG6fBIPwe-mw" name="BehavioredClassifier" isAbstract="true">
-      <ownedComment xmi:id="_gzlAsNwbEeCT5O2F6sGn5g" annotatedElement="_iY7sMGvsEdqG6fBIPwe-mw">
+      <ownedComment xmi:id="_VWLIgBE9EeGOffqMW1YiZA" annotatedElement="_iY7sMGvsEdqG6fBIPwe-mw">
         <body>A behaviored classifier may have an interface realization.</body>
       </ownedComment>
-      <ownedComment xmi:id="_gzlAsdwbEeCT5O2F6sGn5g" annotatedElement="_iY7sMGvsEdqG6fBIPwe-mw">
+      <ownedComment xmi:id="_VWLIgRE9EeGOffqMW1YiZA" annotatedElement="_iY7sMGvsEdqG6fBIPwe-mw">
         <body>A classifier can have behavior specifications defined in its namespace. One of these may specify the behavior of the classifier itself.</body>
       </ownedComment>
-      <ownedRule xmi:id="_gzlAstwbEeCT5O2F6sGn5g" name="class_behavior" constrainedElement="_iY7sMGvsEdqG6fBIPwe-mw">
-        <ownedComment xmi:id="_gzlAs9wbEeCT5O2F6sGn5g" annotatedElement="_gzlAstwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VWLIghE9EeGOffqMW1YiZA" name="class_behavior" constrainedElement="_iY7sMGvsEdqG6fBIPwe-mw">
+        <ownedComment xmi:id="_VWLIgxE9EeGOffqMW1YiZA" annotatedElement="_VWLIghE9EeGOffqMW1YiZA">
           <body>If a behavior is classifier behavior, it does not have a specification.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzlAtNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VWLIhBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.classifierBehavior->notEmpty() implies self.classifierBehavior.specification->isEmpty()</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_gzlAtdwbEeCT5O2F6sGn5g" general="_6UV2QGwJEdq7X4sGURiZYA"/>
-      <ownedAttribute xmi:id="_gzlAttwbEeCT5O2F6sGn5g" name="classifierBehavior" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" subsettedProperty="_gzlAvdwbEeCT5O2F6sGn5g" association="_gyUccNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzlAt9wbEeCT5O2F6sGn5g" annotatedElement="_gzlAttwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VWLvkBE9EeGOffqMW1YiZA" general="_6UV2QGwJEdq7X4sGURiZYA"/>
+      <ownedAttribute xmi:id="_VWLvkRE9EeGOffqMW1YiZA" name="classifierBehavior" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" subsettedProperty="_VWMWpBE9EeGOffqMW1YiZA" association="_VTBt4xE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWLvkhE9EeGOffqMW1YiZA" annotatedElement="_VWLvkRE9EeGOffqMW1YiZA">
           <body>A behavior specification that specifies the behavior of the classifier itself.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzlAuNwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VWLvkxE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzlAudwbEeCT5O2F6sGn5g" name="interfaceRealization" visibility="public" type="_l2mXcHLzEdqziYxiZo0YtA" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g _g1QbsNwbEeCT5O2F6sGn5g" association="_gyhQxNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzlAutwbEeCT5O2F6sGn5g" annotatedElement="_gzlAudwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VWMWoBE9EeGOffqMW1YiZA" name="interfaceRealization" visibility="public" type="_l2mXcHLzEdqziYxiZo0YtA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw _VaN7ABE9EeGOffqMW1YiZA" association="_VTr1MBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWMWoRE9EeGOffqMW1YiZA" annotatedElement="_VWMWoBE9EeGOffqMW1YiZA">
           <body>The set of InterfaceRealizations owned by the BehavioredClassifier. Interface realizations reference the Interfaces of which the BehavioredClassifier is an implementation.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzlAu9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzlAvNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VWMWohE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VWMWoxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzlAvdwbEeCT5O2F6sGn5g" name="ownedBehavior" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" aggregation="composite" subsettedProperty="_g1S4AdwbEeCT5O2F6sGn5g" association="_gyolh9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzlAvtwbEeCT5O2F6sGn5g" annotatedElement="_gzlAvdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VWMWpBE9EeGOffqMW1YiZA" name="ownedBehavior" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" aggregation="composite" subsettedProperty="_Var1EBE9EeGOffqMW1YiZA" association="_VT_XNxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWMWpRE9EeGOffqMW1YiZA" annotatedElement="_VWMWpBE9EeGOffqMW1YiZA">
           <body>References behavior specifications owned by a classifier.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzlAv9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzlAwNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VWMWphE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VWMWpxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
       <ownedOperation xmi:id="_lbuPQK69EdqjppZik4kD8A" name="getAllImplementedInterfaces">
         <ownedComment xmi:id="_-G81cOwfEdqYHf-imTcTdw" annotatedElement="_lbuPQK69EdqjppZik4kD8A">
@@ -3304,282 +3304,282 @@
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_gzlnwNwbEeCT5O2F6sGn5g" name="BroadcastSignalAction">
-      <ownedComment xmi:id="_gzlnwdwbEeCT5O2F6sGn5g" annotatedElement="_gzlnwNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VWRPIBE9EeGOffqMW1YiZA" name="BroadcastSignalAction">
+      <ownedComment xmi:id="_VWRPIRE9EeGOffqMW1YiZA" annotatedElement="_VWRPIBE9EeGOffqMW1YiZA">
         <body>A broadcast signal action is an action that transmits a signal instance to all the potential target objects in the system, which may cause the firing of a state machine transitions or the execution of associated activities of a target object. The argument values are available to the execution of associated behaviors. The requestor continues execution immediately after the signals are sent out. It does not wait for receipt. Any reply messages are ignored and are not transmitted to the requestor.</body>
       </ownedComment>
-      <ownedRule xmi:id="_gzlnwtwbEeCT5O2F6sGn5g" name="number_and_order" constrainedElement="_gzlnwNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzlnw9wbEeCT5O2F6sGn5g" annotatedElement="_gzlnwtwbEeCT5O2F6sGn5g">
-          <body>The number and order of argument pins must be the same as the number and order of attributes in the signal.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzlnxNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gzlnxdwbEeCT5O2F6sGn5g" name="type_ordering_multiplicity" constrainedElement="_gzlnwNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzlnxtwbEeCT5O2F6sGn5g" annotatedElement="_gzlnxdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VWRPIhE9EeGOffqMW1YiZA" name="type_ordering_multiplicity" constrainedElement="_VWRPIBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWR2MBE9EeGOffqMW1YiZA" annotatedElement="_VWRPIhE9EeGOffqMW1YiZA">
           <body>The type, ordering, and multiplicity of an argument pin must be the same as the corresponding attribute of the signal.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzlnx9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VWR2MRE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_gzlnyNwbEeCT5O2F6sGn5g" general="_g0gNxdwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_gzlnydwbEeCT5O2F6sGn5g" name="signal" visibility="public" type="_Pu3O0HL0EdqziYxiZo0YtA" association="_gy5EMNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzlnytwbEeCT5O2F6sGn5g" annotatedElement="_gzlnydwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VWR2MhE9EeGOffqMW1YiZA" name="number_and_order" constrainedElement="_VWRPIBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWR2MxE9EeGOffqMW1YiZA" annotatedElement="_VWR2MhE9EeGOffqMW1YiZA">
+          <body>The number and order of argument pins must be the same as the number and order of attributes in the signal.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VWR2NBE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VWR2NRE9EeGOffqMW1YiZA" general="_VZzEQBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VWR2NhE9EeGOffqMW1YiZA" name="signal" visibility="public" type="_Pu3O0HL0EdqziYxiZo0YtA" association="_VUjX4BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWR2NxE9EeGOffqMW1YiZA" annotatedElement="_VWR2NhE9EeGOffqMW1YiZA">
           <body>The specification of signal object transmitted to the target objects.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_gzmO0NwbEeCT5O2F6sGn5g" name="CallAction" isAbstract="true">
-      <ownedComment xmi:id="_gzmO0dwbEeCT5O2F6sGn5g" annotatedElement="_gzmO0NwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VWTEUBE9EeGOffqMW1YiZA" name="CallAction" isAbstract="true">
+      <ownedComment xmi:id="_VWTEURE9EeGOffqMW1YiZA" annotatedElement="_VWTEUBE9EeGOffqMW1YiZA">
         <body>CallAction is an abstract class for actions that invoke behavior and receive return values.</body>
       </ownedComment>
-      <ownedRule xmi:id="_gzmO0twbEeCT5O2F6sGn5g" name="type_ordering_multiplicity" constrainedElement="_gzmO0NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzmO09wbEeCT5O2F6sGn5g" annotatedElement="_gzmO0twbEeCT5O2F6sGn5g">
-          <body>The type, ordering, and multiplicity of an argument pin must be the same as the corresponding parameter of the behavior or behavioral feature.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzmO1NwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gzmO1dwbEeCT5O2F6sGn5g" name="number_and_order" constrainedElement="_gzmO0NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzmO1twbEeCT5O2F6sGn5g" annotatedElement="_gzmO1dwbEeCT5O2F6sGn5g">
-          <body>The number and order of argument pins must be the same as the number and order of parameters of the invoked behavior or behavioral feature. Pins are matched to parameters by order.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzmO19wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gzmO2NwbEeCT5O2F6sGn5g" name="synchronous_call" constrainedElement="_gzmO0NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzmO2dwbEeCT5O2F6sGn5g" annotatedElement="_gzmO2NwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VWTEUhE9EeGOffqMW1YiZA" name="synchronous_call" constrainedElement="_VWTEUBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWTEUxE9EeGOffqMW1YiZA" annotatedElement="_VWTEUhE9EeGOffqMW1YiZA">
           <body>Only synchronous call actions can have result pins.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzmO2twbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VWTEVBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_gzmO29wbEeCT5O2F6sGn5g" general="_g0gNxdwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_gzmO3NwbEeCT5O2F6sGn5g" name="isSynchronous" visibility="public">
-        <ownedComment xmi:id="_gzmO3dwbEeCT5O2F6sGn5g" annotatedElement="_gzmO3NwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VWTEVRE9EeGOffqMW1YiZA" name="number_and_order" constrainedElement="_VWTEUBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWTEVhE9EeGOffqMW1YiZA" annotatedElement="_VWTEVRE9EeGOffqMW1YiZA">
+          <body>The number and order of argument pins must be the same as the number and order of parameters of the invoked behavior or behavioral feature. Pins are matched to parameters by order.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VWTEVxE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VWTEWBE9EeGOffqMW1YiZA" name="type_ordering_multiplicity" constrainedElement="_VWTEUBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWTEWRE9EeGOffqMW1YiZA" annotatedElement="_VWTEWBE9EeGOffqMW1YiZA">
+          <body>The type, ordering, and multiplicity of an argument pin must be the same as the corresponding parameter of the behavior or behavioral feature.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VWTEWhE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VWTEWxE9EeGOffqMW1YiZA" general="_VZzEQBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VWTEXBE9EeGOffqMW1YiZA" name="isSynchronous" visibility="public">
+        <ownedComment xmi:id="_VWTEXRE9EeGOffqMW1YiZA" annotatedElement="_VWTEXBE9EeGOffqMW1YiZA">
           <body>If true, the call is synchronous and the caller waits for completion of the invoked behavior. If false, the call is asynchronous and the caller proceeds immediately and does not expect a return values.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_gzmO3twbEeCT5O2F6sGn5g" value="true"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VWTEXhE9EeGOffqMW1YiZA" value="true"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzmO39wbEeCT5O2F6sGn5g" name="result" visibility="public" type="_g1fsRdwbEeCT5O2F6sGn5g" isOrdered="true" aggregation="composite" subsettedProperty="_gzCOK9wbEeCT5O2F6sGn5g" association="_gy0Lu9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzmO4NwbEeCT5O2F6sGn5g" annotatedElement="_gzmO39wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VWTEXxE9EeGOffqMW1YiZA" name="result" visibility="public" type="_VcHYcBE9EeGOffqMW1YiZA" isOrdered="true" aggregation="composite" subsettedProperty="_VU4vEBE9EeGOffqMW1YiZA" association="_VUcqMBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWTEYBE9EeGOffqMW1YiZA" annotatedElement="_VWTEXxE9EeGOffqMW1YiZA">
           <body>A list of output pins where the results of performing the invocation are placed.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzmO4dwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzmO4twbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VWTEYRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VWTEYhE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_gzm14NwbEeCT5O2F6sGn5g" name="CallBehaviorAction">
-      <ownedComment xmi:id="_gzm14dwbEeCT5O2F6sGn5g" annotatedElement="_gzm14NwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VWUScBE9EeGOffqMW1YiZA" name="CallBehaviorAction">
+      <ownedComment xmi:id="_VWUScRE9EeGOffqMW1YiZA" annotatedElement="_VWUScBE9EeGOffqMW1YiZA">
         <body>A call behavior action is a call action that invokes a behavior directly rather than invoking a behavioral feature that, in turn, results in the invocation of that behavior. The argument values of the action are available to the execution of the invoked behavior. For synchronous calls the execution of the call behavior action waits until the execution of the invoked behavior completes and a result is returned on its output pin. The action completes immediately without a result, if the call is asynchronous. In particular, the invoked behavior may be an activity.</body>
       </ownedComment>
-      <ownedRule xmi:id="_gzm14twbEeCT5O2F6sGn5g" name="result_pin_equal_parameter" constrainedElement="_gzm14NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzm149wbEeCT5O2F6sGn5g" annotatedElement="_gzm14twbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VWUSchE9EeGOffqMW1YiZA" name="result_pin_equal_parameter" constrainedElement="_VWUScBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWUScxE9EeGOffqMW1YiZA" annotatedElement="_VWUSchE9EeGOffqMW1YiZA">
           <body>The number of result pins and the number of parameters of the behavior of type return, out, and in-out must be equal.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzm15NwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VWUSdBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_gzm15dwbEeCT5O2F6sGn5g" name="type_ordering_multiplicity" constrainedElement="_gzm14NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzm15twbEeCT5O2F6sGn5g" annotatedElement="_gzm15dwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VWUSdRE9EeGOffqMW1YiZA" name="type_ordering_multiplicity" constrainedElement="_VWUScBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWUSdhE9EeGOffqMW1YiZA" annotatedElement="_VWUSdRE9EeGOffqMW1YiZA">
           <body>The type, ordering, and multiplicity of an argument or result pin is derived from the corresponding parameter of the behavior.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzm159wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VWUSdxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_gzm16NwbEeCT5O2F6sGn5g" name="argument_pin_equal_parameter" constrainedElement="_gzm14NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzm16dwbEeCT5O2F6sGn5g" annotatedElement="_gzm16NwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VWUSeBE9EeGOffqMW1YiZA" name="argument_pin_equal_parameter" constrainedElement="_VWUScBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWUSeRE9EeGOffqMW1YiZA" annotatedElement="_VWUSeBE9EeGOffqMW1YiZA">
           <body>The number of argument pins and the number of parameters of the behavior of type in and in-out must be equal.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzm16twbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VWUSehE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_gzm169wbEeCT5O2F6sGn5g" general="_gzmO0NwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_gzm17NwbEeCT5O2F6sGn5g" name="behavior" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" association="_gyTOVNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzm17dwbEeCT5O2F6sGn5g" annotatedElement="_gzm17NwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VWUSexE9EeGOffqMW1YiZA" general="_VWTEUBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VWUSfBE9EeGOffqMW1YiZA" name="behavior" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" association="_VS_RpRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWUSfRE9EeGOffqMW1YiZA" annotatedElement="_VWUSfBE9EeGOffqMW1YiZA">
           <body>The invoked behavior. It must be capable of accepting and returning control.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_gzm17twbEeCT5O2F6sGn5g" name="CallEvent">
-      <ownedComment xmi:id="_gzm179wbEeCT5O2F6sGn5g" annotatedElement="_gzm17twbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VWU5gBE9EeGOffqMW1YiZA" name="CallEvent">
+      <ownedComment xmi:id="_VWU5gRE9EeGOffqMW1YiZA" annotatedElement="_VWU5gBE9EeGOffqMW1YiZA">
         <body>A call event models the receipt by an object of a message invoking a call of an operation.</body>
       </ownedComment>
-      <generalization xmi:id="_gzm18NwbEeCT5O2F6sGn5g" general="_g1MKRtwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_gzm18dwbEeCT5O2F6sGn5g" name="operation" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" association="_gynXYNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzm18twbEeCT5O2F6sGn5g" annotatedElement="_gzm18dwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VWU5ghE9EeGOffqMW1YiZA" general="_VaEKBhE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VWU5gxE9EeGOffqMW1YiZA" name="operation" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" association="_VT868BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWU5hBE9EeGOffqMW1YiZA" annotatedElement="_VWU5gxE9EeGOffqMW1YiZA">
           <body>Designates the operation whose invocation raised the call event.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_gznc8NwbEeCT5O2F6sGn5g" name="CallOperationAction">
-      <ownedComment xmi:id="_gznc8dwbEeCT5O2F6sGn5g" annotatedElement="_gznc8NwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VWVgkBE9EeGOffqMW1YiZA" name="CallOperationAction">
+      <ownedComment xmi:id="_VWVgkRE9EeGOffqMW1YiZA" annotatedElement="_VWVgkBE9EeGOffqMW1YiZA">
         <body>A call operation action is an action that transmits an operation call request to the target object, where it may cause the invocation of associated behavior. The argument values of the action are available to the execution of the invoked behavior. If the action is marked synchronous, the execution of the call operation action waits until the execution of the invoked behavior completes and a reply transmission is returned to the caller; otherwise execution of the action is complete when the invocation of the operation is established and the execution of the invoked operation proceeds concurrently with the execution of the calling behavior. Any values returned as part of the reply transmission are put on the result output pins of the call operation action. Upon receipt of the reply transmission, execution of the call operation action is complete.</body>
       </ownedComment>
-      <ownedRule xmi:id="_gznc8twbEeCT5O2F6sGn5g" name="type_ordering_multiplicity" constrainedElement="_gznc8NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gznc89wbEeCT5O2F6sGn5g" annotatedElement="_gznc8twbEeCT5O2F6sGn5g">
-          <body>The type, ordering, and multiplicity of an argument or result pin is derived from the corresponding owned parameter of the operation.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gznc9NwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gznc9dwbEeCT5O2F6sGn5g" name="type_target_pin" constrainedElement="_gznc8NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gznc9twbEeCT5O2F6sGn5g" annotatedElement="_gznc9dwbEeCT5O2F6sGn5g">
-          <body>The type of the target pin must be the same as the type that owns the operation.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gznc99wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gznc-NwbEeCT5O2F6sGn5g" name="argument_pin_equal_parameter" constrainedElement="_gznc8NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gznc-dwbEeCT5O2F6sGn5g" annotatedElement="_gznc-NwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VWVgkhE9EeGOffqMW1YiZA" name="argument_pin_equal_parameter" constrainedElement="_VWVgkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWVgkxE9EeGOffqMW1YiZA" annotatedElement="_VWVgkhE9EeGOffqMW1YiZA">
           <body>The number of argument pins and the number of owned parameters of the operation of type in and in-out must be equal.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gznc-twbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VWVglBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_gznc-9wbEeCT5O2F6sGn5g" name="result_pin_equal_parameter" constrainedElement="_gznc8NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gznc_NwbEeCT5O2F6sGn5g" annotatedElement="_gznc-9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VWVglRE9EeGOffqMW1YiZA" name="result_pin_equal_parameter" constrainedElement="_VWVgkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWVglhE9EeGOffqMW1YiZA" annotatedElement="_VWVglRE9EeGOffqMW1YiZA">
           <body>The number of result pins and the number of owned parameters of the operation of type return, out, and in-out must be equal.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gznc_dwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VWVglxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_gznc_twbEeCT5O2F6sGn5g" general="_gzmO0NwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_gznc_9wbEeCT5O2F6sGn5g" name="operation" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" association="_gynXZNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzndANwbEeCT5O2F6sGn5g" annotatedElement="_gznc_9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VWVgmBE9EeGOffqMW1YiZA" name="type_target_pin" constrainedElement="_VWVgkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWVgmRE9EeGOffqMW1YiZA" annotatedElement="_VWVgmBE9EeGOffqMW1YiZA">
+          <body>The type of the target pin must be the same as the type that owns the operation.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VWVgmhE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VWVgmxE9EeGOffqMW1YiZA" name="type_ordering_multiplicity" constrainedElement="_VWVgkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWVgnBE9EeGOffqMW1YiZA" annotatedElement="_VWVgmxE9EeGOffqMW1YiZA">
+          <body>The type, ordering, and multiplicity of an argument or result pin is derived from the corresponding owned parameter of the operation.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VWVgnRE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VWVgnhE9EeGOffqMW1YiZA" general="_VWTEUBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VWVgnxE9EeGOffqMW1YiZA" name="operation" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" association="_VT869BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWVgoBE9EeGOffqMW1YiZA" annotatedElement="_VWVgnxE9EeGOffqMW1YiZA">
           <body>The operation to be invoked by the action execution.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzndAdwbEeCT5O2F6sGn5g" name="target" visibility="public" type="_g0aHKdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzBnMNwbEeCT5O2F6sGn5g" association="_gy8HidwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzndAtwbEeCT5O2F6sGn5g" annotatedElement="_gzndAdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VWVgoRE9EeGOffqMW1YiZA" name="target" visibility="public" type="_VZp6WRE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4IABE9EeGOffqMW1YiZA" association="_VUo3dRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWVgohE9EeGOffqMW1YiZA" annotatedElement="_VWVgoRE9EeGOffqMW1YiZA">
           <body>The target object to which the request is sent. The classifier of the target object is used to dynamically determine a behavior to invoke. This object constitutes the context of the execution of the operation.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_gzndA9wbEeCT5O2F6sGn5g" name="CentralBufferNode">
-      <ownedComment xmi:id="_gzndBNwbEeCT5O2F6sGn5g" annotatedElement="_gzndA9wbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VWWHoBE9EeGOffqMW1YiZA" name="CentralBufferNode">
+      <ownedComment xmi:id="_VWWHoRE9EeGOffqMW1YiZA" annotatedElement="_VWWHoBE9EeGOffqMW1YiZA">
         <body>A central buffer node is an object node for managing flows from multiple sources and destinations.</body>
       </ownedComment>
-      <generalization xmi:id="_gzndBdwbEeCT5O2F6sGn5g" general="_g1XJYNwbEeCT5O2F6sGn5g"/>
+      <generalization xmi:id="_VWWHohE9EeGOffqMW1YiZA" general="_VbcDABE9EeGOffqMW1YiZA"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_gzoEANwbEeCT5O2F6sGn5g" name="ChangeEvent">
-      <ownedComment xmi:id="_gzoEAdwbEeCT5O2F6sGn5g" annotatedElement="_gzoEANwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VWWusBE9EeGOffqMW1YiZA" name="ChangeEvent">
+      <ownedComment xmi:id="_VWWusRE9EeGOffqMW1YiZA" annotatedElement="_VWWusBE9EeGOffqMW1YiZA">
         <body>A change event models a change in the system configuration that makes a condition true.</body>
       </ownedComment>
-      <generalization xmi:id="_gzoEAtwbEeCT5O2F6sGn5g" general="_g0N54NwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_gzoEA9wbEeCT5O2F6sGn5g" name="changeExpression" visibility="public" type="_g2YdENwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gyT1bdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzoEBNwbEeCT5O2F6sGn5g" annotatedElement="_gzoEA9wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VWWushE9EeGOffqMW1YiZA" general="_VZOcgBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VWWusxE9EeGOffqMW1YiZA" name="changeExpression" visibility="public" type="_VfGbABE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VTBt4BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWWutBE9EeGOffqMW1YiZA" annotatedElement="_VWWusxE9EeGOffqMW1YiZA">
           <body>A Boolean-valued expression that will result in a change event whenever its value changes from false to true.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_00owUGvdEdq4DLWZOhbdEA" name="Class">
-      <ownedComment xmi:id="_gzoEBdwbEeCT5O2F6sGn5g" annotatedElement="_00owUGvdEdq4DLWZOhbdEA">
-        <body>A class describes a set of objects that share the same specifications of features, constraints, and semantics.</body>
-      </ownedComment>
-      <ownedComment xmi:id="_gzoEBtwbEeCT5O2F6sGn5g" annotatedElement="_00owUGvdEdq4DLWZOhbdEA">
-        <body>A class has the capability to have an internal structure and ports.</body>
-      </ownedComment>
-      <ownedComment xmi:id="_gzoEB9wbEeCT5O2F6sGn5g" annotatedElement="_00owUGvdEdq4DLWZOhbdEA">
-        <body>Class has derived association that indicates how it may be extended through one or more stereotypes. Stereotype is the only kind of metaclass that cannot be extended by stereotypes.</body>
-      </ownedComment>
-      <ownedComment xmi:id="_gzoECNwbEeCT5O2F6sGn5g" annotatedElement="_00owUGvdEdq4DLWZOhbdEA">
+      <ownedComment xmi:id="_VWWutRE9EeGOffqMW1YiZA" annotatedElement="_00owUGvdEdq4DLWZOhbdEA">
         <body>A class may be designated as active (i.e., each of its instances having its own thread of control) or passive (i.e., each of its instances executing within the context of some other object). A class may also specify which signals the instances of this class handle.</body>
       </ownedComment>
-      <ownedRule xmi:id="_gzoECdwbEeCT5O2F6sGn5g" name="passive_class" constrainedElement="_00owUGvdEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_gzoECtwbEeCT5O2F6sGn5g" annotatedElement="_gzoECdwbEeCT5O2F6sGn5g">
+      <ownedComment xmi:id="_VWWuthE9EeGOffqMW1YiZA" annotatedElement="_00owUGvdEdq4DLWZOhbdEA">
+        <body>A class describes a set of objects that share the same specifications of features, constraints, and semantics.</body>
+      </ownedComment>
+      <ownedComment xmi:id="_VWWutxE9EeGOffqMW1YiZA" annotatedElement="_00owUGvdEdq4DLWZOhbdEA">
+        <body>A class has the capability to have an internal structure and ports.</body>
+      </ownedComment>
+      <ownedComment xmi:id="_VWWuuBE9EeGOffqMW1YiZA" annotatedElement="_00owUGvdEdq4DLWZOhbdEA">
+        <body>Class has derived association that indicates how it may be extended through one or more stereotypes. Stereotype is the only kind of metaclass that cannot be extended by stereotypes.</body>
+      </ownedComment>
+      <ownedRule xmi:id="_VWWuuRE9EeGOffqMW1YiZA" name="passive_class" constrainedElement="_00owUGvdEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VWWuuhE9EeGOffqMW1YiZA" annotatedElement="_VWWuuRE9EeGOffqMW1YiZA">
           <body>A passive class may not own receptions.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzoEC9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VWWuuxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>not self.isActive implies self.ownedReception.isEmpty()</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_gzoEDNwbEeCT5O2F6sGn5g" general="_iY7sMGvsEdqG6fBIPwe-mw"/>
-      <generalization xmi:id="_gzoEDdwbEeCT5O2F6sGn5g" general="_HiSd0LL2EeCBifIhhuFqZA"/>
-      <ownedAttribute xmi:id="_gzoEDtwbEeCT5O2F6sGn5g" name="extension" visibility="public" type="_skHGwGvsEdqG6fBIPwe-mw" isReadOnly="true" isDerived="true" association="_gyc_VdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzoED9wbEeCT5O2F6sGn5g" annotatedElement="_gzoEDtwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VWXVwBE9EeGOffqMW1YiZA" general="_HiSd0LL2EeCBifIhhuFqZA"/>
+      <generalization xmi:id="_VWXVwRE9EeGOffqMW1YiZA" general="_iY7sMGvsEdqG6fBIPwe-mw"/>
+      <ownedAttribute xmi:id="_VWXVwhE9EeGOffqMW1YiZA" name="extension" visibility="public" type="_skHGwGvsEdqG6fBIPwe-mw" isReadOnly="true" isDerived="true" association="_VTavcRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWXVwxE9EeGOffqMW1YiZA" annotatedElement="_VWXVwhE9EeGOffqMW1YiZA">
           <body>References the Extensions that specify additional properties of the metaclass. The property is derived from the extensions whose memberEnds are typed by the Class.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzoEENwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzoEEdwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VWXVxBE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VWXVxRE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzpSINwbEeCT5O2F6sGn5g" name="isAbstract" visibility="public" redefinedProperty="_gzuxwNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzpSIdwbEeCT5O2F6sGn5g" annotatedElement="_gzpSINwbEeCT5O2F6sGn5g">
-          <body>True when a class is abstract.</body>
-        </ownedComment>
-        <ownedComment xmi:id="_gzpSItwbEeCT5O2F6sGn5g" annotatedElement="_gzpSINwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VWXVxhE9EeGOffqMW1YiZA" name="isAbstract" visibility="public" redefinedProperty="_VXtZkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWXVxxE9EeGOffqMW1YiZA" annotatedElement="_VWXVxhE9EeGOffqMW1YiZA">
           <body>If true, the Classifier does not provide a complete declaration and can typically not be instantiated. An abstract classifier is intended to be used by other classifiers e.g. as the target of general metarelationships or generalization relationships.</body>
         </ownedComment>
+        <ownedComment xmi:id="_VWXVyBE9EeGOffqMW1YiZA" annotatedElement="_VWXVxhE9EeGOffqMW1YiZA">
+          <body>True when a class is abstract.</body>
+        </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_gzpSI9wbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VWXVyRE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzpSJNwbEeCT5O2F6sGn5g" name="isActive" visibility="public">
-        <ownedComment xmi:id="_gzpSJdwbEeCT5O2F6sGn5g" annotatedElement="_gzpSJNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VWXVyhE9EeGOffqMW1YiZA" name="isActive" visibility="public">
+        <ownedComment xmi:id="_VWXVyxE9EeGOffqMW1YiZA" annotatedElement="_VWXVyhE9EeGOffqMW1YiZA">
           <body>Determines whether an object specified by this class is active or not. If true, then the owning class is referred to as an active class. If false, then such a class is referred to as a passive class.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_gzpSJtwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VWXVzBE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzpSJ9wbEeCT5O2F6sGn5g" name="nestedClassifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" isOrdered="true" aggregation="composite" subsettedProperty="_gyxIb9wbEeCT5O2F6sGn5g _g1S4AdwbEeCT5O2F6sGn5g" association="_gyk7ItwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzpSKNwbEeCT5O2F6sGn5g" annotatedElement="_gzpSJ9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VWX80BE9EeGOffqMW1YiZA" name="nestedClassifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" isOrdered="true" aggregation="composite" subsettedProperty="_VUWjlxE9EeGOffqMW1YiZA _Var1EBE9EeGOffqMW1YiZA" association="_VT0YFhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWX80RE9EeGOffqMW1YiZA" annotatedElement="_VWX80BE9EeGOffqMW1YiZA">
           <body>References all the Classifiers that are defined (nested) within the Class.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzpSKdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzpSKtwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VWX80hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VWX80xE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzp5MNwbEeCT5O2F6sGn5g" name="ownedAttribute" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" redefinedProperty="_g2JMhdwbEeCT5O2F6sGn5g" subsettedProperty="_gzuKp9wbEeCT5O2F6sGn5g _g1S4AdwbEeCT5O2F6sGn5g" association="_gyn-fdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzp5MdwbEeCT5O2F6sGn5g" annotatedElement="_gzp5MNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VWX81BE9EeGOffqMW1YiZA" name="ownedAttribute" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" redefinedProperty="_VejocRE9EeGOffqMW1YiZA" subsettedProperty="_Var1EBE9EeGOffqMW1YiZA _VXldxBE9EeGOffqMW1YiZA" association="_VT-wIxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWX81RE9EeGOffqMW1YiZA" annotatedElement="_VWX81BE9EeGOffqMW1YiZA">
           <body>The attributes (i.e. the properties) owned by the class.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzp5MtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzp5M9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VWX81hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VWX81xE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzp5NNwbEeCT5O2F6sGn5g" name="ownedOperation" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" subsettedProperty="_gzuKr9wbEeCT5O2F6sGn5g _gyxIb9wbEeCT5O2F6sGn5g _g1S4AdwbEeCT5O2F6sGn5g" association="_gypzoNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzp5NdwbEeCT5O2F6sGn5g" annotatedElement="_gzp5NNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VWZK8BE9EeGOffqMW1YiZA" name="ownedOperation" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" subsettedProperty="_VXmE1BE9EeGOffqMW1YiZA _VUWjlxE9EeGOffqMW1YiZA _Var1EBE9EeGOffqMW1YiZA" association="_VUBzcBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWZK8RE9EeGOffqMW1YiZA" annotatedElement="_VWZK8BE9EeGOffqMW1YiZA">
           <body>The operations owned by the class.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzp5NtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzp5N9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VWZK8hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VWZK8xE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzp5ONwbEeCT5O2F6sGn5g" name="ownedReception" visibility="public" type="_g14t0NwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzuKr9wbEeCT5O2F6sGn5g _g1S4AdwbEeCT5O2F6sGn5g" association="_gyqauNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzp5OdwbEeCT5O2F6sGn5g" annotatedElement="_gzp5ONwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VWZyABE9EeGOffqMW1YiZA" name="ownedReception" visibility="public" type="_Vdji4BE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VXmE1BE9EeGOffqMW1YiZA _Var1EBE9EeGOffqMW1YiZA" association="_VUDooBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWZyARE9EeGOffqMW1YiZA" annotatedElement="_VWZyABE9EeGOffqMW1YiZA">
           <body>Receptions that objects of this class are willing to accept.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzp5OtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzp5O9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VWZyAhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VWZyAxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzp5PNwbEeCT5O2F6sGn5g" name="superClass" visibility="public" type="_00owUGvdEdq4DLWZOhbdEA" isDerived="true" redefinedProperty="_gzuxs9wbEeCT5O2F6sGn5g" association="_gy8HgNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzp5PdwbEeCT5O2F6sGn5g" annotatedElement="_gzp5PNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VWaZEBE9EeGOffqMW1YiZA" name="superClass" visibility="public" type="_00owUGvdEdq4DLWZOhbdEA" isDerived="true" redefinedProperty="_VXsygBE9EeGOffqMW1YiZA" association="_VUoQYhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VWaZERE9EeGOffqMW1YiZA" annotatedElement="_VWaZEBE9EeGOffqMW1YiZA">
           <body>This gives the superclasses of a class.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzp5PtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzp5P9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VWaZEhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VWaZExE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
       <ownedOperation xmi:id="_EpigwGwQEdq14q0ETb1t3g" name="createOwnedOperation">
         <ownedComment xmi:id="_ZFCecOweEdqYHf-imTcTdw" annotatedElement="_EpigwGwQEdq14q0ETb1t3g">
@@ -3625,223 +3625,223 @@
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_4xcu4FYKEdqrn7iZ0eqieg" name="extension" visibility="public" bodyCondition="_gzp5QdwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_gzp5QNwbEeCT5O2F6sGn5g" annotatedElement="_4xcu4FYKEdqrn7iZ0eqieg">
+      <ownedOperation xmi:id="_4xcu4FYKEdqrn7iZ0eqieg" name="extension" visibility="public" bodyCondition="_VWaZFRE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VWaZFBE9EeGOffqMW1YiZA" annotatedElement="_4xcu4FYKEdqrn7iZ0eqieg">
           <body>Missing derivation for Class::/extension : Extension</body>
         </ownedComment>
-        <ownedRule xmi:id="_gzp5QdwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_4xcu4FYKEdqrn7iZ0eqieg _gzoEDtwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzp5QtwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VWaZFRE9EeGOffqMW1YiZA" name="spec" constrainedElement="_4xcu4FYKEdqrn7iZ0eqieg _VWXVwhE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VWaZFhE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>true</body>
           </specification>
         </ownedRule>
         <ownedParameter xmi:id="_8-RUoFYKEdqrn7iZ0eqieg" name="result" visibility="public" type="_skHGwGvsEdqG6fBIPwe-mw" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzqgQNwbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzqgQdwbEeCT5O2F6sGn5g" value="*"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VWaZFxE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VWcOQBE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_gzrHUNwbEeCT5O2F6sGn5g" name="inherit" visibility="public" bodyCondition="_gzrHUtwbEeCT5O2F6sGn5g" isQuery="true" redefinedOperation="_gzxN8NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzrHUdwbEeCT5O2F6sGn5g" annotatedElement="_gzrHUNwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VW5hQBE9EeGOffqMW1YiZA" name="inherit" visibility="public" bodyCondition="_VW5hQhE9EeGOffqMW1YiZA" isQuery="true" redefinedOperation="_VXxD8BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VW5hQRE9EeGOffqMW1YiZA" annotatedElement="_VW5hQBE9EeGOffqMW1YiZA">
           <body>The inherit operation is overridden to exclude redefined properties.</body>
         </ownedComment>
-        <ownedRule xmi:id="_gzrHUtwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_gzrHUNwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzrHU9wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VW5hQhE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VW5hQBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VW5hQxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = inhs->excluding(inh | ownedMember->select(oclIsKindOf(RedefinableElement))->select(redefinedElement->includes(inh)))</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_gzrHVNwbEeCT5O2F6sGn5g" name="result" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzrHVdwbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzrHVtwbEeCT5O2F6sGn5g" value="*"/>
+        <ownedParameter xmi:id="_VW5hRBE9EeGOffqMW1YiZA" name="result" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw" direction="return">
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VW5hRRE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VW5hRhE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
-        <ownedParameter xmi:id="_gzrHV9wbEeCT5O2F6sGn5g" name="inhs" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzrHWNwbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzrHWdwbEeCT5O2F6sGn5g" value="*"/>
+        <ownedParameter xmi:id="_VW5hRxE9EeGOffqMW1YiZA" name="inhs" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw">
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VW5hSBE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VW5hSRE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_hIWcYLLSEeCsYvaJqFFivQ" name="superClass" visibility="public" bodyCondition="_gzrHW9wbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_gzrHWtwbEeCT5O2F6sGn5g" annotatedElement="_hIWcYLLSEeCsYvaJqFFivQ">
+      <ownedOperation xmi:id="_hIWcYLLSEeCsYvaJqFFivQ" name="superClass" visibility="public" bodyCondition="_VW6IUBE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VW5hShE9EeGOffqMW1YiZA" annotatedElement="_hIWcYLLSEeCsYvaJqFFivQ">
           <body>Missing derivation for Class::/superClass : Class</body>
         </ownedComment>
-        <ownedRule xmi:id="_gzrHW9wbEeCT5O2F6sGn5g" name="spec" constrainedElement="_hIWcYLLSEeCsYvaJqFFivQ _gzp5PNwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzrHXNwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VW6IUBE9EeGOffqMW1YiZA" name="spec" constrainedElement="_hIWcYLLSEeCsYvaJqFFivQ _VWaZEBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VW6IURE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>true</body>
           </specification>
         </ownedRule>
         <ownedParameter xmi:id="_kX9L8LLSEeCsYvaJqFFivQ" name="result" visibility="public" type="_00owUGvdEdq4DLWZOhbdEA" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzrHXdwbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzrHXtwbEeCT5O2F6sGn5g" value="*"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VW6IUhE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VW6IUxE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_6UV2QGwJEdq7X4sGURiZYA" name="Classifier" isAbstract="true">
-      <ownedComment xmi:id="_gzruYNwbEeCT5O2F6sGn5g" annotatedElement="_6UV2QGwJEdq7X4sGURiZYA">
+      <ownedComment xmi:id="_VXW0QBE9EeGOffqMW1YiZA" annotatedElement="_6UV2QGwJEdq7X4sGURiZYA">
         <body>A classifier is a classification of instances - it describes a set of instances that have features in common. A classifier can specify a generalization hierarchy by referencing its general classifiers.</body>
       </ownedComment>
-      <ownedComment xmi:id="_gzruYdwbEeCT5O2F6sGn5g" annotatedElement="_6UV2QGwJEdq7X4sGURiZYA">
-        <body>A classifier has the capability to own collaboration uses. These collaboration uses link a collaboration with the classifier to give a description of the workings of the classifier.</body>
-      </ownedComment>
-      <ownedComment xmi:id="_gzruYtwbEeCT5O2F6sGn5g" annotatedElement="_6UV2QGwJEdq7X4sGURiZYA">
-        <body>Classifier is defined to be a kind of templateable element so that a classifier can be parameterized. It is also defined to be a kind of parameterable element so that a classifier can be a formal template parameter.</body>
-      </ownedComment>
-      <ownedComment xmi:id="_gzruY9wbEeCT5O2F6sGn5g" annotatedElement="_6UV2QGwJEdq7X4sGURiZYA">
+      <ownedComment xmi:id="_VXW0QRE9EeGOffqMW1YiZA" annotatedElement="_6UV2QGwJEdq7X4sGURiZYA">
         <body>A classifier has the capability to own use cases. Although the owning classifier typically represents the subject to which the owned use cases apply, this is not necessarily the case. In principle, the same use case can be applied to multiple subjects, as identified by the subject association role of a use case.</body>
       </ownedComment>
-      <ownedRule xmi:id="_gzsVcNwbEeCT5O2F6sGn5g" name="specialize_type" constrainedElement="_6UV2QGwJEdq7X4sGURiZYA">
-        <ownedComment xmi:id="_gzsVcdwbEeCT5O2F6sGn5g" annotatedElement="_gzsVcNwbEeCT5O2F6sGn5g">
-          <body>A classifier may only specialize classifiers of a valid type.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzsVctwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>self.parents()->forAll(c | self.maySpecializeType(c))</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gztjkNwbEeCT5O2F6sGn5g" name="maps_to_generalization_set" constrainedElement="_6UV2QGwJEdq7X4sGURiZYA">
-        <ownedComment xmi:id="_gztjkdwbEeCT5O2F6sGn5g" annotatedElement="_gztjkNwbEeCT5O2F6sGn5g">
-          <body>The Classifier that maps to a GeneralizationSet may neither be a specific nor a general Classifier in any of the Generalization relationships defined for that GeneralizationSet. In other words, a power type may not be an instance of itself nor may its instances also be its subclasses.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gztjktwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gztjk9wbEeCT5O2F6sGn5g" name="non_final_parents" constrainedElement="_6UV2QGwJEdq7X4sGURiZYA">
-        <ownedComment xmi:id="_gztjlNwbEeCT5O2F6sGn5g" annotatedElement="_gztjk9wbEeCT5O2F6sGn5g">
+      <ownedComment xmi:id="_VXW0QhE9EeGOffqMW1YiZA" annotatedElement="_6UV2QGwJEdq7X4sGURiZYA">
+        <body>Classifier is defined to be a kind of templateable element so that a classifier can be parameterized. It is also defined to be a kind of parameterable element so that a classifier can be a formal template parameter.</body>
+      </ownedComment>
+      <ownedComment xmi:id="_VXW0QxE9EeGOffqMW1YiZA" annotatedElement="_6UV2QGwJEdq7X4sGURiZYA">
+        <body>A classifier has the capability to own collaboration uses. These collaboration uses link a collaboration with the classifier to give a description of the workings of the classifier.</body>
+      </ownedComment>
+      <ownedRule xmi:id="_VXk2sBE9EeGOffqMW1YiZA" name="non_final_parents" constrainedElement="_6UV2QGwJEdq7X4sGURiZYA">
+        <ownedComment xmi:id="_VXk2sRE9EeGOffqMW1YiZA" annotatedElement="_VXk2sBE9EeGOffqMW1YiZA">
           <body>The parents of a classifier must be non-final.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gztjldwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VXk2shE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.parents()->forAll(not isFinalSpecialization)</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_gzuKoNwbEeCT5O2F6sGn5g" name="no_cycles_in_generalization" constrainedElement="_6UV2QGwJEdq7X4sGURiZYA">
-        <ownedComment xmi:id="_gzuKodwbEeCT5O2F6sGn5g" annotatedElement="_gzuKoNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VXk2sxE9EeGOffqMW1YiZA" name="no_cycles_in_generalization" constrainedElement="_6UV2QGwJEdq7X4sGURiZYA">
+        <ownedComment xmi:id="_VXk2tBE9EeGOffqMW1YiZA" annotatedElement="_VXk2sxE9EeGOffqMW1YiZA">
           <body>Generalization hierarchies must be directed and acyclical. A classifier can not be both a transitively general and transitively specific classifier of the same classifier.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzuKotwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VXk2tRE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>not self.allParents()->includes(self)</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_gzuKo9wbEeCT5O2F6sGn5g" general="_ZiwkoGwLEdq7X4sGURiZYA"/>
-      <generalization xmi:id="_gzuKpNwbEeCT5O2F6sGn5g" general="_ynRtoGvtEdqG6fBIPwe-mw"/>
-      <generalization xmi:id="_gzuKpdwbEeCT5O2F6sGn5g" general="_g2PTINwbEeCT5O2F6sGn5g"/>
-      <generalization xmi:id="_gzuKptwbEeCT5O2F6sGn5g" general="_uCRA4La-EeCRxrN1JUGuxA"/>
-      <ownedAttribute xmi:id="_gzuKp9wbEeCT5O2F6sGn5g" name="attribute" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" isReadOnly="true" isDerived="true" isDerivedUnion="true" subsettedProperty="_gzuKr9wbEeCT5O2F6sGn5g _gyxIb9wbEeCT5O2F6sGn5g" association="_gySnT9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzuKqNwbEeCT5O2F6sGn5g" annotatedElement="_gzuKp9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VXk2thE9EeGOffqMW1YiZA" name="specialize_type" constrainedElement="_6UV2QGwJEdq7X4sGURiZYA">
+        <ownedComment xmi:id="_VXk2txE9EeGOffqMW1YiZA" annotatedElement="_VXk2thE9EeGOffqMW1YiZA">
+          <body>A classifier may only specialize classifiers of a valid type.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VXk2uBE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>self.parents()->forAll(c | self.maySpecializeType(c))</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VXk2uRE9EeGOffqMW1YiZA" name="maps_to_generalization_set" constrainedElement="_6UV2QGwJEdq7X4sGURiZYA">
+        <ownedComment xmi:id="_VXk2uhE9EeGOffqMW1YiZA" annotatedElement="_VXk2uRE9EeGOffqMW1YiZA">
+          <body>The Classifier that maps to a GeneralizationSet may neither be a specific nor a general Classifier in any of the Generalization relationships defined for that GeneralizationSet. In other words, a power type may not be an instance of itself nor may its instances also be its subclasses.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VXk2uxE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VXldwBE9EeGOffqMW1YiZA" general="_ZiwkoGwLEdq7X4sGURiZYA"/>
+      <generalization xmi:id="_VXldwRE9EeGOffqMW1YiZA" general="_ynRtoGvtEdqG6fBIPwe-mw"/>
+      <generalization xmi:id="_VXldwhE9EeGOffqMW1YiZA" general="_uCRA4La-EeCRxrN1JUGuxA"/>
+      <generalization xmi:id="_VXldwxE9EeGOffqMW1YiZA" general="_VeuAgBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VXldxBE9EeGOffqMW1YiZA" name="attribute" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" isReadOnly="true" isDerived="true" isDerivedUnion="true" subsettedProperty="_VXmE1BE9EeGOffqMW1YiZA _VUWjlxE9EeGOffqMW1YiZA" association="_VS-qkxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VXldxRE9EeGOffqMW1YiZA" annotatedElement="_VXldxBE9EeGOffqMW1YiZA">
           <body>Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzuKqdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzuKqtwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VXldxhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VXldxxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzuKq9wbEeCT5O2F6sGn5g" name="collaborationUse" visibility="public" type="_gz2tgNwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gyVDjNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzuKrNwbEeCT5O2F6sGn5g" annotatedElement="_gzuKq9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VXmE0BE9EeGOffqMW1YiZA" name="collaborationUse" visibility="public" type="_VX7cABE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VTExNRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VXmE0RE9EeGOffqMW1YiZA" annotatedElement="_VXmE0BE9EeGOffqMW1YiZA">
           <body>References the collaboration uses owned by the classifier.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzuKrdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzuKrtwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VXmE0hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VXmE0xE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzuKr9wbEeCT5O2F6sGn5g" name="feature" visibility="public" type="_UL0VYLbAEeCRxrN1JUGuxA" isReadOnly="true" isDerived="true" isDerivedUnion="true" subsettedProperty="_g1S3_dwbEeCT5O2F6sGn5g" association="_gyc_VtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzuKsNwbEeCT5O2F6sGn5g" annotatedElement="_gzuKr9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VXmE1BE9EeGOffqMW1YiZA" name="feature" visibility="public" type="_UL0VYLbAEeCRxrN1JUGuxA" isReadOnly="true" isDerived="true" isDerivedUnion="true" subsettedProperty="_VarOCBE9EeGOffqMW1YiZA" association="_VTavchE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VXmE1RE9EeGOffqMW1YiZA" annotatedElement="_VXmE1BE9EeGOffqMW1YiZA">
           <body>Specifies each feature defined in the classifier.</body>
         </ownedComment>
-        <ownedComment xmi:id="_gzuxsNwbEeCT5O2F6sGn5g" annotatedElement="_gzuKr9wbEeCT5O2F6sGn5g">
+        <ownedComment xmi:id="_VXmE1hE9EeGOffqMW1YiZA" annotatedElement="_VXmE1BE9EeGOffqMW1YiZA">
           <body>Note that there may be members of the Classifier that are of the type Feature but are not included in this association, e.g. inherited features.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzuxsdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzuxstwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VXmE1xE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VXpvMBE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzuxs9wbEeCT5O2F6sGn5g" name="general" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" isDerived="true" association="_gyeNcNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzuxtNwbEeCT5O2F6sGn5g" annotatedElement="_gzuxs9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VXsygBE9EeGOffqMW1YiZA" name="general" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" isDerived="true" association="_VTkgcxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VXsygRE9EeGOffqMW1YiZA" annotatedElement="_VXsygBE9EeGOffqMW1YiZA">
           <body>Specifies the general Classifiers for this Classifier.</body>
         </ownedComment>
-        <ownedComment xmi:id="_gzuxtdwbEeCT5O2F6sGn5g" annotatedElement="_gzuxs9wbEeCT5O2F6sGn5g">
+        <ownedComment xmi:id="_VXsyghE9EeGOffqMW1YiZA" annotatedElement="_VXsygBE9EeGOffqMW1YiZA">
           <body>References the general classifier in the Generalization relationship.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzuxttwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzuxt9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VXsygxE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VXsyhBE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzuxuNwbEeCT5O2F6sGn5g" name="generalization" visibility="public" type="_C7AF4GwREdq14q0ETb1t3g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g _gy5rStwbEeCT5O2F6sGn5g" association="_gyeNedwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzuxudwbEeCT5O2F6sGn5g" annotatedElement="_gzuxuNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VXsyhRE9EeGOffqMW1YiZA" name="generalization" visibility="public" type="_C7AF4GwREdq14q0ETb1t3g" aggregation="composite" subsettedProperty="_VUkmBhE9EeGOffqMW1YiZA _GDD2YAtAEeGcpbeCPJfCmw" association="_VTlHhRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VXsyhhE9EeGOffqMW1YiZA" annotatedElement="_VXsyhRE9EeGOffqMW1YiZA">
           <body>Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzuxutwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzuxu9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VXsyhxE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VXsyiBE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzuxvNwbEeCT5O2F6sGn5g" name="inheritedMember" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw" isReadOnly="true" isDerived="true" subsettedProperty="_g1S3_dwbEeCT5O2F6sGn5g" association="_gygCqNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzuxvdwbEeCT5O2F6sGn5g" annotatedElement="_gzuxvNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VXsyiRE9EeGOffqMW1YiZA" name="inheritedMember" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw" isReadOnly="true" isDerived="true" subsettedProperty="_VarOCBE9EeGOffqMW1YiZA" association="_VTpY9BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VXsyihE9EeGOffqMW1YiZA" annotatedElement="_VXsyiRE9EeGOffqMW1YiZA">
           <body>Specifies all elements inherited by this classifier from the general classifiers.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzuxvtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzuxv9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VXsyixE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VXsyjBE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzuxwNwbEeCT5O2F6sGn5g" name="isAbstract" visibility="public">
-        <ownedComment xmi:id="_gzuxwdwbEeCT5O2F6sGn5g" annotatedElement="_gzuxwNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VXtZkBE9EeGOffqMW1YiZA" name="isAbstract" visibility="public">
+        <ownedComment xmi:id="_VXtZkRE9EeGOffqMW1YiZA" annotatedElement="_VXtZkBE9EeGOffqMW1YiZA">
           <body>If true, the Classifier does not provide a complete declaration and can typically not be instantiated. An abstract classifier is intended to be used by other classifiers e.g. as the target of general metarelationships or generalization relationships.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_gzuxwtwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VXtZkhE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzuxw9wbEeCT5O2F6sGn5g" name="isFinalSpecialization" visibility="public">
-        <ownedComment xmi:id="_gzuxxNwbEeCT5O2F6sGn5g" annotatedElement="_gzuxw9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VXtZkxE9EeGOffqMW1YiZA" name="isFinalSpecialization" visibility="public">
+        <ownedComment xmi:id="_VXtZlBE9EeGOffqMW1YiZA" annotatedElement="_VXtZkxE9EeGOffqMW1YiZA">
           <body>If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_gzuxxdwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VXtZlRE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzuxxtwbEeCT5O2F6sGn5g" name="ownedTemplateSignature" visibility="public" type="_9keOQGvdEdq4DLWZOhbdEA" aggregation="composite" redefinedProperty="_g2PTI9wbEeCT5O2F6sGn5g" subsettedProperty="_gyxIb9wbEeCT5O2F6sGn5g" association="_gyrBw9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzuxx9wbEeCT5O2F6sGn5g" annotatedElement="_gzuxxtwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VXtZlhE9EeGOffqMW1YiZA" name="ownedTemplateSignature" visibility="public" type="_9keOQGvdEdq4DLWZOhbdEA" aggregation="composite" redefinedProperty="_VeuAgxE9EeGOffqMW1YiZA" subsettedProperty="_VUWjlxE9EeGOffqMW1YiZA" association="_VUEPsxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VXtZlxE9EeGOffqMW1YiZA" annotatedElement="_VXtZlhE9EeGOffqMW1YiZA">
           <body>The optional template signature specifying the formal template parameters.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzuxyNwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VXtZmBE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzvYwNwbEeCT5O2F6sGn5g" name="ownedUseCase" visibility="public" type="_g2WA0NwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g1S4AdwbEeCT5O2F6sGn5g" association="_gyrBxtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzvYwdwbEeCT5O2F6sGn5g" annotatedElement="_gzvYwNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VXtZmRE9EeGOffqMW1YiZA" name="ownedUseCase" visibility="public" type="_VfFM4BE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_Var1EBE9EeGOffqMW1YiZA" association="_VUEPthE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VXtZmhE9EeGOffqMW1YiZA" annotatedElement="_VXtZmRE9EeGOffqMW1YiZA">
           <body>References the use cases owned by this classifier.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzvYwtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzvYw9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VXtZmxE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VXtZnBE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzvYxNwbEeCT5O2F6sGn5g" name="powertypeExtent" visibility="public" type="_g0XD0NwbEeCT5O2F6sGn5g" association="_gys29twbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzvYxdwbEeCT5O2F6sGn5g" annotatedElement="_gzvYxNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VXtZnRE9EeGOffqMW1YiZA" name="powertypeExtent" visibility="public" type="_VZgwYBE9EeGOffqMW1YiZA" association="_VUJvRhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VXtZnhE9EeGOffqMW1YiZA" annotatedElement="_VXtZnRE9EeGOffqMW1YiZA">
           <body>Designates the GeneralizationSet of which the associated Classifier is a power type.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzvYxtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzvYx9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VXtZnxE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VXtZoBE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzvYyNwbEeCT5O2F6sGn5g" name="redefinedClassifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" subsettedProperty="_g15U7twbEeCT5O2F6sGn5g" association="_gyv6R9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzvYydwbEeCT5O2F6sGn5g" annotatedElement="_gzvYyNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VXuAoBE9EeGOffqMW1YiZA" name="redefinedClassifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" subsettedProperty="_VdtT4BE9EeGOffqMW1YiZA" association="_VUQc8BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VXuAoRE9EeGOffqMW1YiZA" annotatedElement="_VXuAoBE9EeGOffqMW1YiZA">
           <body>References the Classifiers that are redefined by this Classifier.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzvYytwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzvYy9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VXuAohE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VXuAoxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzvYzNwbEeCT5O2F6sGn5g" name="representation" visibility="public" type="_gz2tgNwbEeCT5O2F6sGn5g" subsettedProperty="_gzuKq9wbEeCT5O2F6sGn5g" association="_gyy9nNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzvYzdwbEeCT5O2F6sGn5g" annotatedElement="_gzvYzNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VXuApBE9EeGOffqMW1YiZA" name="representation" visibility="public" type="_VX7cABE9EeGOffqMW1YiZA" subsettedProperty="_VXmE0BE9EeGOffqMW1YiZA" association="_VUa1ABE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VXuApRE9EeGOffqMW1YiZA" annotatedElement="_VXuApBE9EeGOffqMW1YiZA">
           <body>References a collaboration use which indicates the collaboration that represents this classifier.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzvYztwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VXuAphE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzvYz9wbEeCT5O2F6sGn5g" name="substitution" visibility="public" type="_g2KaoNwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g _g1QbsNwbEeCT5O2F6sGn5g" association="_gy7gedwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzvY0NwbEeCT5O2F6sGn5g" annotatedElement="_gzvYz9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VXuApxE9EeGOffqMW1YiZA" name="substitution" visibility="public" type="_VeldoBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw _VaN7ABE9EeGOffqMW1YiZA" association="_VUoQYBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VXuAqBE9EeGOffqMW1YiZA" annotatedElement="_VXuApxE9EeGOffqMW1YiZA">
           <body>References the substitutions that are owned by this Classifier.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzvY0dwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzvY0twbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VXuAqRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VXuAqhE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzvY09wbEeCT5O2F6sGn5g" name="templateParameter" visibility="public" type="_gzzqMNwbEeCT5O2F6sGn5g" redefinedProperty="_g1noFtwbEeCT5O2F6sGn5g" association="_gyVDhNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzvY1NwbEeCT5O2F6sGn5g" annotatedElement="_gzvY09wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VXuAqxE9EeGOffqMW1YiZA" name="templateParameter" visibility="public" type="_VX2jgBE9EeGOffqMW1YiZA" redefinedProperty="_Vc731hE9EeGOffqMW1YiZA" association="_VTEKJBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VXuArBE9EeGOffqMW1YiZA" annotatedElement="_VXuAqxE9EeGOffqMW1YiZA">
           <body>The template parameter that exposes this element as a formal parameter.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzvY1dwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VXuArRE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzvY1twbEeCT5O2F6sGn5g" name="useCase" visibility="public" type="_g2WA0NwbEeCT5O2F6sGn5g" association="_gy7gctwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzvY19wbEeCT5O2F6sGn5g" annotatedElement="_gzvY1twbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VXunsBE9EeGOffqMW1YiZA" name="useCase" visibility="public" type="_VfFM4BE9EeGOffqMW1YiZA" association="_VUnpURE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VXunsRE9EeGOffqMW1YiZA" annotatedElement="_VXunsBE9EeGOffqMW1YiZA">
           <body>The set of use cases for which this Classifier is the subject.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzvY2NwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzvY2dwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VXunshE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VXunsxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
       <ownedOperation xmi:id="_KjT7EGwREdq14q0ETb1t3g" name="getAllAttributes" isQuery="true">
         <ownedComment xmi:id="_osV7wOwkEdqYHf-imTcTdw" annotatedElement="_KjT7EGwREdq14q0ETb1t3g">
@@ -3958,582 +3958,582 @@
           <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_J92vca6-EdqjppZik4kD8A" value="*"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_gzv_0NwbEeCT5O2F6sGn5g" name="allFeatures" visibility="public" bodyCondition="_gzv_0twbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_gzv_0dwbEeCT5O2F6sGn5g" annotatedElement="_gzv_0NwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VXuntBE9EeGOffqMW1YiZA" name="allFeatures" visibility="public" bodyCondition="_VXunthE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VXuntRE9EeGOffqMW1YiZA" annotatedElement="_VXuntBE9EeGOffqMW1YiZA">
           <body>The query allFeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as inheritance, this will be a larger set than feature.</body>
         </ownedComment>
-        <ownedRule xmi:id="_gzv_0twbEeCT5O2F6sGn5g" name="spec" constrainedElement="_gzv_0NwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzv_09wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VXunthE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VXuntBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VXuntxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = member->select(oclIsKindOf(Feature))</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_gzv_1NwbEeCT5O2F6sGn5g" name="result" visibility="public" type="_UL0VYLbAEeCRxrN1JUGuxA" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzv_1dwbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzv_1twbEeCT5O2F6sGn5g" value="*"/>
+        <ownedParameter xmi:id="_VXunuBE9EeGOffqMW1YiZA" name="result" visibility="public" type="_UL0VYLbAEeCRxrN1JUGuxA" direction="return">
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VXunuRE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VXunuhE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_gzv_19wbEeCT5O2F6sGn5g" name="allParents" visibility="public" bodyCondition="_gzv_2dwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_gzv_2NwbEeCT5O2F6sGn5g" annotatedElement="_gzv_19wbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VXvOwBE9EeGOffqMW1YiZA" name="allParents" visibility="public" bodyCondition="_VXvOwhE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VXvOwRE9EeGOffqMW1YiZA" annotatedElement="_VXvOwBE9EeGOffqMW1YiZA">
           <body>The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.</body>
         </ownedComment>
-        <ownedRule xmi:id="_gzv_2dwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_gzv_19wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzv_2twbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VXvOwhE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VXvOwBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VXvOwxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = self.parents()->union(self.parents()->collect(p | p.allParents())</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_gzv_29wbEeCT5O2F6sGn5g" name="result" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzv_3NwbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzv_3dwbEeCT5O2F6sGn5g" value="*"/>
+        <ownedParameter xmi:id="_VXvOxBE9EeGOffqMW1YiZA" name="result" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" direction="return">
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VXvOxRE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VXvOxhE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_gzv_3twbEeCT5O2F6sGn5g" name="conformsTo" visibility="public" bodyCondition="_gzv_4NwbEeCT5O2F6sGn5g" isQuery="true" redefinedOperation="_g2ULo9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzv_39wbEeCT5O2F6sGn5g" annotatedElement="_gzv_3twbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VXvOxxE9EeGOffqMW1YiZA" name="conformsTo" visibility="public" bodyCondition="_VXvOyRE9EeGOffqMW1YiZA" isQuery="true" redefinedOperation="_VfCwoRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VXvOyBE9EeGOffqMW1YiZA" annotatedElement="_VXvOxxE9EeGOffqMW1YiZA">
           <body>The query conformsTo() gives true for a classifier that defines a type that conforms to another. This is used, for example, in the specification of signature conformance for operations.</body>
         </ownedComment>
-        <ownedRule xmi:id="_gzv_4NwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_gzv_3twbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzv_4dwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VXvOyRE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VXvOxxE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VXvOyhE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = (self=other) or (self.allParents()->includes(other))</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_gzv_4twbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VXvOyxE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
-        <ownedParameter xmi:id="_gzv_49wbEeCT5O2F6sGn5g" name="other" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA"/>
+        <ownedParameter xmi:id="_VXvOzBE9EeGOffqMW1YiZA" name="other" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA"/>
       </ownedOperation>
-      <ownedOperation xmi:id="_wKRjcLLSEeCsYvaJqFFivQ" name="general" visibility="public" bodyCondition="_gzwm4dwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_gzwm4NwbEeCT5O2F6sGn5g" annotatedElement="_wKRjcLLSEeCsYvaJqFFivQ">
+      <ownedOperation xmi:id="_wKRjcLLSEeCsYvaJqFFivQ" name="general" visibility="public" bodyCondition="_VXv10RE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VXv10BE9EeGOffqMW1YiZA" annotatedElement="_wKRjcLLSEeCsYvaJqFFivQ">
           <body>The general classifiers are the classifiers referenced by the generalization relationships.</body>
         </ownedComment>
-        <ownedRule xmi:id="_gzwm4dwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_wKRjcLLSEeCsYvaJqFFivQ _gzuxs9wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzwm4twbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VXv10RE9EeGOffqMW1YiZA" name="spec" constrainedElement="_wKRjcLLSEeCsYvaJqFFivQ _VXsygBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VXv10hE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = self.parents()</body>
           </specification>
         </ownedRule>
         <ownedParameter xmi:id="_zGh5MLLSEeCsYvaJqFFivQ" name="result" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzwm49wbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzwm5NwbEeCT5O2F6sGn5g" value="*"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VXv10xE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VXv11BE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_gzwm5dwbEeCT5O2F6sGn5g" name="hasVisibilityOf" visibility="public" bodyCondition="_gzwm6dwbEeCT5O2F6sGn5g" isQuery="true" precondition="_gzwm59wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzwm5twbEeCT5O2F6sGn5g" annotatedElement="_gzwm5dwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VXwc4BE9EeGOffqMW1YiZA" name="hasVisibilityOf" visibility="public" bodyCondition="_VXwc5BE9EeGOffqMW1YiZA" isQuery="true" precondition="_VXwc4hE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VXwc4RE9EeGOffqMW1YiZA" annotatedElement="_VXwc4BE9EeGOffqMW1YiZA">
           <body>The query hasVisibilityOf() determines whether a named element is visible in the classifier. By default all are visible. It is only called when the argument is something owned by a parent.</body>
         </ownedComment>
-        <ownedRule xmi:id="_gzwm59wbEeCT5O2F6sGn5g" name="pre" constrainedElement="_gzwm5dwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzwm6NwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VXwc4hE9EeGOffqMW1YiZA" name="pre" constrainedElement="_VXwc4BE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VXwc4xE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>self.allParents()->including(self)->collect(c | c.member)->includes(n)</body>
           </specification>
         </ownedRule>
-        <ownedRule xmi:id="_gzwm6dwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_gzwm5dwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzwm6twbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VXwc5BE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VXwc4BE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VXwc5RE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = (n.visibility &lt;> VisibilityKind::private)</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_gzwm69wbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VXwc5hE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
-        <ownedParameter xmi:id="_gzwm7NwbEeCT5O2F6sGn5g" name="n" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw"/>
+        <ownedParameter xmi:id="_VXwc5xE9EeGOffqMW1YiZA" name="n" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw"/>
       </ownedOperation>
-      <ownedOperation xmi:id="_gzxN8NwbEeCT5O2F6sGn5g" name="inherit" visibility="public" bodyCondition="_gzxN89wbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_gzxN8dwbEeCT5O2F6sGn5g" annotatedElement="_gzxN8NwbEeCT5O2F6sGn5g">
-          <body>The query inherit() defines how to inherit a set of elements. Here the operation is defined to inherit them all. It is intended to be redefined in circumstances where inheritance is affected by redefinition.</body>
-        </ownedComment>
-        <ownedComment xmi:id="_gzxN8twbEeCT5O2F6sGn5g" annotatedElement="_gzxN8NwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VXxD8BE9EeGOffqMW1YiZA" name="inherit" visibility="public" bodyCondition="_VXxD8xE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VXxD8RE9EeGOffqMW1YiZA" annotatedElement="_VXxD8BE9EeGOffqMW1YiZA">
           <body>The inherit operation is overridden to exclude redefined properties.</body>
         </ownedComment>
-        <ownedRule xmi:id="_gzxN89wbEeCT5O2F6sGn5g" name="spec" constrainedElement="_gzxN8NwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzxN9NwbEeCT5O2F6sGn5g">
+        <ownedComment xmi:id="_VXxD8hE9EeGOffqMW1YiZA" annotatedElement="_VXxD8BE9EeGOffqMW1YiZA">
+          <body>The query inherit() defines how to inherit a set of elements. Here the operation is defined to inherit them all. It is intended to be redefined in circumstances where inheritance is affected by redefinition.</body>
+        </ownedComment>
+        <ownedRule xmi:id="_VXxD8xE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VXxD8BE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VXxD9BE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = inhs</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_gzxN9dwbEeCT5O2F6sGn5g" name="result" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzxN9twbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzxN99wbEeCT5O2F6sGn5g" value="*"/>
+        <ownedParameter xmi:id="_VXxD9RE9EeGOffqMW1YiZA" name="result" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw" direction="return">
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VXxD9hE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VXxD9xE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
-        <ownedParameter xmi:id="_gzxN-NwbEeCT5O2F6sGn5g" name="inhs" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzxN-dwbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzxN-twbEeCT5O2F6sGn5g" value="*"/>
+        <ownedParameter xmi:id="_VXxD-BE9EeGOffqMW1YiZA" name="inhs" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw">
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VXxD-RE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VXxD-hE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_gzxN-9wbEeCT5O2F6sGn5g" name="inheritableMembers" visibility="public" bodyCondition="_gzxN_9wbEeCT5O2F6sGn5g" isQuery="true" precondition="_gzxN_dwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzxN_NwbEeCT5O2F6sGn5g" annotatedElement="_gzxN-9wbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VXxrABE9EeGOffqMW1YiZA" name="inheritableMembers" visibility="public" bodyCondition="_VXxrBBE9EeGOffqMW1YiZA" isQuery="true" precondition="_VXxrAhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VXxrARE9EeGOffqMW1YiZA" annotatedElement="_VXxrABE9EeGOffqMW1YiZA">
           <body>The query inheritableMembers() gives all of the members of a classifier that may be inherited in one of its descendants, subject to whatever visibility restrictions apply.</body>
         </ownedComment>
-        <ownedRule xmi:id="_gzxN_dwbEeCT5O2F6sGn5g" name="pre" constrainedElement="_gzxN-9wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzxN_twbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VXxrAhE9EeGOffqMW1YiZA" name="pre" constrainedElement="_VXxrABE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VXxrAxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>c.allParents()->includes(self)</body>
           </specification>
         </ownedRule>
-        <ownedRule xmi:id="_gzxN_9wbEeCT5O2F6sGn5g" name="spec" constrainedElement="_gzxN-9wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzxOANwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VXxrBBE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VXxrABE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VXxrBRE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = member->select(m | c.hasVisibilityOf(m))</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_gzxOAdwbEeCT5O2F6sGn5g" name="result" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzxOAtwbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzxOA9wbEeCT5O2F6sGn5g" value="*"/>
+        <ownedParameter xmi:id="_VXxrBhE9EeGOffqMW1YiZA" name="result" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw" direction="return">
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VXxrBxE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VXxrCBE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
-        <ownedParameter xmi:id="_gzxOBNwbEeCT5O2F6sGn5g" name="c" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA"/>
+        <ownedParameter xmi:id="_VXxrCRE9EeGOffqMW1YiZA" name="c" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA"/>
       </ownedOperation>
-      <ownedOperation xmi:id="_A3QeILLTEeCsYvaJqFFivQ" name="inheritedMember" visibility="public" bodyCondition="_gzx1ANwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_gzxOBdwbEeCT5O2F6sGn5g" annotatedElement="_A3QeILLTEeCsYvaJqFFivQ">
+      <ownedOperation xmi:id="_A3QeILLTEeCsYvaJqFFivQ" name="inheritedMember" visibility="public" bodyCondition="_VXxrCxE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VXxrChE9EeGOffqMW1YiZA" annotatedElement="_A3QeILLTEeCsYvaJqFFivQ">
           <body>The inheritedMember association is derived by inheriting the inheritable members of the parents.</body>
         </ownedComment>
-        <ownedRule xmi:id="_gzx1ANwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_A3QeILLTEeCsYvaJqFFivQ _gzuxvNwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzx1AdwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VXxrCxE9EeGOffqMW1YiZA" name="spec" constrainedElement="_A3QeILLTEeCsYvaJqFFivQ _VXsyiRE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VXxrDBE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = self.inherit(self.parents()->collect(p|p.inheritableMembers(self))->asSet())</body>
           </specification>
         </ownedRule>
         <ownedParameter xmi:id="_DI37cLLTEeCsYvaJqFFivQ" name="result" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzx1AtwbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzx1A9wbEeCT5O2F6sGn5g" value="*"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VXySEBE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VXySERE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_gzx1BNwbEeCT5O2F6sGn5g" name="isTemplate" visibility="public" bodyCondition="_gzx1BtwbEeCT5O2F6sGn5g" isQuery="true" redefinedOperation="_g2PTKtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzx1BdwbEeCT5O2F6sGn5g" annotatedElement="_gzx1BNwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VXy5IBE9EeGOffqMW1YiZA" name="isTemplate" visibility="public" bodyCondition="_VXy5IhE9EeGOffqMW1YiZA" isQuery="true" redefinedOperation="_VeuAihE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VXy5IRE9EeGOffqMW1YiZA" annotatedElement="_VXy5IBE9EeGOffqMW1YiZA">
           <body>The query isTemplate() returns whether this templateable element is actually a template.</body>
         </ownedComment>
-        <ownedRule xmi:id="_gzx1BtwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_gzx1BNwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzx1B9wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VXy5IhE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VXy5IBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VXy5IxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = oclAsType(TemplatableElement).isTemplate() or general->exists(g | g.isTemplate())</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_gzx1CNwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VXy5JBE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_gzycENwbEeCT5O2F6sGn5g" name="maySpecializeType" visibility="public" bodyCondition="_gzycEtwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_gzycEdwbEeCT5O2F6sGn5g" annotatedElement="_gzycENwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VXzgMBE9EeGOffqMW1YiZA" name="maySpecializeType" visibility="public" bodyCondition="_VXzgMhE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VXzgMRE9EeGOffqMW1YiZA" annotatedElement="_VXzgMBE9EeGOffqMW1YiZA">
           <body>The query maySpecializeType() determines whether this classifier may have a generalization relationship to classifiers of the specified type. By default a classifier may specialize classifiers of the same or a more general type. It is intended to be redefined by classifiers that have different specialization constraints.</body>
         </ownedComment>
-        <ownedRule xmi:id="_gzycEtwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_gzycENwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzycE9wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VXzgMhE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VXzgMBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VXzgMxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = self.oclIsKindOf(c.oclType)</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_gzycFNwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VXzgNBE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
-        <ownedParameter xmi:id="_gzycFdwbEeCT5O2F6sGn5g" name="c" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA"/>
+        <ownedParameter xmi:id="_VXzgNRE9EeGOffqMW1YiZA" name="c" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA"/>
       </ownedOperation>
-      <ownedOperation xmi:id="_gzycFtwbEeCT5O2F6sGn5g" name="parents" visibility="public" bodyCondition="_gzycGNwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_gzycF9wbEeCT5O2F6sGn5g" annotatedElement="_gzycFtwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VXzgNhE9EeGOffqMW1YiZA" name="parents" visibility="public" bodyCondition="_VXzgOBE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VXzgNxE9EeGOffqMW1YiZA" annotatedElement="_VXzgNhE9EeGOffqMW1YiZA">
           <body>The query parents() gives all of the immediate ancestors of a generalized Classifier.</body>
         </ownedComment>
-        <ownedRule xmi:id="_gzycGNwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_gzycFtwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzycGdwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VXzgOBE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VXzgNhE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VXzgORE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = generalization.general</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_gzycGtwbEeCT5O2F6sGn5g" name="result" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzycG9wbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzycHNwbEeCT5O2F6sGn5g" value="*"/>
+        <ownedParameter xmi:id="_VXzgOhE9EeGOffqMW1YiZA" name="result" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" direction="return">
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VXzgOxE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VXzgPBE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_gzzqMNwbEeCT5O2F6sGn5g" name="ClassifierTemplateParameter">
-      <ownedComment xmi:id="_gzzqMdwbEeCT5O2F6sGn5g" annotatedElement="_gzzqMNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VX2jgBE9EeGOffqMW1YiZA" name="ClassifierTemplateParameter">
+      <ownedComment xmi:id="_VX2jgRE9EeGOffqMW1YiZA" annotatedElement="_VX2jgBE9EeGOffqMW1YiZA">
         <body>A classifier template parameter exposes a classifier as a formal template parameter.</body>
       </ownedComment>
-      <ownedRule xmi:id="_gzzqMtwbEeCT5O2F6sGn5g" name="has_constraining_classifier" constrainedElement="_gzzqMNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzzqM9wbEeCT5O2F6sGn5g" annotatedElement="_gzzqMtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VX2jghE9EeGOffqMW1YiZA" name="has_constraining_classifier" constrainedElement="_VX2jgBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VX2jgxE9EeGOffqMW1YiZA" annotatedElement="_VX2jghE9EeGOffqMW1YiZA">
           <body>If &quot;allowSubstitutable&quot; is true, then there must be a constrainingClassifier.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gzzqNNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VX2jhBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>allowSubstitutable implies constrainingClassifier->notEmpty()</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_gzzqNdwbEeCT5O2F6sGn5g" general="_KxRzgGvuEdqG6fBIPwe-mw"/>
-      <ownedAttribute xmi:id="_gzzqNtwbEeCT5O2F6sGn5g" name="allowSubstitutable" visibility="public">
-        <ownedComment xmi:id="_gzzqN9wbEeCT5O2F6sGn5g" annotatedElement="_gzzqNtwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VX2jhRE9EeGOffqMW1YiZA" general="_KxRzgGvuEdqG6fBIPwe-mw"/>
+      <ownedAttribute xmi:id="_VX2jhhE9EeGOffqMW1YiZA" name="allowSubstitutable" visibility="public">
+        <ownedComment xmi:id="_VX2jhxE9EeGOffqMW1YiZA" annotatedElement="_VX2jhhE9EeGOffqMW1YiZA">
           <body>Constrains the required relationship between an actual parameter and the parameteredElement for this formal parameter.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_gzzqONwbEeCT5O2F6sGn5g" value="true"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VX2jiBE9EeGOffqMW1YiZA" value="true"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzzqOdwbEeCT5O2F6sGn5g" name="constrainingClassifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" association="_gyWRpNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzzqOtwbEeCT5O2F6sGn5g" annotatedElement="_gzzqOdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VX2jiRE9EeGOffqMW1YiZA" name="constrainingClassifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" association="_VTHNeBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VX2jihE9EeGOffqMW1YiZA" annotatedElement="_VX2jiRE9EeGOffqMW1YiZA">
           <body>The classifiers that constrain the argument that can be used for the parameter. If the allowSubstitutable attribute is true, then any classifier that is compatible with this constraining classifier can be substituted; otherwise, it must be either this classifier or one of its subclasses. If this property is empty, there are no constraints on the classifier that can be used as an argument.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gzzqO9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gzzqPNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VX2jixE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VX2jjBE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gzzqPdwbEeCT5O2F6sGn5g" name="parameteredElement" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" redefinedProperty="_g2M25twbEeCT5O2F6sGn5g" association="_gyVDhNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gzzqPtwbEeCT5O2F6sGn5g" annotatedElement="_gzzqPdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VX2jjRE9EeGOffqMW1YiZA" name="parameteredElement" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" redefinedProperty="_Veq9MxE9EeGOffqMW1YiZA" association="_VTEKJBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VX2jjhE9EeGOffqMW1YiZA" annotatedElement="_VX2jjRE9EeGOffqMW1YiZA">
           <body>The parameterable classifier for this template parameter.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_gz0RQNwbEeCT5O2F6sGn5g" name="Clause">
-      <ownedComment xmi:id="_gz0RQdwbEeCT5O2F6sGn5g" annotatedElement="_gz0RQNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VX3xoBE9EeGOffqMW1YiZA" name="Clause">
+      <ownedComment xmi:id="_VX3xoRE9EeGOffqMW1YiZA" annotatedElement="_VX3xoBE9EeGOffqMW1YiZA">
         <body>A clause is an element that represents a single branch of a conditional construct, including a test and a body section. The body section is executed only if (but not necessarily if) the test section evaluates true.</body>
       </ownedComment>
-      <ownedRule xmi:id="_gz0RQtwbEeCT5O2F6sGn5g" name="body_output_pins" constrainedElement="_gz0RQNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz0RQ9wbEeCT5O2F6sGn5g" annotatedElement="_gz0RQtwbEeCT5O2F6sGn5g">
-          <body>The bodyOutput pins are output pins on actions in the body of the clause.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz0RRNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gz0RRdwbEeCT5O2F6sGn5g" name="decider_output" constrainedElement="_gz0RQNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz0RRtwbEeCT5O2F6sGn5g" annotatedElement="_gz0RRdwbEeCT5O2F6sGn5g">
-          <body>The decider output pin must be for the test body or a node contained by the test body as a structured node.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz0RR9wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gz0RSNwbEeCT5O2F6sGn5g" name="test_and_body" constrainedElement="_gz0RQNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz0RSdwbEeCT5O2F6sGn5g" annotatedElement="_gz0RSNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VX3xohE9EeGOffqMW1YiZA" name="test_and_body" constrainedElement="_VX3xoBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VX3xoxE9EeGOffqMW1YiZA" annotatedElement="_VX3xohE9EeGOffqMW1YiZA">
           <body>The test and body parts must be disjoint.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz0RStwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VX3xpBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_gz0RS9wbEeCT5O2F6sGn5g" general="_kl90MGvbEdq4DLWZOhbdEA"/>
-      <ownedAttribute xmi:id="_gz0RTNwbEeCT5O2F6sGn5g" name="body" visibility="public" type="_g0OhCNwbEeCT5O2F6sGn5g" association="_gyT1Z9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz0RTdwbEeCT5O2F6sGn5g" annotatedElement="_gz0RTNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VX3xpRE9EeGOffqMW1YiZA" name="body_output_pins" constrainedElement="_VX3xoBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VX3xphE9EeGOffqMW1YiZA" annotatedElement="_VX3xpRE9EeGOffqMW1YiZA">
+          <body>The bodyOutput pins are output pins on actions in the body of the clause.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VX3xpxE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VX3xqBE9EeGOffqMW1YiZA" name="decider_output" constrainedElement="_VX3xoBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VX3xqRE9EeGOffqMW1YiZA" annotatedElement="_VX3xqBE9EeGOffqMW1YiZA">
+          <body>The decider output pin must be for the test body or a node contained by the test body as a structured node.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VX3xqhE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VX3xqxE9EeGOffqMW1YiZA" general="_kl90MGvbEdq4DLWZOhbdEA"/>
+      <ownedAttribute xmi:id="_VX3xrBE9EeGOffqMW1YiZA" name="body" visibility="public" type="_VZPqoBE9EeGOffqMW1YiZA" association="_VTBG0xE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VX3xrRE9EeGOffqMW1YiZA" annotatedElement="_VX3xrBE9EeGOffqMW1YiZA">
           <body>A nested activity fragment that is executed if the test evaluates to true and the clause is chosen over any concurrent clauses that also evaluate to true.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gz0RTtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gz04UNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VX3xrhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VX3xrxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gz04UdwbEeCT5O2F6sGn5g" name="bodyOutput" visibility="public" type="_g1fsRdwbEeCT5O2F6sGn5g" isOrdered="true" association="_gyTOX9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz04UtwbEeCT5O2F6sGn5g" annotatedElement="_gz04UdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VX3xsBE9EeGOffqMW1YiZA" name="bodyOutput" visibility="public" type="_VcHYcBE9EeGOffqMW1YiZA" isOrdered="true" association="_VTAfwBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VX3xsRE9EeGOffqMW1YiZA" annotatedElement="_VX3xsBE9EeGOffqMW1YiZA">
           <body>A list of output pins within the body fragment whose values are moved to the result pins of the containing conditional node after execution of the clause body.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gz04U9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gz04VNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VX3xshE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VX3xsxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gz04VdwbEeCT5O2F6sGn5g" name="decider" visibility="public" type="_g1fsRdwbEeCT5O2F6sGn5g" association="_gyXfyNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz04VtwbEeCT5O2F6sGn5g" annotatedElement="_gz04VdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VX3xtBE9EeGOffqMW1YiZA" name="decider" visibility="public" type="_VcHYcBE9EeGOffqMW1YiZA" association="_VTLe5BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VX3xtRE9EeGOffqMW1YiZA" annotatedElement="_VX3xtBE9EeGOffqMW1YiZA">
           <body>An output pin within the test fragment the value of which is examined after execution of the test to determine whether the body should be executed.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gz04V9wbEeCT5O2F6sGn5g" name="predecessorClause" visibility="public" type="_gz0RQNwbEeCT5O2F6sGn5g" association="_gyteANwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz04WNwbEeCT5O2F6sGn5g" annotatedElement="_gz04V9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VX3xthE9EeGOffqMW1YiZA" name="predecessorClause" visibility="public" type="_VX3xoBE9EeGOffqMW1YiZA" association="_VUKWWhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VX3xtxE9EeGOffqMW1YiZA" annotatedElement="_VX3xthE9EeGOffqMW1YiZA">
           <body>A set of clauses whose tests must all evaluate false before the current clause can be tested.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gz04WdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gz04WtwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VX3xuBE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VX3xuRE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gz04W9wbEeCT5O2F6sGn5g" name="successorClause" visibility="public" type="_gz0RQNwbEeCT5O2F6sGn5g" association="_gyteANwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz04XNwbEeCT5O2F6sGn5g" annotatedElement="_gz04W9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VX3xuhE9EeGOffqMW1YiZA" name="successorClause" visibility="public" type="_VX3xoBE9EeGOffqMW1YiZA" association="_VUKWWhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VX3xuxE9EeGOffqMW1YiZA" annotatedElement="_VX3xuhE9EeGOffqMW1YiZA">
           <body>A set of clauses which may not be tested unless the current clause tests false.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gz04XdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gz04XtwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VX3xvBE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VX3xvRE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gz04X9wbEeCT5O2F6sGn5g" name="test" visibility="public" type="_g0OhCNwbEeCT5O2F6sGn5g" association="_gy8um9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz04YNwbEeCT5O2F6sGn5g" annotatedElement="_gz04X9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VX3xvhE9EeGOffqMW1YiZA" name="test" visibility="public" type="_VZPqoBE9EeGOffqMW1YiZA" association="_VUqFkRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VX3xvxE9EeGOffqMW1YiZA" annotatedElement="_VX3xvhE9EeGOffqMW1YiZA">
           <body>A nested activity fragment with a designated output pin that specifies the result of the test.</body>
         </ownedComment>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gz04YdwbEeCT5O2F6sGn5g" value="*"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VX3xwBE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_gz04YtwbEeCT5O2F6sGn5g" name="ClearAssociationAction">
-      <ownedComment xmi:id="_gz04Y9wbEeCT5O2F6sGn5g" annotatedElement="_gz04YtwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VX4_wBE9EeGOffqMW1YiZA" name="ClearAssociationAction">
+      <ownedComment xmi:id="_VX4_wRE9EeGOffqMW1YiZA" annotatedElement="_VX4_wBE9EeGOffqMW1YiZA">
         <body>A clear association action is an action that destroys all links of an association in which a particular object participates.</body>
       </ownedComment>
-      <ownedRule xmi:id="_gz04ZNwbEeCT5O2F6sGn5g" name="multiplicity" constrainedElement="_gz04YtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz04ZdwbEeCT5O2F6sGn5g" annotatedElement="_gz04ZNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VX4_whE9EeGOffqMW1YiZA" name="multiplicity" constrainedElement="_VX4_wBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VX4_wxE9EeGOffqMW1YiZA" annotatedElement="_VX4_whE9EeGOffqMW1YiZA">
           <body>The multiplicity of the input pin is 1..1.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz04ZtwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VX4_xBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.object.multiplicity.is(1,1)</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_gz04Z9wbEeCT5O2F6sGn5g" name="same_type" constrainedElement="_gz04YtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz04aNwbEeCT5O2F6sGn5g" annotatedElement="_gz04Z9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VX4_xRE9EeGOffqMW1YiZA" name="same_type" constrainedElement="_VX4_wBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VX4_xhE9EeGOffqMW1YiZA" annotatedElement="_VX4_xRE9EeGOffqMW1YiZA">
           <body>The type of the input pin must be the same as the type of at least one of the association ends of the association.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz04adwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VX4_xxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.association->exists(end.type = self.object.type)</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_gz04atwbEeCT5O2F6sGn5g" general="_6WKakLLQEeCsYvaJqFFivQ"/>
-      <ownedAttribute xmi:id="_gz04a9wbEeCT5O2F6sGn5g" name="association" visibility="public" type="_AwvxoGwNEdq7X4sGURiZYA" association="_gySnTNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz04bNwbEeCT5O2F6sGn5g" annotatedElement="_gz04a9wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VX4_yBE9EeGOffqMW1YiZA" general="_6WKakLLQEeCsYvaJqFFivQ"/>
+      <ownedAttribute xmi:id="_VX4_yRE9EeGOffqMW1YiZA" name="association" visibility="public" type="_AwvxoGwNEdq7X4sGURiZYA" association="_VS-qkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VX4_yhE9EeGOffqMW1YiZA" annotatedElement="_VX4_yRE9EeGOffqMW1YiZA">
           <body>Association to be cleared.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gz04bdwbEeCT5O2F6sGn5g" name="object" visibility="public" type="_g0aHKdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzBnMNwbEeCT5O2F6sGn5g" association="_gyliMdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz04btwbEeCT5O2F6sGn5g" annotatedElement="_gz04bdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VX4_yxE9EeGOffqMW1YiZA" name="object" visibility="public" type="_VZp6WRE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4IABE9EeGOffqMW1YiZA" association="_VT2NQBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VX4_zBE9EeGOffqMW1YiZA" annotatedElement="_VX4_yxE9EeGOffqMW1YiZA">
           <body>Gives the input pin from which is obtained the object whose participation in the association is to be cleared.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_gz1fYNwbEeCT5O2F6sGn5g" name="ClearStructuralFeatureAction">
-      <ownedComment xmi:id="_gz2GcNwbEeCT5O2F6sGn5g" annotatedElement="_gz1fYNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VX5m0BE9EeGOffqMW1YiZA" name="ClearStructuralFeatureAction">
+      <ownedComment xmi:id="_VX5m0RE9EeGOffqMW1YiZA" annotatedElement="_VX5m0BE9EeGOffqMW1YiZA">
         <body>A clear structural feature action is a structural feature action that removes all values of a structural feature.</body>
       </ownedComment>
-      <ownedRule xmi:id="_gz2GcdwbEeCT5O2F6sGn5g" name="type_of_result" constrainedElement="_gz1fYNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz2GctwbEeCT5O2F6sGn5g" annotatedElement="_gz2GcdwbEeCT5O2F6sGn5g">
-          <body>The type of the result output pin is the same as the type of the inherited object input pin.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz2Gc9wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>result->notEmpty() implies self.result.type = self.object.type</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gz2GdNwbEeCT5O2F6sGn5g" name="multiplicity_of_result" constrainedElement="_gz1fYNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz2GddwbEeCT5O2F6sGn5g" annotatedElement="_gz2GdNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VX5m0hE9EeGOffqMW1YiZA" name="multiplicity_of_result" constrainedElement="_VX5m0BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VX5m0xE9EeGOffqMW1YiZA" annotatedElement="_VX5m0hE9EeGOffqMW1YiZA">
           <body>The multiplicity of the result output pin must be 1..1.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz2GdtwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VX5m1BE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>result->notEmpty() implies self.result.multiplicity.is(1,1)</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_gz2Gd9wbEeCT5O2F6sGn5g" general="_g2H-YNwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_gz2GeNwbEeCT5O2F6sGn5g" name="result" visibility="public" type="_g1fsRdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzCOK9wbEeCT5O2F6sGn5g" association="_gy0LvtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz2GedwbEeCT5O2F6sGn5g" annotatedElement="_gz2GeNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VX5m1RE9EeGOffqMW1YiZA" name="type_of_result" constrainedElement="_VX5m0BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VX5m1hE9EeGOffqMW1YiZA" annotatedElement="_VX5m1RE9EeGOffqMW1YiZA">
+          <body>The type of the result output pin is the same as the type of the inherited object input pin.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VX5m1xE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>result->notEmpty() implies self.result.type = self.object.type</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VX5m2BE9EeGOffqMW1YiZA" general="_VehMMBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VX5m2RE9EeGOffqMW1YiZA" name="result" visibility="public" type="_VcHYcBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4vEBE9EeGOffqMW1YiZA" association="_VUcqMxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VX5m2hE9EeGOffqMW1YiZA" annotatedElement="_VX5m2RE9EeGOffqMW1YiZA">
           <body>Gives the output pin on which the result is put.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gz2GetwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VX5m2xE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_gz2Ge9wbEeCT5O2F6sGn5g" name="ClearVariableAction">
-      <ownedComment xmi:id="_gz2GfNwbEeCT5O2F6sGn5g" annotatedElement="_gz2Ge9wbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VX6N4BE9EeGOffqMW1YiZA" name="ClearVariableAction">
+      <ownedComment xmi:id="_VX6N4RE9EeGOffqMW1YiZA" annotatedElement="_VX6N4BE9EeGOffqMW1YiZA">
         <body>A clear variable action is a variable action that removes all values of a variable.</body>
       </ownedComment>
-      <generalization xmi:id="_gz2GfdwbEeCT5O2F6sGn5g" general="_g2ZrMNwbEeCT5O2F6sGn5g"/>
+      <generalization xmi:id="_VX6N4hE9EeGOffqMW1YiZA" general="_VfIQRBE9EeGOffqMW1YiZA"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_gz2GftwbEeCT5O2F6sGn5g" name="Collaboration">
-      <ownedComment xmi:id="_gz2Gf9wbEeCT5O2F6sGn5g" annotatedElement="_gz2GftwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VX608BE9EeGOffqMW1YiZA" name="Collaboration">
+      <ownedComment xmi:id="_VX608RE9EeGOffqMW1YiZA" annotatedElement="_VX608BE9EeGOffqMW1YiZA">
         <body>A collaboration use represents the application of the pattern described by a collaboration to a specific situation involving specific classes or instances playing the roles of the collaboration.</body>
       </ownedComment>
-      <generalization xmi:id="_gz2GgNwbEeCT5O2F6sGn5g" general="_FQiVsGwYEdqHKKVoxc0dlA"/>
-      <generalization xmi:id="_gz2GgdwbEeCT5O2F6sGn5g" general="_iY7sMGvsEdqG6fBIPwe-mw"/>
-      <ownedAttribute xmi:id="_gz2GgtwbEeCT5O2F6sGn5g" name="collaborationRole" visibility="public" type="_0dB44PnhEdunWsS3se92JQ" subsettedProperty="_g2JMkdwbEeCT5O2F6sGn5g" association="_gyVDiNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz2Gg9wbEeCT5O2F6sGn5g" annotatedElement="_gz2GgtwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VX608hE9EeGOffqMW1YiZA" general="_FQiVsGwYEdqHKKVoxc0dlA"/>
+      <generalization xmi:id="_VX608xE9EeGOffqMW1YiZA" general="_iY7sMGvsEdqG6fBIPwe-mw"/>
+      <ownedAttribute xmi:id="_VX609BE9EeGOffqMW1YiZA" name="collaborationRole" visibility="public" type="_0dB44PnhEdunWsS3se92JQ" subsettedProperty="_VekPgBE9EeGOffqMW1YiZA" association="_VTExMRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VX609RE9EeGOffqMW1YiZA" annotatedElement="_VX609BE9EeGOffqMW1YiZA">
           <body>References connectable elements (possibly owned by other classifiers) which represent roles that instances may play in this collaboration.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gz2GhNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gz2GhdwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VX609hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VX609xE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_gz2tgNwbEeCT5O2F6sGn5g" name="CollaborationUse">
-      <ownedComment xmi:id="_gz2tgdwbEeCT5O2F6sGn5g" annotatedElement="_gz2tgNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VX7cABE9EeGOffqMW1YiZA" name="CollaborationUse">
+      <ownedComment xmi:id="_VX7cARE9EeGOffqMW1YiZA" annotatedElement="_VX7cABE9EeGOffqMW1YiZA">
         <body>A collaboration use represents one particular use of a collaboration to explain the relationships between the properties of a classifier. A collaboration use shows how the pattern described by a collaboration is applied in a given context, by binding specific entities from that context to the roles of the collaboration. Depending on the context, these entities could be structural features of a classifier, instance specifications, or even roles in some containing collaboration. There may be multiple occurrences of a given collaboration within a classifier, each involving a different set of roles and connectors. A given role or connector may be involved in multiple occurrences of the same or different collaborations. Associated dependencies map features of the collaboration type to features in the classifier. These dependencies indicate which role in the classifier plays which role in the collaboration.</body>
       </ownedComment>
-      <ownedRule xmi:id="_gz2tgtwbEeCT5O2F6sGn5g" name="client_elements" constrainedElement="_gz2tgNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz2tg9wbEeCT5O2F6sGn5g" annotatedElement="_gz2tgtwbEeCT5O2F6sGn5g">
-          <body>All the client elements of a roleBinding are in one classifier and all supplier elements of a roleBinding are in one collaboration and they are compatible.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz2thNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gz2thdwbEeCT5O2F6sGn5g" name="every_role" constrainedElement="_gz2tgNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz2thtwbEeCT5O2F6sGn5g" annotatedElement="_gz2thdwbEeCT5O2F6sGn5g">
-          <body>Every role in the collaboration is bound within the collaboration use to a connectable element within the owning classifier.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz2th9wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gz2tiNwbEeCT5O2F6sGn5g" name="connectors" constrainedElement="_gz2tgNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz2tidwbEeCT5O2F6sGn5g" annotatedElement="_gz2tiNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VX7cAhE9EeGOffqMW1YiZA" name="connectors" constrainedElement="_VX7cABE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VX7cAxE9EeGOffqMW1YiZA" annotatedElement="_VX7cAhE9EeGOffqMW1YiZA">
           <body>The connectors in the classifier connect according to the connectors in the collaboration</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz2titwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VX7cBBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_gz2ti9wbEeCT5O2F6sGn5g" general="_csVgUGvtEdqG6fBIPwe-mw"/>
-      <ownedAttribute xmi:id="_gz2tjNwbEeCT5O2F6sGn5g" name="roleBinding" visibility="public" type="_rEDGkGwKEdq7X4sGURiZYA" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gy32E9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz2tjdwbEeCT5O2F6sGn5g" annotatedElement="_gz2tjNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VX7cBRE9EeGOffqMW1YiZA" name="every_role" constrainedElement="_VX7cABE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VX7cBhE9EeGOffqMW1YiZA" annotatedElement="_VX7cBRE9EeGOffqMW1YiZA">
+          <body>Every role in the collaboration is bound within the collaboration use to a connectable element within the owning classifier.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VX7cBxE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VX7cCBE9EeGOffqMW1YiZA" name="client_elements" constrainedElement="_VX7cABE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VX7cCRE9EeGOffqMW1YiZA" annotatedElement="_VX7cCBE9EeGOffqMW1YiZA">
+          <body>All the client elements of a roleBinding are in one classifier and all supplier elements of a roleBinding are in one collaboration and they are compatible.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VX7cChE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VX7cCxE9EeGOffqMW1YiZA" general="_csVgUGvtEdqG6fBIPwe-mw"/>
+      <ownedAttribute xmi:id="_VX7cDBE9EeGOffqMW1YiZA" name="roleBinding" visibility="public" type="_rEDGkGwKEdq7X4sGURiZYA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VUhisBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VX7cDRE9EeGOffqMW1YiZA" annotatedElement="_VX7cDBE9EeGOffqMW1YiZA">
           <body>A mapping between features of the collaboration type and features of the owning classifier. This mapping indicates which connectable element of the classifier plays which role(s) in the collaboration. A connectable element may be bound to multiple roles in the same collaboration use (that is, it may play multiple roles).</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gz2tjtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gz2tj9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VX7cDhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VX7cDxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gz2tkNwbEeCT5O2F6sGn5g" name="type" visibility="public" type="_gz2GftwbEeCT5O2F6sGn5g" association="_gy98sNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz2tkdwbEeCT5O2F6sGn5g" annotatedElement="_gz2tkNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VX7cEBE9EeGOffqMW1YiZA" name="type" visibility="public" type="_VX608BE9EeGOffqMW1YiZA" association="_VUrTsxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VX7cERE9EeGOffqMW1YiZA" annotatedElement="_VX7cEBE9EeGOffqMW1YiZA">
           <body>The collaboration which is used in this occurrence. The collaboration defines the cooperation between its roles which are mapped to properties of the classifier owning the collaboration use.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_gz3UkNwbEeCT5O2F6sGn5g" name="CombinedFragment">
-      <ownedComment xmi:id="_gz3UkdwbEeCT5O2F6sGn5g" annotatedElement="_gz3UkNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VX8qIBE9EeGOffqMW1YiZA" name="CombinedFragment">
+      <ownedComment xmi:id="_VX8qIRE9EeGOffqMW1YiZA" annotatedElement="_VX8qIBE9EeGOffqMW1YiZA">
         <body>A combined fragment defines an expression of interaction fragments. A combined fragment is defined by an interaction operator and corresponding interaction operands. Through the use of combined fragments the user will be able to describe a number of traces in a compact and concise manner.</body>
       </ownedComment>
-      <ownedRule xmi:id="_gz3UktwbEeCT5O2F6sGn5g" name="minint_and_maxint" constrainedElement="_gz3UkNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz3Uk9wbEeCT5O2F6sGn5g" annotatedElement="_gz3UktwbEeCT5O2F6sGn5g">
-          <body>The InteractionConstraint with minint and maxint only apply when attached to an InteractionOperand where the interactionOperator is loop.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz3UlNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gz3UldwbEeCT5O2F6sGn5g" name="break" constrainedElement="_gz3UkNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz3UltwbEeCT5O2F6sGn5g" annotatedElement="_gz3UldwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VX8qIhE9EeGOffqMW1YiZA" name="break" constrainedElement="_VX8qIBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VX8qIxE9EeGOffqMW1YiZA" annotatedElement="_VX8qIhE9EeGOffqMW1YiZA">
           <body>If the interactionOperator is break, the corresponding InteractionOperand must cover all Lifelines within the enclosing InteractionFragment.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz3Ul9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VX8qJBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_gz3UmNwbEeCT5O2F6sGn5g" name="consider_and_ignore" constrainedElement="_gz3UkNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz3UmdwbEeCT5O2F6sGn5g" annotatedElement="_gz3UmNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VX8qJRE9EeGOffqMW1YiZA" name="opt_loop_break_neg" constrainedElement="_VX8qIBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VX8qJhE9EeGOffqMW1YiZA" annotatedElement="_VX8qJRE9EeGOffqMW1YiZA">
+          <body>If the interactionOperator is opt, loop, break, assert or neg, there must be exactly one operand.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VX8qJxE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VX8qKBE9EeGOffqMW1YiZA" name="consider_and_ignore" constrainedElement="_VX8qIBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VX8qKRE9EeGOffqMW1YiZA" annotatedElement="_VX8qKBE9EeGOffqMW1YiZA">
           <body>The interaction operators 'consider' and 'ignore' can only be used for the CombineIgnoreFragment subtype of CombinedFragment</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz3UmtwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VX8qKhE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>((interactionOperator = #consider) or (interactionOperator = #ignore)) implies oclsisTypeOf(CombineIgnoreFragment)</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_gz3Um9wbEeCT5O2F6sGn5g" name="opt_loop_break_neg" constrainedElement="_gz3UkNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz3UnNwbEeCT5O2F6sGn5g" annotatedElement="_gz3Um9wbEeCT5O2F6sGn5g">
-          <body>If the interactionOperator is opt, loop, break, assert or neg, there must be exactly one operand.</body>
+      <ownedRule xmi:id="_VX8qKxE9EeGOffqMW1YiZA" name="minint_and_maxint" constrainedElement="_VX8qIBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VX8qLBE9EeGOffqMW1YiZA" annotatedElement="_VX8qKxE9EeGOffqMW1YiZA">
+          <body>The InteractionConstraint with minint and maxint only apply when attached to an InteractionOperand where the interactionOperator is loop.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz3UndwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VX8qLRE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_gz3UntwbEeCT5O2F6sGn5g" general="_g0cjYNwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_gz3Un9wbEeCT5O2F6sGn5g" name="cfragmentGate" visibility="public" type="_g0V1sNwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gyT1atwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz3UoNwbEeCT5O2F6sGn5g" annotatedElement="_gz3Un9wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VX8qLhE9EeGOffqMW1YiZA" general="_VZuLwBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VX8qLxE9EeGOffqMW1YiZA" name="cfragmentGate" visibility="public" type="_VZeUIBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VTBG1hE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VX8qMBE9EeGOffqMW1YiZA" annotatedElement="_VX8qLxE9EeGOffqMW1YiZA">
           <body>Specifies the gates that form the interface between this CombinedFragment and its surroundings</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gz3UodwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gz3UotwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VX8qMRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VX8qMhE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gz3Uo9wbEeCT5O2F6sGn5g" name="interactionOperator" visibility="public" type="_g2dVkNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz3UpNwbEeCT5O2F6sGn5g" annotatedElement="_gz3Uo9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VX8qMxE9EeGOffqMW1YiZA" name="interactionOperator" visibility="public" type="_VfOW0BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VX8qNBE9EeGOffqMW1YiZA" annotatedElement="_VX8qMxE9EeGOffqMW1YiZA">
           <body>Specifies the operation which defines the semantics of this combination of InteractionFragments.</body>
         </ownedComment>
-        <defaultValue xmi:type="uml:InstanceValue" xmi:id="_gz3UpdwbEeCT5O2F6sGn5g" type="_g2dVkNwbEeCT5O2F6sGn5g" instance="_g2dVktwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:InstanceValue" xmi:id="_VX8qNRE9EeGOffqMW1YiZA" type="_VfOW0BE9EeGOffqMW1YiZA" instance="_VfOW0hE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gz3UptwbEeCT5O2F6sGn5g" name="operand" visibility="public" type="_g0dKcNwbEeCT5O2F6sGn5g" isOrdered="true" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gymwW9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz3Up9wbEeCT5O2F6sGn5g" annotatedElement="_gz3UptwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VX8qNhE9EeGOffqMW1YiZA" name="operand" visibility="public" type="_VZuy0BE9EeGOffqMW1YiZA" isOrdered="true" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VT8T5BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VX8qNxE9EeGOffqMW1YiZA" annotatedElement="_VX8qNhE9EeGOffqMW1YiZA">
           <body>The set of operands of the combined fragment.</body>
         </ownedComment>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gz3UqNwbEeCT5O2F6sGn5g" value="*"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VX8qOBE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_Q8DcULGzEeCDe8CO90iVKQ" name="Comment">
-      <ownedComment xmi:id="_gz3UqdwbEeCT5O2F6sGn5g" annotatedElement="_Q8DcULGzEeCDe8CO90iVKQ">
+      <ownedComment xmi:id="_VX9RMBE9EeGOffqMW1YiZA" annotatedElement="_Q8DcULGzEeCDe8CO90iVKQ">
         <body>A comment is a textual annotation that can be attached to a set of elements.</body>
       </ownedComment>
-      <generalization xmi:id="_gz3UqtwbEeCT5O2F6sGn5g" general="_kl90MGvbEdq4DLWZOhbdEA"/>
-      <ownedAttribute xmi:id="_gz3Uq9wbEeCT5O2F6sGn5g" name="annotatedElement" visibility="public" type="_kl90MGvbEdq4DLWZOhbdEA" association="_gySAPtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz3UrNwbEeCT5O2F6sGn5g" annotatedElement="_gz3Uq9wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VX9RMRE9EeGOffqMW1YiZA" general="_kl90MGvbEdq4DLWZOhbdEA"/>
+      <ownedAttribute xmi:id="_VX94QBE9EeGOffqMW1YiZA" name="annotatedElement" visibility="public" type="_kl90MGvbEdq4DLWZOhbdEA" association="_VS9ccBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VX94QRE9EeGOffqMW1YiZA" annotatedElement="_VX94QBE9EeGOffqMW1YiZA">
           <body>References the Element(s) being commented.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gz3UrdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gz3UrtwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VX94QhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VX94QxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
       <ownedAttribute xmi:id="_WiuJ4LGzEeCDe8CO90iVKQ" name="body" visibility="public">
-        <ownedComment xmi:id="_gz3Ur9wbEeCT5O2F6sGn5g" annotatedElement="_WiuJ4LGzEeCDe8CO90iVKQ">
+        <ownedComment xmi:id="_VX94RBE9EeGOffqMW1YiZA" annotatedElement="_WiuJ4LGzEeCDe8CO90iVKQ">
           <body>Specifies a string that is the comment.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gz3UsNwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VX94RRE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_E-7IoKJ9EdywJr5C4uHLKw" name="CommunicationPath">
-      <ownedComment xmi:id="_gz37oNwbEeCT5O2F6sGn5g" annotatedElement="_E-7IoKJ9EdywJr5C4uHLKw">
+      <ownedComment xmi:id="_VX-fUBE9EeGOffqMW1YiZA" annotatedElement="_E-7IoKJ9EdywJr5C4uHLKw">
         <body>A communication path is an association between two deployment targets, through which they are able to exchange signals and messages.</body>
       </ownedComment>
-      <ownedRule xmi:id="_gz37odwbEeCT5O2F6sGn5g" name="association_ends" constrainedElement="_E-7IoKJ9EdywJr5C4uHLKw">
-        <ownedComment xmi:id="_gz37otwbEeCT5O2F6sGn5g" annotatedElement="_gz37odwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VX_GYBE9EeGOffqMW1YiZA" name="association_ends" constrainedElement="_E-7IoKJ9EdywJr5C4uHLKw">
+        <ownedComment xmi:id="_VX_GYRE9EeGOffqMW1YiZA" annotatedElement="_VX_GYBE9EeGOffqMW1YiZA">
           <body>The association ends of a CommunicationPath are typed by DeploymentTargets.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz37o9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VX_GYhE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.endType->forAll (t | t.oclIsKindOf(DeploymentTarget))</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_gz37pNwbEeCT5O2F6sGn5g" general="_AwvxoGwNEdq7X4sGURiZYA"/>
+      <generalization xmi:id="_VX_GYxE9EeGOffqMW1YiZA" general="_AwvxoGwNEdq7X4sGURiZYA"/>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_DAbfwa69EdqjppZik4kD8A" name="Component">
-      <ownedComment xmi:id="_gz37pdwbEeCT5O2F6sGn5g" annotatedElement="_DAbfwa69EdqjppZik4kD8A">
-        <body>A component represents a modular part of a system that encapsulates its contents and whose manifestation is replaceable within its environment.</body>
-      </ownedComment>
-      <ownedComment xmi:id="_gz4isNwbEeCT5O2F6sGn5g" annotatedElement="_DAbfwa69EdqjppZik4kD8A">
+      <ownedComment xmi:id="_VX_GZBE9EeGOffqMW1YiZA" annotatedElement="_DAbfwa69EdqjppZik4kD8A">
         <body>In the namespace of a component, all model elements that are involved in or related to its definition are either owned or imported explicitly. This may include, for example, use cases and dependencies (e.g. mappings), packages, components, and artifacts.</body>
       </ownedComment>
-      <ownedRule xmi:id="_gz4isdwbEeCT5O2F6sGn5g" name="no_nested_classifiers" constrainedElement="_DAbfwa69EdqjppZik4kD8A">
-        <ownedComment xmi:id="_gz4istwbEeCT5O2F6sGn5g" annotatedElement="_gz4isdwbEeCT5O2F6sGn5g">
-          <body>A component cannot nest classifiers.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz4is9wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>self.nestedClassifier->isEmpty()</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gz4itNwbEeCT5O2F6sGn5g" name="no_packaged_elements" constrainedElement="_DAbfwa69EdqjppZik4kD8A">
-        <ownedComment xmi:id="_gz4itdwbEeCT5O2F6sGn5g" annotatedElement="_gz4itNwbEeCT5O2F6sGn5g">
+      <ownedComment xmi:id="_VX_tcBE9EeGOffqMW1YiZA" annotatedElement="_DAbfwa69EdqjppZik4kD8A">
+        <body>A component represents a modular part of a system that encapsulates its contents and whose manifestation is replaceable within its environment.</body>
+      </ownedComment>
+      <ownedRule xmi:id="_VX_tcRE9EeGOffqMW1YiZA" name="no_packaged_elements" constrainedElement="_DAbfwa69EdqjppZik4kD8A">
+        <ownedComment xmi:id="_VX_tchE9EeGOffqMW1YiZA" annotatedElement="_VX_tcRE9EeGOffqMW1YiZA">
           <body>component nested in a Class cannot have any packaged elements.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz4ittwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VX_tcxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>(not self.class->isEmpty()) implies self.packagedElement->isEmpty()</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_gz4it9wbEeCT5O2F6sGn5g" general="_00owUGvdEdq4DLWZOhbdEA"/>
-      <ownedAttribute xmi:id="_gz4iuNwbEeCT5O2F6sGn5g" name="isIndirectlyInstantiated" visibility="public">
-        <ownedComment xmi:id="_gz4iudwbEeCT5O2F6sGn5g" annotatedElement="_gz4iuNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VX_tdBE9EeGOffqMW1YiZA" name="no_nested_classifiers" constrainedElement="_DAbfwa69EdqjppZik4kD8A">
+        <ownedComment xmi:id="_VX_tdRE9EeGOffqMW1YiZA" annotatedElement="_VX_tdBE9EeGOffqMW1YiZA">
+          <body>A component cannot nest classifiers.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VX_tdhE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>self.nestedClassifier->isEmpty()</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VX_tdxE9EeGOffqMW1YiZA" general="_00owUGvdEdq4DLWZOhbdEA"/>
+      <ownedAttribute xmi:id="_VYAUgBE9EeGOffqMW1YiZA" name="isIndirectlyInstantiated" visibility="public">
+        <ownedComment xmi:id="_VYAUgRE9EeGOffqMW1YiZA" annotatedElement="_VYAUgBE9EeGOffqMW1YiZA">
           <body>isIndirectlyInstantiated : Boolean {default = true} The kind of instantiation that applies to a Component. If false, the component is instantiated as an addressable object. If true, the Component is defined at design-time, but at run-time (or execution-time) an object specified by the Component does not exist, that is, the component is instantiated indirectly, through the instantiation of its realizing classifiers or parts. Several standard stereotypes use this meta attribute (e.g., «specification», «focus», «subsystem»).</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_gz4iutwbEeCT5O2F6sGn5g" value="true"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VYAUghE9EeGOffqMW1YiZA" value="true"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gz4iu9wbEeCT5O2F6sGn5g" name="packagedElement" visibility="public" type="_jKxnwGwLEdq7X4sGURiZYA" aggregation="composite" subsettedProperty="_g1S4AdwbEeCT5O2F6sGn5g" association="_gyrBy9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz4ivNwbEeCT5O2F6sGn5g" annotatedElement="_gz4iu9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VYAUgxE9EeGOffqMW1YiZA" name="packagedElement" visibility="public" type="_jKxnwGwLEdq7X4sGURiZYA" aggregation="composite" subsettedProperty="_Var1EBE9EeGOffqMW1YiZA" association="_VUGr8BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYAUhBE9EeGOffqMW1YiZA" annotatedElement="_VYAUgxE9EeGOffqMW1YiZA">
           <body>The set of PackageableElements that a Component owns. In the namespace of a component, all model elements that are involved in or related to its definition may be owned or imported explicitly. These may include e.g. Classes, Interfaces, Components, Packages, Use cases, Dependencies (e.g. mappings), and Artifacts.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gz4ivdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gz4ivtwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VYAUhRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VYAUhhE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gz4iv9wbEeCT5O2F6sGn5g" name="provided" visibility="public" type="_8Ugn8GvtEdqG6fBIPwe-mw" isReadOnly="true" isDerived="true" association="_gyuFENwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz4iwNwbEeCT5O2F6sGn5g" annotatedElement="_gz4iv9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VYAUhxE9EeGOffqMW1YiZA" name="provided" visibility="public" type="_8Ugn8GvtEdqG6fBIPwe-mw" isReadOnly="true" isDerived="true" association="_VULkdBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYAUiBE9EeGOffqMW1YiZA" annotatedElement="_VYAUhxE9EeGOffqMW1YiZA">
           <body>The interfaces that the component exposes to its environment. These interfaces may be Realized by the Component or any of its realizingClassifiers, or they may be the Interfaces that are provided by its public Ports.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gz4iwdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gz4iwtwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VYAUiRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VYAUihE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gz4iw9wbEeCT5O2F6sGn5g" name="realization" visibility="public" type="_gz6-8NwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g _gy8HhdwbEeCT5O2F6sGn5g" association="_gyusK9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz4ixNwbEeCT5O2F6sGn5g" annotatedElement="_gz4iw9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VYAUixE9EeGOffqMW1YiZA" name="realization" visibility="public" type="_VYEl8BE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VUo3cRE9EeGOffqMW1YiZA _GDD2YAtAEeGcpbeCPJfCmw" association="_VUNZpBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYAUjBE9EeGOffqMW1YiZA" annotatedElement="_VYAUixE9EeGOffqMW1YiZA">
           <body>The set of Realizations owned by the Component. Realizations reference the Classifiers of which the Component is an abstraction; i.e., that realize its behavior.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gz4ixdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gz4ixtwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VYAUjRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VYAUjhE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gz5JwNwbEeCT5O2F6sGn5g" name="required" visibility="public" type="_8Ugn8GvtEdqG6fBIPwe-mw" isReadOnly="true" isDerived="true" association="_gy0LsNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz5JwdwbEeCT5O2F6sGn5g" annotatedElement="_gz5JwNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VYA7kBE9EeGOffqMW1YiZA" name="required" visibility="public" type="_8Ugn8GvtEdqG6fBIPwe-mw" isReadOnly="true" isDerived="true" association="_VUcDIBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYA7kRE9EeGOffqMW1YiZA" annotatedElement="_VYA7kBE9EeGOffqMW1YiZA">
           <body>The interfaces that the component requires from other components in its environment in order to be able to offer its full set of provided functionality. These interfaces may be used by the Component or any of its realizingClassifiers, or they may be the Interfaces that are required by its public Ports.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gz5JwtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gz5Jw9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VYA7khE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VYA7kxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
       <ownedOperation xmi:id="_IJwKAK69EdqjppZik4kD8A" name="createOwnedClass">
         <ownedComment xmi:id="_gykdUPZPEdqYHf-imTcTdw" annotatedElement="_IJwKAK69EdqjppZik4kD8A">
@@ -4589,12 +4589,12 @@
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_PGB0gLLUEeCsYvaJqFFivQ" name="provided" visibility="public" bodyCondition="_gz5JxdwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_gz5JxNwbEeCT5O2F6sGn5g" annotatedElement="_PGB0gLLUEeCsYvaJqFFivQ">
+      <ownedOperation xmi:id="_PGB0gLLUEeCsYvaJqFFivQ" name="provided" visibility="public" bodyCondition="_VYA7lRE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VYA7lBE9EeGOffqMW1YiZA" annotatedElement="_PGB0gLLUEeCsYvaJqFFivQ">
           <body>Missing derivation for Component::/provided : Interface</body>
         </ownedComment>
-        <ownedRule xmi:id="_gz5JxdwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_PGB0gLLUEeCsYvaJqFFivQ _gz4iv9wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz5JxtwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VYA7lRE9EeGOffqMW1YiZA" name="spec" constrainedElement="_PGB0gLLUEeCsYvaJqFFivQ _VYAUhxE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYA7lhE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result =
 let 	realizedInterfaces : Set(Interface) = RealizedInterfaces(self) ,
@@ -4608,34 +4608,34 @@
           </specification>
         </ownedRule>
         <ownedParameter xmi:id="_R-77ULLUEeCsYvaJqFFivQ" name="result" visibility="public" type="_8Ugn8GvtEdqG6fBIPwe-mw" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gz5Jx9wbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gz5JyNwbEeCT5O2F6sGn5g" value="*"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VYA7lxE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VYA7mBE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_gz5JydwbEeCT5O2F6sGn5g" name="realizedInterfaces" visibility="public" bodyCondition="_gz5w0NwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_gz5JytwbEeCT5O2F6sGn5g" annotatedElement="_gz5JydwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VYCJsBE9EeGOffqMW1YiZA" name="realizedInterfaces" visibility="public" bodyCondition="_VYCJshE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VYCJsRE9EeGOffqMW1YiZA" annotatedElement="_VYCJsBE9EeGOffqMW1YiZA">
           <body>Utility returning the set of realized interfaces of a component.</body>
         </ownedComment>
-        <ownedRule xmi:id="_gz5w0NwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_gz5JydwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz5w0dwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VYCJshE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VYCJsBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYCJsxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = (classifier.clientDependency->
 select(dependency|dependency.oclIsKindOf(Realization) and dependency.supplier.oclIsKindOf(Interface)))->
 collect(dependency|dependency.client)</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_gz5w0twbEeCT5O2F6sGn5g" name="result" visibility="public" type="_8Ugn8GvtEdqG6fBIPwe-mw" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gz5w09wbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gz5w1NwbEeCT5O2F6sGn5g" value="*"/>
+        <ownedParameter xmi:id="_VYCJtBE9EeGOffqMW1YiZA" name="result" visibility="public" type="_8Ugn8GvtEdqG6fBIPwe-mw" direction="return">
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VYCJtRE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VYCJthE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
-        <ownedParameter xmi:id="_gz5w1dwbEeCT5O2F6sGn5g" name="classifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA"/>
+        <ownedParameter xmi:id="_VYCJtxE9EeGOffqMW1YiZA" name="classifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA"/>
       </ownedOperation>
-      <ownedOperation xmi:id="_lHjyALLUEeCsYvaJqFFivQ" name="required" visibility="public" bodyCondition="_gz5w19wbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_gz5w1twbEeCT5O2F6sGn5g" annotatedElement="_lHjyALLUEeCsYvaJqFFivQ">
+      <ownedOperation xmi:id="_lHjyALLUEeCsYvaJqFFivQ" name="required" visibility="public" bodyCondition="_VYCJuRE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VYCJuBE9EeGOffqMW1YiZA" annotatedElement="_lHjyALLUEeCsYvaJqFFivQ">
           <body>Missing derivation for Component::/required : Interface</body>
         </ownedComment>
-        <ownedRule xmi:id="_gz5w19wbEeCT5O2F6sGn5g" name="spec" constrainedElement="_lHjyALLUEeCsYvaJqFFivQ _gz5JwNwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz5w2NwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VYCJuRE9EeGOffqMW1YiZA" name="spec" constrainedElement="_lHjyALLUEeCsYvaJqFFivQ _VYA7kBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYCJuhE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = 
 let 	usedInterfaces : Set(Interface) = UsedInterfaces(self),
@@ -4649,309 +4649,309 @@
           </specification>
         </ownedRule>
         <ownedParameter xmi:id="_lHjyAbLUEeCsYvaJqFFivQ" name="result" visibility="public" type="_8Ugn8GvtEdqG6fBIPwe-mw" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gz5w2dwbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gz5w2twbEeCT5O2F6sGn5g" value="*"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VYCJuxE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VYCJvBE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_gz5w29wbEeCT5O2F6sGn5g" name="usedInterfaces" visibility="public" bodyCondition="_gz5w3dwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_gz5w3NwbEeCT5O2F6sGn5g" annotatedElement="_gz5w29wbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VYDX0BE9EeGOffqMW1YiZA" name="usedInterfaces" visibility="public" bodyCondition="_VYDX0hE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VYDX0RE9EeGOffqMW1YiZA" annotatedElement="_VYDX0BE9EeGOffqMW1YiZA">
           <body>Utility returning the set of used interfaces of a component.</body>
         </ownedComment>
-        <ownedRule xmi:id="_gz5w3dwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_gz5w29wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz5w3twbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VYDX0hE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VYDX0BE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYDX0xE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = (classifier.supplierDependency->
 select(dependency|dependency.oclIsKindOf(Usage) and dependency.supplier.oclIsKindOf(interface)))->
 collect(dependency|dependency.supplier)</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_gz5w39wbEeCT5O2F6sGn5g" name="result" visibility="public" type="_8Ugn8GvtEdqG6fBIPwe-mw" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gz5w4NwbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gz5w4dwbEeCT5O2F6sGn5g" value="*"/>
+        <ownedParameter xmi:id="_VYDX1BE9EeGOffqMW1YiZA" name="result" visibility="public" type="_8Ugn8GvtEdqG6fBIPwe-mw" direction="return">
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VYDX1RE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VYDX1hE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
-        <ownedParameter xmi:id="_gz5w4twbEeCT5O2F6sGn5g" name="classifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA"/>
+        <ownedParameter xmi:id="_VYDX1xE9EeGOffqMW1YiZA" name="classifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA"/>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_gz6-8NwbEeCT5O2F6sGn5g" name="ComponentRealization">
-      <ownedComment xmi:id="_gz6-8dwbEeCT5O2F6sGn5g" annotatedElement="_gz6-8NwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VYEl8BE9EeGOffqMW1YiZA" name="ComponentRealization">
+      <ownedComment xmi:id="_VYEl8RE9EeGOffqMW1YiZA" annotatedElement="_VYEl8BE9EeGOffqMW1YiZA">
         <body>The realization concept is specialized to (optionally) define the classifiers that realize the contract offered by a component in terms of its provided and required interfaces. The component forms an abstraction from these various classifiers.</body>
       </ownedComment>
-      <generalization xmi:id="_gz6-8twbEeCT5O2F6sGn5g" general="_g14Gx9wbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_gz6-89wbEeCT5O2F6sGn5g" name="abstraction" visibility="public" type="_DAbfwa69EdqjppZik4kD8A" subsettedProperty="_g0EI5twbEeCT5O2F6sGn5g _g0JodNwbEeCT5O2F6sGn5g" association="_gyusK9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz6-9NwbEeCT5O2F6sGn5g" annotatedElement="_gz6-89wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VYEl8hE9EeGOffqMW1YiZA" general="_Vdi72xE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VYEl8xE9EeGOffqMW1YiZA" name="abstraction" visibility="public" type="_DAbfwa69EdqjppZik4kD8A" subsettedProperty="_VYyXoxE9EeGOffqMW1YiZA _N3hRMAtAEeGcpbeCPJfCmw" association="_VUNZpBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYEl9BE9EeGOffqMW1YiZA" annotatedElement="_VYEl8xE9EeGOffqMW1YiZA">
           <body>The Component that owns this ComponentRealization and which is implemented by its realizing classifiers.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gz6-9dwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VYEl9RE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gz6-9twbEeCT5O2F6sGn5g" name="realizingClassifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" subsettedProperty="_g0EI49wbEeCT5O2F6sGn5g" association="_gyvTNNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz6-99wbEeCT5O2F6sGn5g" annotatedElement="_gz6-9twbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VYEl9hE9EeGOffqMW1YiZA" name="realizingClassifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" subsettedProperty="_VYyXoBE9EeGOffqMW1YiZA" association="_VUPO0BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYEl9xE9EeGOffqMW1YiZA" annotatedElement="_VYEl9hE9EeGOffqMW1YiZA">
           <body>The classifiers that are involved in the implementation of the Component that owns this Realization.</body>
         </ownedComment>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gz6--NwbEeCT5O2F6sGn5g" value="*"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VYEl-BE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_gz7mANwbEeCT5O2F6sGn5g" name="ConditionalNode">
-      <ownedComment xmi:id="_gz7mAdwbEeCT5O2F6sGn5g" annotatedElement="_gz7mANwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VYGbIBE9EeGOffqMW1YiZA" name="ConditionalNode">
+      <ownedComment xmi:id="_VYGbIRE9EeGOffqMW1YiZA" annotatedElement="_VYGbIBE9EeGOffqMW1YiZA">
         <body>A conditional node is a structured activity node that represents an exclusive choice among some number of alternatives.</body>
       </ownedComment>
-      <ownedRule xmi:id="_gz7mAtwbEeCT5O2F6sGn5g" name="result_no_incoming" constrainedElement="_gz7mANwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz7mA9wbEeCT5O2F6sGn5g" annotatedElement="_gz7mAtwbEeCT5O2F6sGn5g">
-          <body>The result output pins have no incoming edges.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz7mBNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gz7mBdwbEeCT5O2F6sGn5g" name="no_input_pins" constrainedElement="_gz7mANwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz7mBtwbEeCT5O2F6sGn5g" annotatedElement="_gz7mBdwbEeCT5O2F6sGn5g">
-          <body>A conditional node has no input pins.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz7mB9wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gz7mCNwbEeCT5O2F6sGn5g" name="one_clause_with_executable_node" constrainedElement="_gz7mANwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz7mCdwbEeCT5O2F6sGn5g" annotatedElement="_gz7mCNwbEeCT5O2F6sGn5g">
-          <body>No ExecutableNode may appear in the test or body part of more than one clause of a conditional node.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz7mCtwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gz7mC9wbEeCT5O2F6sGn5g" name="matching_output_pins" constrainedElement="_gz7mANwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz7mDNwbEeCT5O2F6sGn5g" annotatedElement="_gz7mC9wbEeCT5O2F6sGn5g">
-          <body>Each clause of a conditional node must have the same number of bodyOutput pins as the conditional node has result output pins, and each clause bodyOutput pin must be compatible with the corresponding result pin (by positional order) in type, multiplicity, ordering and uniqueness.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz7mDdwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gz7mDtwbEeCT5O2F6sGn5g" name="executable_nodes" constrainedElement="_gz7mANwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz7mD9wbEeCT5O2F6sGn5g" annotatedElement="_gz7mDtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VYGbIhE9EeGOffqMW1YiZA" name="executable_nodes" constrainedElement="_VYGbIBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYGbIxE9EeGOffqMW1YiZA" annotatedElement="_VYGbIhE9EeGOffqMW1YiZA">
           <body>The union of the ExecutabledNodes in the test and body parts of all clauses must be the same as the subset of nodes contained in the ConditionalNode (considered as a StructuredActivityNode) that are ExecutableNodes.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz7mENwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYGbJBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_gz7mEdwbEeCT5O2F6sGn5g" name="clause_no_predecessor" constrainedElement="_gz7mANwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz7mEtwbEeCT5O2F6sGn5g" annotatedElement="_gz7mEdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VYGbJRE9EeGOffqMW1YiZA" name="clause_no_predecessor" constrainedElement="_VYGbIBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYGbJhE9EeGOffqMW1YiZA" annotatedElement="_VYGbJRE9EeGOffqMW1YiZA">
           <body>No two clauses within a ConditionalNode maybe predecessor clauses of each other, either directly or indirectly.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz7mE9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYGbJxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_gz7mFNwbEeCT5O2F6sGn5g" general="_w1_2cLLREeCsYvaJqFFivQ"/>
-      <ownedAttribute xmi:id="_gz7mFdwbEeCT5O2F6sGn5g" name="clause" visibility="public" type="_gz0RQNwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gyVDhdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz7mFtwbEeCT5O2F6sGn5g" annotatedElement="_gz7mFdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VYGbKBE9EeGOffqMW1YiZA" name="matching_output_pins" constrainedElement="_VYGbIBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYGbKRE9EeGOffqMW1YiZA" annotatedElement="_VYGbKBE9EeGOffqMW1YiZA">
+          <body>Each clause of a conditional node must have the same number of bodyOutput pins as the conditional node has result output pins, and each clause bodyOutput pin must be compatible with the corresponding result pin (by positional order) in type, multiplicity, ordering and uniqueness.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYGbKhE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VYGbKxE9EeGOffqMW1YiZA" name="one_clause_with_executable_node" constrainedElement="_VYGbIBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYGbLBE9EeGOffqMW1YiZA" annotatedElement="_VYGbKxE9EeGOffqMW1YiZA">
+          <body>No ExecutableNode may appear in the test or body part of more than one clause of a conditional node.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYGbLRE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VYGbLhE9EeGOffqMW1YiZA" name="result_no_incoming" constrainedElement="_VYGbIBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYGbLxE9EeGOffqMW1YiZA" annotatedElement="_VYGbLhE9EeGOffqMW1YiZA">
+          <body>The result output pins have no incoming edges.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYGbMBE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VYGbMRE9EeGOffqMW1YiZA" name="no_input_pins" constrainedElement="_VYGbIBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYGbMhE9EeGOffqMW1YiZA" annotatedElement="_VYGbMRE9EeGOffqMW1YiZA">
+          <body>A conditional node has no input pins.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYGbMxE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VYGbNBE9EeGOffqMW1YiZA" general="_w1_2cLLREeCsYvaJqFFivQ"/>
+      <ownedAttribute xmi:id="_VYGbNRE9EeGOffqMW1YiZA" name="clause" visibility="public" type="_VX3xoBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VTEKJRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYGbNhE9EeGOffqMW1YiZA" annotatedElement="_VYGbNRE9EeGOffqMW1YiZA">
           <body>Set of clauses composing the conditional.</body>
         </ownedComment>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gz7mF9wbEeCT5O2F6sGn5g" value="*"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VYGbNxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gz7mGNwbEeCT5O2F6sGn5g" name="isAssured" visibility="public">
-        <ownedComment xmi:id="_gz7mGdwbEeCT5O2F6sGn5g" annotatedElement="_gz7mGNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VYGbOBE9EeGOffqMW1YiZA" name="isAssured" visibility="public">
+        <ownedComment xmi:id="_VYGbORE9EeGOffqMW1YiZA" annotatedElement="_VYGbOBE9EeGOffqMW1YiZA">
           <body>If true, the modeler asserts that at least one test will succeed.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_gz7mGtwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VYGbOhE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gz7mG9wbEeCT5O2F6sGn5g" name="isDeterminate" visibility="public">
-        <ownedComment xmi:id="_gz7mHNwbEeCT5O2F6sGn5g" annotatedElement="_gz7mG9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VYGbOxE9EeGOffqMW1YiZA" name="isDeterminate" visibility="public">
+        <ownedComment xmi:id="_VYGbPBE9EeGOffqMW1YiZA" annotatedElement="_VYGbOxE9EeGOffqMW1YiZA">
           <body>If true, the modeler asserts that at most one test will succeed.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_gz7mHdwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VYGbPRE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gz7mHtwbEeCT5O2F6sGn5g" name="result" visibility="public" type="_g1fsRdwbEeCT5O2F6sGn5g" isOrdered="true" aggregation="composite" redefinedProperty="_g2IlgdwbEeCT5O2F6sGn5g" association="_gy0ywNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz7mH9wbEeCT5O2F6sGn5g" annotatedElement="_gz7mHtwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VYGbPhE9EeGOffqMW1YiZA" name="result" visibility="public" type="_VcHYcBE9EeGOffqMW1YiZA" isOrdered="true" aggregation="composite" redefinedProperty="_VeiaWhE9EeGOffqMW1YiZA" association="_VUcqNhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYGbPxE9EeGOffqMW1YiZA" annotatedElement="_VYGbPhE9EeGOffqMW1YiZA">
           <body>A list of output pins that constitute the data flow outputs of the conditional.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gz7mINwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gz7mIdwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VYGbQBE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VYGbQRE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_0dB44PnhEdunWsS3se92JQ" name="ConnectableElement" isAbstract="true">
-      <ownedComment xmi:id="_gz7mItwbEeCT5O2F6sGn5g" annotatedElement="_0dB44PnhEdunWsS3se92JQ">
+      <ownedComment xmi:id="_VYHpQBE9EeGOffqMW1YiZA" annotatedElement="_0dB44PnhEdunWsS3se92JQ">
         <body>ConnectableElement is an abstract metaclass representing a set of instances that play roles of a classifier. Connectable elements may be joined by attached connectors and specify configurations of linked instances to be created within an instance of the containing classifier.</body>
       </ownedComment>
-      <ownedComment xmi:id="_gz7mI9wbEeCT5O2F6sGn5g" annotatedElement="_0dB44PnhEdunWsS3se92JQ">
+      <ownedComment xmi:id="_VYHpQRE9EeGOffqMW1YiZA" annotatedElement="_0dB44PnhEdunWsS3se92JQ">
         <body>A connectable element may be exposed as a connectable element template parameter.</body>
       </ownedComment>
-      <generalization xmi:id="_gz7mJNwbEeCT5O2F6sGn5g" general="_g2UysNwbEeCT5O2F6sGn5g"/>
-      <generalization xmi:id="_gz7mJdwbEeCT5O2F6sGn5g" general="_g1noENwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_gz7mJtwbEeCT5O2F6sGn5g" name="end" visibility="public" type="_aOgw0GveEdq4DLWZOhbdEA" isOrdered="true" isReadOnly="true" isDerived="true" association="_81UZgPnhEdunWsS3se92JQ">
-        <ownedComment xmi:id="_gz7mJ9wbEeCT5O2F6sGn5g" annotatedElement="_gz7mJtwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VYHpQhE9EeGOffqMW1YiZA" general="_VfDXsBE9EeGOffqMW1YiZA"/>
+      <generalization xmi:id="_VYHpQxE9EeGOffqMW1YiZA" general="_Vc730BE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VYIQUBE9EeGOffqMW1YiZA" name="end" visibility="public" type="_aOgw0GveEdq4DLWZOhbdEA" isOrdered="true" isReadOnly="true" isDerived="true" association="_81UZgPnhEdunWsS3se92JQ">
+        <ownedComment xmi:id="_VYIQURE9EeGOffqMW1YiZA" annotatedElement="_VYIQUBE9EeGOffqMW1YiZA">
           <body>Denotes a set of connector ends that attaches to this connectable element.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gz7mKNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gz7mKdwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VYIQUhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VYIQUxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gz7mKtwbEeCT5O2F6sGn5g" name="templateParameter" visibility="public" type="_gz80INwbEeCT5O2F6sGn5g" redefinedProperty="_g1noFtwbEeCT5O2F6sGn5g" association="_gyVqmNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz7mK9wbEeCT5O2F6sGn5g" annotatedElement="_gz7mKtwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VYIQVBE9EeGOffqMW1YiZA" name="templateParameter" visibility="public" type="_VYJecBE9EeGOffqMW1YiZA" redefinedProperty="_Vc731hE9EeGOffqMW1YiZA" association="_VTF_VRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYIQVRE9EeGOffqMW1YiZA" annotatedElement="_VYIQVBE9EeGOffqMW1YiZA">
           <body>The ConnectableElementTemplateParameter for this ConnectableElement parameter.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gz7mLNwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VYIQVhE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedOperation xmi:id="_ETr20LLVEeCsYvaJqFFivQ" name="end" visibility="public" bodyCondition="_gz8NEdwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_gz8NENwbEeCT5O2F6sGn5g" annotatedElement="_ETr20LLVEeCsYvaJqFFivQ">
+      <ownedOperation xmi:id="_ETr20LLVEeCsYvaJqFFivQ" name="end" visibility="public" bodyCondition="_VYIQWBE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VYIQVxE9EeGOffqMW1YiZA" annotatedElement="_ETr20LLVEeCsYvaJqFFivQ">
           <body>Missing derivation for ConnectableElement::/end : ConnectorEnd</body>
         </ownedComment>
-        <ownedRule xmi:id="_gz8NEdwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_ETr20LLVEeCsYvaJqFFivQ _gz7mJtwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz8NEtwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VYIQWBE9EeGOffqMW1YiZA" name="spec" constrainedElement="_ETr20LLVEeCsYvaJqFFivQ _VYIQUBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYIQWRE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>true</body>
           </specification>
         </ownedRule>
         <ownedParameter xmi:id="_Hrm04LLVEeCsYvaJqFFivQ" name="result" visibility="public" type="_aOgw0GveEdq4DLWZOhbdEA" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gz8NE9wbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gz8NFNwbEeCT5O2F6sGn5g" value="*"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VYI3YBE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VYI3YRE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_gz80INwbEeCT5O2F6sGn5g" name="ConnectableElementTemplateParameter">
-      <ownedComment xmi:id="_gz80IdwbEeCT5O2F6sGn5g" annotatedElement="_gz80INwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VYJecBE9EeGOffqMW1YiZA" name="ConnectableElementTemplateParameter">
+      <ownedComment xmi:id="_VYJecRE9EeGOffqMW1YiZA" annotatedElement="_VYJecBE9EeGOffqMW1YiZA">
         <body>A connectable element template parameter exposes a connectable element as a formal parameter for a template.</body>
       </ownedComment>
-      <generalization xmi:id="_gz80ItwbEeCT5O2F6sGn5g" general="_KxRzgGvuEdqG6fBIPwe-mw"/>
-      <ownedAttribute xmi:id="_gz80I9wbEeCT5O2F6sGn5g" name="parameteredElement" visibility="public" type="_0dB44PnhEdunWsS3se92JQ" redefinedProperty="_g2M25twbEeCT5O2F6sGn5g" association="_gyVqmNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz80JNwbEeCT5O2F6sGn5g" annotatedElement="_gz80I9wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VYJechE9EeGOffqMW1YiZA" general="_KxRzgGvuEdqG6fBIPwe-mw"/>
+      <ownedAttribute xmi:id="_VYJecxE9EeGOffqMW1YiZA" name="parameteredElement" visibility="public" type="_0dB44PnhEdunWsS3se92JQ" redefinedProperty="_Veq9MxE9EeGOffqMW1YiZA" association="_VTF_VRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYJedBE9EeGOffqMW1YiZA" annotatedElement="_VYJecxE9EeGOffqMW1YiZA">
           <body>The ConnectableElement for this template parameter.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_gz80JdwbEeCT5O2F6sGn5g" name="ConnectionPointReference">
-      <ownedComment xmi:id="_gz80JtwbEeCT5O2F6sGn5g" annotatedElement="_gz80JdwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VYKskBE9EeGOffqMW1YiZA" name="ConnectionPointReference">
+      <ownedComment xmi:id="_VYKskRE9EeGOffqMW1YiZA" annotatedElement="_VYKskBE9EeGOffqMW1YiZA">
         <body>A connection point reference represents a usage (as part of a submachine state) of an entry/exit point defined in the statemachine reference by the submachine state.</body>
       </ownedComment>
-      <ownedRule xmi:id="_gz80J9wbEeCT5O2F6sGn5g" name="exit_pseudostates" constrainedElement="_gz80JdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz80KNwbEeCT5O2F6sGn5g" annotatedElement="_gz80J9wbEeCT5O2F6sGn5g">
-          <body>The exit Pseudostates must be Pseudostates with kind exitPoint.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz80KdwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>exit->notEmpty() implies exit->forAll(e | e.kind = #exitPoint)</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gz80KtwbEeCT5O2F6sGn5g" name="entry_pseudostates" constrainedElement="_gz80JdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz80K9wbEeCT5O2F6sGn5g" annotatedElement="_gz80KtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VYKskhE9EeGOffqMW1YiZA" name="entry_pseudostates" constrainedElement="_VYKskBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYKskxE9EeGOffqMW1YiZA" annotatedElement="_VYKskhE9EeGOffqMW1YiZA">
           <body>The entry Pseudostates must be Pseudostates with kind entryPoint.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz80LNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYKslBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>entry->notEmpty() implies entry->forAll(e | e.kind = #entryPoint)</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_gz80LdwbEeCT5O2F6sGn5g" general="_xM1WoPnlEdunWsS3se92JQ"/>
-      <ownedAttribute xmi:id="_gz80LtwbEeCT5O2F6sGn5g" name="entry" visibility="public" type="_g1zOQNwbEeCT5O2F6sGn5g" association="_gyajE9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz80L9wbEeCT5O2F6sGn5g" annotatedElement="_gz80LtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VYKslRE9EeGOffqMW1YiZA" name="exit_pseudostates" constrainedElement="_VYKskBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYKslhE9EeGOffqMW1YiZA" annotatedElement="_VYKslRE9EeGOffqMW1YiZA">
+          <body>The exit Pseudostates must be Pseudostates with kind exitPoint.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYKslxE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>exit->notEmpty() implies exit->forAll(e | e.kind = #exitPoint)</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VYKsmBE9EeGOffqMW1YiZA" general="_xM1WoPnlEdunWsS3se92JQ"/>
+      <ownedAttribute xmi:id="_VYKsmRE9EeGOffqMW1YiZA" name="entry" visibility="public" type="_VdaY8BE9EeGOffqMW1YiZA" association="_VTUBwBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYKsmhE9EeGOffqMW1YiZA" annotatedElement="_VYKsmRE9EeGOffqMW1YiZA">
           <body>The entryPoint kind pseudo states corresponding to this connection point.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gz80MNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gz80MdwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VYKsmxE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VYKsnBE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gz80MtwbEeCT5O2F6sGn5g" name="exit" visibility="public" type="_g1zOQNwbEeCT5O2F6sGn5g" association="_gybxN9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz80M9wbEeCT5O2F6sGn5g" annotatedElement="_gz80MtwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VYKsnRE9EeGOffqMW1YiZA" name="exit" visibility="public" type="_VdaY8BE9EeGOffqMW1YiZA" association="_VTXFFBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYKsnhE9EeGOffqMW1YiZA" annotatedElement="_VYKsnRE9EeGOffqMW1YiZA">
           <body>The exitPoints kind pseudo states corresponding to this connection point.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gz80NNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gz80NdwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VYKsnxE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VYKsoBE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gz80NtwbEeCT5O2F6sGn5g" name="state" visibility="public" type="_g2Ce0NwbEeCT5O2F6sGn5g" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_gyVqm9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz80N9wbEeCT5O2F6sGn5g" annotatedElement="_gz80NtwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VYKsoRE9EeGOffqMW1YiZA" name="state" visibility="public" type="_VeRUkBE9EeGOffqMW1YiZA" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_VTGmYhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYKsohE9EeGOffqMW1YiZA" annotatedElement="_VYKsoRE9EeGOffqMW1YiZA">
           <body>The State in which the connection point refreshens are defined.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gz80ONwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VYKsoxE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_YxC2YLLWEeCsYvaJqFFivQ" name="Connector">
-      <ownedComment xmi:id="_gz9bMNwbEeCT5O2F6sGn5g" annotatedElement="_YxC2YLLWEeCsYvaJqFFivQ">
+      <ownedComment xmi:id="_VYKspBE9EeGOffqMW1YiZA" annotatedElement="_YxC2YLLWEeCsYvaJqFFivQ">
         <body>A delegation connector is a connector that links the external contract of a component (as specified by its ports) to the realization of that behavior. It represents the forwarding of events (operation requests and events): a signal that arrives at a port that has a delegation connector to one or more parts or ports on parts will be passed on to those targets for handling. An assembly connector is a connector between two or more parts or ports on parts that defines that one or more parts provide the services that other parts use.</body>
       </ownedComment>
-      <ownedComment xmi:id="_gz9bMdwbEeCT5O2F6sGn5g" annotatedElement="_YxC2YLLWEeCsYvaJqFFivQ">
+      <ownedComment xmi:id="_VYLToBE9EeGOffqMW1YiZA" annotatedElement="_YxC2YLLWEeCsYvaJqFFivQ">
         <body>Specifies a link that enables communication between two or more instances. This link may be an instance of an association, or it may represent the possibility of the instances being able to communicate because their identities are known by virtue of being passed in as parameters, held in variables or slots, or because the communicating instances are the same instance. The link may be realized by something as simple as a pointer or by something as complex as a network connection. In contrast to associations, which specify links between any instance of the associated classifiers, connectors specify links between instances playing the connected parts only.</body>
       </ownedComment>
-      <ownedRule xmi:id="_gz9bMtwbEeCT5O2F6sGn5g" name="types" constrainedElement="_YxC2YLLWEeCsYvaJqFFivQ">
-        <ownedComment xmi:id="_gz9bM9wbEeCT5O2F6sGn5g" annotatedElement="_gz9bMtwbEeCT5O2F6sGn5g">
-          <body>The types of the connectable elements that the ends of a connector are attached to must conform to the types of the association ends of the association that types the connector, if any.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz9bNNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gz9bNdwbEeCT5O2F6sGn5g" name="roles" constrainedElement="_YxC2YLLWEeCsYvaJqFFivQ">
-        <ownedComment xmi:id="_gz9bNtwbEeCT5O2F6sGn5g" annotatedElement="_gz9bNdwbEeCT5O2F6sGn5g">
-          <body>The ConnectableElements attached as roles to each ConnectorEnd owned by a Connector must be roles of the Classifier that owned the Connector, or they must be ports of such roles.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz9bN9wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gz9bONwbEeCT5O2F6sGn5g" name="between_interfaces_ports" constrainedElement="_YxC2YLLWEeCsYvaJqFFivQ">
-        <ownedComment xmi:id="_gz9bOdwbEeCT5O2F6sGn5g" annotatedElement="_gz9bONwbEeCT5O2F6sGn5g">
-          <body>Each feature of each of the required interfaces of each Port or Part at the end of a connector must have at least one compatible feature among the features of the provided interfaces of Ports or Parts at the other ends, where the required set of (interface) features of a delegating port from the context of the delegating connector is the set of features that exist in the port's provided interfaces, and the provided set of (interface) features of a delegating port from the context of the delegating connector is the set of features that exist in the port's required interfaces.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz9bOtwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gz9bO9wbEeCT5O2F6sGn5g" name="compatible" constrainedElement="_YxC2YLLWEeCsYvaJqFFivQ">
-        <ownedComment xmi:id="_gz9bPNwbEeCT5O2F6sGn5g" annotatedElement="_gz9bO9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VYLToRE9EeGOffqMW1YiZA" name="compatible" constrainedElement="_YxC2YLLWEeCsYvaJqFFivQ">
+        <ownedComment xmi:id="_VYLTohE9EeGOffqMW1YiZA" annotatedElement="_VYLToRE9EeGOffqMW1YiZA">
           <body>The connectable elements attached to the ends of a connector must be compatible.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz9bPdwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYLToxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_gz9bPtwbEeCT5O2F6sGn5g" general="_UL0VYLbAEeCRxrN1JUGuxA"/>
-      <ownedAttribute xmi:id="_gz9bP9wbEeCT5O2F6sGn5g" name="contract" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" association="_gyW4sNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz9bQNwbEeCT5O2F6sGn5g" annotatedElement="_gz9bP9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VYLTpBE9EeGOffqMW1YiZA" name="roles" constrainedElement="_YxC2YLLWEeCsYvaJqFFivQ">
+        <ownedComment xmi:id="_VYLTpRE9EeGOffqMW1YiZA" annotatedElement="_VYLTpBE9EeGOffqMW1YiZA">
+          <body>The ConnectableElements attached as roles to each ConnectorEnd owned by a Connector must be roles of the Classifier that owned the Connector, or they must be ports of such roles.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYLTphE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VYLTpxE9EeGOffqMW1YiZA" name="between_interfaces_ports" constrainedElement="_YxC2YLLWEeCsYvaJqFFivQ">
+        <ownedComment xmi:id="_VYLTqBE9EeGOffqMW1YiZA" annotatedElement="_VYLTpxE9EeGOffqMW1YiZA">
+          <body>Each feature of each of the required interfaces of each Port or Part at the end of a connector must have at least one compatible feature among the features of the provided interfaces of Ports or Parts at the other ends, where the required set of (interface) features of a delegating port from the context of the delegating connector is the set of features that exist in the port's provided interfaces, and the provided set of (interface) features of a delegating port from the context of the delegating connector is the set of features that exist in the port's required interfaces.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYLTqRE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VYL6sBE9EeGOffqMW1YiZA" name="types" constrainedElement="_YxC2YLLWEeCsYvaJqFFivQ">
+        <ownedComment xmi:id="_VYL6sRE9EeGOffqMW1YiZA" annotatedElement="_VYL6sBE9EeGOffqMW1YiZA">
+          <body>The types of the connectable elements that the ends of a connector are attached to must conform to the types of the association ends of the association that types the connector, if any.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYL6shE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VYL6sxE9EeGOffqMW1YiZA" general="_UL0VYLbAEeCRxrN1JUGuxA"/>
+      <ownedAttribute xmi:id="_VYL6tBE9EeGOffqMW1YiZA" name="contract" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" association="_VTJCoBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYL6tRE9EeGOffqMW1YiZA" annotatedElement="_VYL6tBE9EeGOffqMW1YiZA">
           <body>The set of Behaviors that specify the valid interaction patterns across the connector.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gz9bQdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gz9bQtwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VYL6thE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VYL6txE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gz9bQ9wbEeCT5O2F6sGn5g" name="end" visibility="public" type="_aOgw0GveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gyZ8CdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz9bRNwbEeCT5O2F6sGn5g" annotatedElement="_gz9bQ9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VYL6uBE9EeGOffqMW1YiZA" name="end" visibility="public" type="_aOgw0GveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VTSMlBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYL6uRE9EeGOffqMW1YiZA" annotatedElement="_VYL6uBE9EeGOffqMW1YiZA">
           <body>A connector consists of at least two connector ends, each representing the participation of instances of the classifiers typing the connectable elements attached to this end. The set of connector ends is ordered.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gz9bRdwbEeCT5O2F6sGn5g" value="2"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gz9bRtwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VYL6uhE9EeGOffqMW1YiZA" value="2"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VYL6uxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gz-CQNwbEeCT5O2F6sGn5g" name="kind" visibility="public" type="_echygLLWEeCsYvaJqFFivQ" isReadOnly="true" isDerived="true">
-        <ownedComment xmi:id="_gz-CQdwbEeCT5O2F6sGn5g" annotatedElement="_gz-CQNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VYL6vBE9EeGOffqMW1YiZA" name="kind" visibility="public" type="_echygLLWEeCsYvaJqFFivQ" isReadOnly="true" isDerived="true">
+        <ownedComment xmi:id="_VYL6vRE9EeGOffqMW1YiZA" annotatedElement="_VYL6vBE9EeGOffqMW1YiZA">
           <body>Indicates the kind of connector. This is derived: a connector with one or more ends connected to a Port which is not on a Part and which is not a behavior port is a delegation; otherwise it is an assembly.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gz-CQtwbEeCT5O2F6sGn5g" name="redefinedConnector" visibility="public" type="_YxC2YLLWEeCsYvaJqFFivQ" subsettedProperty="_g15U7twbEeCT5O2F6sGn5g" association="_gyv6S9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz-CQ9wbEeCT5O2F6sGn5g" annotatedElement="_gz-CQtwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VYMhwBE9EeGOffqMW1YiZA" name="redefinedConnector" visibility="public" type="_YxC2YLLWEeCsYvaJqFFivQ" subsettedProperty="_VdtT4BE9EeGOffqMW1YiZA" association="_VUQc9BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYMhwRE9EeGOffqMW1YiZA" annotatedElement="_VYMhwBE9EeGOffqMW1YiZA">
           <body>A connector may be redefined when its containing classifier is specialized. The redefining connector may have a type that specializes the type of the redefined connector. The types of the connector ends of the redefining connector may specialize the types of the connector ends of the redefined connector. The properties of the connector ends of the redefining connector may be replaced.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gz-CRNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gz-CRdwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VYMhwhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VYMhwxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gz-CRtwbEeCT5O2F6sGn5g" name="type" visibility="public" type="_AwvxoGwNEdq7X4sGURiZYA" association="_gy98tNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz-CR9wbEeCT5O2F6sGn5g" annotatedElement="_gz-CRtwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VYOW8BE9EeGOffqMW1YiZA" name="type" visibility="public" type="_AwvxoGwNEdq7X4sGURiZYA" association="_VUr6wBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYOW8RE9EeGOffqMW1YiZA" annotatedElement="_VYOW8BE9EeGOffqMW1YiZA">
           <body>An optional association that specifies the link corresponding to this connector.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gz-CSNwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VYOW8hE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedOperation xmi:id="_lgjO4LLWEeCsYvaJqFFivQ" name="kind" visibility="public" bodyCondition="_gz-CStwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_gz-CSdwbEeCT5O2F6sGn5g" annotatedElement="_lgjO4LLWEeCsYvaJqFFivQ">
+      <ownedOperation xmi:id="_lgjO4LLWEeCsYvaJqFFivQ" name="kind" visibility="public" bodyCondition="_VYO-ABE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VYOW8xE9EeGOffqMW1YiZA" annotatedElement="_lgjO4LLWEeCsYvaJqFFivQ">
           <body>Missing derivation for Connector::/kind : ConnectorKind</body>
         </ownedComment>
-        <ownedRule xmi:id="_gz-CStwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_lgjO4LLWEeCsYvaJqFFivQ _gz-CQNwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz-CS9wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VYO-ABE9EeGOffqMW1YiZA" name="spec" constrainedElement="_lgjO4LLWEeCsYvaJqFFivQ _VYL6vBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYO-ARE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result =
 if end->exists(
@@ -4967,368 +4967,368 @@
       </ownedOperation>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_aOgw0GveEdq4DLWZOhbdEA" name="ConnectorEnd">
-      <ownedComment xmi:id="_gz-pUNwbEeCT5O2F6sGn5g" annotatedElement="_aOgw0GveEdq4DLWZOhbdEA">
+      <ownedComment xmi:id="_VYPlEBE9EeGOffqMW1YiZA" annotatedElement="_aOgw0GveEdq4DLWZOhbdEA">
         <body>A connector end is an endpoint of a connector, which attaches the connector to a connectable element. Each connector end is part of one connector.</body>
       </ownedComment>
-      <ownedRule xmi:id="_gz-pUdwbEeCT5O2F6sGn5g" name="role_and_part_with_port" constrainedElement="_aOgw0GveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_gz-pUtwbEeCT5O2F6sGn5g" annotatedElement="_gz-pUdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VYPlERE9EeGOffqMW1YiZA" name="role_and_part_with_port" constrainedElement="_aOgw0GveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VYPlEhE9EeGOffqMW1YiZA" annotatedElement="_VYPlERE9EeGOffqMW1YiZA">
           <body>If a connector end references a partWithPort, then the role must be a port that is defined by the type of the partWithPort.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz-pU9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYPlExE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_gz-pVNwbEeCT5O2F6sGn5g" name="part_with_port_empty" constrainedElement="_aOgw0GveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_gz-pVdwbEeCT5O2F6sGn5g" annotatedElement="_gz-pVNwbEeCT5O2F6sGn5g">
-          <body>If a connector end is attached to a port of the containing classifier, partWithPort will be empty.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz-pVtwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gz-pV9wbEeCT5O2F6sGn5g" name="multiplicity" constrainedElement="_aOgw0GveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_gz-pWNwbEeCT5O2F6sGn5g" annotatedElement="_gz-pV9wbEeCT5O2F6sGn5g">
-          <body>The multiplicity of the connector end may not be more general than the multiplicity of the association typing the owning connector.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz-pWdwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gz-pWtwbEeCT5O2F6sGn5g" name="self_part_with_port" constrainedElement="_aOgw0GveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_gz-pW9wbEeCT5O2F6sGn5g" annotatedElement="_gz-pWtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VYQMIBE9EeGOffqMW1YiZA" name="self_part_with_port" constrainedElement="_aOgw0GveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VYQMIRE9EeGOffqMW1YiZA" annotatedElement="_VYQMIBE9EeGOffqMW1YiZA">
           <body>The property held in self.partWithPort must not be a Port.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz-pXNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYQMIhE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_gz-pXdwbEeCT5O2F6sGn5g" general="_Gjgl0GveEdq4DLWZOhbdEA"/>
-      <ownedAttribute xmi:id="_gz-pXtwbEeCT5O2F6sGn5g" name="definingEnd" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" isReadOnly="true" isDerived="true" association="_gyYt4NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz-pX9wbEeCT5O2F6sGn5g" annotatedElement="_gz-pXtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VYQMIxE9EeGOffqMW1YiZA" name="multiplicity" constrainedElement="_aOgw0GveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VYQMJBE9EeGOffqMW1YiZA" annotatedElement="_VYQMIxE9EeGOffqMW1YiZA">
+          <body>The multiplicity of the connector end may not be more general than the multiplicity of the association typing the owning connector.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYQMJRE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VYQMJhE9EeGOffqMW1YiZA" name="part_with_port_empty" constrainedElement="_aOgw0GveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VYQMJxE9EeGOffqMW1YiZA" annotatedElement="_VYQMJhE9EeGOffqMW1YiZA">
+          <body>If a connector end is attached to a port of the containing classifier, partWithPort will be empty.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYQMKBE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VYQMKRE9EeGOffqMW1YiZA" general="_Gjgl0GveEdq4DLWZOhbdEA"/>
+      <ownedAttribute xmi:id="_VYSBUBE9EeGOffqMW1YiZA" name="definingEnd" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" isReadOnly="true" isDerived="true" association="_VTN7IxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYSBURE9EeGOffqMW1YiZA" annotatedElement="_VYSBUBE9EeGOffqMW1YiZA">
           <body>A derived association referencing the corresponding association end on the association which types the connector owing this connector end. This association is derived by selecting the association end at the same place in the ordering of association ends as this connector end.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gz-pYNwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VYSBUhE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_gz_QYNwbEeCT5O2F6sGn5g" name="partWithPort" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" association="_gysP4NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz_QYdwbEeCT5O2F6sGn5g" annotatedElement="_gz_QYNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VYSoYBE9EeGOffqMW1YiZA" name="partWithPort" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" association="_VUH6FRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYSoYRE9EeGOffqMW1YiZA" annotatedElement="_VYSoYBE9EeGOffqMW1YiZA">
           <body>Indicates the role of the internal structure of a classifier with the port to which the connector end is attached.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gz_QYtwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VYSoYhE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
       <ownedAttribute xmi:id="_81UZgfnhEdunWsS3se92JQ" name="role" visibility="public" type="_0dB44PnhEdunWsS3se92JQ" association="_81UZgPnhEdunWsS3se92JQ">
-        <ownedComment xmi:id="_gz_QY9wbEeCT5O2F6sGn5g" annotatedElement="_81UZgfnhEdunWsS3se92JQ">
+        <ownedComment xmi:id="_VYSoYxE9EeGOffqMW1YiZA" annotatedElement="_81UZgfnhEdunWsS3se92JQ">
           <body>The connectable element attached at this connector end. When an instance of the containing classifier is created, a link may (depending on the multiplicities) be created to an instance of the classifier that types this connectable element.</body>
         </ownedComment>
         <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_81UZgvnhEdunWsS3se92JQ" value="1"/>
         <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_81UZg_nhEdunWsS3se92JQ" value="1"/>
       </ownedAttribute>
-      <ownedOperation xmi:id="_QT7XMFYKEdqrn7iZ0eqieg" name="definingEnd" visibility="public" bodyCondition="_gz_QZdwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_gz_QZNwbEeCT5O2F6sGn5g" annotatedElement="_QT7XMFYKEdqrn7iZ0eqieg">
+      <ownedOperation xmi:id="_QT7XMFYKEdqrn7iZ0eqieg" name="definingEnd" visibility="public" bodyCondition="_VYVrsBE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VYT2gBE9EeGOffqMW1YiZA" annotatedElement="_QT7XMFYKEdqrn7iZ0eqieg">
           <body>Missing derivation for ConnectorEnd::/definingEnd : Property</body>
         </ownedComment>
-        <ownedRule xmi:id="_gz_QZdwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_QT7XMFYKEdqrn7iZ0eqieg _gz-pXtwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz_QZtwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VYVrsBE9EeGOffqMW1YiZA" name="spec" constrainedElement="_QT7XMFYKEdqrn7iZ0eqieg _VYSBUBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYVrsRE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>true</body>
           </specification>
         </ownedRule>
         <ownedParameter xmi:id="_VkstQFYKEdqrn7iZ0eqieg" name="result" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gz_QZ9wbEeCT5O2F6sGn5g"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VYVrshE9EeGOffqMW1YiZA"/>
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_gz_3cNwbEeCT5O2F6sGn5g" name="ConsiderIgnoreFragment">
-      <ownedComment xmi:id="_gz_3cdwbEeCT5O2F6sGn5g" annotatedElement="_gz_3cNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VYZ9IBE9EeGOffqMW1YiZA" name="ConsiderIgnoreFragment">
+      <ownedComment xmi:id="_VYZ9IRE9EeGOffqMW1YiZA" annotatedElement="_VYZ9IBE9EeGOffqMW1YiZA">
         <body>A consider ignore fragment is a kind of combined fragment that is used for the consider and ignore cases, which require lists of pertinent messages to be specified.</body>
       </ownedComment>
-      <ownedRule xmi:id="_gz_3ctwbEeCT5O2F6sGn5g" name="consider_or_ignore" constrainedElement="_gz_3cNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz_3c9wbEeCT5O2F6sGn5g" annotatedElement="_gz_3ctwbEeCT5O2F6sGn5g">
-          <body>The interaction operator of a ConsiderIgnoreFragment must be either 'consider' or 'ignore'.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz_3dNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>(interactionOperator = #consider) or (interactionOperator = #ignore)</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_gz_3ddwbEeCT5O2F6sGn5g" name="type" constrainedElement="_gz_3cNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz_3dtwbEeCT5O2F6sGn5g" annotatedElement="_gz_3ddwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VYZ9IhE9EeGOffqMW1YiZA" name="type" constrainedElement="_VYZ9IBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYZ9IxE9EeGOffqMW1YiZA" annotatedElement="_VYZ9IhE9EeGOffqMW1YiZA">
           <body>The NamedElements must be of a type of element that identifies a message (e.g., an Operation, Reception, or a Signal).</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gz_3d9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYZ9JBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>message->forAll(m | m.oclIsKindOf(Operation) or m.oclIsKindOf(Reception) or m.oclIsKindOf(Signal))</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_gz_3eNwbEeCT5O2F6sGn5g" general="_gz3UkNwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_gz_3edwbEeCT5O2F6sGn5g" name="message" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw" association="_gyjF-9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_gz_3etwbEeCT5O2F6sGn5g" annotatedElement="_gz_3edwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VYZ9JRE9EeGOffqMW1YiZA" name="consider_or_ignore" constrainedElement="_VYZ9IBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYZ9JhE9EeGOffqMW1YiZA" annotatedElement="_VYZ9JRE9EeGOffqMW1YiZA">
+          <body>The interaction operator of a ConsiderIgnoreFragment must be either 'consider' or 'ignore'.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYZ9JxE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>(interactionOperator = #consider) or (interactionOperator = #ignore)</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VYZ9KBE9EeGOffqMW1YiZA" general="_VX8qIBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VYZ9KRE9EeGOffqMW1YiZA" name="message" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw" association="_VTxUxBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYZ9KhE9EeGOffqMW1YiZA" annotatedElement="_VYZ9KRE9EeGOffqMW1YiZA">
           <body>The set of messages that apply to this fragment</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gz_3e9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gz_3fNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VYZ9KxE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VYZ9LBE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0AegNwbEeCT5O2F6sGn5g" name="Constraint">
-      <ownedComment xmi:id="_g0AegdwbEeCT5O2F6sGn5g" annotatedElement="_g0AegNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VYbLQBE9EeGOffqMW1YiZA" name="Constraint">
+      <ownedComment xmi:id="_VYbLQRE9EeGOffqMW1YiZA" annotatedElement="_VYbLQBE9EeGOffqMW1YiZA">
         <body>A constraint is a condition or restriction expressed in natural language text or in a machine readable language for the purpose of declaring some of the semantics of an element.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0AegtwbEeCT5O2F6sGn5g" name="boolean_value" constrainedElement="_g0AegNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Aeg9wbEeCT5O2F6sGn5g" annotatedElement="_g0AegtwbEeCT5O2F6sGn5g">
-          <body>The value specification for a constraint must evaluate to a Boolean value.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0AehNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g0AehdwbEeCT5O2F6sGn5g" name="no_side_effects" constrainedElement="_g0AegNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0AehtwbEeCT5O2F6sGn5g" annotatedElement="_g0AehdwbEeCT5O2F6sGn5g">
-          <body>Evaluating the value specification for a constraint must not have side effects.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0Aeh9wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g0AeiNwbEeCT5O2F6sGn5g" name="not_apply_to_self" constrainedElement="_g0AegNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0AeidwbEeCT5O2F6sGn5g" annotatedElement="_g0AeiNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VYbLQhE9EeGOffqMW1YiZA" name="not_apply_to_self" constrainedElement="_VYbLQBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYbLQxE9EeGOffqMW1YiZA" annotatedElement="_VYbLQhE9EeGOffqMW1YiZA">
           <body>A constraint cannot be applied to itself.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0AeitwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYbLRBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>not constrainedElement->includes(self)</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g0Aei9wbEeCT5O2F6sGn5g" name="value_specification_boolean" constrainedElement="_g0AegNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0AejNwbEeCT5O2F6sGn5g" annotatedElement="_g0Aei9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VYbLRRE9EeGOffqMW1YiZA" name="no_side_effects" constrainedElement="_VYbLQBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYbLRhE9EeGOffqMW1YiZA" annotatedElement="_VYbLRRE9EeGOffqMW1YiZA">
+          <body>Evaluating the value specification for a constraint must not have side effects.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYbLRxE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VYbLSBE9EeGOffqMW1YiZA" name="boolean_value" constrainedElement="_VYbLQBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYbLSRE9EeGOffqMW1YiZA" annotatedElement="_VYbLSBE9EeGOffqMW1YiZA">
           <body>The value specification for a constraint must evaluate to a Boolean value.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0AejdwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYbLShE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VYbLSxE9EeGOffqMW1YiZA" name="value_specification_boolean" constrainedElement="_VYbLQBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYbLTBE9EeGOffqMW1YiZA" annotatedElement="_VYbLSxE9EeGOffqMW1YiZA">
+          <body>The value specification for a constraint must evaluate to a Boolean value.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYbLTRE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.specification().booleanValue().isOclKindOf(Boolean)</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0AejtwbEeCT5O2F6sGn5g" general="_jKxnwGwLEdq7X4sGURiZYA"/>
-      <ownedAttribute xmi:id="_g0Aej9wbEeCT5O2F6sGn5g" name="constrainedElement" visibility="public" type="_kl90MGvbEdq4DLWZOhbdEA" isOrdered="true" association="_gyWRoNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0AekNwbEeCT5O2F6sGn5g" annotatedElement="_g0Aej9wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VYbLThE9EeGOffqMW1YiZA" general="_jKxnwGwLEdq7X4sGURiZYA"/>
+      <ownedAttribute xmi:id="_VYbLTxE9EeGOffqMW1YiZA" name="constrainedElement" visibility="public" type="_kl90MGvbEdq4DLWZOhbdEA" isOrdered="true" association="_VTHNdBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYbLUBE9EeGOffqMW1YiZA" annotatedElement="_VYbLTxE9EeGOffqMW1YiZA">
           <body>The ordered set of Elements referenced by this Constraint.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0AekdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0AektwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VYbLURE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VYbLUhE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0Aek9wbEeCT5O2F6sGn5g" name="context" visibility="public" type="_ZiwkoGwLEdq7X4sGURiZYA" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_gyqavtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0AelNwbEeCT5O2F6sGn5g" annotatedElement="_g0Aek9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VYbLUxE9EeGOffqMW1YiZA" name="context" visibility="public" type="_ZiwkoGwLEdq7X4sGURiZYA" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_VUDophE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYbLVBE9EeGOffqMW1YiZA" annotatedElement="_VYbLUxE9EeGOffqMW1YiZA">
           <body>Specifies the namespace that owns the NamedElement.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0AeldwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VYbLVRE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0AeltwbEeCT5O2F6sGn5g" name="specification" visibility="public" type="_g2YdENwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gy6SVNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Ael9wbEeCT5O2F6sGn5g" annotatedElement="_g0AeltwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VYbLVhE9EeGOffqMW1YiZA" name="specification" visibility="public" type="_VfGbABE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VUl0IBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYbLVxE9EeGOffqMW1YiZA" annotatedElement="_VYbLVhE9EeGOffqMW1YiZA">
           <body>A condition that must be true when evaluated in order for the constraint to be satisfied.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0AemNwbEeCT5O2F6sGn5g" name="Continuation">
-      <ownedComment xmi:id="_g0AemdwbEeCT5O2F6sGn5g" annotatedElement="_g0AemNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VYbyUBE9EeGOffqMW1YiZA" name="Continuation">
+      <ownedComment xmi:id="_VYbyURE9EeGOffqMW1YiZA" annotatedElement="_VYbyUBE9EeGOffqMW1YiZA">
         <body>A continuation is a syntactic way to define continuations of different branches of an alternative combined fragment. Continuations is intuitively similar to labels representing intermediate points in a flow of control.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0AemtwbEeCT5O2F6sGn5g" name="first_or_last_interaction_fragment" constrainedElement="_g0AemNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Aem9wbEeCT5O2F6sGn5g" annotatedElement="_g0AemtwbEeCT5O2F6sGn5g">
-          <body>Continuations always occur as the very first InteractionFragment or the very last InteractionFragment of the enclosing InteractionFragment.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0AenNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g0AendwbEeCT5O2F6sGn5g" name="same_name" constrainedElement="_g0AemNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0AentwbEeCT5O2F6sGn5g" annotatedElement="_g0AendwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VYbyUhE9EeGOffqMW1YiZA" name="same_name" constrainedElement="_VYbyUBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYbyUxE9EeGOffqMW1YiZA" annotatedElement="_VYbyUhE9EeGOffqMW1YiZA">
           <body>Continuations with the same name may only cover the same set of Lifelines (within one Classifier).</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0Aen9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYbyVBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g0BFkNwbEeCT5O2F6sGn5g" name="global" constrainedElement="_g0AemNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0BFkdwbEeCT5O2F6sGn5g" annotatedElement="_g0BFkNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VYbyVRE9EeGOffqMW1YiZA" name="first_or_last_interaction_fragment" constrainedElement="_VYbyUBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYbyVhE9EeGOffqMW1YiZA" annotatedElement="_VYbyVRE9EeGOffqMW1YiZA">
+          <body>Continuations always occur as the very first InteractionFragment or the very last InteractionFragment of the enclosing InteractionFragment.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYbyVxE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VYbyWBE9EeGOffqMW1YiZA" name="global" constrainedElement="_VYbyUBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYbyWRE9EeGOffqMW1YiZA" annotatedElement="_VYbyWBE9EeGOffqMW1YiZA">
           <body>Continuations are always global in the enclosing InteractionFragment e.g. it always covers all Lifelines covered by the enclosing InteractionFragment.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0BFktwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYbyWhE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0BFk9wbEeCT5O2F6sGn5g" general="_g0cjYNwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g0BFlNwbEeCT5O2F6sGn5g" name="setting" visibility="public">
-        <ownedComment xmi:id="_g0BFldwbEeCT5O2F6sGn5g" annotatedElement="_g0BFlNwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VYbyWxE9EeGOffqMW1YiZA" general="_VZuLwBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VYbyXBE9EeGOffqMW1YiZA" name="setting" visibility="public">
+        <ownedComment xmi:id="_VYbyXRE9EeGOffqMW1YiZA" annotatedElement="_VYbyXBE9EeGOffqMW1YiZA">
           <body>True: when the Continuation is at the end of the enclosing InteractionFragment and False when it is in the beginning.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g0BFltwbEeCT5O2F6sGn5g" value="true"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VYbyXhE9EeGOffqMW1YiZA" value="true"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0BFl9wbEeCT5O2F6sGn5g" name="ControlFlow">
-      <ownedComment xmi:id="_g0BFmNwbEeCT5O2F6sGn5g" annotatedElement="_g0BFl9wbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VYcZYBE9EeGOffqMW1YiZA" name="ControlFlow">
+      <ownedComment xmi:id="_VYcZYRE9EeGOffqMW1YiZA" annotatedElement="_VYcZYBE9EeGOffqMW1YiZA">
         <body>A control flow is an edge that starts an activity node after the previous one is finished.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0BFmdwbEeCT5O2F6sGn5g" name="object_nodes" constrainedElement="_g0BFl9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0BFmtwbEeCT5O2F6sGn5g" annotatedElement="_g0BFmdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VYcZYhE9EeGOffqMW1YiZA" name="object_nodes" constrainedElement="_VYcZYBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYcZYxE9EeGOffqMW1YiZA" annotatedElement="_VYcZYhE9EeGOffqMW1YiZA">
           <body>Control flows may not have object nodes at either end, except for object nodes with control type.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0BFm9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYcZZBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0BFnNwbEeCT5O2F6sGn5g" general="_gzZagNwbEeCT5O2F6sGn5g"/>
+      <generalization xmi:id="_VYcZZRE9EeGOffqMW1YiZA" general="_VVcIsBE9EeGOffqMW1YiZA"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0BFndwbEeCT5O2F6sGn5g" name="ControlNode" isAbstract="true">
-      <ownedComment xmi:id="_g0BFntwbEeCT5O2F6sGn5g" annotatedElement="_g0BFndwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VYdAcBE9EeGOffqMW1YiZA" name="ControlNode" isAbstract="true">
+      <ownedComment xmi:id="_VYdAcRE9EeGOffqMW1YiZA" annotatedElement="_VYdAcBE9EeGOffqMW1YiZA">
         <body>A control node is an abstract activity node that coordinates flows in an activity.</body>
       </ownedComment>
-      <generalization xmi:id="_g0BFn9wbEeCT5O2F6sGn5g" general="_gzbPsNwbEeCT5O2F6sGn5g"/>
+      <generalization xmi:id="_VYdAchE9EeGOffqMW1YiZA" general="_WpiyYAs-EeGcpbeCPJfCmw"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0BFoNwbEeCT5O2F6sGn5g" name="CreateLinkAction">
-      <ownedComment xmi:id="_g0BFodwbEeCT5O2F6sGn5g" annotatedElement="_g0BFoNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VYdAcxE9EeGOffqMW1YiZA" name="CreateLinkAction">
+      <ownedComment xmi:id="_VYdAdBE9EeGOffqMW1YiZA" annotatedElement="_VYdAcxE9EeGOffqMW1YiZA">
         <body>A create link action is a write link action for creating links.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0BFotwbEeCT5O2F6sGn5g" name="association_not_abstract" constrainedElement="_g0BFoNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0BFo9wbEeCT5O2F6sGn5g" annotatedElement="_g0BFotwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VYdAdRE9EeGOffqMW1YiZA" name="association_not_abstract" constrainedElement="_VYdAcxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYdAdhE9EeGOffqMW1YiZA" annotatedElement="_VYdAdRE9EeGOffqMW1YiZA">
           <body>The association cannot be an abstract classifier.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0BFpNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYdAdxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.association().isAbstract = #false</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0BFpdwbEeCT5O2F6sGn5g" general="_g2a5UdwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g0BsoNwbEeCT5O2F6sGn5g" name="endData" visibility="public" type="_g0iqANwbEeCT5O2F6sGn5g" aggregation="composite" redefinedProperty="_g0iC_NwbEeCT5O2F6sGn5g" association="_gyZU-twbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0BsodwbEeCT5O2F6sGn5g" annotatedElement="_g0BsoNwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VYdAeBE9EeGOffqMW1YiZA" general="_VfKFYBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VYdAeRE9EeGOffqMW1YiZA" name="endData" visibility="public" type="_VZ2HkBE9EeGOffqMW1YiZA" aggregation="composite" redefinedProperty="_VZ1gjBE9EeGOffqMW1YiZA" association="_VTRlgBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYdAehE9EeGOffqMW1YiZA" annotatedElement="_VYdAeRE9EeGOffqMW1YiZA">
           <body>Specifies ends of association and inputs.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0BsotwbEeCT5O2F6sGn5g" value="2"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0Bso9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VYdAexE9EeGOffqMW1YiZA" value="2"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VYdAfBE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0BspNwbEeCT5O2F6sGn5g" name="CreateLinkObjectAction">
-      <ownedComment xmi:id="_g0BspdwbEeCT5O2F6sGn5g" annotatedElement="_g0BspNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VYgDwBE9EeGOffqMW1YiZA" name="CreateLinkObjectAction">
+      <ownedComment xmi:id="_VYgDwRE9EeGOffqMW1YiZA" annotatedElement="_VYgDwBE9EeGOffqMW1YiZA">
         <body>A create link object action creates a link object.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0BsptwbEeCT5O2F6sGn5g" name="multiplicity" constrainedElement="_g0BspNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Bsp9wbEeCT5O2F6sGn5g" annotatedElement="_g0BsptwbEeCT5O2F6sGn5g">
-          <body>The multiplicity of the output pin is 1..1.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0BsqNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>self.result.multiplicity.is(1,1)</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g0BsqdwbEeCT5O2F6sGn5g" name="type_of_result" constrainedElement="_g0BspNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0BsqtwbEeCT5O2F6sGn5g" annotatedElement="_g0BsqdwbEeCT5O2F6sGn5g">
-          <body>The type of the result pin must be the same as the association of the action.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0Bsq9wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>self.result.type = self.association()</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g0BsrNwbEeCT5O2F6sGn5g" name="association_class" constrainedElement="_g0BspNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0BsrdwbEeCT5O2F6sGn5g" annotatedElement="_g0BsrNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VYgDwhE9EeGOffqMW1YiZA" name="association_class" constrainedElement="_VYgDwBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYgDwxE9EeGOffqMW1YiZA" annotatedElement="_VYgDwhE9EeGOffqMW1YiZA">
           <body>The association must be an association class.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0BsrtwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYgDxBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.association().oclIsKindOf(Class)</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0Bsr9wbEeCT5O2F6sGn5g" general="_g0BFoNwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g0BssNwbEeCT5O2F6sGn5g" name="result" visibility="public" type="_g1fsRdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzCOK9wbEeCT5O2F6sGn5g" association="_gy0yw9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0BssdwbEeCT5O2F6sGn5g" annotatedElement="_g0BssNwbEeCT5O2F6sGn5g">
-          <body>Gives the output pin on which the result is put.</body>
+      <ownedRule xmi:id="_VYgDxRE9EeGOffqMW1YiZA" name="type_of_result" constrainedElement="_VYgDwBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYgDxhE9EeGOffqMW1YiZA" annotatedElement="_VYgDxRE9EeGOffqMW1YiZA">
+          <body>The type of the result pin must be the same as the association of the action.</body>
         </ownedComment>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0CTsNwbEeCT5O2F6sGn5g" name="CreateObjectAction">
-      <ownedComment xmi:id="_g0CTsdwbEeCT5O2F6sGn5g" annotatedElement="_g0CTsNwbEeCT5O2F6sGn5g">
-        <body>A create object action is an action that creates an object that conforms to a statically specified classifier and puts it on an output pin at runtime.</body>
-      </ownedComment>
-      <ownedRule xmi:id="_g0CTstwbEeCT5O2F6sGn5g" name="classifier_not_abstract" constrainedElement="_g0CTsNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0CTs9wbEeCT5O2F6sGn5g" annotatedElement="_g0CTstwbEeCT5O2F6sGn5g">
-          <body>The classifier cannot be abstract.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0CTtNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYgDxxE9EeGOffqMW1YiZA">
           <language>OCL</language>
-          <body>not (self.classifier.isAbstract = #true)</body>
+          <body>self.result.type = self.association()</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g0CTtdwbEeCT5O2F6sGn5g" name="multiplicity" constrainedElement="_g0CTsNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0CTttwbEeCT5O2F6sGn5g" annotatedElement="_g0CTtdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VYgDyBE9EeGOffqMW1YiZA" name="multiplicity" constrainedElement="_VYgDwBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYgDyRE9EeGOffqMW1YiZA" annotatedElement="_VYgDyBE9EeGOffqMW1YiZA">
           <body>The multiplicity of the output pin is 1..1.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0CTt9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYgDyhE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.result.multiplicity.is(1,1)</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g0CTuNwbEeCT5O2F6sGn5g" name="classifier_not_association_class" constrainedElement="_g0CTsNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0CTudwbEeCT5O2F6sGn5g" annotatedElement="_g0CTuNwbEeCT5O2F6sGn5g">
-          <body>The classifier cannot be an association class</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0CTutwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>not self.classifier.oclIsKindOf(AssociationClass)</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g0CTu9wbEeCT5O2F6sGn5g" name="same_type" constrainedElement="_g0CTsNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0CTvNwbEeCT5O2F6sGn5g" annotatedElement="_g0CTu9wbEeCT5O2F6sGn5g">
-          <body>The type of the result pin must be the same as the classifier of the action.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0CTvdwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>self.result.type = self.classifier</body>
-        </specification>
-      </ownedRule>
-      <generalization xmi:id="_g0CTvtwbEeCT5O2F6sGn5g" general="_6WKakLLQEeCsYvaJqFFivQ"/>
-      <ownedAttribute xmi:id="_g0CTv9wbEeCT5O2F6sGn5g" name="classifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" association="_gyUcdNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0CTwNwbEeCT5O2F6sGn5g" annotatedElement="_g0CTv9wbEeCT5O2F6sGn5g">
-          <body>Classifier to be instantiated.</body>
-        </ownedComment>
-      </ownedAttribute>
-      <ownedAttribute xmi:id="_g0CTwdwbEeCT5O2F6sGn5g" name="result" visibility="public" type="_g1fsRdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzCOK9wbEeCT5O2F6sGn5g" association="_gy0yxtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0CTwtwbEeCT5O2F6sGn5g" annotatedElement="_g0CTwdwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VYgDyxE9EeGOffqMW1YiZA" general="_VYdAcxE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VYgDzBE9EeGOffqMW1YiZA" name="result" visibility="public" type="_VcHYcBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4vEBE9EeGOffqMW1YiZA" association="_VUdRQBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYgDzRE9EeGOffqMW1YiZA" annotatedElement="_VYgDzBE9EeGOffqMW1YiZA">
           <body>Gives the output pin on which the result is put.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0CTw9wbEeCT5O2F6sGn5g" name="DataStoreNode">
-      <ownedComment xmi:id="_g0CTxNwbEeCT5O2F6sGn5g" annotatedElement="_g0CTw9wbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VYgq0BE9EeGOffqMW1YiZA" name="CreateObjectAction">
+      <ownedComment xmi:id="_VYgq0RE9EeGOffqMW1YiZA" annotatedElement="_VYgq0BE9EeGOffqMW1YiZA">
+        <body>A create object action is an action that creates an object that conforms to a statically specified classifier and puts it on an output pin at runtime.</body>
+      </ownedComment>
+      <ownedRule xmi:id="_VYgq0hE9EeGOffqMW1YiZA" name="classifier_not_association_class" constrainedElement="_VYgq0BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYgq0xE9EeGOffqMW1YiZA" annotatedElement="_VYgq0hE9EeGOffqMW1YiZA">
+          <body>The classifier cannot be an association class</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYgq1BE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>not self.classifier.oclIsKindOf(AssociationClass)</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VYgq1RE9EeGOffqMW1YiZA" name="classifier_not_abstract" constrainedElement="_VYgq0BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYgq1hE9EeGOffqMW1YiZA" annotatedElement="_VYgq1RE9EeGOffqMW1YiZA">
+          <body>The classifier cannot be abstract.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYgq1xE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>not (self.classifier.isAbstract = #true)</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VYgq2BE9EeGOffqMW1YiZA" name="same_type" constrainedElement="_VYgq0BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYgq2RE9EeGOffqMW1YiZA" annotatedElement="_VYgq2BE9EeGOffqMW1YiZA">
+          <body>The type of the result pin must be the same as the classifier of the action.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYgq2hE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>self.result.type = self.classifier</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VYgq2xE9EeGOffqMW1YiZA" name="multiplicity" constrainedElement="_VYgq0BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYgq3BE9EeGOffqMW1YiZA" annotatedElement="_VYgq2xE9EeGOffqMW1YiZA">
+          <body>The multiplicity of the output pin is 1..1.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYgq3RE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>self.result.multiplicity.is(1,1)</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VYgq3hE9EeGOffqMW1YiZA" general="_6WKakLLQEeCsYvaJqFFivQ"/>
+      <ownedAttribute xmi:id="_VYgq3xE9EeGOffqMW1YiZA" name="classifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" association="_VTCU8BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYgq4BE9EeGOffqMW1YiZA" annotatedElement="_VYgq3xE9EeGOffqMW1YiZA">
+          <body>Classifier to be instantiated.</body>
+        </ownedComment>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_VYgq4RE9EeGOffqMW1YiZA" name="result" visibility="public" type="_VcHYcBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4vEBE9EeGOffqMW1YiZA" association="_VUdRQxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYgq4hE9EeGOffqMW1YiZA" annotatedElement="_VYgq4RE9EeGOffqMW1YiZA">
+          <body>Gives the output pin on which the result is put.</body>
+        </ownedComment>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Class" xmi:id="_VYhR4BE9EeGOffqMW1YiZA" name="DataStoreNode">
+      <ownedComment xmi:id="_VYhR4RE9EeGOffqMW1YiZA" annotatedElement="_VYhR4BE9EeGOffqMW1YiZA">
         <body>A data store node is a central buffer node for non-transient information.</body>
       </ownedComment>
-      <generalization xmi:id="_g0CTxdwbEeCT5O2F6sGn5g" general="_gzndA9wbEeCT5O2F6sGn5g"/>
+      <generalization xmi:id="_VYhR4hE9EeGOffqMW1YiZA" general="_VWWHoBE9EeGOffqMW1YiZA"/>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="__1ap4HLzEdqziYxiZo0YtA" name="DataType">
-      <ownedComment xmi:id="_g0CTxtwbEeCT5O2F6sGn5g" annotatedElement="__1ap4HLzEdqziYxiZo0YtA">
+      <ownedComment xmi:id="_VYhR4xE9EeGOffqMW1YiZA" annotatedElement="__1ap4HLzEdqziYxiZo0YtA">
         <body>A data type is a type whose instances are identified only by their value. A data type may contain attributes to support the modeling of structured data types.</body>
       </ownedComment>
-      <generalization xmi:id="_g0CTx9wbEeCT5O2F6sGn5g" general="_6UV2QGwJEdq7X4sGURiZYA"/>
-      <ownedAttribute xmi:id="_g0CTyNwbEeCT5O2F6sGn5g" name="ownedAttribute" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" subsettedProperty="_gzuKp9wbEeCT5O2F6sGn5g _g1S4AdwbEeCT5O2F6sGn5g" association="_gyn-ftwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0CTydwbEeCT5O2F6sGn5g" annotatedElement="_g0CTyNwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VYuGMBE9EeGOffqMW1YiZA" general="_6UV2QGwJEdq7X4sGURiZYA"/>
+      <ownedAttribute xmi:id="_VYuGMRE9EeGOffqMW1YiZA" name="ownedAttribute" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" subsettedProperty="_Var1EBE9EeGOffqMW1YiZA _VXldxBE9EeGOffqMW1YiZA" association="_VT-wJBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYuGMhE9EeGOffqMW1YiZA" annotatedElement="_VYuGMRE9EeGOffqMW1YiZA">
           <body>The Attributes owned by the DataType.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0CTytwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0CTy9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VYuGMxE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VYuGNBE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0C6wNwbEeCT5O2F6sGn5g" name="ownedOperation" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" subsettedProperty="_gzuKr9wbEeCT5O2F6sGn5g _gyxIb9wbEeCT5O2F6sGn5g _g1S4AdwbEeCT5O2F6sGn5g" association="_gypzodwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0C6wdwbEeCT5O2F6sGn5g" annotatedElement="_g0C6wNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VYutQBE9EeGOffqMW1YiZA" name="ownedOperation" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" subsettedProperty="_VXmE1BE9EeGOffqMW1YiZA _VUWjlxE9EeGOffqMW1YiZA _Var1EBE9EeGOffqMW1YiZA" association="_VUBzcRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYutQRE9EeGOffqMW1YiZA" annotatedElement="_VYutQBE9EeGOffqMW1YiZA">
           <body>The Operations owned by the DataType.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0C6wtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0C6w9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VYutQhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VYutQxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
       <ownedOperation xmi:id="_WJZCQHL0EdqziYxiZo0YtA" name="createOwnedAttribute">
         <ownedComment xmi:id="_I4T3gOwmEdqYHf-imTcTdw" annotatedElement="_WJZCQHL0EdqziYxiZo0YtA">
@@ -5399,361 +5399,361 @@
           <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_yc2vUaOxEdqi_5gqUMOQtA" value="1"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g0C6xNwbEeCT5O2F6sGn5g" name="inherit" visibility="public" bodyCondition="_g0C6xtwbEeCT5O2F6sGn5g" isQuery="true" redefinedOperation="_gzxN8NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0C6xdwbEeCT5O2F6sGn5g" annotatedElement="_g0C6xNwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VYutRBE9EeGOffqMW1YiZA" name="inherit" visibility="public" bodyCondition="_VYutRhE9EeGOffqMW1YiZA" isQuery="true" redefinedOperation="_VXxD8BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYutRRE9EeGOffqMW1YiZA" annotatedElement="_VYutRBE9EeGOffqMW1YiZA">
           <body>The inherit operation is overridden to exclude redefined properties.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g0C6xtwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g0C6xNwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0C6x9wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VYutRhE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VYutRBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYutRxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = inhs->excluding(inh | ownedMember->select(oclIsKindOf(RedefinableElement))->select(redefinedElement->includes(inh)))</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g0C6yNwbEeCT5O2F6sGn5g" name="result" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0C6ydwbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0C6ytwbEeCT5O2F6sGn5g" value="*"/>
+        <ownedParameter xmi:id="_VYutSBE9EeGOffqMW1YiZA" name="result" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw" direction="return">
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VYutSRE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VYutShE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
-        <ownedParameter xmi:id="_g0C6y9wbEeCT5O2F6sGn5g" name="inhs" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0C6zNwbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0C6zdwbEeCT5O2F6sGn5g" value="*"/>
+        <ownedParameter xmi:id="_VYutSxE9EeGOffqMW1YiZA" name="inhs" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw">
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VYutTBE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VYutTRE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0Dh0NwbEeCT5O2F6sGn5g" name="DecisionNode">
-      <ownedComment xmi:id="_g0Dh0dwbEeCT5O2F6sGn5g" annotatedElement="_g0Dh0NwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VYxwkBE9EeGOffqMW1YiZA" name="DecisionNode">
+      <ownedComment xmi:id="_VYxwkRE9EeGOffqMW1YiZA" annotatedElement="_VYxwkBE9EeGOffqMW1YiZA">
         <body>A decision node is a control node that chooses between outgoing flows.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0Dh0twbEeCT5O2F6sGn5g" name="zero_input_parameters" constrainedElement="_g0Dh0NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Dh09wbEeCT5O2F6sGn5g" annotatedElement="_g0Dh0twbEeCT5O2F6sGn5g">
-          <body>If the decision node has no decision input flow and an incoming control flow, then a decision input behavior has zero input parameters.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0Dh1NwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g0Dh1dwbEeCT5O2F6sGn5g" name="edges" constrainedElement="_g0Dh0NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Dh1twbEeCT5O2F6sGn5g" annotatedElement="_g0Dh1dwbEeCT5O2F6sGn5g">
-          <body>The edges coming into and out of a decision node, other than the decision input flow (if any), must be either all object flows or all control flows.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0Dh19wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g0Dh2NwbEeCT5O2F6sGn5g" name="decision_input_flow_incoming" constrainedElement="_g0Dh0NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Dh2dwbEeCT5O2F6sGn5g" annotatedElement="_g0Dh2NwbEeCT5O2F6sGn5g">
-          <body>The decisionInputFlow of a decision node must be an incoming edge of the decision node.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0Dh2twbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g0Dh29wbEeCT5O2F6sGn5g" name="two_input_parameters" constrainedElement="_g0Dh0NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Dh3NwbEeCT5O2F6sGn5g" annotatedElement="_g0Dh29wbEeCT5O2F6sGn5g">
-          <body>If the decision node has a decision input flow and an second incoming object flow, then a decision input behavior has two input parameters, the first of which has a type that is the same as or a supertype of the type of the type of object tokens offered on the nondecision input flow and the second of which has a type that is the same as or a supertype of the type of object tokens offered on the decision input flow.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0Dh3dwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g0Dh3twbEeCT5O2F6sGn5g" name="incoming_outgoing_edges" constrainedElement="_g0Dh0NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Dh39wbEeCT5O2F6sGn5g" annotatedElement="_g0Dh3twbEeCT5O2F6sGn5g">
-          <body>A decision node has one or two incoming edges and at least one outgoing edge.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0Dh4NwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g0Dh4dwbEeCT5O2F6sGn5g" name="incoming_control_one_input_parameter" constrainedElement="_g0Dh0NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Dh4twbEeCT5O2F6sGn5g" annotatedElement="_g0Dh4dwbEeCT5O2F6sGn5g">
-          <body>If the decision node has a decision input flow and an incoming control flow, then a decision input behavior has one input parameter whose type is the same as or a supertype of the type of object tokens offered on the decision input flow.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0Dh49wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g0Dh5NwbEeCT5O2F6sGn5g" name="parameters" constrainedElement="_g0Dh0NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Dh5dwbEeCT5O2F6sGn5g" annotatedElement="_g0Dh5NwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VYxwkhE9EeGOffqMW1YiZA" name="parameters" constrainedElement="_VYxwkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYxwkxE9EeGOffqMW1YiZA" annotatedElement="_VYxwkhE9EeGOffqMW1YiZA">
           <body>A decision input behavior has no output parameters, no in-out parameters and one return parameter.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0Dh5twbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYxwlBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g0Dh59wbEeCT5O2F6sGn5g" name="incoming_object_one_input_parameter" constrainedElement="_g0Dh0NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Dh6NwbEeCT5O2F6sGn5g" annotatedElement="_g0Dh59wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VYxwlRE9EeGOffqMW1YiZA" name="incoming_object_one_input_parameter" constrainedElement="_VYxwkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYxwlhE9EeGOffqMW1YiZA" annotatedElement="_VYxwlRE9EeGOffqMW1YiZA">
           <body>If the decision node has no decision input flow and an incoming object flow, then a decision input behavior has one input parameter whose type is the same as or a supertype of the type of object tokens offered on the incoming edge.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0Dh6dwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYxwlxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0Dh6twbEeCT5O2F6sGn5g" general="_g0BFndwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g0Dh69wbEeCT5O2F6sGn5g" name="decisionInput" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" association="_gyXf0dwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Dh7NwbEeCT5O2F6sGn5g" annotatedElement="_g0Dh69wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VYxwmBE9EeGOffqMW1YiZA" name="incoming_outgoing_edges" constrainedElement="_VYxwkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYxwmRE9EeGOffqMW1YiZA" annotatedElement="_VYxwmBE9EeGOffqMW1YiZA">
+          <body>A decision node has one or two incoming edges and at least one outgoing edge.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYxwmhE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VYxwmxE9EeGOffqMW1YiZA" name="incoming_control_one_input_parameter" constrainedElement="_VYxwkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYxwnBE9EeGOffqMW1YiZA" annotatedElement="_VYxwmxE9EeGOffqMW1YiZA">
+          <body>If the decision node has a decision input flow and an incoming control flow, then a decision input behavior has one input parameter whose type is the same as or a supertype of the type of object tokens offered on the decision input flow.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYxwnRE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VYxwnhE9EeGOffqMW1YiZA" name="two_input_parameters" constrainedElement="_VYxwkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYxwnxE9EeGOffqMW1YiZA" annotatedElement="_VYxwnhE9EeGOffqMW1YiZA">
+          <body>If the decision node has a decision input flow and an second incoming object flow, then a decision input behavior has two input parameters, the first of which has a type that is the same as or a supertype of the type of the type of object tokens offered on the nondecision input flow and the second of which has a type that is the same as or a supertype of the type of object tokens offered on the decision input flow.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYxwoBE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VYxwoRE9EeGOffqMW1YiZA" name="decision_input_flow_incoming" constrainedElement="_VYxwkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYxwohE9EeGOffqMW1YiZA" annotatedElement="_VYxwoRE9EeGOffqMW1YiZA">
+          <body>The decisionInputFlow of a decision node must be an incoming edge of the decision node.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYxwoxE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VYxwpBE9EeGOffqMW1YiZA" name="zero_input_parameters" constrainedElement="_VYxwkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYxwpRE9EeGOffqMW1YiZA" annotatedElement="_VYxwpBE9EeGOffqMW1YiZA">
+          <body>If the decision node has no decision input flow and an incoming control flow, then a decision input behavior has zero input parameters.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYxwphE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VYxwpxE9EeGOffqMW1YiZA" name="edges" constrainedElement="_VYxwkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYxwqBE9EeGOffqMW1YiZA" annotatedElement="_VYxwpxE9EeGOffqMW1YiZA">
+          <body>The edges coming into and out of a decision node, other than the decision input flow (if any), must be either all object flows or all control flows.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYxwqRE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VYxwqhE9EeGOffqMW1YiZA" general="_VYdAcBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VYxwqxE9EeGOffqMW1YiZA" name="decisionInput" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" association="_VTMF8xE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYxwrBE9EeGOffqMW1YiZA" annotatedElement="_VYxwqxE9EeGOffqMW1YiZA">
           <body>Provides input to guard specifications on edges outgoing from the decision node.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0Dh7dwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VYxwrRE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0Dh7twbEeCT5O2F6sGn5g" name="decisionInputFlow" visibility="public" type="_g1WiUNwbEeCT5O2F6sGn5g" association="_gyXfztwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Dh79wbEeCT5O2F6sGn5g" annotatedElement="_g0Dh7twbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VYxwrhE9EeGOffqMW1YiZA" name="decisionInputFlow" visibility="public" type="_VbVVUBE9EeGOffqMW1YiZA" association="_VTMF8BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYxwrxE9EeGOffqMW1YiZA" annotatedElement="_VYxwrhE9EeGOffqMW1YiZA">
           <body>An additional edge incoming to the decision node that provides a decision input value.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0Dh8NwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VYxwsBE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_rEDGkGwKEdq7X4sGURiZYA" name="Dependency">
-      <ownedComment xmi:id="_g0EI4NwbEeCT5O2F6sGn5g" annotatedElement="_rEDGkGwKEdq7X4sGURiZYA">
+      <ownedComment xmi:id="_VYxwsRE9EeGOffqMW1YiZA" annotatedElement="_rEDGkGwKEdq7X4sGURiZYA">
         <body>A dependency is a relationship that signifies that a single or a set of model elements requires other model elements for their specification or implementation. This means that the complete semantics of the depending elements is either semantically or structurally dependent on the definition of the supplier element(s).</body>
       </ownedComment>
-      <generalization xmi:id="_g0EI4dwbEeCT5O2F6sGn5g" general="_JBgfoKPAEdqi_5gqUMOQtA"/>
-      <generalization xmi:id="_g0EI4twbEeCT5O2F6sGn5g" general="_jKxnwGwLEdq7X4sGURiZYA"/>
-      <ownedAttribute xmi:id="_g0EI49wbEeCT5O2F6sGn5g" name="client" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw" subsettedProperty="_g0HzQdwbEeCT5O2F6sGn5g" association="_gyVDh9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0EI5NwbEeCT5O2F6sGn5g" annotatedElement="_g0EI49wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VYxwshE9EeGOffqMW1YiZA" general="_jKxnwGwLEdq7X4sGURiZYA"/>
+      <generalization xmi:id="_VYxwsxE9EeGOffqMW1YiZA" general="_JBgfoKPAEdqi_5gqUMOQtA"/>
+      <ownedAttribute xmi:id="_VYyXoBE9EeGOffqMW1YiZA" name="client" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw" subsettedProperty="_VY66hRE9EeGOffqMW1YiZA" association="_VTExMBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYyXoRE9EeGOffqMW1YiZA" annotatedElement="_VYyXoBE9EeGOffqMW1YiZA">
           <body>The element(s) dependent on the supplier element(s). In some cases (such as a Trace Abstraction) the assignment of direction (that is, the designation of the client element) is at the discretion of the modeler, and is a stipulation.</body>
         </ownedComment>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0EI5dwbEeCT5O2F6sGn5g" value="*"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VYyXohE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0EI5twbEeCT5O2F6sGn5g" name="supplier" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw" subsettedProperty="_g0HzRNwbEeCT5O2F6sGn5g" association="_gy8HhNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0EI59wbEeCT5O2F6sGn5g" annotatedElement="_g0EI5twbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VYyXoxE9EeGOffqMW1YiZA" name="supplier" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw" subsettedProperty="_VY66iBE9EeGOffqMW1YiZA" association="_VUo3cBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYyXpBE9EeGOffqMW1YiZA" annotatedElement="_VYyXoxE9EeGOffqMW1YiZA">
           <body>The element(s) independent of the client element(s), in the same respect and the same dependency relationship. In some directed dependency relationships (such as Refinement Abstractions), a common convention in the domain of class-based OO software is to put the more abstract element in this role. Despite this convention, users of UML may stipulate a sense of dependency suitable for their domain, which makes a more abstract element dependent on that which is more specific.</body>
         </ownedComment>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0EI6NwbEeCT5O2F6sGn5g" value="*"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VYyXpRE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0EI6dwbEeCT5O2F6sGn5g" name="DeployedArtifact" isAbstract="true">
-      <ownedComment xmi:id="_g0EI6twbEeCT5O2F6sGn5g" annotatedElement="_g0EI6dwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VYyXphE9EeGOffqMW1YiZA" name="DeployedArtifact" isAbstract="true">
+      <ownedComment xmi:id="_VYyXpxE9EeGOffqMW1YiZA" annotatedElement="_VYyXphE9EeGOffqMW1YiZA">
         <body>A deployed artifact is an artifact or artifact instance that has been deployed to a deployment target.</body>
       </ownedComment>
-      <generalization xmi:id="_g0EI69wbEeCT5O2F6sGn5g" general="_csVgUGvtEdqG6fBIPwe-mw"/>
+      <generalization xmi:id="_VYyXqBE9EeGOffqMW1YiZA" general="_csVgUGvtEdqG6fBIPwe-mw"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0Ev8NwbEeCT5O2F6sGn5g" name="Deployment">
-      <ownedComment xmi:id="_g0Ev8dwbEeCT5O2F6sGn5g" annotatedElement="_g0Ev8NwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VYy-sBE9EeGOffqMW1YiZA" name="Deployment">
+      <ownedComment xmi:id="_VYy-sRE9EeGOffqMW1YiZA" annotatedElement="_VYy-sBE9EeGOffqMW1YiZA">
         <body>A deployment is the allocation of an artifact or artifact instance to a deployment target.</body>
       </ownedComment>
-      <ownedComment xmi:id="_g0Ev8twbEeCT5O2F6sGn5g" annotatedElement="_g0Ev8NwbEeCT5O2F6sGn5g">
+      <ownedComment xmi:id="_VYy-shE9EeGOffqMW1YiZA" annotatedElement="_VYy-sBE9EeGOffqMW1YiZA">
         <body>A component deployment is the deployment of one or more artifacts or artifact instances to a deployment target, optionally parameterized by a deployment specification. Examples are executables and configuration files.</body>
       </ownedComment>
-      <generalization xmi:id="_g0Ev89wbEeCT5O2F6sGn5g" general="_rEDGkGwKEdq7X4sGURiZYA"/>
-      <ownedAttribute xmi:id="_g0Ev9NwbEeCT5O2F6sGn5g" name="configuration" visibility="public" type="_W2CnILG2EeCDe8CO90iVKQ" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gyVqltwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Ev9dwbEeCT5O2F6sGn5g" annotatedElement="_g0Ev9NwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VYy-sxE9EeGOffqMW1YiZA" general="_rEDGkGwKEdq7X4sGURiZYA"/>
+      <ownedAttribute xmi:id="_VYy-tBE9EeGOffqMW1YiZA" name="configuration" visibility="public" type="_W2CnILG2EeCDe8CO90iVKQ" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VTF_UxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYy-tRE9EeGOffqMW1YiZA" annotatedElement="_VYy-tBE9EeGOffqMW1YiZA">
           <body>The specification of properties that parameterize the deployment and execution of one or more Artifacts.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0Ev9twbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0Ev99wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VYy-thE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VYy-txE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0Ev-NwbEeCT5O2F6sGn5g" name="deployedArtifact" visibility="public" type="_g0EI6dwbEeCT5O2F6sGn5g" subsettedProperty="_g0EI5twbEeCT5O2F6sGn5g" association="_gyYt6NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Ev-dwbEeCT5O2F6sGn5g" annotatedElement="_g0Ev-NwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VYy-uBE9EeGOffqMW1YiZA" name="deployedArtifact" visibility="public" type="_VYyXphE9EeGOffqMW1YiZA" subsettedProperty="_VYyXoxE9EeGOffqMW1YiZA" association="_VTOiNBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYy-uRE9EeGOffqMW1YiZA" annotatedElement="_VYy-uBE9EeGOffqMW1YiZA">
           <body>The Artifacts that are deployed onto a Node. This association specializes the supplier association.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0Ev-twbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0Ev-9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VYy-uhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VYy-uxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0Ev_NwbEeCT5O2F6sGn5g" name="location" visibility="public" type="_PkmfgLLXEeCsYvaJqFFivQ" subsettedProperty="_g0EI49wbEeCT5O2F6sGn5g _g0JodNwbEeCT5O2F6sGn5g" association="_gyYt8NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Ev_dwbEeCT5O2F6sGn5g" annotatedElement="_g0Ev_NwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VYy-vBE9EeGOffqMW1YiZA" name="location" visibility="public" type="_PkmfgLLXEeCsYvaJqFFivQ" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw _VYyXoBE9EeGOffqMW1YiZA" association="_VTPJRBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYy-vRE9EeGOffqMW1YiZA" annotatedElement="_VYy-vBE9EeGOffqMW1YiZA">
           <body>The DeployedTarget which is the target of a Deployment.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_W2CnILG2EeCDe8CO90iVKQ" name="DeploymentSpecification">
-      <ownedComment xmi:id="_g0Ev_twbEeCT5O2F6sGn5g" annotatedElement="_W2CnILG2EeCDe8CO90iVKQ">
+      <ownedComment xmi:id="_VYy-vhE9EeGOffqMW1YiZA" annotatedElement="_W2CnILG2EeCDe8CO90iVKQ">
         <body>A deployment specification specifies a set of properties that determine execution parameters of a component artifact that is deployed on a node. A deployment specification can be aimed at a specific type of container. An artifact that reifies or implements deployment specification properties is a deployment descriptor.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0Ev_9wbEeCT5O2F6sGn5g" name="deployment_target" constrainedElement="_W2CnILG2EeCDe8CO90iVKQ">
-        <ownedComment xmi:id="_g0EwANwbEeCT5O2F6sGn5g" annotatedElement="_g0Ev_9wbEeCT5O2F6sGn5g">
-          <body>The DeploymentTarget of a DeploymentSpecification is a kind of ExecutionEnvironment.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0EwAdwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>self.deployment->forAll (d | d.location.oclIsKindOf(ExecutionEnvironment))</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g0EwAtwbEeCT5O2F6sGn5g" name="deployed_elements" constrainedElement="_W2CnILG2EeCDe8CO90iVKQ">
-        <ownedComment xmi:id="_g0EwA9wbEeCT5O2F6sGn5g" annotatedElement="_g0EwAtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VYzlwBE9EeGOffqMW1YiZA" name="deployed_elements" constrainedElement="_W2CnILG2EeCDe8CO90iVKQ">
+        <ownedComment xmi:id="_VYzlwRE9EeGOffqMW1YiZA" annotatedElement="_VYzlwBE9EeGOffqMW1YiZA">
           <body>The deployedElements of a DeploymentTarget that are involved in a Deployment that has an associated Deployment-Specification is a kind of Component (i.e. the configured components).</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0EwBNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYzlwhE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.deployment->forAll (d | d.location.deployedElements->forAll (de |
   de.oclIsKindOf(Component)))</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0EwBdwbEeCT5O2F6sGn5g" general="_-lGRgHLzEdqziYxiZo0YtA"/>
-      <ownedAttribute xmi:id="_g0EwBtwbEeCT5O2F6sGn5g" name="deployment" visibility="public" type="_g0Ev8NwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gyVqltwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0EwB9wbEeCT5O2F6sGn5g" annotatedElement="_g0EwBtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VYzlwxE9EeGOffqMW1YiZA" name="deployment_target" constrainedElement="_W2CnILG2EeCDe8CO90iVKQ">
+        <ownedComment xmi:id="_VYzlxBE9EeGOffqMW1YiZA" annotatedElement="_VYzlwxE9EeGOffqMW1YiZA">
+          <body>The DeploymentTarget of a DeploymentSpecification is a kind of ExecutionEnvironment.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VYzlxRE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>self.deployment->forAll (d | d.location.oclIsKindOf(ExecutionEnvironment))</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VYzlxhE9EeGOffqMW1YiZA" general="_-lGRgHLzEdqziYxiZo0YtA"/>
+      <ownedAttribute xmi:id="_VYzlxxE9EeGOffqMW1YiZA" name="deployment" visibility="public" type="_VYy-sBE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VTF_UxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VYzlyBE9EeGOffqMW1YiZA" annotatedElement="_VYzlxxE9EeGOffqMW1YiZA">
           <body>The deployment with which the DeploymentSpecification is associated.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0EwCNwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VYzlyRE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
       <ownedAttribute xmi:id="_at8FwLG2EeCDe8CO90iVKQ" name="deploymentLocation" visibility="public">
-        <ownedComment xmi:id="_g0EwCdwbEeCT5O2F6sGn5g" annotatedElement="_at8FwLG2EeCDe8CO90iVKQ">
+        <ownedComment xmi:id="_VYzlyhE9EeGOffqMW1YiZA" annotatedElement="_at8FwLG2EeCDe8CO90iVKQ">
           <body>The location where an Artifact is deployed onto a Node. This is typically a 'directory' or 'memory address'.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0FXANwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VYzlyxE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
       <ownedAttribute xmi:id="_lncl8LG2EeCDe8CO90iVKQ" name="executionLocation" visibility="public">
-        <ownedComment xmi:id="_g0FXAdwbEeCT5O2F6sGn5g" annotatedElement="_lncl8LG2EeCDe8CO90iVKQ">
+        <ownedComment xmi:id="_VY0M0BE9EeGOffqMW1YiZA" annotatedElement="_lncl8LG2EeCDe8CO90iVKQ">
           <body>The location where a component Artifact executes. This may be a local or remote location.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0FXAtwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VY0M0RE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_PkmfgLLXEeCsYvaJqFFivQ" name="DeploymentTarget" isAbstract="true">
-      <ownedComment xmi:id="_g0F-ENwbEeCT5O2F6sGn5g" annotatedElement="_PkmfgLLXEeCsYvaJqFFivQ">
+      <ownedComment xmi:id="_VY2CABE9EeGOffqMW1YiZA" annotatedElement="_PkmfgLLXEeCsYvaJqFFivQ">
         <body>A deployment target is the location for a deployed artifact.</body>
       </ownedComment>
-      <generalization xmi:id="_g0F-EdwbEeCT5O2F6sGn5g" general="_csVgUGvtEdqG6fBIPwe-mw"/>
-      <ownedAttribute xmi:id="_g0F-EtwbEeCT5O2F6sGn5g" name="deployedElement" visibility="public" type="_jKxnwGwLEdq7X4sGURiZYA" isReadOnly="true" isDerived="true" association="_gyYt7NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0F-E9wbEeCT5O2F6sGn5g" annotatedElement="_g0F-EtwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VY2pEBE9EeGOffqMW1YiZA" general="_csVgUGvtEdqG6fBIPwe-mw"/>
+      <ownedAttribute xmi:id="_VY2pERE9EeGOffqMW1YiZA" name="deployedElement" visibility="public" type="_jKxnwGwLEdq7X4sGURiZYA" isReadOnly="true" isDerived="true" association="_VTPJQBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VY2pEhE9EeGOffqMW1YiZA" annotatedElement="_VY2pERE9EeGOffqMW1YiZA">
           <body>The set of elements that are manifested in an Artifact that is involved in Deployment to a DeploymentTarget.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0F-FNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0F-FdwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VY2pExE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VY2pFBE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0F-FtwbEeCT5O2F6sGn5g" name="deployment" visibility="public" type="_g0Ev8NwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g _g1QbsNwbEeCT5O2F6sGn5g" association="_gyYt8NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0F-F9wbEeCT5O2F6sGn5g" annotatedElement="_g0F-FtwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VY2pFRE9EeGOffqMW1YiZA" name="deployment" visibility="public" type="_VYy-sBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw _VaN7ABE9EeGOffqMW1YiZA" association="_VTPJRBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VY2pFhE9EeGOffqMW1YiZA" annotatedElement="_VY2pFRE9EeGOffqMW1YiZA">
           <body>The set of Deployments for a DeploymentTarget.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0F-GNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0F-GdwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VY2pFxE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VY2pGBE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedOperation xmi:id="_7EO9ULLXEeCsYvaJqFFivQ" name="deployedElement" visibility="public" bodyCondition="_g0F-G9wbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g0F-GtwbEeCT5O2F6sGn5g" annotatedElement="_7EO9ULLXEeCsYvaJqFFivQ">
+      <ownedOperation xmi:id="_7EO9ULLXEeCsYvaJqFFivQ" name="deployedElement" visibility="public" bodyCondition="_VY3QIRE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VY3QIBE9EeGOffqMW1YiZA" annotatedElement="_7EO9ULLXEeCsYvaJqFFivQ">
           <body>Missing derivation for DeploymentTarget::/deployedElement : PackageableElement</body>
         </ownedComment>
-        <ownedRule xmi:id="_g0F-G9wbEeCT5O2F6sGn5g" name="spec" constrainedElement="_7EO9ULLXEeCsYvaJqFFivQ _g0F-EtwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0F-HNwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VY3QIRE9EeGOffqMW1YiZA" name="spec" constrainedElement="_7EO9ULLXEeCsYvaJqFFivQ _VY2pERE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VY3QIhE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = ((self.deployment->collect(deployedArtifact))->collect(manifestation))->collect(utilizedElement)</body>
           </specification>
         </ownedRule>
         <ownedParameter xmi:id="_r58H8LLYEeCsYvaJqFFivQ" name="result" visibility="public" type="_jKxnwGwLEdq7X4sGURiZYA" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0F-HdwbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0F-HtwbEeCT5O2F6sGn5g" value="*"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VY3QIxE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VY3QJBE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0GlINwbEeCT5O2F6sGn5g" name="DestroyLinkAction">
-      <ownedComment xmi:id="_g0GlIdwbEeCT5O2F6sGn5g" annotatedElement="_g0GlINwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VY4eQBE9EeGOffqMW1YiZA" name="DestroyLinkAction">
+      <ownedComment xmi:id="_VY4eQRE9EeGOffqMW1YiZA" annotatedElement="_VY4eQBE9EeGOffqMW1YiZA">
         <body>A destroy link action is a write link action that destroys links and link objects.</body>
       </ownedComment>
-      <generalization xmi:id="_g0GlItwbEeCT5O2F6sGn5g" general="_g2a5UdwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g0GlI9wbEeCT5O2F6sGn5g" name="endData" visibility="public" type="_g0j4INwbEeCT5O2F6sGn5g" aggregation="composite" redefinedProperty="_g0iC_NwbEeCT5O2F6sGn5g" association="_gyZ8ANwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0GlJNwbEeCT5O2F6sGn5g" annotatedElement="_g0GlI9wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VY4eQhE9EeGOffqMW1YiZA" general="_VfKFYBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VY4eQxE9EeGOffqMW1YiZA" name="endData" visibility="public" type="_VZ38wBE9EeGOffqMW1YiZA" aggregation="composite" redefinedProperty="_VZ1gjBE9EeGOffqMW1YiZA" association="_VTRlgxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VY4eRBE9EeGOffqMW1YiZA" annotatedElement="_VY4eQxE9EeGOffqMW1YiZA">
           <body>Specifies ends of association and inputs.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0GlJdwbEeCT5O2F6sGn5g" value="2"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0GlJtwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VY4eRRE9EeGOffqMW1YiZA" value="2"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VY4eRhE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0HMMNwbEeCT5O2F6sGn5g" name="DestroyObjectAction">
-      <ownedComment xmi:id="_g0HMMdwbEeCT5O2F6sGn5g" annotatedElement="_g0HMMNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VY5FUBE9EeGOffqMW1YiZA" name="DestroyObjectAction">
+      <ownedComment xmi:id="_VY5FURE9EeGOffqMW1YiZA" annotatedElement="_VY5FUBE9EeGOffqMW1YiZA">
         <body>A destroy object action is an action that destroys objects.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0HMMtwbEeCT5O2F6sGn5g" name="multiplicity" constrainedElement="_g0HMMNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0HMM9wbEeCT5O2F6sGn5g" annotatedElement="_g0HMMtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VY5FUhE9EeGOffqMW1YiZA" name="multiplicity" constrainedElement="_VY5FUBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VY5FUxE9EeGOffqMW1YiZA" annotatedElement="_VY5FUhE9EeGOffqMW1YiZA">
           <body>The multiplicity of the input pin is 1..1.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0HMNNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VY5FVBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.target.multiplicity.is(1,1)</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g0HMNdwbEeCT5O2F6sGn5g" name="no_type" constrainedElement="_g0HMMNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0HMNtwbEeCT5O2F6sGn5g" annotatedElement="_g0HMNdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VY5FVRE9EeGOffqMW1YiZA" name="no_type" constrainedElement="_VY5FUBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VY5FVhE9EeGOffqMW1YiZA" annotatedElement="_VY5FVRE9EeGOffqMW1YiZA">
           <body>The input pin has no type.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0HMN9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VY5FVxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.target.type->size() = 0</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0HMONwbEeCT5O2F6sGn5g" general="_6WKakLLQEeCsYvaJqFFivQ"/>
-      <ownedAttribute xmi:id="_g0HMOdwbEeCT5O2F6sGn5g" name="isDestroyLinks" visibility="public">
-        <ownedComment xmi:id="_g0HMOtwbEeCT5O2F6sGn5g" annotatedElement="_g0HMOdwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VY5FWBE9EeGOffqMW1YiZA" general="_6WKakLLQEeCsYvaJqFFivQ"/>
+      <ownedAttribute xmi:id="_VY5FWRE9EeGOffqMW1YiZA" name="isDestroyLinks" visibility="public">
+        <ownedComment xmi:id="_VY5FWhE9EeGOffqMW1YiZA" annotatedElement="_VY5FWRE9EeGOffqMW1YiZA">
           <body>Specifies whether links in which the object participates are destroyed along with the object.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g0HMO9wbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VY5FWxE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0HMPNwbEeCT5O2F6sGn5g" name="isDestroyOwnedObjects" visibility="public">
-        <ownedComment xmi:id="_g0HMPdwbEeCT5O2F6sGn5g" annotatedElement="_g0HMPNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VY5FXBE9EeGOffqMW1YiZA" name="isDestroyOwnedObjects" visibility="public">
+        <ownedComment xmi:id="_VY5FXRE9EeGOffqMW1YiZA" annotatedElement="_VY5FXBE9EeGOffqMW1YiZA">
           <body>Specifies whether objects owned by the object are destroyed along with the object.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g0HMPtwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VY5FXhE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0HMP9wbEeCT5O2F6sGn5g" name="target" visibility="public" type="_g0aHKdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzBnMNwbEeCT5O2F6sGn5g" association="_gy8HjNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0HMQNwbEeCT5O2F6sGn5g" annotatedElement="_g0HMP9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VY5FXxE9EeGOffqMW1YiZA" name="target" visibility="public" type="_VZp6WRE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4IABE9EeGOffqMW1YiZA" association="_VUo3eBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VY5FYBE9EeGOffqMW1YiZA" annotatedElement="_VY5FXxE9EeGOffqMW1YiZA">
           <body>The input pin providing the object to be destroyed.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0HMQdwbEeCT5O2F6sGn5g" name="DestructionOccurrenceSpecification">
-      <ownedComment xmi:id="_g0HMQtwbEeCT5O2F6sGn5g" annotatedElement="_g0HMQdwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VY6TcBE9EeGOffqMW1YiZA" name="DestructionOccurrenceSpecification">
+      <ownedComment xmi:id="_VY6TcRE9EeGOffqMW1YiZA" annotatedElement="_VY6TcBE9EeGOffqMW1YiZA">
         <body>A destruction event models the destruction of an object.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0HMQ9wbEeCT5O2F6sGn5g" name="no_occurrence_specifications_below" constrainedElement="_g0HMQdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0HMRNwbEeCT5O2F6sGn5g" annotatedElement="_g0HMQ9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VY6TchE9EeGOffqMW1YiZA" name="no_occurrence_specifications_below" constrainedElement="_VY6TcBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VY6TcxE9EeGOffqMW1YiZA" annotatedElement="_VY6TchE9EeGOffqMW1YiZA">
           <body>No other OccurrenceSpecifications on a given Lifeline in an InteractionOperand may appear below a DestructionOccurrenceSpecification.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0HMRdwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VY6TdBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0HMRtwbEeCT5O2F6sGn5g" general="_g1MKSdwbEeCT5O2F6sGn5g"/>
+      <generalization xmi:id="_VY6TdRE9EeGOffqMW1YiZA" general="_VaExEBE9EeGOffqMW1YiZA"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0HMR9wbEeCT5O2F6sGn5g" name="Device">
-      <ownedComment xmi:id="_g0HMSNwbEeCT5O2F6sGn5g" annotatedElement="_g0HMR9wbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VY66gBE9EeGOffqMW1YiZA" name="Device">
+      <ownedComment xmi:id="_VY66gRE9EeGOffqMW1YiZA" annotatedElement="_VY66gBE9EeGOffqMW1YiZA">
         <body>A device is a physical computational resource with processing capability upon which artifacts may be deployed for execution. Devices may be complex (i.e., they may consist of other devices).</body>
       </ownedComment>
-      <generalization xmi:id="_g0HMSdwbEeCT5O2F6sGn5g" general="_5YOyUKJ8EdywJr5C4uHLKw"/>
+      <generalization xmi:id="_VY66ghE9EeGOffqMW1YiZA" general="_5YOyUKJ8EdywJr5C4uHLKw"/>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_JBgfoKPAEdqi_5gqUMOQtA" name="DirectedRelationship" isAbstract="true">
-      <ownedComment xmi:id="_g0HMStwbEeCT5O2F6sGn5g" annotatedElement="_JBgfoKPAEdqi_5gqUMOQtA">
+      <ownedComment xmi:id="_VY66gxE9EeGOffqMW1YiZA" annotatedElement="_JBgfoKPAEdqi_5gqUMOQtA">
         <body>A directed relationship represents a relationship between a collection of source model elements and a collection of target model elements.</body>
       </ownedComment>
-      <generalization xmi:id="_g0HzQNwbEeCT5O2F6sGn5g" general="_DH62EKPAEdqi_5gqUMOQtA"/>
-      <ownedAttribute xmi:id="_g0HzQdwbEeCT5O2F6sGn5g" name="source" visibility="public" type="_kl90MGvbEdq4DLWZOhbdEA" isReadOnly="true" isDerived="true" isDerivedUnion="true" subsettedProperty="_g18_gNwbEeCT5O2F6sGn5g" association="_gy5rSdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0HzQtwbEeCT5O2F6sGn5g" annotatedElement="_g0HzQdwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VY66hBE9EeGOffqMW1YiZA" general="_DH62EKPAEdqi_5gqUMOQtA"/>
+      <ownedAttribute xmi:id="_VY66hRE9EeGOffqMW1YiZA" name="source" visibility="public" type="_kl90MGvbEdq4DLWZOhbdEA" isReadOnly="true" isDerived="true" isDerivedUnion="true" subsettedProperty="_VeBc8hE9EeGOffqMW1YiZA" association="_VUkmBRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VY66hhE9EeGOffqMW1YiZA" annotatedElement="_VY66hRE9EeGOffqMW1YiZA">
           <body>Specifies the sources of the DirectedRelationship.</body>
         </ownedComment>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0HzQ9wbEeCT5O2F6sGn5g" value="*"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VY66hxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0HzRNwbEeCT5O2F6sGn5g" name="target" visibility="public" type="_kl90MGvbEdq4DLWZOhbdEA" isReadOnly="true" isDerived="true" isDerivedUnion="true" subsettedProperty="_g18_gNwbEeCT5O2F6sGn5g" association="_gy8ukNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0HzRdwbEeCT5O2F6sGn5g" annotatedElement="_g0HzRNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VY66iBE9EeGOffqMW1YiZA" name="target" visibility="public" type="_kl90MGvbEdq4DLWZOhbdEA" isReadOnly="true" isDerived="true" isDerivedUnion="true" subsettedProperty="_VeBc8hE9EeGOffqMW1YiZA" association="_VUpegBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VY66iRE9EeGOffqMW1YiZA" annotatedElement="_VY66iBE9EeGOffqMW1YiZA">
           <body>Specifies the targets of the DirectedRelationship.</body>
         </ownedComment>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0HzRtwbEeCT5O2F6sGn5g" value="*"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VY66ihE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_-Ixo8H4XEdq7cMP_l1l5Gg" name="Duration">
-      <ownedComment xmi:id="_g0HzR9wbEeCT5O2F6sGn5g" annotatedElement="_-Ixo8H4XEdq7cMP_l1l5Gg">
+      <ownedComment xmi:id="_VY7hkBE9EeGOffqMW1YiZA" annotatedElement="_-Ixo8H4XEdq7cMP_l1l5Gg">
         <body>Duration defines a value specification that specifies the temporal distance between two time instants.</body>
       </ownedComment>
-      <generalization xmi:id="_g0HzSNwbEeCT5O2F6sGn5g" general="_g2YdENwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g0HzSdwbEeCT5O2F6sGn5g" name="expr" visibility="public" type="_g2YdENwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gybxPdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0HzStwbEeCT5O2F6sGn5g" annotatedElement="_g0HzSdwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VY7hkRE9EeGOffqMW1YiZA" general="_VfGbABE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VY7hkhE9EeGOffqMW1YiZA" name="expr" visibility="public" type="_VfGbABE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VTXsIxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VY7hkxE9EeGOffqMW1YiZA" annotatedElement="_VY7hkhE9EeGOffqMW1YiZA">
           <body>The value of the Duration.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0HzS9wbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VY7hlBE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0HzTNwbEeCT5O2F6sGn5g" name="observation" visibility="public" type="_g1XJfdwbEeCT5O2F6sGn5g" association="_gymJTNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0HzTdwbEeCT5O2F6sGn5g" annotatedElement="_g0HzTNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VY8IoBE9EeGOffqMW1YiZA" name="observation" visibility="public" type="_VbcqEBE9EeGOffqMW1YiZA" association="_VT7s0BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VY8IoRE9EeGOffqMW1YiZA" annotatedElement="_VY8IoBE9EeGOffqMW1YiZA">
           <body>Refers to the time and duration observations that are involved in expr.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0HzTtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0HzT9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VY8IohE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VY8IoxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
       <ownedOperation xmi:id="_I3a88H4YEdq7cMP_l1l5Gg" name="stringValue" visibility="protected" isQuery="true">
         <ownedParameter xmi:id="_I3a88X4YEdq7cMP_l1l5Gg" direction="return">
@@ -5761,99 +5761,99 @@
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0IaUNwbEeCT5O2F6sGn5g" name="DurationConstraint">
-      <ownedComment xmi:id="_g0IaUdwbEeCT5O2F6sGn5g" annotatedElement="_g0IaUNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VY-k4BE9EeGOffqMW1YiZA" name="DurationConstraint">
+      <ownedComment xmi:id="_VY-k4RE9EeGOffqMW1YiZA" annotatedElement="_VY-k4BE9EeGOffqMW1YiZA">
         <body>A duration constraint is a constraint that refers to a duration interval.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0IaUtwbEeCT5O2F6sGn5g" name="first_event_multiplicity" constrainedElement="_g0IaUNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0IaU9wbEeCT5O2F6sGn5g" annotatedElement="_g0IaUtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VY-k4hE9EeGOffqMW1YiZA" name="first_event_multiplicity" constrainedElement="_VY-k4BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VY-k4xE9EeGOffqMW1YiZA" annotatedElement="_VY-k4hE9EeGOffqMW1YiZA">
           <body>The multiplicity of firstEvent must be 2 if the multiplicity of constrainedElement is 2. Otherwise the multiplicity of firstEvent is 0.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0IaVNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VY-k5BE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>if (constrainedElement->size() =2)
   then (firstEvent->size() = 2) else (firstEvent->size() = 0)</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0IaVdwbEeCT5O2F6sGn5g" general="_g0gNwNwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g0IaVtwbEeCT5O2F6sGn5g" name="firstEvent" visibility="public">
-        <ownedComment xmi:id="_g0IaV9wbEeCT5O2F6sGn5g" annotatedElement="_g0IaVtwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VY-k5RE9EeGOffqMW1YiZA" general="_VZydNxE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VY-k5hE9EeGOffqMW1YiZA" name="firstEvent" visibility="public">
+        <ownedComment xmi:id="_VY-k5xE9EeGOffqMW1YiZA" annotatedElement="_VY-k5hE9EeGOffqMW1YiZA">
           <body>The value of firstEvent[i] is related to constrainedElement[i] (where i is 1 or 2). If firstEvent[i] is true, then the corresponding observation event is the first time instant the execution enters constrainedElement[i]. If firstEvent[i] is false, then the corresponding observation event is the last time instant the execution is within constrainedElement[i]. Default value is true applied when constrainedElement[i] refers an element that represents only one time instant.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0IaWNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0IaWdwbEeCT5O2F6sGn5g" value="2"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VY-k6BE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VY-k6RE9EeGOffqMW1YiZA" value="2"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0IaWtwbEeCT5O2F6sGn5g" name="specification" visibility="public" type="_g0IaXNwbEeCT5O2F6sGn5g" aggregation="composite" redefinedProperty="_g0gNw9wbEeCT5O2F6sGn5g _g0AeltwbEeCT5O2F6sGn5g" association="_gy5rTdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0IaW9wbEeCT5O2F6sGn5g" annotatedElement="_g0IaWtwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VY-k6hE9EeGOffqMW1YiZA" name="specification" visibility="public" type="_VY-k7BE9EeGOffqMW1YiZA" aggregation="composite" redefinedProperty="_VZydOhE9EeGOffqMW1YiZA _VYbLVhE9EeGOffqMW1YiZA" association="_VUlNEBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VY-k6xE9EeGOffqMW1YiZA" annotatedElement="_VY-k6hE9EeGOffqMW1YiZA">
           <body>The interval constraining the duration.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0IaXNwbEeCT5O2F6sGn5g" name="DurationInterval">
-      <ownedComment xmi:id="_g0IaXdwbEeCT5O2F6sGn5g" annotatedElement="_g0IaXNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VY-k7BE9EeGOffqMW1YiZA" name="DurationInterval">
+      <ownedComment xmi:id="_VY-k7RE9EeGOffqMW1YiZA" annotatedElement="_VY-k7BE9EeGOffqMW1YiZA">
         <body>A duration interval defines the range between two durations.</body>
       </ownedComment>
-      <generalization xmi:id="_g0IaXtwbEeCT5O2F6sGn5g" general="_g0fmvtwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g0IaX9wbEeCT5O2F6sGn5g" name="max" visibility="public" type="_-Ixo8H4XEdq7cMP_l1l5Gg" redefinedProperty="_g0fmwdwbEeCT5O2F6sGn5g" association="_gyie49wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0IaYNwbEeCT5O2F6sGn5g" annotatedElement="_g0IaX9wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VY-k7hE9EeGOffqMW1YiZA" general="_VZydMBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VY-k7xE9EeGOffqMW1YiZA" name="max" visibility="public" type="_-Ixo8H4XEdq7cMP_l1l5Gg" redefinedProperty="_VZydMxE9EeGOffqMW1YiZA" association="_VTu4hRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VY-k8BE9EeGOffqMW1YiZA" annotatedElement="_VY-k7xE9EeGOffqMW1YiZA">
           <body>Refers to the Duration denoting the maximum value of the range.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0IaYdwbEeCT5O2F6sGn5g" name="min" visibility="public" type="_-Ixo8H4XEdq7cMP_l1l5Gg" redefinedProperty="_g0fmw9wbEeCT5O2F6sGn5g" association="_gyjtC9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0IaYtwbEeCT5O2F6sGn5g" annotatedElement="_g0IaYdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VY-k8RE9EeGOffqMW1YiZA" name="min" visibility="public" type="_-Ixo8H4XEdq7cMP_l1l5Gg" redefinedProperty="_VZydNRE9EeGOffqMW1YiZA" association="_VTyi5BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VY-k8hE9EeGOffqMW1YiZA" annotatedElement="_VY-k8RE9EeGOffqMW1YiZA">
           <body>Refers to the Duration denoting the minimum value of the range.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0JBYNwbEeCT5O2F6sGn5g" name="DurationObservation">
-      <ownedComment xmi:id="_g0JBYdwbEeCT5O2F6sGn5g" annotatedElement="_g0JBYNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VY_L8BE9EeGOffqMW1YiZA" name="DurationObservation">
+      <ownedComment xmi:id="_VY_L8RE9EeGOffqMW1YiZA" annotatedElement="_VY_L8BE9EeGOffqMW1YiZA">
         <body>A duration observation is a reference to a duration during an execution. It points out the element(s) in the model to observe and whether the observations are when this model element is entered or when it is exited.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0JBYtwbEeCT5O2F6sGn5g" name="first_event_multiplicity" constrainedElement="_g0JBYNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0JBY9wbEeCT5O2F6sGn5g" annotatedElement="_g0JBYtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VY_L8hE9EeGOffqMW1YiZA" name="first_event_multiplicity" constrainedElement="_VY_L8BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VY_L8xE9EeGOffqMW1YiZA" annotatedElement="_VY_L8hE9EeGOffqMW1YiZA">
           <body>The multiplicity of firstEvent must be 2 if the multiplicity of event is 2. Otherwise the multiplicity of firstEvent is 0.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0JBZNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VY_L9BE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>if (event->size() = 2)
   then (firstEvent->size() = 2) else (firstEvent->size() = 0)</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0JBZdwbEeCT5O2F6sGn5g" general="_g1XJfdwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g0JBZtwbEeCT5O2F6sGn5g" name="event" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw" association="_gyajGdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0JBZ9wbEeCT5O2F6sGn5g" annotatedElement="_g0JBZtwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VY_L9RE9EeGOffqMW1YiZA" general="_VbcqEBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VY_L9hE9EeGOffqMW1YiZA" name="event" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw" association="_VTUo0BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VY_L9xE9EeGOffqMW1YiZA" annotatedElement="_VY_L9hE9EeGOffqMW1YiZA">
           <body>The observation is determined by the entering or exiting of the event element during execution.</body>
         </ownedComment>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0JBaNwbEeCT5O2F6sGn5g" value="2"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VY_L-BE9EeGOffqMW1YiZA" value="2"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0JBadwbEeCT5O2F6sGn5g" name="firstEvent" visibility="public">
-        <ownedComment xmi:id="_g0JBatwbEeCT5O2F6sGn5g" annotatedElement="_g0JBadwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VY_L-RE9EeGOffqMW1YiZA" name="firstEvent" visibility="public">
+        <ownedComment xmi:id="_VY_L-hE9EeGOffqMW1YiZA" annotatedElement="_VY_L-RE9EeGOffqMW1YiZA">
           <body>The value of firstEvent[i] is related to event[i] (where i is 1 or 2). If firstEvent[i] is true, then the corresponding observation event is the first time instant the execution enters event[i]. If firstEvent[i] is false, then the corresponding observation event is the time instant the execution exits event[i]. Default value is true applied when event[i] refers an element that represents only one time instant.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0JBa9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0JBbNwbEeCT5O2F6sGn5g" value="2"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VY_L-xE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VY_L_BE9EeGOffqMW1YiZA" value="2"/>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_kl90MGvbEdq4DLWZOhbdEA" name="Element" isAbstract="true">
-      <ownedComment xmi:id="_g0JBbdwbEeCT5O2F6sGn5g" annotatedElement="_kl90MGvbEdq4DLWZOhbdEA">
+      <ownedComment xmi:id="_VZF5oBE9EeGOffqMW1YiZA" annotatedElement="_kl90MGvbEdq4DLWZOhbdEA">
         <body>An element is a constituent of a model. As such, it has the capability of owning other elements.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0JBbtwbEeCT5O2F6sGn5g" name="has_owner" constrainedElement="_kl90MGvbEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_g0JBb9wbEeCT5O2F6sGn5g" annotatedElement="_g0JBbtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZF5oRE9EeGOffqMW1YiZA" name="has_owner" constrainedElement="_kl90MGvbEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VZF5ohE9EeGOffqMW1YiZA" annotatedElement="_VZF5oRE9EeGOffqMW1YiZA">
           <body>Elements that must be owned must have an owner.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0JBcNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZF5oxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.mustBeOwned() implies owner->notEmpty()</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g0JBcdwbEeCT5O2F6sGn5g" name="not_own_self" constrainedElement="_kl90MGvbEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_g0JBctwbEeCT5O2F6sGn5g" annotatedElement="_g0JBcdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZGgsBE9EeGOffqMW1YiZA" name="not_own_self" constrainedElement="_kl90MGvbEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VZGgsRE9EeGOffqMW1YiZA" annotatedElement="_VZGgsBE9EeGOffqMW1YiZA">
           <body>An element may not directly or indirectly own itself.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0JBc9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZGgshE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>not self.allOwnedElements()->includes(self)</body>
         </specification>
@@ -5861,25 +5861,25 @@
       <generalization xmi:id="_rcp_MGvbEdq4DLWZOhbdEA">
         <general xmi:type="uml:Class" href="Ecore.uml#_SeWihMX_EduPJbEsMYXjUQ"/>
       </generalization>
-      <ownedAttribute xmi:id="_g0JBdNwbEeCT5O2F6sGn5g" name="ownedComment" visibility="public" type="_Q8DcULGzEeCDe8CO90iVKQ" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gyolitwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0JBddwbEeCT5O2F6sGn5g" annotatedElement="_g0JBdNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZGgsxE9EeGOffqMW1YiZA" name="ownedComment" visibility="public" type="_Q8DcULGzEeCDe8CO90iVKQ" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VT_-QBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZGgtBE9EeGOffqMW1YiZA" annotatedElement="_VZGgsxE9EeGOffqMW1YiZA">
           <body>The Comments owned by this element.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0JBdtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0JBd9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZGgtRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZGgthE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0JocNwbEeCT5O2F6sGn5g" name="ownedElement" visibility="public" type="_kl90MGvbEdq4DLWZOhbdEA" isReadOnly="true" aggregation="composite" isDerived="true" isDerivedUnion="true" association="_gypMlNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0JocdwbEeCT5O2F6sGn5g" annotatedElement="_g0JocNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_GDD2YAtAEeGcpbeCPJfCmw" name="ownedElement" visibility="public" type="_kl90MGvbEdq4DLWZOhbdEA" isReadOnly="true" aggregation="composite" isDerived="true" isDerivedUnion="true" association="_bU41QAtAEeGcpbeCPJfCmw">
+        <ownedComment xmi:id="_VZGgtxE9EeGOffqMW1YiZA" annotatedElement="_GDD2YAtAEeGcpbeCPJfCmw">
           <body>The Elements owned by this element.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0JoctwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0Joc9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZGguBE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZGguRE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0JodNwbEeCT5O2F6sGn5g" name="owner" visibility="public" type="_kl90MGvbEdq4DLWZOhbdEA" isReadOnly="true" isDerived="true" isDerivedUnion="true" association="_gypMlNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0JoddwbEeCT5O2F6sGn5g" annotatedElement="_g0JodNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_N3hRMAtAEeGcpbeCPJfCmw" name="owner" visibility="public" type="_kl90MGvbEdq4DLWZOhbdEA" isReadOnly="true" isDerived="true" isDerivedUnion="true" association="_bU41QAtAEeGcpbeCPJfCmw">
+        <ownedComment xmi:id="_VZHHwBE9EeGOffqMW1YiZA" annotatedElement="_N3hRMAtAEeGcpbeCPJfCmw">
           <body>The Element that owns this element.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0JodtwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZHHwRE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
       <ownedOperation xmi:id="_jlv7EGvgEdq4DLWZOhbdEA" name="addKeyword">
         <ownedComment xmi:id="_2oMhsOwbEdqYHf-imTcTdw" annotatedElement="_jlv7EGvgEdq4DLWZOhbdEA">
@@ -6300,88 +6300,88 @@
           </ownedComment>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g0Jod9wbEeCT5O2F6sGn5g" name="allOwnedElements" visibility="public" bodyCondition="_g0JoedwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g0JoeNwbEeCT5O2F6sGn5g" annotatedElement="_g0Jod9wbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VZHHwhE9EeGOffqMW1YiZA" name="allOwnedElements" visibility="public" bodyCondition="_VZHHxBE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VZHHwxE9EeGOffqMW1YiZA" annotatedElement="_VZHHwhE9EeGOffqMW1YiZA">
           <body>The query allOwnedElements() gives all of the direct and indirect owned elements of an element.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g0JoedwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g0Jod9wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0JoetwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VZHHxBE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VZHHwhE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZHHxRE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = ownedElement->union(ownedElement->collect(e | e.allOwnedElements()))</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g0Joe9wbEeCT5O2F6sGn5g" name="result" visibility="public" type="_kl90MGvbEdq4DLWZOhbdEA" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0JofNwbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0JofdwbEeCT5O2F6sGn5g" value="*"/>
+        <ownedParameter xmi:id="_VZHHxhE9EeGOffqMW1YiZA" name="result" visibility="public" type="_kl90MGvbEdq4DLWZOhbdEA" direction="return">
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZHHxxE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZHHyBE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g0JoftwbEeCT5O2F6sGn5g" name="mustBeOwned" visibility="public" bodyCondition="_g0JogNwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g0Jof9wbEeCT5O2F6sGn5g" annotatedElement="_g0JoftwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VZHu0BE9EeGOffqMW1YiZA" name="mustBeOwned" visibility="public" bodyCondition="_VZHu0hE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VZHu0RE9EeGOffqMW1YiZA" annotatedElement="_VZHu0BE9EeGOffqMW1YiZA">
           <body>The query mustBeOwned() indicates whether elements of this type must have an owner. Subclasses of Element that do not require an owner must override this operation.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g0JogNwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g0JoftwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0JogdwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VZHu0hE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VZHu0BE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZHu0xE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = true</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g0JogtwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VZHu1BE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_RPl78GwIEdq7X4sGURiZYA" name="ElementImport">
-      <ownedComment xmi:id="_g0K2kNwbEeCT5O2F6sGn5g" annotatedElement="_RPl78GwIEdq7X4sGURiZYA">
+      <ownedComment xmi:id="_VZI88BE9EeGOffqMW1YiZA" annotatedElement="_RPl78GwIEdq7X4sGURiZYA">
         <body>An element import identifies an element in another package, and allows the element to be referenced using its name without a qualifier.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0K2kdwbEeCT5O2F6sGn5g" name="imported_element_is_public" constrainedElement="_RPl78GwIEdq7X4sGURiZYA">
-        <ownedComment xmi:id="_g0K2ktwbEeCT5O2F6sGn5g" annotatedElement="_g0K2kdwbEeCT5O2F6sGn5g">
-          <body>An importedElement has either public visibility or no visibility at all.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0K2k9wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>self.importedElement.visibility.notEmpty() implies self.importedElement.visibility = #public</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g0K2lNwbEeCT5O2F6sGn5g" name="visibility_public_or_private" constrainedElement="_RPl78GwIEdq7X4sGURiZYA">
-        <ownedComment xmi:id="_g0K2ldwbEeCT5O2F6sGn5g" annotatedElement="_g0K2lNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZJkABE9EeGOffqMW1YiZA" name="visibility_public_or_private" constrainedElement="_RPl78GwIEdq7X4sGURiZYA">
+        <ownedComment xmi:id="_VZJkARE9EeGOffqMW1YiZA" annotatedElement="_VZJkABE9EeGOffqMW1YiZA">
           <body>The visibility of an ElementImport is either public or private.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0K2ltwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZJkAhE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.visibility = #public or self.visibility = #private</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0K2l9wbEeCT5O2F6sGn5g" general="_JBgfoKPAEdqi_5gqUMOQtA"/>
+      <ownedRule xmi:id="_VZJkAxE9EeGOffqMW1YiZA" name="imported_element_is_public" constrainedElement="_RPl78GwIEdq7X4sGURiZYA">
+        <ownedComment xmi:id="_VZJkBBE9EeGOffqMW1YiZA" annotatedElement="_VZJkAxE9EeGOffqMW1YiZA">
+          <body>An importedElement has either public visibility or no visibility at all.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZJkBRE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>self.importedElement.visibility.notEmpty() implies self.importedElement.visibility = #public</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VZJkBhE9EeGOffqMW1YiZA" general="_JBgfoKPAEdqi_5gqUMOQtA"/>
       <ownedAttribute xmi:id="_fO7PkLG0EeCDe8CO90iVKQ" name="alias" visibility="public">
-        <ownedComment xmi:id="_g0K2mNwbEeCT5O2F6sGn5g" annotatedElement="_fO7PkLG0EeCDe8CO90iVKQ">
+        <ownedComment xmi:id="_VZJkBxE9EeGOffqMW1YiZA" annotatedElement="_fO7PkLG0EeCDe8CO90iVKQ">
           <body>Specifies the name that should be added to the namespace of the importing package in lieu of the name of the imported packagable element. The aliased name must not clash with any other member name in the importing package. By default, no alias is used.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0K2mdwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZJkCBE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0LdoNwbEeCT5O2F6sGn5g" name="importedElement" visibility="public" type="_jKxnwGwLEdq7X4sGURiZYA" subsettedProperty="_g0HzRNwbEeCT5O2F6sGn5g" association="_gye0i9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0LdodwbEeCT5O2F6sGn5g" annotatedElement="_g0LdoNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZKLEBE9EeGOffqMW1YiZA" name="importedElement" visibility="public" type="_jKxnwGwLEdq7X4sGURiZYA" subsettedProperty="_VY66iBE9EeGOffqMW1YiZA" association="_VTm8sxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZKLERE9EeGOffqMW1YiZA" annotatedElement="_VZKLEBE9EeGOffqMW1YiZA">
           <body>Specifies the PackageableElement whose name is to be added to a Namespace.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0LdotwbEeCT5O2F6sGn5g" name="importingNamespace" visibility="public" type="_ZiwkoGwLEdq7X4sGURiZYA" subsettedProperty="_g0HzQdwbEeCT5O2F6sGn5g _g0JodNwbEeCT5O2F6sGn5g" association="_gyZU-dwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Ldo9wbEeCT5O2F6sGn5g" annotatedElement="_g0LdotwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZKLEhE9EeGOffqMW1YiZA" name="importingNamespace" visibility="public" type="_ZiwkoGwLEdq7X4sGURiZYA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw _VY66hRE9EeGOffqMW1YiZA" association="_VTQ-cBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZKLExE9EeGOffqMW1YiZA" annotatedElement="_VZKLEhE9EeGOffqMW1YiZA">
           <body>Specifies the Namespace that imports a PackageableElement from another Package.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0LdpNwbEeCT5O2F6sGn5g" name="visibility" visibility="public" type="_AyM_oGwMEdq7X4sGURiZYA">
-        <ownedComment xmi:id="_g0LdpdwbEeCT5O2F6sGn5g" annotatedElement="_g0LdpNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZKLFBE9EeGOffqMW1YiZA" name="visibility" visibility="public" type="_AyM_oGwMEdq7X4sGURiZYA">
+        <ownedComment xmi:id="_VZKLFRE9EeGOffqMW1YiZA" annotatedElement="_VZKLFBE9EeGOffqMW1YiZA">
           <body>Specifies the visibility of the imported PackageableElement within the importing Package. The default visibility is the same as that of the imported element. If the imported element does not have a visibility, it is possible to add visibility to the element import.</body>
         </ownedComment>
-        <defaultValue xmi:type="uml:InstanceValue" xmi:id="_g0LdptwbEeCT5O2F6sGn5g" type="_AyM_oGwMEdq7X4sGURiZYA" instance="_g2fK39wbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:InstanceValue" xmi:id="_VZKLFhE9EeGOffqMW1YiZA" type="_AyM_oGwMEdq7X4sGURiZYA" instance="_VfSBMBE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedOperation xmi:id="_g0Ldp9wbEeCT5O2F6sGn5g" name="getName" visibility="public" bodyCondition="_g0LdqdwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g0LdqNwbEeCT5O2F6sGn5g" annotatedElement="_g0Ldp9wbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VZKyIBE9EeGOffqMW1YiZA" name="getName" visibility="public" bodyCondition="_VZKyIhE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VZKyIRE9EeGOffqMW1YiZA" annotatedElement="_VZKyIBE9EeGOffqMW1YiZA">
           <body>The query getName() returns the name under which the imported PackageableElement will be known in the importing namespace.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g0LdqdwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g0Ldp9wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0LdqtwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VZKyIhE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VZKyIBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZKyIxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = if self.alias->notEmpty() then
   self.alias
@@ -6390,73 +6390,73 @@
 endif</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g0Ldq9wbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VZKyJBE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_HiSd0LL2EeCBifIhhuFqZA" name="EncapsulatedClassifier" isAbstract="true">
-      <ownedComment xmi:id="_g0MEsNwbEeCT5O2F6sGn5g" annotatedElement="_HiSd0LL2EeCBifIhhuFqZA">
+      <ownedComment xmi:id="_VZLZMBE9EeGOffqMW1YiZA" annotatedElement="_HiSd0LL2EeCBifIhhuFqZA">
         <body>A classifier has the ability to own ports as specific and type checked interaction points.</body>
       </ownedComment>
-      <generalization xmi:id="_g0MEsdwbEeCT5O2F6sGn5g" general="_FQiVsGwYEdqHKKVoxc0dlA"/>
-      <ownedAttribute xmi:id="_g0MEstwbEeCT5O2F6sGn5g" name="ownedPort" visibility="public" type="_ZAuvEGveEdq4DLWZOhbdEA" isReadOnly="true" aggregation="composite" isDerived="true" subsettedProperty="_g2JMhdwbEeCT5O2F6sGn5g" association="_gyqatdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0MEs9wbEeCT5O2F6sGn5g" annotatedElement="_g0MEstwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VZLZMRE9EeGOffqMW1YiZA" general="_FQiVsGwYEdqHKKVoxc0dlA"/>
+      <ownedAttribute xmi:id="_VZLZMhE9EeGOffqMW1YiZA" name="ownedPort" visibility="public" type="_ZAuvEGveEdq4DLWZOhbdEA" isReadOnly="true" aggregation="composite" isDerived="true" subsettedProperty="_VejocRE9EeGOffqMW1YiZA" association="_VUDBlRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZLZMxE9EeGOffqMW1YiZA" annotatedElement="_VZLZMhE9EeGOffqMW1YiZA">
           <body>References a set of ports that an encapsulated classifier owns.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0MEtNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0MEtdwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZLZNBE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZLZNRE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedOperation xmi:id="_O9x_ALL2EeCBifIhhuFqZA" name="ownedPort" visibility="public" bodyCondition="_g0MrwNwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g0MEttwbEeCT5O2F6sGn5g" annotatedElement="_O9x_ALL2EeCBifIhhuFqZA">
+      <ownedOperation xmi:id="_O9x_ALL2EeCBifIhhuFqZA" name="ownedPort" visibility="public" bodyCondition="_VZMAQBE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VZLZNhE9EeGOffqMW1YiZA" annotatedElement="_O9x_ALL2EeCBifIhhuFqZA">
           <body>Missing derivation for EncapsulatedClassifier::/ownedPort : Port</body>
         </ownedComment>
-        <ownedRule xmi:id="_g0MrwNwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_O9x_ALL2EeCBifIhhuFqZA _g0MEstwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0MrwdwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VZMAQBE9EeGOffqMW1YiZA" name="spec" constrainedElement="_O9x_ALL2EeCBifIhhuFqZA _VZLZMhE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZMAQRE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>true</body>
           </specification>
         </ownedRule>
         <ownedParameter xmi:id="_PyQI4LL2EeCBifIhhuFqZA" name="result" visibility="public" type="_ZAuvEGveEdq4DLWZOhbdEA" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0MrwtwbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0Mrw9wbEeCT5O2F6sGn5g" value="*"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZMAQhE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZMAQxE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_I6N3UGwGEdq7X4sGURiZYA" name="Enumeration">
-      <ownedComment xmi:id="_g0MrxNwbEeCT5O2F6sGn5g" annotatedElement="_I6N3UGwGEdq7X4sGURiZYA">
+      <ownedComment xmi:id="_VZMnUBE9EeGOffqMW1YiZA" annotatedElement="_I6N3UGwGEdq7X4sGURiZYA">
         <body>An enumeration is a data type whose values are enumerated in the model as enumeration literals.</body>
       </ownedComment>
-      <generalization xmi:id="_g0MrxdwbEeCT5O2F6sGn5g" general="__1ap4HLzEdqziYxiZo0YtA"/>
-      <ownedAttribute xmi:id="_g0MrxtwbEeCT5O2F6sGn5g" name="ownedLiteral" visibility="public" type="_OQcbgGwOEdq7X4sGURiZYA" isOrdered="true" aggregation="composite" subsettedProperty="_g1S4AdwbEeCT5O2F6sGn5g" association="_gypMmNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Mrx9wbEeCT5O2F6sGn5g" annotatedElement="_g0MrxtwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VZMnURE9EeGOffqMW1YiZA" general="__1ap4HLzEdqziYxiZo0YtA"/>
+      <ownedAttribute xmi:id="_VZMnUhE9EeGOffqMW1YiZA" name="ownedLiteral" visibility="public" type="_OQcbgGwOEdq7X4sGURiZYA" isOrdered="true" aggregation="composite" subsettedProperty="_Var1EBE9EeGOffqMW1YiZA" association="_VUBMYBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZMnUxE9EeGOffqMW1YiZA" annotatedElement="_VZMnUhE9EeGOffqMW1YiZA">
           <body>The ordered set of literals for this Enumeration.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0MryNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0MrydwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZMnVBE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZMnVRE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_OQcbgGwOEdq7X4sGURiZYA" name="EnumerationLiteral">
-      <ownedComment xmi:id="_g0NS0NwbEeCT5O2F6sGn5g" annotatedElement="_OQcbgGwOEdq7X4sGURiZYA">
+      <ownedComment xmi:id="_VZNOYBE9EeGOffqMW1YiZA" annotatedElement="_OQcbgGwOEdq7X4sGURiZYA">
         <body>An enumeration literal is a user-defined data value for an enumeration.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0NS0dwbEeCT5O2F6sGn5g" name="classifier_equals_owning_enumeration" constrainedElement="_OQcbgGwOEdq7X4sGURiZYA">
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0NS0twbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZNOYRE9EeGOffqMW1YiZA" name="classifier_equals_owning_enumeration" constrainedElement="_OQcbgGwOEdq7X4sGURiZYA">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZNOYhE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>classifier = enumeration</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0NS09wbEeCT5O2F6sGn5g" general="_g0auMNwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g0NS1NwbEeCT5O2F6sGn5g" name="classifier" visibility="public" type="_I6N3UGwGEdq7X4sGURiZYA" isReadOnly="true" isDerived="true" redefinedProperty="_g0auQtwbEeCT5O2F6sGn5g" association="_gyUceNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0NS1dwbEeCT5O2F6sGn5g" annotatedElement="_g0NS1NwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VZNOYxE9EeGOffqMW1YiZA" general="_VZrIcBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VZNOZBE9EeGOffqMW1YiZA" name="classifier" visibility="public" type="_I6N3UGwGEdq7X4sGURiZYA" isReadOnly="true" isDerived="true" redefinedProperty="_VZrIghE9EeGOffqMW1YiZA" association="_VTCU9BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZNOZRE9EeGOffqMW1YiZA" annotatedElement="_VZNOZBE9EeGOffqMW1YiZA">
           <body>The classifier of this EnumerationLiteral derived to be equal to its enumeration.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0NS1twbEeCT5O2F6sGn5g" name="enumeration" visibility="public" type="_I6N3UGwGEdq7X4sGURiZYA" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_gypMmNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0NS19wbEeCT5O2F6sGn5g" annotatedElement="_g0NS1twbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZNOZhE9EeGOffqMW1YiZA" name="enumeration" visibility="public" type="_I6N3UGwGEdq7X4sGURiZYA" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_VUBMYBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZNOZxE9EeGOffqMW1YiZA" annotatedElement="_VZNOZhE9EeGOffqMW1YiZA">
           <body>The Enumeration that this EnumerationLiteral is a member of.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0NS2NwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZNOaBE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
       <ownedOperation xmi:id="_WlaJALNJEeCT16-4OmDs9g" name="getClassifiers" visibility="protected">
         <ownedParameter xmi:id="_WlaJAbNJEeCT16-4OmDs9g" type="_6UV2QGwJEdq7X4sGURiZYA" direction="return">
@@ -6464,12 +6464,12 @@
           <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_WlaJArNJEeCT16-4OmDs9g" value="*"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_dgJcQLL2EeCBifIhhuFqZA" name="classifier" visibility="public" bodyCondition="_g0NS2twbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g0NS2dwbEeCT5O2F6sGn5g" annotatedElement="_dgJcQLL2EeCBifIhhuFqZA">
+      <ownedOperation xmi:id="_dgJcQLL2EeCBifIhhuFqZA" name="classifier" visibility="public" bodyCondition="_VZN1cRE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VZN1cBE9EeGOffqMW1YiZA" annotatedElement="_dgJcQLL2EeCBifIhhuFqZA">
           <body>Missing derivation for EnumerationLiteral::/classifier : Enumeration</body>
         </ownedComment>
-        <ownedRule xmi:id="_g0NS2twbEeCT5O2F6sGn5g" name="spec" constrainedElement="_dgJcQLL2EeCBifIhhuFqZA _g0NS1NwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0NS29wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VZN1cRE9EeGOffqMW1YiZA" name="spec" constrainedElement="_dgJcQLL2EeCBifIhhuFqZA _VZNOZBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZN1chE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>true</body>
           </specification>
@@ -6477,289 +6477,292 @@
         <ownedParameter xmi:id="_rcqacLL2EeCBifIhhuFqZA" name="result" visibility="public" type="_I6N3UGwGEdq7X4sGURiZYA" direction="return"/>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0N54NwbEeCT5O2F6sGn5g" name="Event" isAbstract="true">
-      <ownedComment xmi:id="_g0N54dwbEeCT5O2F6sGn5g" annotatedElement="_g0N54NwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZOcgBE9EeGOffqMW1YiZA" name="Event" isAbstract="true">
+      <ownedComment xmi:id="_VZOcgRE9EeGOffqMW1YiZA" annotatedElement="_VZOcgBE9EeGOffqMW1YiZA">
         <body>An event is the specification of some occurrence that may potentially trigger effects by an object.</body>
       </ownedComment>
-      <generalization xmi:id="_g0N54twbEeCT5O2F6sGn5g" general="_jKxnwGwLEdq7X4sGURiZYA"/>
+      <generalization xmi:id="_VZOcghE9EeGOffqMW1YiZA" general="_jKxnwGwLEdq7X4sGURiZYA"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0Og8NwbEeCT5O2F6sGn5g" name="ExceptionHandler">
-      <ownedComment xmi:id="_g0Og8dwbEeCT5O2F6sGn5g" annotatedElement="_g0Og8NwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZPDkBE9EeGOffqMW1YiZA" name="ExceptionHandler">
+      <ownedComment xmi:id="_VZPDkRE9EeGOffqMW1YiZA" annotatedElement="_VZPDkBE9EeGOffqMW1YiZA">
         <body>An exception handler is an element that specifies a body to execute in case the specified exception occurs during the execution of the protected node.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0Og8twbEeCT5O2F6sGn5g" name="exception_body" constrainedElement="_g0Og8NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Og89wbEeCT5O2F6sGn5g" annotatedElement="_g0Og8twbEeCT5O2F6sGn5g">
-          <body>The exception handler and its input object node are not the source or target of any edge.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0Og9NwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g0Og9dwbEeCT5O2F6sGn5g" name="result_pins" constrainedElement="_g0Og8NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Og9twbEeCT5O2F6sGn5g" annotatedElement="_g0Og9dwbEeCT5O2F6sGn5g">
-          <body>If the protected node is a StructuredActivityNode with output pins, then the exception handler body must also be a StructuredActivityNode with output pins that correspond in number and types to those of the protected node.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0Og99wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g0Og-NwbEeCT5O2F6sGn5g" name="one_input" constrainedElement="_g0Og8NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Og-dwbEeCT5O2F6sGn5g" annotatedElement="_g0Og-NwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZPDkhE9EeGOffqMW1YiZA" name="one_input" constrainedElement="_VZPDkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZPDkxE9EeGOffqMW1YiZA" annotatedElement="_VZPDkhE9EeGOffqMW1YiZA">
           <body>The handler body has one input, and that input is the same as the exception input.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0Og-twbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZPDlBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g0Og-9wbEeCT5O2F6sGn5g" name="edge_source_target" constrainedElement="_g0Og8NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Og_NwbEeCT5O2F6sGn5g" annotatedElement="_g0Og-9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZPDlRE9EeGOffqMW1YiZA" name="edge_source_target" constrainedElement="_VZPDkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZPDlhE9EeGOffqMW1YiZA" annotatedElement="_VZPDlRE9EeGOffqMW1YiZA">
           <body>An edge that has a source in an exception handler structured node must have its target in the handler also, and vice versa.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0Og_dwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZPDlxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0Og_twbEeCT5O2F6sGn5g" general="_kl90MGvbEdq4DLWZOhbdEA"/>
-      <ownedAttribute xmi:id="_g0Og_9wbEeCT5O2F6sGn5g" name="exceptionInput" visibility="public" type="_g1XJYNwbEeCT5O2F6sGn5g" association="_gybKKNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0OhANwbEeCT5O2F6sGn5g" annotatedElement="_g0Og_9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZPDmBE9EeGOffqMW1YiZA" name="result_pins" constrainedElement="_VZPDkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZPDmRE9EeGOffqMW1YiZA" annotatedElement="_VZPDmBE9EeGOffqMW1YiZA">
+          <body>If the protected node is a StructuredActivityNode with output pins, then the exception handler body must also be a StructuredActivityNode with output pins that correspond in number and types to those of the protected node.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZPDmhE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VZPDmxE9EeGOffqMW1YiZA" name="exception_body" constrainedElement="_VZPDkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZPDnBE9EeGOffqMW1YiZA" annotatedElement="_VZPDmxE9EeGOffqMW1YiZA">
+          <body>The exception handler and its input object node are not the source or target of any edge.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZPDnRE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VZPDnhE9EeGOffqMW1YiZA" general="_kl90MGvbEdq4DLWZOhbdEA"/>
+      <ownedAttribute xmi:id="_VZPDnxE9EeGOffqMW1YiZA" name="exceptionInput" visibility="public" type="_VbcDABE9EeGOffqMW1YiZA" association="_VTVP5BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZPDoBE9EeGOffqMW1YiZA" annotatedElement="_VZPDnxE9EeGOffqMW1YiZA">
           <body>An object node within the handler body. When the handler catches an exception, the exception token is placed in this node, causing the body to execute.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0OhAdwbEeCT5O2F6sGn5g" name="exceptionType" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" association="_gybKLNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0OhAtwbEeCT5O2F6sGn5g" annotatedElement="_g0OhAdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZPDoRE9EeGOffqMW1YiZA" name="exceptionType" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" association="_VTV28BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZPDohE9EeGOffqMW1YiZA" annotatedElement="_VZPDoRE9EeGOffqMW1YiZA">
           <body>The kind of instances that the handler catches. If an exception occurs whose type is any of the classifiers in the set, the handler catches the exception and executes its body.</body>
         </ownedComment>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0OhA9wbEeCT5O2F6sGn5g" value="*"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZPDoxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0OhBNwbEeCT5O2F6sGn5g" name="handlerBody" visibility="public" type="_g0OhCNwbEeCT5O2F6sGn5g" association="_gye0g9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0OhBdwbEeCT5O2F6sGn5g" annotatedElement="_g0OhBNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZPDpBE9EeGOffqMW1YiZA" name="handlerBody" visibility="public" type="_VZPqoBE9EeGOffqMW1YiZA" association="_VTmVohE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZPDpRE9EeGOffqMW1YiZA" annotatedElement="_VZPDpBE9EeGOffqMW1YiZA">
           <body>A node that is executed if the handler satisfies an uncaught exception.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0OhBtwbEeCT5O2F6sGn5g" name="protectedNode" visibility="public" type="_g0OhCNwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gye0h9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0OhB9wbEeCT5O2F6sGn5g" annotatedElement="_g0OhBtwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZPDphE9EeGOffqMW1YiZA" name="protectedNode" visibility="public" type="_VZPqoBE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VTmVphE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZPDpxE9EeGOffqMW1YiZA" annotatedElement="_VZPDphE9EeGOffqMW1YiZA">
           <body>The node protected by the handler. The handler is examined if an exception propagates to the outside of the node.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0OhCNwbEeCT5O2F6sGn5g" name="ExecutableNode" isAbstract="true">
-      <ownedComment xmi:id="_g0OhCdwbEeCT5O2F6sGn5g" annotatedElement="_g0OhCNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZPqoBE9EeGOffqMW1YiZA" name="ExecutableNode" isAbstract="true">
+      <ownedComment xmi:id="_VZPqoRE9EeGOffqMW1YiZA" annotatedElement="_VZPqoBE9EeGOffqMW1YiZA">
+        <body>An executable node is an abstract class for activity nodes that may be executed. It is used as an attachment point for exception handlers.</body>
+      </ownedComment>
+      <ownedComment xmi:id="_VZPqohE9EeGOffqMW1YiZA" annotatedElement="_VZPqoBE9EeGOffqMW1YiZA">
         <body>An executable node is an abstract class for activity nodes that may be executed. It is used as an attachment point for exception handlers.</body>
       </ownedComment>
-      <generalization xmi:id="_g0OhC9wbEeCT5O2F6sGn5g" general="_gzbPsNwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g0OhDNwbEeCT5O2F6sGn5g" name="handler" visibility="public" type="_g0Og8NwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gye0h9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0OhDdwbEeCT5O2F6sGn5g" annotatedElement="_g0OhDNwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VZPqoxE9EeGOffqMW1YiZA" general="_WpiyYAs-EeGcpbeCPJfCmw"/>
+      <ownedAttribute xmi:id="_VZPqpBE9EeGOffqMW1YiZA" name="handler" visibility="public" type="_VZPDkBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VTmVphE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZPqpRE9EeGOffqMW1YiZA" annotatedElement="_VZPqpBE9EeGOffqMW1YiZA">
           <body>A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0OhDtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0OhD9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZPqphE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZPqpxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0OhENwbEeCT5O2F6sGn5g" name="ExecutionEnvironment">
-      <ownedComment xmi:id="_g0OhEdwbEeCT5O2F6sGn5g" annotatedElement="_g0OhENwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZPqqBE9EeGOffqMW1YiZA" name="ExecutionEnvironment">
+      <ownedComment xmi:id="_VZPqqRE9EeGOffqMW1YiZA" annotatedElement="_VZPqqBE9EeGOffqMW1YiZA">
         <body>An execution environment is a node that offers an execution environment for specific types of components that are deployed on it in the form of executable artifacts.</body>
       </ownedComment>
-      <generalization xmi:id="_g0OhEtwbEeCT5O2F6sGn5g" general="_5YOyUKJ8EdywJr5C4uHLKw"/>
+      <generalization xmi:id="_VZPqqhE9EeGOffqMW1YiZA" general="_5YOyUKJ8EdywJr5C4uHLKw"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0PIANwbEeCT5O2F6sGn5g" name="ExecutionOccurrenceSpecification">
-      <ownedComment xmi:id="_g0PIAdwbEeCT5O2F6sGn5g" annotatedElement="_g0PIANwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZQRsBE9EeGOffqMW1YiZA" name="ExecutionOccurrenceSpecification">
+      <ownedComment xmi:id="_VZQRsRE9EeGOffqMW1YiZA" annotatedElement="_VZQRsBE9EeGOffqMW1YiZA">
         <body>An execution occurrence specification represents moments in time at which actions or behaviors start or finish.</body>
       </ownedComment>
-      <generalization xmi:id="_g0PIAtwbEeCT5O2F6sGn5g" general="_g1XwcNwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g0PIA9wbEeCT5O2F6sGn5g" name="execution" visibility="public" type="_g0PIBdwbEeCT5O2F6sGn5g" association="_gybxM9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0PIBNwbEeCT5O2F6sGn5g" annotatedElement="_g0PIA9wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VZQRshE9EeGOffqMW1YiZA" general="_VbdRIBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VZQRsxE9EeGOffqMW1YiZA" name="execution" visibility="public" type="_VZQRtRE9EeGOffqMW1YiZA" association="_VTXFEBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZQRtBE9EeGOffqMW1YiZA" annotatedElement="_VZQRsxE9EeGOffqMW1YiZA">
           <body>References the execution specification describing the execution that is started or finished at this execution event.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0PIBdwbEeCT5O2F6sGn5g" name="ExecutionSpecification" isAbstract="true">
-      <ownedComment xmi:id="_g0PIBtwbEeCT5O2F6sGn5g" annotatedElement="_g0PIBdwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZQRtRE9EeGOffqMW1YiZA" name="ExecutionSpecification" isAbstract="true">
+      <ownedComment xmi:id="_VZQRthE9EeGOffqMW1YiZA" annotatedElement="_VZQRtRE9EeGOffqMW1YiZA">
         <body>An execution specification is a specification of the execution of a unit of behavior or action within the lifeline. The duration of an execution specification is represented by two cccurrence specifications, the start occurrence specification and the finish occurrence specification.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0PIB9wbEeCT5O2F6sGn5g" name="same_lifeline" constrainedElement="_g0PIBdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0PICNwbEeCT5O2F6sGn5g" annotatedElement="_g0PIB9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZQRtxE9EeGOffqMW1YiZA" name="same_lifeline" constrainedElement="_VZQRtRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZQRuBE9EeGOffqMW1YiZA" annotatedElement="_VZQRtxE9EeGOffqMW1YiZA">
           <body>The startEvent and the finishEvent must be on the same Lifeline</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0PICdwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZQRuRE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>start.lifeline = finish.lifeline</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0PICtwbEeCT5O2F6sGn5g" general="_g0cjYNwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g0PIC9wbEeCT5O2F6sGn5g" name="finish" visibility="public" type="_g1XwcNwbEeCT5O2F6sGn5g" association="_gyc_V9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0PIDNwbEeCT5O2F6sGn5g" annotatedElement="_g0PIC9wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VZQRuhE9EeGOffqMW1YiZA" general="_VZuLwBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VZQRuxE9EeGOffqMW1YiZA" name="finish" visibility="public" type="_VbdRIBE9EeGOffqMW1YiZA" association="_VTbWgBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZQRvBE9EeGOffqMW1YiZA" annotatedElement="_VZQRuxE9EeGOffqMW1YiZA">
           <body>References the OccurrenceSpecification that designates the finish of the Action or Behavior.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0PIDdwbEeCT5O2F6sGn5g" name="start" visibility="public" type="_g1XwcNwbEeCT5O2F6sGn5g" association="_gy65YNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0PIDtwbEeCT5O2F6sGn5g" annotatedElement="_g0PIDdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZQRvRE9EeGOffqMW1YiZA" name="start" visibility="public" type="_VbdRIBE9EeGOffqMW1YiZA" association="_VUmbMBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZQRvhE9EeGOffqMW1YiZA" annotatedElement="_VZQRvRE9EeGOffqMW1YiZA">
           <body>References the OccurrenceSpecification that designates the start of the Action or Behavior</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0PvENwbEeCT5O2F6sGn5g" name="ExpansionNode">
-      <ownedComment xmi:id="_g0PvEdwbEeCT5O2F6sGn5g" annotatedElement="_g0PvENwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZQ4wBE9EeGOffqMW1YiZA" name="ExpansionNode">
+      <ownedComment xmi:id="_VZQ4wRE9EeGOffqMW1YiZA" annotatedElement="_VZQ4wBE9EeGOffqMW1YiZA">
         <body>An expansion node is an object node used to indicate a flow across the boundary of an expansion region. A flow into a region contains a collection that is broken into its individual elements inside the region, which is executed once per element. A flow out of a region combines individual elements into a collection for use outside the region.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0PvEtwbEeCT5O2F6sGn5g" name="region_as_input_or_output" constrainedElement="_g0PvENwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0PvE9wbEeCT5O2F6sGn5g" annotatedElement="_g0PvEtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZQ4whE9EeGOffqMW1YiZA" name="region_as_input_or_output" constrainedElement="_VZQ4wBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZQ4wxE9EeGOffqMW1YiZA" annotatedElement="_VZQ4whE9EeGOffqMW1YiZA">
           <body>One of regionAsInput or regionAsOutput must be non-empty, but not both.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0PvFNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZQ4xBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0PvFdwbEeCT5O2F6sGn5g" general="_g1XJYNwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g0PvFtwbEeCT5O2F6sGn5g" name="regionAsInput" visibility="public" type="_g0PvHNwbEeCT5O2F6sGn5g" association="_gygCsNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0PvF9wbEeCT5O2F6sGn5g" annotatedElement="_g0PvFtwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VZQ4xRE9EeGOffqMW1YiZA" general="_VbcDABE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VZQ4xhE9EeGOffqMW1YiZA" name="regionAsInput" visibility="public" type="_VZRf0BE9EeGOffqMW1YiZA" association="_VTqABBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZQ4xxE9EeGOffqMW1YiZA" annotatedElement="_VZQ4xhE9EeGOffqMW1YiZA">
           <body>The expansion region for which the node is an input.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0PvGNwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZQ4yBE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0PvGdwbEeCT5O2F6sGn5g" name="regionAsOutput" visibility="public" type="_g0PvHNwbEeCT5O2F6sGn5g" association="_gynXbdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0PvGtwbEeCT5O2F6sGn5g" annotatedElement="_g0PvGdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZQ4yRE9EeGOffqMW1YiZA" name="regionAsOutput" visibility="public" type="_VZRf0BE9EeGOffqMW1YiZA" association="_VT9iBBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZQ4yhE9EeGOffqMW1YiZA" annotatedElement="_VZQ4yRE9EeGOffqMW1YiZA">
           <body>The expansion region for which the node is an output.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0PvG9wbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZQ4yxE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0PvHNwbEeCT5O2F6sGn5g" name="ExpansionRegion">
-      <ownedComment xmi:id="_g0PvHdwbEeCT5O2F6sGn5g" annotatedElement="_g0PvHNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZRf0BE9EeGOffqMW1YiZA" name="ExpansionRegion">
+      <ownedComment xmi:id="_VZRf0RE9EeGOffqMW1YiZA" annotatedElement="_VZRf0BE9EeGOffqMW1YiZA">
         <body>An expansion region is a structured activity region that executes multiple times corresponding to elements of an input collection.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0PvHtwbEeCT5O2F6sGn5g" name="expansion_nodes" constrainedElement="_g0PvHNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0PvH9wbEeCT5O2F6sGn5g" annotatedElement="_g0PvHtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZRf0hE9EeGOffqMW1YiZA" name="expansion_nodes" constrainedElement="_VZRf0BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZRf0xE9EeGOffqMW1YiZA" annotatedElement="_VZRf0hE9EeGOffqMW1YiZA">
           <body>An ExpansionRegion must have one or more argument ExpansionNodes and zero or more result ExpansionNodes.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0PvINwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZRf1BE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0PvIdwbEeCT5O2F6sGn5g" general="_w1_2cLLREeCsYvaJqFFivQ"/>
-      <ownedAttribute xmi:id="_g0PvItwbEeCT5O2F6sGn5g" name="inputElement" visibility="public" type="_g0PvENwbEeCT5O2F6sGn5g" association="_gygCsNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0PvI9wbEeCT5O2F6sGn5g" annotatedElement="_g0PvItwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VZRf1RE9EeGOffqMW1YiZA" general="_w1_2cLLREeCsYvaJqFFivQ"/>
+      <ownedAttribute xmi:id="_VZRf1hE9EeGOffqMW1YiZA" name="inputElement" visibility="public" type="_VZQ4wBE9EeGOffqMW1YiZA" association="_VTqABBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZRf1xE9EeGOffqMW1YiZA" annotatedElement="_VZRf1hE9EeGOffqMW1YiZA">
           <body>An object node that holds a separate element of the input collection during each of the multiple executions of the region.</body>
         </ownedComment>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0PvJNwbEeCT5O2F6sGn5g" value="*"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZRf2BE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0PvJdwbEeCT5O2F6sGn5g" name="mode" visibility="public" type="_g2cugtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0PvJtwbEeCT5O2F6sGn5g" annotatedElement="_g0PvJdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZRf2RE9EeGOffqMW1YiZA" name="mode" visibility="public" type="_VfNIsxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZRf2hE9EeGOffqMW1YiZA" annotatedElement="_VZRf2RE9EeGOffqMW1YiZA">
           <body>The way in which the executions interact: parallel: all interactions are independent iterative: the interactions occur in order of the elements stream: a stream of values flows into a single execution</body>
         </ownedComment>
-        <defaultValue xmi:type="uml:InstanceValue" xmi:id="_g0PvJ9wbEeCT5O2F6sGn5g" type="_g2cugtwbEeCT5O2F6sGn5g" instance="_g2cuhtwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:InstanceValue" xmi:id="_VZRf2xE9EeGOffqMW1YiZA" type="_VfNIsxE9EeGOffqMW1YiZA" instance="_VfNItxE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0PvKNwbEeCT5O2F6sGn5g" name="outputElement" visibility="public" type="_g0PvENwbEeCT5O2F6sGn5g" association="_gynXbdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0PvKdwbEeCT5O2F6sGn5g" annotatedElement="_g0PvKNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZRf3BE9EeGOffqMW1YiZA" name="outputElement" visibility="public" type="_VZQ4wBE9EeGOffqMW1YiZA" association="_VT9iBBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZRf3RE9EeGOffqMW1YiZA" annotatedElement="_VZRf3BE9EeGOffqMW1YiZA">
           <body>An object node that accepts a separate element of the output collection during each of the multiple executions of the region. The values are formed into a collection that is available when the execution of the region is complete.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0PvKtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0PvK9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZRf3hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZRf3xE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_8QuDcLG3EeCDe8CO90iVKQ" name="Expression">
-      <ownedComment xmi:id="_g0QWINwbEeCT5O2F6sGn5g" annotatedElement="_8QuDcLG3EeCDe8CO90iVKQ">
-        <body>An expression represents a node in an expression tree, which may be non-terminal or terminal. It defines a symbol, and has a possibly empty sequence of operands which are value specifications.</body>
-      </ownedComment>
-      <ownedComment xmi:id="_g0QWIdwbEeCT5O2F6sGn5g" annotatedElement="_8QuDcLG3EeCDe8CO90iVKQ">
+      <ownedComment xmi:id="_VZRf4BE9EeGOffqMW1YiZA" annotatedElement="_8QuDcLG3EeCDe8CO90iVKQ">
         <body>An expression is a structured tree of symbols that denotes a (possibly empty) set of values when evaluated in a context.</body>
       </ownedComment>
-      <generalization xmi:id="_g0QWItwbEeCT5O2F6sGn5g" general="_g2YdENwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g0QWI9wbEeCT5O2F6sGn5g" name="operand" visibility="public" type="_g2YdENwbEeCT5O2F6sGn5g" isOrdered="true" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gymwXtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0QWJNwbEeCT5O2F6sGn5g" annotatedElement="_g0QWI9wbEeCT5O2F6sGn5g">
+      <ownedComment xmi:id="_VZRf4RE9EeGOffqMW1YiZA" annotatedElement="_8QuDcLG3EeCDe8CO90iVKQ">
+        <body>An expression represents a node in an expression tree, which may be non-terminal or terminal. It defines a symbol, and has a possibly empty sequence of operands which are value specifications.</body>
+      </ownedComment>
+      <generalization xmi:id="_VZSG4BE9EeGOffqMW1YiZA" general="_VfGbABE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VZSG4RE9EeGOffqMW1YiZA" name="operand" visibility="public" type="_VfGbABE9EeGOffqMW1YiZA" isOrdered="true" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VT8T5xE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZSG4hE9EeGOffqMW1YiZA" annotatedElement="_VZSG4RE9EeGOffqMW1YiZA">
           <body>Specifies a sequence of operands.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0QWJdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0QWJtwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZSG4xE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZSG5BE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
       <ownedAttribute xmi:id="_-NPagLG3EeCDe8CO90iVKQ" name="symbol" visibility="public">
-        <ownedComment xmi:id="_g0QWJ9wbEeCT5O2F6sGn5g" annotatedElement="_-NPagLG3EeCDe8CO90iVKQ">
+        <ownedComment xmi:id="_VZSG5RE9EeGOffqMW1YiZA" annotatedElement="_-NPagLG3EeCDe8CO90iVKQ">
           <body>The symbol associated with the node in the expression tree.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0QWKNwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZSG5hE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0Q9MNwbEeCT5O2F6sGn5g" name="Extend">
-      <ownedComment xmi:id="_g0Q9MdwbEeCT5O2F6sGn5g" annotatedElement="_g0Q9MNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZTVABE9EeGOffqMW1YiZA" name="Extend">
+      <ownedComment xmi:id="_VZTVARE9EeGOffqMW1YiZA" annotatedElement="_VZTVABE9EeGOffqMW1YiZA">
         <body>A relationship from an extending use case to an extended use case that specifies how and when the behavior defined in the extending use case can be inserted into the behavior defined in the extended use case.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0Q9MtwbEeCT5O2F6sGn5g" name="extension_points" constrainedElement="_g0Q9MNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Q9M9wbEeCT5O2F6sGn5g" annotatedElement="_g0Q9MtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZTVAhE9EeGOffqMW1YiZA" name="extension_points" constrainedElement="_VZTVABE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZTVAxE9EeGOffqMW1YiZA" annotatedElement="_VZTVAhE9EeGOffqMW1YiZA">
           <body>The extension points referenced by the extend relationship must belong to the use case that is being extended.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0Q9NNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZTVBBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>extensionLocation->forAll (xp | extendedCase.extensionPoint->includes(xp))</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0Q9NdwbEeCT5O2F6sGn5g" general="_csVgUGvtEdqG6fBIPwe-mw"/>
-      <generalization xmi:id="_g0Q9NtwbEeCT5O2F6sGn5g" general="_JBgfoKPAEdqi_5gqUMOQtA"/>
-      <ownedAttribute xmi:id="_g0Q9N9wbEeCT5O2F6sGn5g" name="condition" visibility="public" type="_g0AegNwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gyVqkNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Q9ONwbEeCT5O2F6sGn5g" annotatedElement="_g0Q9N9wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VZTVBRE9EeGOffqMW1YiZA" general="_JBgfoKPAEdqi_5gqUMOQtA"/>
+      <generalization xmi:id="_VZTVBhE9EeGOffqMW1YiZA" general="_csVgUGvtEdqG6fBIPwe-mw"/>
+      <ownedAttribute xmi:id="_VZTVBxE9EeGOffqMW1YiZA" name="condition" visibility="public" type="_VYbLQBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VTFYQxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZTVCBE9EeGOffqMW1YiZA" annotatedElement="_VZTVBxE9EeGOffqMW1YiZA">
           <body>References the condition that must hold when the first extension point is reached for the extension to take place. If no constraint is associated with the extend relationship, the extension is unconditional.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0Q9OdwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZTVCRE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0Q9OtwbEeCT5O2F6sGn5g" name="extendedCase" visibility="public" type="_g2WA0NwbEeCT5O2F6sGn5g" subsettedProperty="_g0HzRNwbEeCT5O2F6sGn5g" association="_gycYQtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Q9O9wbEeCT5O2F6sGn5g" annotatedElement="_g0Q9OtwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZTVChE9EeGOffqMW1YiZA" name="extendedCase" visibility="public" type="_VfFM4BE9EeGOffqMW1YiZA" subsettedProperty="_VY66iBE9EeGOffqMW1YiZA" association="_VTY6QBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZTVCxE9EeGOffqMW1YiZA" annotatedElement="_VZTVChE9EeGOffqMW1YiZA">
           <body>References the use case that is being extended.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0Q9PNwbEeCT5O2F6sGn5g" name="extension" visibility="public" type="_g2WA0NwbEeCT5O2F6sGn5g" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA _g0HzQdwbEeCT5O2F6sGn5g" association="_gycYQdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Q9PdwbEeCT5O2F6sGn5g" annotatedElement="_g0Q9PNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZTVDBE9EeGOffqMW1YiZA" name="extension" visibility="public" type="_VfFM4BE9EeGOffqMW1YiZA" subsettedProperty="_VY66hRE9EeGOffqMW1YiZA _1vzv0LbIEeCRxrN1JUGuxA" association="_VTYTMBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZTVDRE9EeGOffqMW1YiZA" annotatedElement="_VZTVDBE9EeGOffqMW1YiZA">
           <body>References the use case that represents the extension and owns the extend relationship.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0Q9PtwbEeCT5O2F6sGn5g" name="extensionLocation" visibility="public" type="_g0TZcNwbEeCT5O2F6sGn5g" isOrdered="true" association="_gyc_UNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Q9P9wbEeCT5O2F6sGn5g" annotatedElement="_g0Q9PtwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZTVDhE9EeGOffqMW1YiZA" name="extensionLocation" visibility="public" type="_VZXmcBE9EeGOffqMW1YiZA" isOrdered="true" association="_VTaIYxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZTVDxE9EeGOffqMW1YiZA" annotatedElement="_VZTVDhE9EeGOffqMW1YiZA">
           <body>An ordered list of extension points belonging to the extended use case, specifying where the respective behavioral fragments of the extending use case are to be inserted. The first fragment in the extending use case is associated with the first extension point in the list, the second fragment with the second point, and so on. (Note that, in most practical cases, the extending use case has just a single behavior fragment, so that the list of extension points is trivial.)</body>
         </ownedComment>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0Q9QNwbEeCT5O2F6sGn5g" value="*"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZTVEBE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_skHGwGvsEdqG6fBIPwe-mw" name="Extension">
-      <ownedComment xmi:id="_g0Q9QdwbEeCT5O2F6sGn5g" annotatedElement="_skHGwGvsEdqG6fBIPwe-mw">
+      <ownedComment xmi:id="_VZTVERE9EeGOffqMW1YiZA" annotatedElement="_skHGwGvsEdqG6fBIPwe-mw">
         <body>An extension is used to indicate that the properties of a metaclass are extended through a stereotype, and gives the ability to flexibly add (and later remove) stereotypes to classes.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0RkQNwbEeCT5O2F6sGn5g" name="non_owned_end" constrainedElement="_skHGwGvsEdqG6fBIPwe-mw">
-        <ownedComment xmi:id="_g0RkQdwbEeCT5O2F6sGn5g" annotatedElement="_g0RkQNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZTVEhE9EeGOffqMW1YiZA" name="non_owned_end" constrainedElement="_skHGwGvsEdqG6fBIPwe-mw">
+        <ownedComment xmi:id="_VZTVExE9EeGOffqMW1YiZA" annotatedElement="_VZTVEhE9EeGOffqMW1YiZA">
           <body>The non-owned end of an Extension is typed by a Class.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0RkQtwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZTVFBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>metaclassEnd()->notEmpty() and metaclass()->oclIsKindOf(Class)</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g0RkQ9wbEeCT5O2F6sGn5g" name="is_binary" constrainedElement="_skHGwGvsEdqG6fBIPwe-mw">
-        <ownedComment xmi:id="_g0RkRNwbEeCT5O2F6sGn5g" annotatedElement="_g0RkQ9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZT8EBE9EeGOffqMW1YiZA" name="is_binary" constrainedElement="_skHGwGvsEdqG6fBIPwe-mw">
+        <ownedComment xmi:id="_VZT8ERE9EeGOffqMW1YiZA" annotatedElement="_VZT8EBE9EeGOffqMW1YiZA">
           <body>An Extension is binary, i.e., it has only two memberEnds.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0RkRdwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZT8EhE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>memberEnd->size() = 2</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0RkRtwbEeCT5O2F6sGn5g" general="_AwvxoGwNEdq7X4sGURiZYA"/>
-      <ownedAttribute xmi:id="_g0RkR9wbEeCT5O2F6sGn5g" name="isRequired" visibility="public" isReadOnly="true" isDerived="true">
-        <ownedComment xmi:id="_g0RkSNwbEeCT5O2F6sGn5g" annotatedElement="_g0RkR9wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VZT8ExE9EeGOffqMW1YiZA" general="_AwvxoGwNEdq7X4sGURiZYA"/>
+      <ownedAttribute xmi:id="_VZT8FBE9EeGOffqMW1YiZA" name="isRequired" visibility="public" isReadOnly="true" isDerived="true">
+        <ownedComment xmi:id="_VZT8FRE9EeGOffqMW1YiZA" annotatedElement="_VZT8FBE9EeGOffqMW1YiZA">
           <body>Indicates whether an instance of the extending stereotype must be created when an instance of the extended class is created. The attribute value is derived from the value of the lower property of the ExtensionEnd referenced by Extension::ownedEnd; a lower value of 1 means that isRequired is true, but otherwise it is false. Since the default value of ExtensionEnd::lower is 0, the default value of isRequired is false.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g0RkSdwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VZT8FhE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0RkStwbEeCT5O2F6sGn5g" name="metaclass" visibility="public" type="_00owUGvdEdq4DLWZOhbdEA" isReadOnly="true" isDerived="true" association="_gyc_VdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0RkS9wbEeCT5O2F6sGn5g" annotatedElement="_g0RkStwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZT8FxE9EeGOffqMW1YiZA" name="metaclass" visibility="public" type="_00owUGvdEdq4DLWZOhbdEA" isReadOnly="true" isDerived="true" association="_VTavcRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZT8GBE9EeGOffqMW1YiZA" annotatedElement="_VZT8FxE9EeGOffqMW1YiZA">
           <body>References the Class that is extended through an Extension. The property is derived from the type of the memberEnd that is not the ownedEnd.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0RkTNwbEeCT5O2F6sGn5g" name="ownedEnd" visibility="public" type="_2QuT0GvdEdq4DLWZOhbdEA" aggregation="composite" redefinedProperty="_gzgIQNwbEeCT5O2F6sGn5g" association="_gypMldwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0RkTdwbEeCT5O2F6sGn5g" annotatedElement="_g0RkTNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZT8GRE9EeGOffqMW1YiZA" name="ownedEnd" visibility="public" type="_2QuT0GvdEdq4DLWZOhbdEA" aggregation="composite" redefinedProperty="_VV40oBE9EeGOffqMW1YiZA" association="_VUAlVBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZT8GhE9EeGOffqMW1YiZA" annotatedElement="_VZT8GRE9EeGOffqMW1YiZA">
           <body>References the end of the extension that is typed by a Stereotype.</body>
         </ownedComment>
       </ownedAttribute>
@@ -6781,81 +6784,81 @@
           <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_X2BEMZQGEdqpjIDDFZ2Hgw" value="1"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g0RkTtwbEeCT5O2F6sGn5g" name="isRequired" visibility="public" bodyCondition="_g0RkUNwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g0RkT9wbEeCT5O2F6sGn5g" annotatedElement="_g0RkTtwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VZUjIBE9EeGOffqMW1YiZA" name="isRequired" visibility="public" bodyCondition="_VZUjIhE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VZUjIRE9EeGOffqMW1YiZA" annotatedElement="_VZUjIBE9EeGOffqMW1YiZA">
           <body>The query isRequired() is true if the owned end has a multiplicity with the lower bound of 1.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g0RkUNwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g0RkTtwbEeCT5O2F6sGn5g _g0RkR9wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0RkUdwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VZUjIhE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VZUjIBE9EeGOffqMW1YiZA _VZT8FBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZUjIxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = (ownedEnd->lowerBound() = 1)</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g0RkUtwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VZUjJBE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="__PcocLL2EeCBifIhhuFqZA" name="metaclass" visibility="public" bodyCondition="_g0SLUNwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g0RkU9wbEeCT5O2F6sGn5g" annotatedElement="__PcocLL2EeCBifIhhuFqZA">
+      <ownedOperation xmi:id="__PcocLL2EeCBifIhhuFqZA" name="metaclass" visibility="public" bodyCondition="_VZUjJhE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VZUjJRE9EeGOffqMW1YiZA" annotatedElement="__PcocLL2EeCBifIhhuFqZA">
           <body>The query metaclass() returns the metaclass that is being extended (as opposed to the extending stereotype).</body>
         </ownedComment>
-        <ownedRule xmi:id="_g0SLUNwbEeCT5O2F6sGn5g" name="spec" constrainedElement="__PcocLL2EeCBifIhhuFqZA _g0RkStwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0SLUdwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VZUjJhE9EeGOffqMW1YiZA" name="spec" constrainedElement="__PcocLL2EeCBifIhhuFqZA _VZT8FxE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZUjJxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = metaclassEnd().type</body>
           </specification>
         </ownedRule>
         <ownedParameter xmi:id="_FB-nwLL3EeCBifIhhuFqZA" name="result" visibility="public" type="_00owUGvdEdq4DLWZOhbdEA" direction="return"/>
       </ownedOperation>
-      <ownedOperation xmi:id="_g0SLUtwbEeCT5O2F6sGn5g" name="metaclassEnd" visibility="public" bodyCondition="_g0SLVNwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g0SLU9wbEeCT5O2F6sGn5g" annotatedElement="_g0SLUtwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VZVKMBE9EeGOffqMW1YiZA" name="metaclassEnd" visibility="public" bodyCondition="_VZVKMhE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VZVKMRE9EeGOffqMW1YiZA" annotatedElement="_VZVKMBE9EeGOffqMW1YiZA">
           <body>The query metaclassEnd() returns the Property that is typed by a metaclass (as opposed to a stereotype).</body>
         </ownedComment>
-        <ownedRule xmi:id="_g0SLVNwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g0SLUtwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0SLVdwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VZVKMhE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VZVKMBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZVKMxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = memberEnd->reject(ownedEnd)</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g0SLVtwbEeCT5O2F6sGn5g" name="result" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" direction="return"/>
+        <ownedParameter xmi:id="_VZVKNBE9EeGOffqMW1YiZA" name="result" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" direction="return"/>
       </ownedOperation>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_2QuT0GvdEdq4DLWZOhbdEA" name="ExtensionEnd">
-      <ownedComment xmi:id="_g0SLV9wbEeCT5O2F6sGn5g" annotatedElement="_2QuT0GvdEdq4DLWZOhbdEA">
+      <ownedComment xmi:id="_VZVxQBE9EeGOffqMW1YiZA" annotatedElement="_2QuT0GvdEdq4DLWZOhbdEA">
         <body>An extension end is used to tie an extension to a stereotype when extending a metaclass.</body>
       </ownedComment>
-      <ownedComment xmi:id="_g0SLWNwbEeCT5O2F6sGn5g" annotatedElement="_2QuT0GvdEdq4DLWZOhbdEA">
+      <ownedComment xmi:id="_VZVxQRE9EeGOffqMW1YiZA" annotatedElement="_2QuT0GvdEdq4DLWZOhbdEA">
         <body>The default multiplicity of an extension end is 0..1.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0SyYNwbEeCT5O2F6sGn5g" name="multiplicity" constrainedElement="_2QuT0GvdEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_g0SyYdwbEeCT5O2F6sGn5g" annotatedElement="_g0SyYNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZVxQhE9EeGOffqMW1YiZA" name="multiplicity" constrainedElement="_2QuT0GvdEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VZVxQxE9EeGOffqMW1YiZA" annotatedElement="_VZVxQhE9EeGOffqMW1YiZA">
           <body>The multiplicity of ExtensionEnd is 0..1 or 1.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0SyYtwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZVxRBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>(self->lowerBound() = 0 or self->lowerBound() = 1) and self->upperBound() = 1</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g0SyY9wbEeCT5O2F6sGn5g" name="aggregation" constrainedElement="_2QuT0GvdEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_g0SyZNwbEeCT5O2F6sGn5g" annotatedElement="_g0SyY9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZWYUBE9EeGOffqMW1YiZA" name="aggregation" constrainedElement="_2QuT0GvdEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VZWYURE9EeGOffqMW1YiZA" annotatedElement="_VZWYUBE9EeGOffqMW1YiZA">
           <body>The aggregation of an ExtensionEnd is composite.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0SyZdwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZWYUhE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.aggregation = #composite</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0SyZtwbEeCT5O2F6sGn5g" general="_Jp_1oGveEdq4DLWZOhbdEA"/>
-      <ownedAttribute xmi:id="_g0SyZ9wbEeCT5O2F6sGn5g" name="lower" visibility="public" isDerived="true" redefinedProperty="_g1NYcNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0SyaNwbEeCT5O2F6sGn5g" annotatedElement="_g0SyZ9wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VZWYUxE9EeGOffqMW1YiZA" general="_Jp_1oGveEdq4DLWZOhbdEA"/>
+      <ownedAttribute xmi:id="_VZWYVBE9EeGOffqMW1YiZA" name="lower" visibility="public" isDerived="true" redefinedProperty="_VaHNUxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZWYVRE9EeGOffqMW1YiZA" annotatedElement="_VZWYVBE9EeGOffqMW1YiZA">
           <body>This redefinition changes the default multiplicity of association ends, since model elements are usually extended by 0 or 1 instance of the extension stereotype.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0SyadwbEeCT5O2F6sGn5g"/>
-        <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_g0SyatwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZWYVhE9EeGOffqMW1YiZA"/>
+        <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_VZWYVxE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0Sya9wbEeCT5O2F6sGn5g" name="type" visibility="public" type="_A7vDAGv0Edq7X4sGURiZYA" redefinedProperty="_g2UytNwbEeCT5O2F6sGn5g" association="_gy98uNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0SybNwbEeCT5O2F6sGn5g" annotatedElement="_g0Sya9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZWYWBE9EeGOffqMW1YiZA" name="type" visibility="public" type="_A7vDAGv0Edq7X4sGURiZYA" redefinedProperty="_VfDXtBE9EeGOffqMW1YiZA" association="_VUr6xBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZWYWRE9EeGOffqMW1YiZA" annotatedElement="_VZWYWBE9EeGOffqMW1YiZA">
           <body>References the type of the ExtensionEnd. Note that this association restricts the possible types of an ExtensionEnd to only be Stereotypes.</body>
         </ownedComment>
       </ownedAttribute>
@@ -6869,186 +6872,186 @@
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g0SybdwbEeCT5O2F6sGn5g" name="lowerBound" visibility="public" bodyCondition="_g0Syb9wbEeCT5O2F6sGn5g" isQuery="true" redefinedOperation="_g1PNkNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0SybtwbEeCT5O2F6sGn5g" annotatedElement="_g0SybdwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VZWYWhE9EeGOffqMW1YiZA" name="lowerBound" visibility="public" bodyCondition="_VZWYXBE9EeGOffqMW1YiZA" isQuery="true" redefinedOperation="_VaK3sxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZWYWxE9EeGOffqMW1YiZA" annotatedElement="_VZWYWhE9EeGOffqMW1YiZA">
           <body>The query lowerBound() returns the lower bound of the multiplicity as an Integer. This is a redefinition of the default lower bound, which normally, for MultiplicityElements, evaluates to 1 if empty.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g0Syb9wbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g0SybdwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0SycNwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VZWYXBE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VZWYWhE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZWYXRE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = lowerBound = if lowerValue->isEmpty() then 0 else lowerValue->IntegerValue() endif</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g0SycdwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VZWYXhE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0SyctwbEeCT5O2F6sGn5g"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZWYXxE9EeGOffqMW1YiZA"/>
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0TZcNwbEeCT5O2F6sGn5g" name="ExtensionPoint">
-      <ownedComment xmi:id="_g0TZcdwbEeCT5O2F6sGn5g" annotatedElement="_g0TZcNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZXmcBE9EeGOffqMW1YiZA" name="ExtensionPoint">
+      <ownedComment xmi:id="_VZXmcRE9EeGOffqMW1YiZA" annotatedElement="_VZXmcBE9EeGOffqMW1YiZA">
         <body>An extension point identifies a point in the behavior of a use case where that behavior can be extended by the behavior of some other (extending) use case, as specified by an extend relationship.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0TZctwbEeCT5O2F6sGn5g" name="must_have_name" constrainedElement="_g0TZcNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0TZc9wbEeCT5O2F6sGn5g" annotatedElement="_g0TZctwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZXmchE9EeGOffqMW1YiZA" name="must_have_name" constrainedElement="_VZXmcBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZXmcxE9EeGOffqMW1YiZA" annotatedElement="_VZXmchE9EeGOffqMW1YiZA">
           <body>An ExtensionPoint must have a name.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0TZdNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZXmdBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.name->notEmpty ()</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0TZddwbEeCT5O2F6sGn5g" general="_uCRA4La-EeCRxrN1JUGuxA"/>
-      <ownedAttribute xmi:id="_g0TZdtwbEeCT5O2F6sGn5g" name="useCase" visibility="public" type="_g2WA0NwbEeCT5O2F6sGn5g" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_gyc_VNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0TZd9wbEeCT5O2F6sGn5g" annotatedElement="_g0TZdtwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VZXmdRE9EeGOffqMW1YiZA" general="_uCRA4La-EeCRxrN1JUGuxA"/>
+      <ownedAttribute xmi:id="_VZXmdhE9EeGOffqMW1YiZA" name="useCase" visibility="public" type="_VfFM4BE9EeGOffqMW1YiZA" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_VTavcBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZXmdxE9EeGOffqMW1YiZA" annotatedElement="_VZXmdhE9EeGOffqMW1YiZA">
           <body>References the use case that owns this extension point.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_UL0VYLbAEeCRxrN1JUGuxA" name="Feature" isAbstract="true">
-      <ownedComment xmi:id="_g0TZeNwbEeCT5O2F6sGn5g" annotatedElement="_UL0VYLbAEeCRxrN1JUGuxA">
+      <ownedComment xmi:id="_VZXmeBE9EeGOffqMW1YiZA" annotatedElement="_UL0VYLbAEeCRxrN1JUGuxA">
         <body>A feature declares a behavioral or structural characteristic of instances of classifiers.</body>
       </ownedComment>
-      <generalization xmi:id="_g0TZedwbEeCT5O2F6sGn5g" general="_uCRA4La-EeCRxrN1JUGuxA"/>
-      <ownedAttribute xmi:id="_YUdlwLbAEeCRxrN1JUGuxA" name="featuringClassifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" isReadOnly="true" isDerived="true" isDerivedUnion="true" subsettedProperty="_gyjF9NwbEeCT5O2F6sGn5g" association="_gyc_VtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0TZetwbEeCT5O2F6sGn5g" annotatedElement="_YUdlwLbAEeCRxrN1JUGuxA">
+      <generalization xmi:id="_VZXmeRE9EeGOffqMW1YiZA" general="_uCRA4La-EeCRxrN1JUGuxA"/>
+      <ownedAttribute xmi:id="_YUdlwLbAEeCRxrN1JUGuxA" name="featuringClassifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" isReadOnly="true" isDerived="true" isDerivedUnion="true" subsettedProperty="_VTwttRE9EeGOffqMW1YiZA" association="_VTavchE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZXmehE9EeGOffqMW1YiZA" annotatedElement="_YUdlwLbAEeCRxrN1JUGuxA">
           <body>The Classifiers that have this Feature as a feature.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0TZe9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0TZfNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZXmexE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZXmfBE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0UAgNwbEeCT5O2F6sGn5g" name="isStatic" visibility="public">
-        <ownedComment xmi:id="_g0UAgdwbEeCT5O2F6sGn5g" annotatedElement="_g0UAgNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZYNgBE9EeGOffqMW1YiZA" name="isStatic" visibility="public">
+        <ownedComment xmi:id="_VZYNgRE9EeGOffqMW1YiZA" annotatedElement="_VZYNgBE9EeGOffqMW1YiZA">
           <body>Specifies whether this feature characterizes individual instances classified by the classifier (false) or the classifier itself (true).</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g0UAgtwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VZYNghE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0UAg9wbEeCT5O2F6sGn5g" name="FinalNode" isAbstract="true">
-      <ownedComment xmi:id="_g0UAhNwbEeCT5O2F6sGn5g" annotatedElement="_g0UAg9wbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZY0kBE9EeGOffqMW1YiZA" name="FinalNode" isAbstract="true">
+      <ownedComment xmi:id="_VZY0kRE9EeGOffqMW1YiZA" annotatedElement="_VZY0kBE9EeGOffqMW1YiZA">
         <body>A final node is an abstract control node at which a flow in an activity stops.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0UAhdwbEeCT5O2F6sGn5g" name="no_outgoing_edges" constrainedElement="_g0UAg9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0UAhtwbEeCT5O2F6sGn5g" annotatedElement="_g0UAhdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZY0khE9EeGOffqMW1YiZA" name="no_outgoing_edges" constrainedElement="_VZY0kBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZY0kxE9EeGOffqMW1YiZA" annotatedElement="_VZY0khE9EeGOffqMW1YiZA">
           <body>A final node has no outgoing edges.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0UAh9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZY0lBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0UAiNwbEeCT5O2F6sGn5g" general="_g0BFndwbEeCT5O2F6sGn5g"/>
+      <generalization xmi:id="_VZY0lRE9EeGOffqMW1YiZA" general="_VYdAcBE9EeGOffqMW1YiZA"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0UnkNwbEeCT5O2F6sGn5g" name="FinalState">
-      <ownedComment xmi:id="_g0UnkdwbEeCT5O2F6sGn5g" annotatedElement="_g0UnkNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZZboBE9EeGOffqMW1YiZA" name="FinalState">
+      <ownedComment xmi:id="_VZZboRE9EeGOffqMW1YiZA" annotatedElement="_VZZboBE9EeGOffqMW1YiZA">
         <body>A special kind of state signifying that the enclosing region is completed. If the enclosing region is directly contained in a state machine and all other regions in the state machine also are completed, then it means that the entire state machine is completed.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0UnktwbEeCT5O2F6sGn5g" name="no_exit_behavior" constrainedElement="_g0UnkNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Unk9wbEeCT5O2F6sGn5g" annotatedElement="_g0UnktwbEeCT5O2F6sGn5g">
-          <body>A final state has no exit behavior.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0UnlNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>self.exit->isEmpty()</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g0UnldwbEeCT5O2F6sGn5g" name="no_outgoing_transitions" constrainedElement="_g0UnkNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0UnltwbEeCT5O2F6sGn5g" annotatedElement="_g0UnldwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZZbohE9EeGOffqMW1YiZA" name="no_outgoing_transitions" constrainedElement="_VZZboBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZZboxE9EeGOffqMW1YiZA" annotatedElement="_VZZbohE9EeGOffqMW1YiZA">
           <body>A final state cannot have any outgoing transitions.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0Unl9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZZbpBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.outgoing->size() = 0</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g0UnmNwbEeCT5O2F6sGn5g" name="no_regions" constrainedElement="_g0UnkNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0UnmdwbEeCT5O2F6sGn5g" annotatedElement="_g0UnmNwbEeCT5O2F6sGn5g">
-          <body>A final state cannot have regions.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0UnmtwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>self.region->size() = 0</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g0Unm9wbEeCT5O2F6sGn5g" name="cannot_reference_submachine" constrainedElement="_g0UnkNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0UnnNwbEeCT5O2F6sGn5g" annotatedElement="_g0Unm9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZZbpRE9EeGOffqMW1YiZA" name="cannot_reference_submachine" constrainedElement="_VZZboBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZZbphE9EeGOffqMW1YiZA" annotatedElement="_VZZbpRE9EeGOffqMW1YiZA">
           <body>A final state cannot reference a submachine.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0UnndwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZZbpxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.submachine->isEmpty()</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g0UnntwbEeCT5O2F6sGn5g" name="no_entry_behavior" constrainedElement="_g0UnkNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Unn9wbEeCT5O2F6sGn5g" annotatedElement="_g0UnntwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZZbqBE9EeGOffqMW1YiZA" name="no_exit_behavior" constrainedElement="_VZZboBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZZbqRE9EeGOffqMW1YiZA" annotatedElement="_VZZbqBE9EeGOffqMW1YiZA">
+          <body>A final state has no exit behavior.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZZbqhE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>self.exit->isEmpty()</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VZZbqxE9EeGOffqMW1YiZA" name="no_entry_behavior" constrainedElement="_VZZboBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZZbrBE9EeGOffqMW1YiZA" annotatedElement="_VZZbqxE9EeGOffqMW1YiZA">
           <body>A final state has no entry behavior.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0UnoNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZZbrRE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.entry->isEmpty()</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g0UnodwbEeCT5O2F6sGn5g" name="no_state_behavior" constrainedElement="_g0UnkNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0UnotwbEeCT5O2F6sGn5g" annotatedElement="_g0UnodwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZZbrhE9EeGOffqMW1YiZA" name="no_state_behavior" constrainedElement="_VZZboBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZZbrxE9EeGOffqMW1YiZA" annotatedElement="_VZZbrhE9EeGOffqMW1YiZA">
           <body>A final state has no state (doActivity) behavior.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0Uno9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZZbsBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.doActivity->isEmpty()</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0UnpNwbEeCT5O2F6sGn5g" general="_g2Ce0NwbEeCT5O2F6sGn5g"/>
+      <ownedRule xmi:id="_VZZbsRE9EeGOffqMW1YiZA" name="no_regions" constrainedElement="_VZZboBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZZbshE9EeGOffqMW1YiZA" annotatedElement="_VZZbsRE9EeGOffqMW1YiZA">
+          <body>A final state cannot have regions.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZZbsxE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>self.region->size() = 0</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VZZbtBE9EeGOffqMW1YiZA" general="_VeRUkBE9EeGOffqMW1YiZA"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0UnpdwbEeCT5O2F6sGn5g" name="FlowFinalNode">
-      <ownedComment xmi:id="_g0UnptwbEeCT5O2F6sGn5g" annotatedElement="_g0UnpdwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZaCsBE9EeGOffqMW1YiZA" name="FlowFinalNode">
+      <ownedComment xmi:id="_VZaCsRE9EeGOffqMW1YiZA" annotatedElement="_VZaCsBE9EeGOffqMW1YiZA">
         <body>A flow final node is a final node that terminates a flow.</body>
       </ownedComment>
-      <generalization xmi:id="_g0Unp9wbEeCT5O2F6sGn5g" general="_g0UAg9wbEeCT5O2F6sGn5g"/>
+      <generalization xmi:id="_VZaCshE9EeGOffqMW1YiZA" general="_VZY0kBE9EeGOffqMW1YiZA"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0UnqNwbEeCT5O2F6sGn5g" name="ForkNode">
-      <ownedComment xmi:id="_g0UnqdwbEeCT5O2F6sGn5g" annotatedElement="_g0UnqNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZaCsxE9EeGOffqMW1YiZA" name="ForkNode">
+      <ownedComment xmi:id="_VZaCtBE9EeGOffqMW1YiZA" annotatedElement="_VZaCsxE9EeGOffqMW1YiZA">
         <body>A fork node is a control node that splits a flow into multiple concurrent flows.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0UnqtwbEeCT5O2F6sGn5g" name="edges" constrainedElement="_g0UnqNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Unq9wbEeCT5O2F6sGn5g" annotatedElement="_g0UnqtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZaCtRE9EeGOffqMW1YiZA" name="edges" constrainedElement="_VZaCsxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZaCthE9EeGOffqMW1YiZA" annotatedElement="_VZaCtRE9EeGOffqMW1YiZA">
           <body>The edges coming into and out of a fork node must be either all object flows or all control flows.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0UnrNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZaCtxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g0UnrdwbEeCT5O2F6sGn5g" name="one_incoming_edge" constrainedElement="_g0UnqNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0UnrtwbEeCT5O2F6sGn5g" annotatedElement="_g0UnrdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZaCuBE9EeGOffqMW1YiZA" name="one_incoming_edge" constrainedElement="_VZaCsxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZaCuRE9EeGOffqMW1YiZA" annotatedElement="_VZaCuBE9EeGOffqMW1YiZA">
           <body>A fork node has one incoming edge.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0Unr9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZaCuhE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0UnsNwbEeCT5O2F6sGn5g" general="_g0BFndwbEeCT5O2F6sGn5g"/>
+      <generalization xmi:id="_VZaCuxE9EeGOffqMW1YiZA" general="_VYdAcBE9EeGOffqMW1YiZA"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0VOoNwbEeCT5O2F6sGn5g" name="FunctionBehavior">
-      <ownedComment xmi:id="_g0VOodwbEeCT5O2F6sGn5g" annotatedElement="_g0VOoNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZapwBE9EeGOffqMW1YiZA" name="FunctionBehavior">
+      <ownedComment xmi:id="_VZapwRE9EeGOffqMW1YiZA" annotatedElement="_VZapwBE9EeGOffqMW1YiZA">
         <body>A function behavior is an opaque behavior that does not access or modify any objects or other external data.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0VOotwbEeCT5O2F6sGn5g" name="one_output_parameter" constrainedElement="_g0VOoNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0VOo9wbEeCT5O2F6sGn5g" annotatedElement="_g0VOotwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZapwhE9EeGOffqMW1YiZA" name="one_output_parameter" constrainedElement="_VZapwBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZapwxE9EeGOffqMW1YiZA" annotatedElement="_VZapwhE9EeGOffqMW1YiZA">
           <body>A function behavior has at least one output parameter.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0VOpNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZapxBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.ownedParameters->
   select(p | p.direction=#out or p.direction=#inout or p.direction=#return)->size() >= 1</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g0VOpdwbEeCT5O2F6sGn5g" name="types_of_parameters" constrainedElement="_g0VOoNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0VOptwbEeCT5O2F6sGn5g" annotatedElement="_g0VOpdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZapxRE9EeGOffqMW1YiZA" name="types_of_parameters" constrainedElement="_VZapwBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZapxhE9EeGOffqMW1YiZA" annotatedElement="_VZapxRE9EeGOffqMW1YiZA">
           <body>The types of parameters are all data types, which may not nest anything but other datatypes.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0VOp9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZapxxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>def: hasAllDataTypeAttributes(d : DataType) : Boolean =
   d.ownedAttribute->forAll(a |
@@ -7058,213 +7061,204 @@
   p.oclIsTypeOf(DataType) and hasAllDataTypeAttributes(p))</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0VOqNwbEeCT5O2F6sGn5g" general="_k9tagLG4EeCDe8CO90iVKQ"/>
+      <generalization xmi:id="_VZapyBE9EeGOffqMW1YiZA" general="_k9tagLG4EeCDe8CO90iVKQ"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0V1sNwbEeCT5O2F6sGn5g" name="Gate">
-      <ownedComment xmi:id="_g0V1sdwbEeCT5O2F6sGn5g" annotatedElement="_g0V1sNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZeUIBE9EeGOffqMW1YiZA" name="Gate">
+      <ownedComment xmi:id="_VZeUIRE9EeGOffqMW1YiZA" annotatedElement="_VZeUIBE9EeGOffqMW1YiZA">
         <body>A gate is a connection point for relating a message outside an interaction fragment with a message inside the interaction fragment.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0V1stwbEeCT5O2F6sGn5g" name="messages_combined_fragment" constrainedElement="_g0V1sNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0V1s9wbEeCT5O2F6sGn5g" annotatedElement="_g0V1stwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZeUIhE9EeGOffqMW1YiZA" name="messages_combined_fragment" constrainedElement="_VZeUIBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZeUIxE9EeGOffqMW1YiZA" annotatedElement="_VZeUIhE9EeGOffqMW1YiZA">
           <body>The message leading to/from an (expression) Gate within a CombinedFragment must correspond to the message leading from/to the CombinedFragment on its outside.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0V1tNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZeUJBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g0V1tdwbEeCT5O2F6sGn5g" name="messages_actual_gate" constrainedElement="_g0V1sNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0V1ttwbEeCT5O2F6sGn5g" annotatedElement="_g0V1tdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZeUJRE9EeGOffqMW1YiZA" name="messages_actual_gate" constrainedElement="_VZeUIBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZeUJhE9EeGOffqMW1YiZA" annotatedElement="_VZeUJRE9EeGOffqMW1YiZA">
           <body>The message leading to/from an actualGate of an InteractionUse must correspond to the message leading from/to the formalGate with the same name of the Interaction referenced by the InteractionUse.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0V1t9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZeUJxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0V1uNwbEeCT5O2F6sGn5g" general="_g1MKQNwbEeCT5O2F6sGn5g"/>
+      <generalization xmi:id="_VZeUKBE9EeGOffqMW1YiZA" general="_VaEKABE9EeGOffqMW1YiZA"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0V1udwbEeCT5O2F6sGn5g" name="GeneralOrdering">
-      <ownedComment xmi:id="_g0V1utwbEeCT5O2F6sGn5g" annotatedElement="_g0V1udwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZe7MBE9EeGOffqMW1YiZA" name="GeneralOrdering">
+      <ownedComment xmi:id="_VZe7MRE9EeGOffqMW1YiZA" annotatedElement="_VZe7MBE9EeGOffqMW1YiZA">
         <body>A general ordering represents a binary relation between two occurrence specifications, to describe that one occurrence specification must occur before the other in a valid trace. This mechanism provides the ability to define partial orders of occurrence cpecifications that may otherwise not have a specified order.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0V1u9wbEeCT5O2F6sGn5g" name="irreflexsive_transitive_closure" constrainedElement="_g0V1udwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0V1vNwbEeCT5O2F6sGn5g" annotatedElement="_g0V1u9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZe7MhE9EeGOffqMW1YiZA" name="irreflexsive_transitive_closure" constrainedElement="_VZe7MBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZe7MxE9EeGOffqMW1YiZA" annotatedElement="_VZe7MhE9EeGOffqMW1YiZA">
           <body>An occurrence specification must not be ordered relative to itself through a series of general orderings. (In other words, the transitive closure of the general orderings is irreflexive.)</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0V1vdwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZe7NBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>start.lifeline = finish.lifeline</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0V1vtwbEeCT5O2F6sGn5g" general="_csVgUGvtEdqG6fBIPwe-mw"/>
-      <ownedAttribute xmi:id="_g0V1v9wbEeCT5O2F6sGn5g" name="after" visibility="public" type="_g1XwcNwbEeCT5O2F6sGn5g" association="_gy9Vo9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0V1wNwbEeCT5O2F6sGn5g" annotatedElement="_g0V1v9wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VZe7NRE9EeGOffqMW1YiZA" general="_csVgUGvtEdqG6fBIPwe-mw"/>
+      <ownedAttribute xmi:id="_VZe7NhE9EeGOffqMW1YiZA" name="after" visibility="public" type="_VbdRIBE9EeGOffqMW1YiZA" association="_VUqFlxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZe7NxE9EeGOffqMW1YiZA" annotatedElement="_VZe7NhE9EeGOffqMW1YiZA">
           <body>The OccurrenceSpecification referenced comes after the OccurrenceSpecification referenced by before.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0V1wdwbEeCT5O2F6sGn5g" name="before" visibility="public" type="_g1XwcNwbEeCT5O2F6sGn5g" association="_gySnUtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0V1wtwbEeCT5O2F6sGn5g" annotatedElement="_g0V1wdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZe7OBE9EeGOffqMW1YiZA" name="before" visibility="public" type="_VbdRIBE9EeGOffqMW1YiZA" association="_VS_RoBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZe7ORE9EeGOffqMW1YiZA" annotatedElement="_VZe7OBE9EeGOffqMW1YiZA">
           <body>The OccurrenceSpecification referenced comes before the OccurrenceSpecification referenced by after.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_C7AF4GwREdq14q0ETb1t3g" name="Generalization">
-      <ownedComment xmi:id="_g0V1w9wbEeCT5O2F6sGn5g" annotatedElement="_C7AF4GwREdq14q0ETb1t3g">
+      <ownedComment xmi:id="_VZe7OhE9EeGOffqMW1YiZA" annotatedElement="_C7AF4GwREdq14q0ETb1t3g">
         <body>A generalization is a taxonomic relationship between a more general classifier and a more specific classifier. Each instance of the specific classifier is also an indirect instance of the general classifier. Thus, the specific classifier inherits the features of the more general classifier.</body>
       </ownedComment>
-      <ownedComment xmi:id="_g0V1xNwbEeCT5O2F6sGn5g" annotatedElement="_C7AF4GwREdq14q0ETb1t3g">
+      <ownedComment xmi:id="_VZe7OxE9EeGOffqMW1YiZA" annotatedElement="_C7AF4GwREdq14q0ETb1t3g">
         <body>A generalization relates a specific classifier to a more general classifier, and is owned by the specific classifier.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0V1xdwbEeCT5O2F6sGn5g" name="generalization_same_classifier" constrainedElement="_C7AF4GwREdq14q0ETb1t3g">
-        <ownedComment xmi:id="_g0V1xtwbEeCT5O2F6sGn5g" annotatedElement="_g0V1xdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZfiQBE9EeGOffqMW1YiZA" name="generalization_same_classifier" constrainedElement="_C7AF4GwREdq14q0ETb1t3g">
+        <ownedComment xmi:id="_VZfiQRE9EeGOffqMW1YiZA" annotatedElement="_VZfiQBE9EeGOffqMW1YiZA">
           <body>Every Generalization associated with a given GeneralizationSet must have the same general Classifier. That is, all Generalizations for a particular GeneralizationSet must have the same superclass.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0V1x9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZfiQhE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0WcwNwbEeCT5O2F6sGn5g" general="_JBgfoKPAEdqi_5gqUMOQtA"/>
-      <ownedAttribute xmi:id="_g0WcwdwbEeCT5O2F6sGn5g" name="general" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" subsettedProperty="_g0HzRNwbEeCT5O2F6sGn5g" association="_gyeNdNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0WcwtwbEeCT5O2F6sGn5g" annotatedElement="_g0WcwdwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VZfiQxE9EeGOffqMW1YiZA" general="_JBgfoKPAEdqi_5gqUMOQtA"/>
+      <ownedAttribute xmi:id="_VZfiRBE9EeGOffqMW1YiZA" name="general" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" subsettedProperty="_VY66iBE9EeGOffqMW1YiZA" association="_VTlHgBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZfiRRE9EeGOffqMW1YiZA" annotatedElement="_VZfiRBE9EeGOffqMW1YiZA">
           <body>References the general classifier in the Generalization relationship.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0Wcw9wbEeCT5O2F6sGn5g" name="generalizationSet" visibility="public" type="_g0XD0NwbEeCT5O2F6sGn5g" association="_gyeNeNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0WcxNwbEeCT5O2F6sGn5g" annotatedElement="_g0Wcw9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZfiRhE9EeGOffqMW1YiZA" name="generalizationSet" visibility="public" type="_VZgwYBE9EeGOffqMW1YiZA" association="_VTlHhBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZfiRxE9EeGOffqMW1YiZA" annotatedElement="_VZfiRhE9EeGOffqMW1YiZA">
           <body>Designates a set in which instances of Generalization is considered members.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0WcxdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0WcxtwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZfiSBE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZfiSRE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0Wcx9wbEeCT5O2F6sGn5g" name="isSubstitutable" visibility="public">
-        <ownedComment xmi:id="_g0WcyNwbEeCT5O2F6sGn5g" annotatedElement="_g0Wcx9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZgJUBE9EeGOffqMW1YiZA" name="isSubstitutable" visibility="public">
+        <ownedComment xmi:id="_VZgJURE9EeGOffqMW1YiZA" annotatedElement="_VZgJUBE9EeGOffqMW1YiZA">
           <body>Indicates whether the specific classifier can be used wherever the general classifier can be used. If true, the execution traces of the specific classifier will be a superset of the execution traces of the general classifier.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0WcydwbEeCT5O2F6sGn5g"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g0WcytwbEeCT5O2F6sGn5g" value="true"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZgJUhE9EeGOffqMW1YiZA"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VZgJUxE9EeGOffqMW1YiZA" value="true"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0Wcy9wbEeCT5O2F6sGn5g" name="specific" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" subsettedProperty="_g0HzQdwbEeCT5O2F6sGn5g _g0JodNwbEeCT5O2F6sGn5g" association="_gyeNedwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0WczNwbEeCT5O2F6sGn5g" annotatedElement="_g0Wcy9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZgJVBE9EeGOffqMW1YiZA" name="specific" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw _VY66hRE9EeGOffqMW1YiZA" association="_VTlHhRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZgJVRE9EeGOffqMW1YiZA" annotatedElement="_VZgJVBE9EeGOffqMW1YiZA">
           <body>References the specializing classifier in the Generalization relationship.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0XD0NwbEeCT5O2F6sGn5g" name="GeneralizationSet">
-      <ownedComment xmi:id="_g0XD0dwbEeCT5O2F6sGn5g" annotatedElement="_g0XD0NwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZgwYBE9EeGOffqMW1YiZA" name="GeneralizationSet">
+      <ownedComment xmi:id="_VZgwYRE9EeGOffqMW1YiZA" annotatedElement="_VZgwYBE9EeGOffqMW1YiZA">
         <body>A generalization set is a packageable element whose instances define collections of subsets of generalization relationships.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0XD0twbEeCT5O2F6sGn5g" name="generalization_same_classifier" constrainedElement="_g0XD0NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0XD09wbEeCT5O2F6sGn5g" annotatedElement="_g0XD0twbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZgwYhE9EeGOffqMW1YiZA" name="maps_to_generalization_set" constrainedElement="_VZgwYBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZgwYxE9EeGOffqMW1YiZA" annotatedElement="_VZgwYhE9EeGOffqMW1YiZA">
+          <body>The Classifier that maps to a GeneralizationSet may neither be a specific nor a general Classifier in any of the Generalization relationships defined for that GeneralizationSet. In other words, a power type may not be an instance of itself nor may its instances be its subclasses.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZgwZBE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VZgwZRE9EeGOffqMW1YiZA" name="generalization_same_classifier" constrainedElement="_VZgwYBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZgwZhE9EeGOffqMW1YiZA" annotatedElement="_VZgwZRE9EeGOffqMW1YiZA">
           <body>Every Generalization associated with a particular GeneralizationSet must have the same general Classifier.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0XD1NwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZgwZxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>generalization->collect(g | g.general)->asSet()->size() &lt;= 1</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g0XD1dwbEeCT5O2F6sGn5g" name="maps_to_generalization_set" constrainedElement="_g0XD0NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0XD1twbEeCT5O2F6sGn5g" annotatedElement="_g0XD1dwbEeCT5O2F6sGn5g">
-          <body>The Classifier that maps to a GeneralizationSet may neither be a specific nor a general Classifier in any of the Generalization relationships defined for that GeneralizationSet. In other words, a power type may not be an instance of itself nor may its instances be its subclasses.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0XD19wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <generalization xmi:id="_g0XD2NwbEeCT5O2F6sGn5g" general="_jKxnwGwLEdq7X4sGURiZYA"/>
-      <ownedAttribute xmi:id="_g0XD2dwbEeCT5O2F6sGn5g" name="generalization" visibility="public" type="_C7AF4GwREdq14q0ETb1t3g" association="_gyeNeNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0XD2twbEeCT5O2F6sGn5g" annotatedElement="_g0XD2dwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VZgwaBE9EeGOffqMW1YiZA" general="_jKxnwGwLEdq7X4sGURiZYA"/>
+      <ownedAttribute xmi:id="_VZgwaRE9EeGOffqMW1YiZA" name="generalization" visibility="public" type="_C7AF4GwREdq14q0ETb1t3g" association="_VTlHhBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZgwahE9EeGOffqMW1YiZA" annotatedElement="_VZgwaRE9EeGOffqMW1YiZA">
           <body>Designates the instances of Generalization which are members of a given GeneralizationSet.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0XD29wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0XD3NwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZgwaxE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZgwbBE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0XD3dwbEeCT5O2F6sGn5g" name="isCovering" visibility="public">
-        <ownedComment xmi:id="_g0XD3twbEeCT5O2F6sGn5g" annotatedElement="_g0XD3dwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZgwbRE9EeGOffqMW1YiZA" name="isCovering" visibility="public">
+        <ownedComment xmi:id="_VZgwbhE9EeGOffqMW1YiZA" annotatedElement="_VZgwbRE9EeGOffqMW1YiZA">
           <body>Indicates (via the associated Generalizations) whether or not the set of specific Classifiers are covering for a particular general classifier. When isCovering is true, every instance of a particular general Classifier is also an instance of at least one of its specific Classifiers for the GeneralizationSet. When isCovering is false, there are one or more instances of the particular general Classifier that are not instances of at least one of its specific Classifiers defined for the GeneralizationSet.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g0XD39wbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VZgwbxE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0XD4NwbEeCT5O2F6sGn5g" name="isDisjoint" visibility="public">
-        <ownedComment xmi:id="_g0XD4dwbEeCT5O2F6sGn5g" annotatedElement="_g0XD4NwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZgwcBE9EeGOffqMW1YiZA" name="isDisjoint" visibility="public">
+        <ownedComment xmi:id="_VZgwcRE9EeGOffqMW1YiZA" annotatedElement="_VZgwcBE9EeGOffqMW1YiZA">
           <body>Indicates whether or not the set of specific Classifiers in a Generalization relationship have instance in common. If isDisjoint is true, the specific Classifiers for a particular GeneralizationSet have no members in common; that is, their intersection is empty. If isDisjoint is false, the specific Classifiers in a particular GeneralizationSet have one or more members in common; that is, their intersection is not empty. For example, Person could have two Generalization relationships, each with the different specific Classifier: Manager or Staff. This would be disjoint because every instance of Person must either be a Manager or Staff. In contrast, Person could have two Generalization relationships involving two specific (and non-covering) Classifiers: Sales Person and Manager. This GeneralizationSet would not be disjoint because there are instances of Person which can be a Sales Person and a Manager.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g0XD4twbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VZgwchE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0XD49wbEeCT5O2F6sGn5g" name="powertype" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" association="_gys29twbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0XD5NwbEeCT5O2F6sGn5g" annotatedElement="_g0XD49wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZgwcxE9EeGOffqMW1YiZA" name="powertype" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" association="_VUJvRhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZgwdBE9EeGOffqMW1YiZA" annotatedElement="_VZgwcxE9EeGOffqMW1YiZA">
           <body>Designates the Classifier that is defined as the power type for the associated GeneralizationSet.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0XD5dwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZgwdRE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_nDq0wJPzEdqpjIDDFZ2Hgw" name="Image">
-      <ownedComment xmi:id="_g0XD5twbEeCT5O2F6sGn5g" annotatedElement="_nDq0wJPzEdqpjIDDFZ2Hgw">
+      <ownedComment xmi:id="_VZhXcBE9EeGOffqMW1YiZA" annotatedElement="_nDq0wJPzEdqpjIDDFZ2Hgw">
         <body>Physical definition of a graphical image.</body>
       </ownedComment>
-      <generalization xmi:id="_g0XD59wbEeCT5O2F6sGn5g" general="_kl90MGvbEdq4DLWZOhbdEA"/>
+      <generalization xmi:id="_VZhXcRE9EeGOffqMW1YiZA" general="_kl90MGvbEdq4DLWZOhbdEA"/>
       <ownedAttribute xmi:id="_N4PwQLG3EeCDe8CO90iVKQ" name="content" visibility="public">
-        <ownedComment xmi:id="_g0XD6NwbEeCT5O2F6sGn5g" annotatedElement="_N4PwQLG3EeCDe8CO90iVKQ">
+        <ownedComment xmi:id="_VZhXchE9EeGOffqMW1YiZA" annotatedElement="_N4PwQLG3EeCDe8CO90iVKQ">
           <body>This contains the serialization of the image according to the format. The value could represent a bitmap, image such as a GIF file, or drawing 'instructions' using a standard such as Scalable Vector Graphic (SVG) (which is XML based).</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0XD6dwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZhXcxE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
       <ownedAttribute xmi:id="_j4KkMLG3EeCDe8CO90iVKQ" name="format" visibility="public">
-        <ownedComment xmi:id="_g0Xq4NwbEeCT5O2F6sGn5g" annotatedElement="_j4KkMLG3EeCDe8CO90iVKQ">
+        <ownedComment xmi:id="_VZlo4BE9EeGOffqMW1YiZA" annotatedElement="_j4KkMLG3EeCDe8CO90iVKQ">
           <body>This indicates the format of the content - which is how the string content should be interpreted. The following values are reserved: SVG, GIF, PNG, JPG, WMF, EMF, BMP. In addition the prefix 'MIME: ' is also reserved. This option can be used as an alternative to express the reserved values above, for example &quot;SVG&quot; could instead be expressed as &quot;MIME: image/svg+xml&quot;.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0Xq4dwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZlo4RE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
       <ownedAttribute xmi:id="_ZCc-4LG3EeCDe8CO90iVKQ" name="location" visibility="public">
-        <ownedComment xmi:id="_g0Xq4twbEeCT5O2F6sGn5g" annotatedElement="_ZCc-4LG3EeCDe8CO90iVKQ">
+        <ownedComment xmi:id="_VZmP8BE9EeGOffqMW1YiZA" annotatedElement="_ZCc-4LG3EeCDe8CO90iVKQ">
           <body>This contains a location that can be used by a tool to locate the image as an alternative to embedding it in the stereotype.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0Xq49wbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZmP8RE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0YR8NwbEeCT5O2F6sGn5g" name="Include">
-      <ownedComment xmi:id="_g0YR8dwbEeCT5O2F6sGn5g" annotatedElement="_g0YR8NwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZneEBE9EeGOffqMW1YiZA" name="Include">
+      <ownedComment xmi:id="_VZneERE9EeGOffqMW1YiZA" annotatedElement="_VZneEBE9EeGOffqMW1YiZA">
         <body>An include relationship defines that a use case contains the behavior defined in another use case.</body>
       </ownedComment>
-      <generalization xmi:id="_g0YR8twbEeCT5O2F6sGn5g" general="_JBgfoKPAEdqi_5gqUMOQtA"/>
-      <generalization xmi:id="_g0YR89wbEeCT5O2F6sGn5g" general="_csVgUGvtEdqG6fBIPwe-mw"/>
-      <ownedAttribute xmi:id="_g0YR9NwbEeCT5O2F6sGn5g" name="addition" visibility="public" type="_g2WA0NwbEeCT5O2F6sGn5g" subsettedProperty="_g0HzRNwbEeCT5O2F6sGn5g" association="_gySAOtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0YR9dwbEeCT5O2F6sGn5g" annotatedElement="_g0YR9NwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VZneEhE9EeGOffqMW1YiZA" general="_JBgfoKPAEdqi_5gqUMOQtA"/>
+      <generalization xmi:id="_VZneExE9EeGOffqMW1YiZA" general="_csVgUGvtEdqG6fBIPwe-mw"/>
+      <ownedAttribute xmi:id="_VZneFBE9EeGOffqMW1YiZA" name="addition" visibility="public" type="_VfFM4BE9EeGOffqMW1YiZA" subsettedProperty="_VY66iBE9EeGOffqMW1YiZA" association="_VS81ZBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZneFRE9EeGOffqMW1YiZA" annotatedElement="_VZneFBE9EeGOffqMW1YiZA">
           <body>References the use case that is to be included.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0YR9twbEeCT5O2F6sGn5g" name="includingCase" visibility="public" type="_g2WA0NwbEeCT5O2F6sGn5g" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA _g0HzQdwbEeCT5O2F6sGn5g" association="_gyfbntwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0YR99wbEeCT5O2F6sGn5g" annotatedElement="_g0YR9twbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZneFhE9EeGOffqMW1YiZA" name="includingCase" visibility="public" type="_VfFM4BE9EeGOffqMW1YiZA" subsettedProperty="_VY66hRE9EeGOffqMW1YiZA _1vzv0LbIEeCRxrN1JUGuxA" association="_VToK1BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZneFxE9EeGOffqMW1YiZA" annotatedElement="_VZneFhE9EeGOffqMW1YiZA">
           <body>References the use case which will include the addition and owns the include relationship.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0Y5ANwbEeCT5O2F6sGn5g" name="InformationFlow">
-      <ownedComment xmi:id="_g0Y5AdwbEeCT5O2F6sGn5g" annotatedElement="_g0Y5ANwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZosMBE9EeGOffqMW1YiZA" name="InformationFlow">
+      <ownedComment xmi:id="_VZosMRE9EeGOffqMW1YiZA" annotatedElement="_VZosMBE9EeGOffqMW1YiZA">
         <body>An information flow specifies that one or more information items circulates from its sources to its targets. Information flows require some kind of information channel for transmitting information items from the source to the destination. An information channel is represented in various ways depending on the nature of its sources and targets. It may be represented by connectors, links, associations, or even dependencies. For example, if the source and destination are parts in some composite structure such as a collaboration, then the information channel is likely to be represented by a connector between them. Or, if the source and target are objects (which are a kind of instance specification), they may be represented by a link that joins the two, and so on.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0Y5AtwbEeCT5O2F6sGn5g" name="must_conform" constrainedElement="_g0Y5ANwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Y5A9wbEeCT5O2F6sGn5g" annotatedElement="_g0Y5AtwbEeCT5O2F6sGn5g">
-          <body>The sources and targets of the information flow must conform with the sources and targets or conversely the targets and sources of the realization relationships.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0Y5BNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g0Y5BdwbEeCT5O2F6sGn5g" name="sources_and_targets_kind" constrainedElement="_g0Y5ANwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Y5BtwbEeCT5O2F6sGn5g" annotatedElement="_g0Y5BdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZosMhE9EeGOffqMW1YiZA" name="sources_and_targets_kind" constrainedElement="_VZosMBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZosMxE9EeGOffqMW1YiZA" annotatedElement="_VZosMhE9EeGOffqMW1YiZA">
           <body>The sources and targets of the information flow can only be one of the following kind: Actor, Node, UseCase, Artifact, Class, Component, Port, Property, Interface, Package, ActivityNode, ActivityPartition and InstanceSpecification except when its classifier is a relationship (i.e. it represents a link).</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0Y5B9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZosNBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>(self.informationSource->forAll(p | p->oclIsKindOf(Actor) or oclIsKindOf(Node) or
   oclIsKindOf(UseCase) or oclIsKindOf(Artifact) or oclIsKindOf(Class) or
@@ -7278,74 +7272,101 @@
       oclIsKindOf(ActivityPartition) or oclIsKindOf(InstanceSpecification)))</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g0Y5CNwbEeCT5O2F6sGn5g" name="convey_classifiers" constrainedElement="_g0Y5ANwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Y5CdwbEeCT5O2F6sGn5g" annotatedElement="_g0Y5CNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZosNRE9EeGOffqMW1YiZA" name="must_conform" constrainedElement="_VZosMBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZosNhE9EeGOffqMW1YiZA" annotatedElement="_VZosNRE9EeGOffqMW1YiZA">
+          <body>The sources and targets of the information flow must conform with the sources and targets or conversely the targets and sources of the realization relationships.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZosNxE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VZosOBE9EeGOffqMW1YiZA" name="convey_classifiers" constrainedElement="_VZosMBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZosORE9EeGOffqMW1YiZA" annotatedElement="_VZosOBE9EeGOffqMW1YiZA">
           <body>An information flow can only convey classifiers that are allowed to represent an information item.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0Y5CtwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZosOhE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.conveyed.represented->forAll(p | p->oclIsKindOf(Class) or oclIsKindOf(Interface)
   or oclIsKindOf(InformationItem) or oclIsKindOf(Signal) or oclIsKindOf(Component))</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0Y5C9wbEeCT5O2F6sGn5g" general="_JBgfoKPAEdqi_5gqUMOQtA"/>
-      <generalization xmi:id="_g0Y5DNwbEeCT5O2F6sGn5g" general="_jKxnwGwLEdq7X4sGURiZYA"/>
-      <ownedAttribute xmi:id="_g0Y5DdwbEeCT5O2F6sGn5g" name="conveyed" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" association="_gyW4vNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Y5DtwbEeCT5O2F6sGn5g" annotatedElement="_g0Y5DdwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VZosOxE9EeGOffqMW1YiZA" general="_JBgfoKPAEdqi_5gqUMOQtA"/>
+      <generalization xmi:id="_VZosPBE9EeGOffqMW1YiZA" general="_jKxnwGwLEdq7X4sGURiZYA"/>
+      <ownedAttribute xmi:id="_VZosPRE9EeGOffqMW1YiZA" name="conveyed" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" association="_VTJptBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZosPhE9EeGOffqMW1YiZA" annotatedElement="_VZosPRE9EeGOffqMW1YiZA">
           <body>Specifies the information items that may circulate on this information flow.</body>
         </ownedComment>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0Y5D9wbEeCT5O2F6sGn5g" value="*"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZosPxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0Y5ENwbEeCT5O2F6sGn5g" name="informationSource" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw" subsettedProperty="_g0HzQdwbEeCT5O2F6sGn5g" association="_gygCoNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Y5EdwbEeCT5O2F6sGn5g" annotatedElement="_g0Y5ENwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZosQBE9EeGOffqMW1YiZA" name="informationSource" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw" subsettedProperty="_VY66hRE9EeGOffqMW1YiZA" association="_VTox4BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZosQRE9EeGOffqMW1YiZA" annotatedElement="_VZosQBE9EeGOffqMW1YiZA">
           <body>Defines from which source the conveyed InformationItems are initiated.</body>
         </ownedComment>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0Y5EtwbEeCT5O2F6sGn5g" value="*"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZosQhE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0Y5E9wbEeCT5O2F6sGn5g" name="informationTarget" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw" subsettedProperty="_g0HzRNwbEeCT5O2F6sGn5g" association="_gygCpNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Y5FNwbEeCT5O2F6sGn5g" annotatedElement="_g0Y5E9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZosQxE9EeGOffqMW1YiZA" name="informationTarget" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw" subsettedProperty="_VY66iBE9EeGOffqMW1YiZA" association="_VTpY8BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZosRBE9EeGOffqMW1YiZA" annotatedElement="_VZosQxE9EeGOffqMW1YiZA">
           <body>Defines to which target the conveyed InformationItems are directed.</body>
         </ownedComment>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0Y5FdwbEeCT5O2F6sGn5g" value="*"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZosRRE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0Y5FtwbEeCT5O2F6sGn5g" name="realization" visibility="public" type="_DH62EKPAEdqi_5gqUMOQtA" association="_gyusLNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Y5F9wbEeCT5O2F6sGn5g" annotatedElement="_g0Y5FtwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZosRhE9EeGOffqMW1YiZA" name="realization" visibility="public" type="_DH62EKPAEdqi_5gqUMOQtA" association="_VUOAsBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZosRxE9EeGOffqMW1YiZA" annotatedElement="_VZosRhE9EeGOffqMW1YiZA">
           <body>Determines which Relationship will realize the specified flow</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0Y5GNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0Y5GdwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZosSBE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZosSRE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0Y5GtwbEeCT5O2F6sGn5g" name="realizingActivityEdge" visibility="public" type="_gzZagNwbEeCT5O2F6sGn5g" association="_gyvTMNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Y5G9wbEeCT5O2F6sGn5g" annotatedElement="_g0Y5GtwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZosShE9EeGOffqMW1YiZA" name="realizingActivityEdge" visibility="public" type="_VVcIsBE9EeGOffqMW1YiZA" association="_VUOnwBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZosSxE9EeGOffqMW1YiZA" annotatedElement="_VZosShE9EeGOffqMW1YiZA">
           <body>Determines which ActivityEdges will realize the specified flow.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0Y5HNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0Y5HdwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZosTBE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZosTRE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0Y5HtwbEeCT5O2F6sGn5g" name="realizingConnector" visibility="public" type="_YxC2YLLWEeCsYvaJqFFivQ" association="_gyvTONwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0Y5H9wbEeCT5O2F6sGn5g" annotatedElement="_g0Y5HtwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZosThE9EeGOffqMW1YiZA" name="realizingConnector" visibility="public" type="_YxC2YLLWEeCsYvaJqFFivQ" association="_VUPO1BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZosTxE9EeGOffqMW1YiZA" annotatedElement="_VZosThE9EeGOffqMW1YiZA">
           <body>Determines which Connectors will realize the specified flow.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0Y5INwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0ZgENwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZosUBE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZosURE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0ZgEdwbEeCT5O2F6sGn5g" name="realizingMessage" visibility="public" type="_gfgNwGveEdq4DLWZOhbdEA" association="_gyvTPNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0ZgEtwbEeCT5O2F6sGn5g" annotatedElement="_g0ZgEdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZosUhE9EeGOffqMW1YiZA" name="realizingMessage" visibility="public" type="_gfgNwGveEdq4DLWZOhbdEA" association="_VUP14BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZosUxE9EeGOffqMW1YiZA" annotatedElement="_VZosUhE9EeGOffqMW1YiZA">
           <body>Determines which Messages will realize the specified flow.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0ZgE9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0ZgFNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZosVBE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZosVRE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0ZgFdwbEeCT5O2F6sGn5g" name="InformationItem">
-      <ownedComment xmi:id="_g0ZgFtwbEeCT5O2F6sGn5g" annotatedElement="_g0ZgFdwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZpTQBE9EeGOffqMW1YiZA" name="InformationItem">
+      <ownedComment xmi:id="_VZpTQRE9EeGOffqMW1YiZA" annotatedElement="_VZpTQBE9EeGOffqMW1YiZA">
         <body>An information item is an abstraction of all kinds of information that can be exchanged between objects. It is a kind of classifier intended for representing information in a very abstract way, one which cannot be instantiated.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0ZgF9wbEeCT5O2F6sGn5g" name="sources_and_targets" constrainedElement="_g0ZgFdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0ZgGNwbEeCT5O2F6sGn5g" annotatedElement="_g0ZgF9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZpTQhE9EeGOffqMW1YiZA" name="has_no" constrainedElement="_VZpTQBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZpTQxE9EeGOffqMW1YiZA" annotatedElement="_VZpTQhE9EeGOffqMW1YiZA">
+          <body>An informationItem has no feature, no generalization, and no associations.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZpTRBE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>self.generalization->isEmpty() and self.feature->isEmpty()</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VZpTRRE9EeGOffqMW1YiZA" name="not_instantiable" constrainedElement="_VZpTQBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZpTRhE9EeGOffqMW1YiZA" annotatedElement="_VZpTRRE9EeGOffqMW1YiZA">
+          <body>It is not instantiable.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZpTRxE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>isAbstract</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VZpTSBE9EeGOffqMW1YiZA" name="sources_and_targets" constrainedElement="_VZpTQBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZpTSRE9EeGOffqMW1YiZA" annotatedElement="_VZpTSBE9EeGOffqMW1YiZA">
           <body>The sources and targets of an information item (its related information flows) must designate subsets of the sources and targets of the representation information item, if any.The Classifiers that can realize an information item can only be of the following kind: Class, Interface, InformationItem, Signal, Component.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0ZgGdwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZpTShE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>(self.represented->select(p | p->oclIsKindOf(InformationItem))->forAll(p |
   p.informationFlow.source->forAll(q | self.informationFlow.source->include(q)) and
@@ -7354,146 +7375,128 @@
         oclIsKindOf(InformationItem) or oclIsKindOf(Signal) or oclIsKindOf(Component)))</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g0ZgGtwbEeCT5O2F6sGn5g" name="has_no" constrainedElement="_g0ZgFdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0ZgG9wbEeCT5O2F6sGn5g" annotatedElement="_g0ZgGtwbEeCT5O2F6sGn5g">
-          <body>An informationItem has no feature, no generalization, and no associations.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0ZgHNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>self.generalization->isEmpty() and self.feature->isEmpty()</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g0ZgHdwbEeCT5O2F6sGn5g" name="not_instantiable" constrainedElement="_g0ZgFdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0ZgHtwbEeCT5O2F6sGn5g" annotatedElement="_g0ZgHdwbEeCT5O2F6sGn5g">
-          <body>It is not instantiable.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0ZgH9wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>isAbstract</body>
-        </specification>
-      </ownedRule>
-      <generalization xmi:id="_g0ZgINwbEeCT5O2F6sGn5g" general="_6UV2QGwJEdq7X4sGURiZYA"/>
-      <ownedAttribute xmi:id="_g0ZgIdwbEeCT5O2F6sGn5g" name="represented" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" association="_gyzkoNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0ZgItwbEeCT5O2F6sGn5g" annotatedElement="_g0ZgIdwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VZpTSxE9EeGOffqMW1YiZA" general="_6UV2QGwJEdq7X4sGURiZYA"/>
+      <ownedAttribute xmi:id="_VZpTTBE9EeGOffqMW1YiZA" name="represented" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" association="_VUa1BBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZpTTRE9EeGOffqMW1YiZA" annotatedElement="_VZpTTBE9EeGOffqMW1YiZA">
           <body>Determines the classifiers that will specify the structure and nature of the information. An information item represents all its represented classifiers.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0ZgI9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0ZgJNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZpTThE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZpTTxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0aHINwbEeCT5O2F6sGn5g" name="InitialNode">
-      <ownedComment xmi:id="_g0aHIdwbEeCT5O2F6sGn5g" annotatedElement="_g0aHINwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZp6UBE9EeGOffqMW1YiZA" name="InitialNode">
+      <ownedComment xmi:id="_VZp6URE9EeGOffqMW1YiZA" annotatedElement="_VZp6UBE9EeGOffqMW1YiZA">
         <body>An initial node is a control node at which flow starts when the activity is invoked.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0aHItwbEeCT5O2F6sGn5g" name="no_incoming_edges" constrainedElement="_g0aHINwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0aHI9wbEeCT5O2F6sGn5g" annotatedElement="_g0aHItwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZp6UhE9EeGOffqMW1YiZA" name="no_incoming_edges" constrainedElement="_VZp6UBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZp6UxE9EeGOffqMW1YiZA" annotatedElement="_VZp6UhE9EeGOffqMW1YiZA">
           <body>An initial node has no incoming edges.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0aHJNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZp6VBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g0aHJdwbEeCT5O2F6sGn5g" name="control_edges" constrainedElement="_g0aHINwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0aHJtwbEeCT5O2F6sGn5g" annotatedElement="_g0aHJdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZp6VRE9EeGOffqMW1YiZA" name="control_edges" constrainedElement="_VZp6UBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZp6VhE9EeGOffqMW1YiZA" annotatedElement="_VZp6VRE9EeGOffqMW1YiZA">
           <body>Only control edges can have initial nodes as source.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0aHJ9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZp6VxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0aHKNwbEeCT5O2F6sGn5g" general="_g0BFndwbEeCT5O2F6sGn5g"/>
+      <generalization xmi:id="_VZp6WBE9EeGOffqMW1YiZA" general="_VYdAcBE9EeGOffqMW1YiZA"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0aHKdwbEeCT5O2F6sGn5g" name="InputPin">
-      <ownedComment xmi:id="_g0aHKtwbEeCT5O2F6sGn5g" annotatedElement="_g0aHKdwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZp6WRE9EeGOffqMW1YiZA" name="InputPin">
+      <ownedComment xmi:id="_VZp6WhE9EeGOffqMW1YiZA" annotatedElement="_VZp6WRE9EeGOffqMW1YiZA">
         <body>An input pin is a pin that holds input values to be consumed by an action.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0aHK9wbEeCT5O2F6sGn5g" name="outgoing_edges_structured_only" constrainedElement="_g0aHKdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0aHLNwbEeCT5O2F6sGn5g" annotatedElement="_g0aHK9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZp6WxE9EeGOffqMW1YiZA" name="outgoing_edges_structured_only" constrainedElement="_VZp6WRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZp6XBE9EeGOffqMW1YiZA" annotatedElement="_VZp6WxE9EeGOffqMW1YiZA">
           <body>Input pins may have outgoing edges only when they are on actions that are structured nodes, and these edges must target a node contained by the structured node.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0aHLdwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZp6XRE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0aHLtwbEeCT5O2F6sGn5g" general="_g1oPLNwbEeCT5O2F6sGn5g"/>
+      <generalization xmi:id="_VZp6XhE9EeGOffqMW1YiZA" general="_Vc9F8BE9EeGOffqMW1YiZA"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0auMNwbEeCT5O2F6sGn5g" name="InstanceSpecification">
-      <ownedComment xmi:id="_g0auMdwbEeCT5O2F6sGn5g" annotatedElement="_g0auMNwbEeCT5O2F6sGn5g">
-        <body>An instance specification is a model element that represents an instance in a modeled system.</body>
-      </ownedComment>
-      <ownedComment xmi:id="_g0auMtwbEeCT5O2F6sGn5g" annotatedElement="_g0auMNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZrIcBE9EeGOffqMW1YiZA" name="InstanceSpecification">
+      <ownedComment xmi:id="_VZrIcRE9EeGOffqMW1YiZA" annotatedElement="_VZrIcBE9EeGOffqMW1YiZA">
         <body>An instance specification has the capability of being a deployment target in a deployment relationship, in the case that it is an instance of a node. It is also has the capability of being a deployed artifact, if it is an instance of an artifact.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0auM9wbEeCT5O2F6sGn5g" name="deployment_artifact" constrainedElement="_g0auMNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0auNNwbEeCT5O2F6sGn5g" annotatedElement="_g0auM9wbEeCT5O2F6sGn5g">
-          <body>An InstanceSpecification can be a DeployedArtifact if it is the instance specification of an Artifact.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0auNdwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g0auNtwbEeCT5O2F6sGn5g" name="structural_feature" constrainedElement="_g0auMNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0auN9wbEeCT5O2F6sGn5g" annotatedElement="_g0auNtwbEeCT5O2F6sGn5g">
+      <ownedComment xmi:id="_VZrIchE9EeGOffqMW1YiZA" annotatedElement="_VZrIcBE9EeGOffqMW1YiZA">
+        <body>An instance specification is a model element that represents an instance in a modeled system.</body>
+      </ownedComment>
+      <ownedRule xmi:id="_VZrIcxE9EeGOffqMW1YiZA" name="structural_feature" constrainedElement="_VZrIcBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZrIdBE9EeGOffqMW1YiZA" annotatedElement="_VZrIcxE9EeGOffqMW1YiZA">
           <body>One structural feature (including the same feature inherited from multiple classifiers) is the defining feature of at most one slot in an instance specification.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0auONwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZrIdRE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>classifier->forAll(c | (c.allFeatures()->forAll(f | slot->select(s | s.definingFeature = f)->size() &lt;= 1)))</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g0auOdwbEeCT5O2F6sGn5g" name="defining_feature" constrainedElement="_g0auMNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0auOtwbEeCT5O2F6sGn5g" annotatedElement="_g0auOdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZrIdhE9EeGOffqMW1YiZA" name="defining_feature" constrainedElement="_VZrIcBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZrIdxE9EeGOffqMW1YiZA" annotatedElement="_VZrIdhE9EeGOffqMW1YiZA">
           <body>The defining feature of each slot is a structural feature (directly or inherited) of a classifier of the instance specification.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0auO9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZrIeBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>slot->forAll(s | classifier->exists (c | c.allFeatures()->includes (s.definingFeature)))</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g0auPNwbEeCT5O2F6sGn5g" name="deployment_target" constrainedElement="_g0auMNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0auPdwbEeCT5O2F6sGn5g" annotatedElement="_g0auPNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZrIeRE9EeGOffqMW1YiZA" name="deployment_target" constrainedElement="_VZrIcBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZrIehE9EeGOffqMW1YiZA" annotatedElement="_VZrIeRE9EeGOffqMW1YiZA">
           <body>An InstanceSpecification can be a DeploymentTarget if it is the instance specification of a Node and functions as a part in the internal structure of an encompassing Node.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0auPtwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZrIexE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0auP9wbEeCT5O2F6sGn5g" general="_PkmfgLLXEeCsYvaJqFFivQ"/>
-      <generalization xmi:id="_g0auQNwbEeCT5O2F6sGn5g" general="_jKxnwGwLEdq7X4sGURiZYA"/>
-      <generalization xmi:id="_g0auQdwbEeCT5O2F6sGn5g" general="_g0EI6dwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g0auQtwbEeCT5O2F6sGn5g" name="classifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" association="_gyUcfdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0auQ9wbEeCT5O2F6sGn5g" annotatedElement="_g0auQtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZrIfBE9EeGOffqMW1YiZA" name="deployment_artifact" constrainedElement="_VZrIcBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZrIfRE9EeGOffqMW1YiZA" annotatedElement="_VZrIfBE9EeGOffqMW1YiZA">
+          <body>An InstanceSpecification can be a DeployedArtifact if it is the instance specification of an Artifact.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZrIfhE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VZrIfxE9EeGOffqMW1YiZA" general="_VYyXphE9EeGOffqMW1YiZA"/>
+      <generalization xmi:id="_VZrIgBE9EeGOffqMW1YiZA" general="_jKxnwGwLEdq7X4sGURiZYA"/>
+      <generalization xmi:id="_VZrIgRE9EeGOffqMW1YiZA" general="_PkmfgLLXEeCsYvaJqFFivQ"/>
+      <ownedAttribute xmi:id="_VZrIghE9EeGOffqMW1YiZA" name="classifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" association="_VTC8ABE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZrIgxE9EeGOffqMW1YiZA" annotatedElement="_VZrIghE9EeGOffqMW1YiZA">
           <body>The classifier or classifiers of the represented instance. If multiple classifiers are specified, the instance is classified by all of them.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0auRNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0auRdwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZrIhBE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZrIhRE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0auRtwbEeCT5O2F6sGn5g" name="slot" visibility="public" type="_g2ACkNwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gy5rSNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0auR9wbEeCT5O2F6sGn5g" annotatedElement="_g0auRtwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZrIhhE9EeGOffqMW1YiZA" name="slot" visibility="public" type="_VeMcEBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VUkmBBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZrIhxE9EeGOffqMW1YiZA" annotatedElement="_VZrIhhE9EeGOffqMW1YiZA">
           <body>A slot giving the value or values of a structural feature of the instance. An instance specification can have one slot per structural feature of its classifiers, including inherited features. It is not necessary to model a slot for each structural feature, in which case the instance specification is a partial description.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0auSNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0auSdwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZrIiBE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZrIiRE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0auStwbEeCT5O2F6sGn5g" name="specification" visibility="public" type="_g2YdENwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gy6SV9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0auS9wbEeCT5O2F6sGn5g" annotatedElement="_g0auStwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZrIihE9EeGOffqMW1YiZA" name="specification" visibility="public" type="_VfGbABE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VUl0IxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZrIixE9EeGOffqMW1YiZA" annotatedElement="_VZrIihE9EeGOffqMW1YiZA">
           <body>A specification of how to compute, derive, or construct the instance.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0auTNwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZrIjBE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_PyCx8GveEdq4DLWZOhbdEA" name="InstanceValue">
-      <ownedComment xmi:id="_g0auTdwbEeCT5O2F6sGn5g" annotatedElement="_PyCx8GveEdq4DLWZOhbdEA">
+      <ownedComment xmi:id="_VZrIjRE9EeGOffqMW1YiZA" annotatedElement="_PyCx8GveEdq4DLWZOhbdEA">
         <body>An instance value is a value specification that identifies an instance.</body>
       </ownedComment>
-      <generalization xmi:id="_g0auTtwbEeCT5O2F6sGn5g" general="_g2YdENwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g0auT9wbEeCT5O2F6sGn5g" name="instance" visibility="public" type="_g0auMNwbEeCT5O2F6sGn5g" association="_gyhQwNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0auUNwbEeCT5O2F6sGn5g" annotatedElement="_g0auT9wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VZrIjhE9EeGOffqMW1YiZA" general="_VfGbABE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VZrIjxE9EeGOffqMW1YiZA" name="instance" visibility="public" type="_VZrIcBE9EeGOffqMW1YiZA" association="_VTrOJhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZrIkBE9EeGOffqMW1YiZA" annotatedElement="_VZrIjxE9EeGOffqMW1YiZA">
           <body>The instance that is the specified value.</body>
         </ownedComment>
       </ownedAttribute>
@@ -7503,341 +7506,341 @@
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0bVQNwbEeCT5O2F6sGn5g" name="Interaction">
-      <ownedComment xmi:id="_g0bVQdwbEeCT5O2F6sGn5g" annotatedElement="_g0bVQNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZsWkBE9EeGOffqMW1YiZA" name="Interaction">
+      <ownedComment xmi:id="_VZsWkRE9EeGOffqMW1YiZA" annotatedElement="_VZsWkBE9EeGOffqMW1YiZA">
         <body>An interaction is a unit of behavior that focuses on the observable exchange of information between connectable elements.</body>
       </ownedComment>
-      <generalization xmi:id="_g0bVQtwbEeCT5O2F6sGn5g" general="_g0cjYNwbEeCT5O2F6sGn5g"/>
-      <generalization xmi:id="_g0bVQ9wbEeCT5O2F6sGn5g" general="_TUPtYGveEdq4DLWZOhbdEA"/>
-      <ownedAttribute xmi:id="_g0bVRNwbEeCT5O2F6sGn5g" name="action" visibility="public" type="_6WKakLLQEeCsYvaJqFFivQ" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gySAMNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0bVRdwbEeCT5O2F6sGn5g" annotatedElement="_g0bVRNwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VZsWkhE9EeGOffqMW1YiZA" general="_TUPtYGveEdq4DLWZOhbdEA"/>
+      <generalization xmi:id="_VZsWkxE9EeGOffqMW1YiZA" general="_VZuLwBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VZsWlBE9EeGOffqMW1YiZA" name="action" visibility="public" type="_6WKakLLQEeCsYvaJqFFivQ" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VS8OUBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZsWlRE9EeGOffqMW1YiZA" annotatedElement="_VZsWlBE9EeGOffqMW1YiZA">
           <body>Actions owned by the Interaction.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0bVRtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0bVR9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZsWlhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZsWlxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0bVSNwbEeCT5O2F6sGn5g" name="formalGate" visibility="public" type="_g0V1sNwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g1S4AdwbEeCT5O2F6sGn5g" association="_gyc_X9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0bVSdwbEeCT5O2F6sGn5g" annotatedElement="_g0bVSNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZsWmBE9EeGOffqMW1YiZA" name="formalGate" visibility="public" type="_VZeUIBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_Var1EBE9EeGOffqMW1YiZA" association="_VTb9kBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZsWmRE9EeGOffqMW1YiZA" annotatedElement="_VZsWmBE9EeGOffqMW1YiZA">
           <body>Specifies the gates that form the message interface between this Interaction and any InteractionUses which reference it.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0bVStwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0bVS9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZsWmhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZsWmxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0bVTNwbEeCT5O2F6sGn5g" name="fragment" visibility="public" type="_g0cjYNwbEeCT5O2F6sGn5g" isOrdered="true" aggregation="composite" subsettedProperty="_g1S4AdwbEeCT5O2F6sGn5g" association="_gydmZNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0bVTdwbEeCT5O2F6sGn5g" annotatedElement="_g0bVTNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZsWnBE9EeGOffqMW1YiZA" name="fragment" visibility="public" type="_VZuLwBE9EeGOffqMW1YiZA" isOrdered="true" aggregation="composite" subsettedProperty="_Var1EBE9EeGOffqMW1YiZA" association="_VTb9lxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZsWnRE9EeGOffqMW1YiZA" annotatedElement="_VZsWnBE9EeGOffqMW1YiZA">
           <body>The ordered set of fragments in the Interaction.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0bVTtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0bVT9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZsWnhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZsWnxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0bVUNwbEeCT5O2F6sGn5g" name="lifeline" visibility="public" type="_g0hb4NwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g1S4AdwbEeCT5O2F6sGn5g" association="_gyhQzNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0bVUdwbEeCT5O2F6sGn5g" annotatedElement="_g0bVUNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZsWoBE9EeGOffqMW1YiZA" name="lifeline" visibility="public" type="_VZ0SYBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_Var1EBE9EeGOffqMW1YiZA" association="_VTscQBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZsWoRE9EeGOffqMW1YiZA" annotatedElement="_VZsWoBE9EeGOffqMW1YiZA">
           <body>Specifies the participants in this Interaction.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0bVUtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0bVU9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZsWohE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZsWoxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0bVVNwbEeCT5O2F6sGn5g" name="message" visibility="public" type="_gfgNwGveEdq4DLWZOhbdEA" aggregation="composite" subsettedProperty="_g1S4AdwbEeCT5O2F6sGn5g" association="_gyjF_9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0bVVdwbEeCT5O2F6sGn5g" annotatedElement="_g0bVVNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZsWpBE9EeGOffqMW1YiZA" name="message" visibility="public" type="_gfgNwGveEdq4DLWZOhbdEA" aggregation="composite" subsettedProperty="_Var1EBE9EeGOffqMW1YiZA" association="_VTxUyBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZsWpRE9EeGOffqMW1YiZA" annotatedElement="_VZsWpBE9EeGOffqMW1YiZA">
           <body>The Messages contained in this Interaction.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0bVVtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0bVV9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZsWphE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZsWpxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0b8UNwbEeCT5O2F6sGn5g" name="InteractionConstraint">
-      <ownedComment xmi:id="_g0b8UdwbEeCT5O2F6sGn5g" annotatedElement="_g0b8UNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZs9oBE9EeGOffqMW1YiZA" name="InteractionConstraint">
+      <ownedComment xmi:id="_VZs9oRE9EeGOffqMW1YiZA" annotatedElement="_VZs9oBE9EeGOffqMW1YiZA">
         <body>An interaction constraint is a Boolean expression that guards an operand in a combined fragment.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0b8UtwbEeCT5O2F6sGn5g" name="minint_maxint" constrainedElement="_g0b8UNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0b8U9wbEeCT5O2F6sGn5g" annotatedElement="_g0b8UtwbEeCT5O2F6sGn5g">
-          <body>Minint/maxint can only be present if the InteractionConstraint is associated with the operand of a loop CombinedFragment.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0b8VNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g0b8VdwbEeCT5O2F6sGn5g" name="minint_non_negative" constrainedElement="_g0b8UNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0b8VtwbEeCT5O2F6sGn5g" annotatedElement="_g0b8VdwbEeCT5O2F6sGn5g">
-          <body>If minint is specified, then the expression must evaluate to a non-negative integer.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0b8V9wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g0b8WNwbEeCT5O2F6sGn5g" name="maxint_positive" constrainedElement="_g0b8UNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0b8WdwbEeCT5O2F6sGn5g" annotatedElement="_g0b8WNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZs9ohE9EeGOffqMW1YiZA" name="maxint_positive" constrainedElement="_VZs9oBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZs9oxE9EeGOffqMW1YiZA" annotatedElement="_VZs9ohE9EeGOffqMW1YiZA">
           <body>If maxint is specified, then the expression must evaluate to a positive integer.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0b8WtwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZs9pBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g0b8W9wbEeCT5O2F6sGn5g" name="dynamic_variables" constrainedElement="_g0b8UNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0b8XNwbEeCT5O2F6sGn5g" annotatedElement="_g0b8W9wbEeCT5O2F6sGn5g">
-          <body>The dynamic variables that take part in the constraint must be owned by the ConnectableElement corresponding to the covered Lifeline.</body>
+      <ownedRule xmi:id="_VZs9pRE9EeGOffqMW1YiZA" name="minint_maxint" constrainedElement="_VZs9oBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZs9phE9EeGOffqMW1YiZA" annotatedElement="_VZs9pRE9EeGOffqMW1YiZA">
+          <body>Minint/maxint can only be present if the InteractionConstraint is associated with the operand of a loop CombinedFragment.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0b8XdwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZs9pxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g0b8XtwbEeCT5O2F6sGn5g" name="global_data" constrainedElement="_g0b8UNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0b8X9wbEeCT5O2F6sGn5g" annotatedElement="_g0b8XtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZs9qBE9EeGOffqMW1YiZA" name="minint_non_negative" constrainedElement="_VZs9oBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZs9qRE9EeGOffqMW1YiZA" annotatedElement="_VZs9qBE9EeGOffqMW1YiZA">
+          <body>If minint is specified, then the expression must evaluate to a non-negative integer.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZs9qhE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VZs9qxE9EeGOffqMW1YiZA" name="global_data" constrainedElement="_VZs9oBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZs9rBE9EeGOffqMW1YiZA" annotatedElement="_VZs9qxE9EeGOffqMW1YiZA">
           <body>The constraint may contain references to global data or write-once data.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0b8YNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZs9rRE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g0b8YdwbEeCT5O2F6sGn5g" name="maxint_greater_equal_minint" constrainedElement="_g0b8UNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0b8YtwbEeCT5O2F6sGn5g" annotatedElement="_g0b8YdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZs9rhE9EeGOffqMW1YiZA" name="maxint_greater_equal_minint" constrainedElement="_VZs9oBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZs9rxE9EeGOffqMW1YiZA" annotatedElement="_VZs9rhE9EeGOffqMW1YiZA">
           <body>If maxint is specified, then minint must be specified and the evaluation of maxint must be >= the evaluation of minint</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0b8Y9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZs9sBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0b8ZNwbEeCT5O2F6sGn5g" general="_g0AegNwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g0b8ZdwbEeCT5O2F6sGn5g" name="maxint" visibility="public" type="_g2YdENwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gyie8dwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0b8ZtwbEeCT5O2F6sGn5g" annotatedElement="_g0b8ZdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZs9sRE9EeGOffqMW1YiZA" name="dynamic_variables" constrainedElement="_VZs9oBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZs9shE9EeGOffqMW1YiZA" annotatedElement="_VZs9sRE9EeGOffqMW1YiZA">
+          <body>The dynamic variables that take part in the constraint must be owned by the ConnectableElement corresponding to the covered Lifeline.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZs9sxE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VZs9tBE9EeGOffqMW1YiZA" general="_VYbLQBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VZs9tRE9EeGOffqMW1YiZA" name="maxint" visibility="public" type="_VfGbABE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VTwtsBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZs9thE9EeGOffqMW1YiZA" annotatedElement="_VZs9tRE9EeGOffqMW1YiZA">
           <body>The maximum number of iterations of a loop</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0b8Z9wbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZs9txE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0b8aNwbEeCT5O2F6sGn5g" name="minint" visibility="public" type="_g2YdENwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gykUFdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0b8adwbEeCT5O2F6sGn5g" annotatedElement="_g0b8aNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZs9uBE9EeGOffqMW1YiZA" name="minint" visibility="public" type="_VfGbABE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VTzxABE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZs9uRE9EeGOffqMW1YiZA" annotatedElement="_VZs9uBE9EeGOffqMW1YiZA">
           <body>The minimum number of iterations of a loop</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0b8atwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZs9uhE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0cjYNwbEeCT5O2F6sGn5g" name="InteractionFragment" isAbstract="true">
-      <ownedComment xmi:id="_g0cjYdwbEeCT5O2F6sGn5g" annotatedElement="_g0cjYNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZuLwBE9EeGOffqMW1YiZA" name="InteractionFragment" isAbstract="true">
+      <ownedComment xmi:id="_VZuLwRE9EeGOffqMW1YiZA" annotatedElement="_VZuLwBE9EeGOffqMW1YiZA">
         <body>InteractionFragment is an abstract notion of the most general interaction unit. An interaction fragment is a piece of an interaction. Each interaction fragment is conceptually like an interaction by itself.</body>
       </ownedComment>
-      <generalization xmi:id="_g0cjYtwbEeCT5O2F6sGn5g" general="_csVgUGvtEdqG6fBIPwe-mw"/>
-      <ownedAttribute xmi:id="_g0cjY9wbEeCT5O2F6sGn5g" name="covered" visibility="public" type="_g0hb4NwbEeCT5O2F6sGn5g" association="_gyW4wNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0cjZNwbEeCT5O2F6sGn5g" annotatedElement="_g0cjY9wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VZuLwhE9EeGOffqMW1YiZA" general="_csVgUGvtEdqG6fBIPwe-mw"/>
+      <ownedAttribute xmi:id="_VZuLwxE9EeGOffqMW1YiZA" name="covered" visibility="public" type="_VZ0SYBE9EeGOffqMW1YiZA" association="_VTKQwBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZuLxBE9EeGOffqMW1YiZA" annotatedElement="_VZuLwxE9EeGOffqMW1YiZA">
           <body>References the Lifelines that the InteractionFragment involves.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0cjZdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0cjZtwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZuLxRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZuLxhE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0cjZ9wbEeCT5O2F6sGn5g" name="enclosingInteraction" visibility="public" type="_g0bVQNwbEeCT5O2F6sGn5g" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_gydmZNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0cjaNwbEeCT5O2F6sGn5g" annotatedElement="_g0cjZ9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZuLxxE9EeGOffqMW1YiZA" name="enclosingInteraction" visibility="public" type="_VZsWkBE9EeGOffqMW1YiZA" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_VTb9lxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZuLyBE9EeGOffqMW1YiZA" annotatedElement="_VZuLxxE9EeGOffqMW1YiZA">
           <body>The Interaction enclosing this InteractionFragment.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0cjadwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZuLyRE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0cjatwbEeCT5O2F6sGn5g" name="enclosingOperand" visibility="public" type="_g0dKcNwbEeCT5O2F6sGn5g" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_gydmZdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0cja9wbEeCT5O2F6sGn5g" annotatedElement="_g0cjatwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZuLyhE9EeGOffqMW1YiZA" name="enclosingOperand" visibility="public" type="_VZuy0BE9EeGOffqMW1YiZA" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_VTckoBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZuLyxE9EeGOffqMW1YiZA" annotatedElement="_VZuLyhE9EeGOffqMW1YiZA">
           <body>The operand enclosing this InteractionFragment (they may nest recursively)</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0cjbNwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZuLzBE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0cjbdwbEeCT5O2F6sGn5g" name="generalOrdering" visibility="public" type="_g0V1udwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gydmbdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0cjbtwbEeCT5O2F6sGn5g" annotatedElement="_g0cjbdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZuLzRE9EeGOffqMW1YiZA" name="generalOrdering" visibility="public" type="_VZe7MBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VTkgcBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZuLzhE9EeGOffqMW1YiZA" annotatedElement="_VZuLzRE9EeGOffqMW1YiZA">
           <body>The general ordering relationships contained in this fragment.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0cjb9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0cjcNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZuLzxE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZuL0BE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0dKcNwbEeCT5O2F6sGn5g" name="InteractionOperand">
-      <ownedComment xmi:id="_g0dKcdwbEeCT5O2F6sGn5g" annotatedElement="_g0dKcNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZuy0BE9EeGOffqMW1YiZA" name="InteractionOperand">
+      <ownedComment xmi:id="_VZuy0RE9EeGOffqMW1YiZA" annotatedElement="_VZuy0BE9EeGOffqMW1YiZA">
         <body>An interaction operand is contained in a combined fragment. An interaction operand represents one operand of the expression given by the enclosing combined fragment.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0dKctwbEeCT5O2F6sGn5g" name="guard_contain_references" constrainedElement="_g0dKcNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0dKc9wbEeCT5O2F6sGn5g" annotatedElement="_g0dKctwbEeCT5O2F6sGn5g">
-          <body>The guard must contain only references to values local to the Lifeline on which it resides, or values global to the whole Interaction.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0dKdNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g0dKddwbEeCT5O2F6sGn5g" name="guard_directly_prior" constrainedElement="_g0dKcNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0dKdtwbEeCT5O2F6sGn5g" annotatedElement="_g0dKddwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZuy0hE9EeGOffqMW1YiZA" name="guard_directly_prior" constrainedElement="_VZuy0BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZuy0xE9EeGOffqMW1YiZA" annotatedElement="_VZuy0hE9EeGOffqMW1YiZA">
           <body>The guard must be placed directly prior to (above) the OccurrenceSpecification that will become the first OccurrenceSpecification within this InteractionOperand.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0dKd9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZuy1BE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0dKeNwbEeCT5O2F6sGn5g" general="_g0cjYNwbEeCT5O2F6sGn5g"/>
-      <generalization xmi:id="_g0dKedwbEeCT5O2F6sGn5g" general="_ZiwkoGwLEdq7X4sGURiZYA"/>
-      <ownedAttribute xmi:id="_g0dKetwbEeCT5O2F6sGn5g" name="fragment" visibility="public" type="_g0cjYNwbEeCT5O2F6sGn5g" isOrdered="true" aggregation="composite" subsettedProperty="_g1S4AdwbEeCT5O2F6sGn5g" association="_gydmZdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0dKe9wbEeCT5O2F6sGn5g" annotatedElement="_g0dKetwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZuy1RE9EeGOffqMW1YiZA" name="guard_contain_references" constrainedElement="_VZuy0BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZuy1hE9EeGOffqMW1YiZA" annotatedElement="_VZuy1RE9EeGOffqMW1YiZA">
+          <body>The guard must contain only references to values local to the Lifeline on which it resides, or values global to the whole Interaction.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZuy1xE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VZuy2BE9EeGOffqMW1YiZA" general="_VZuLwBE9EeGOffqMW1YiZA"/>
+      <generalization xmi:id="_VZuy2RE9EeGOffqMW1YiZA" general="_ZiwkoGwLEdq7X4sGURiZYA"/>
+      <ownedAttribute xmi:id="_VZuy2hE9EeGOffqMW1YiZA" name="fragment" visibility="public" type="_VZuLwBE9EeGOffqMW1YiZA" isOrdered="true" aggregation="composite" subsettedProperty="_Var1EBE9EeGOffqMW1YiZA" association="_VTckoBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZuy2xE9EeGOffqMW1YiZA" annotatedElement="_VZuy2hE9EeGOffqMW1YiZA">
           <body>The fragments of the operand.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0dKfNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0dKfdwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZuy3BE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZuy3RE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0dKftwbEeCT5O2F6sGn5g" name="guard" visibility="public" type="_g0b8UNwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gyeNftwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0dKf9wbEeCT5O2F6sGn5g" annotatedElement="_g0dKftwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZuy3hE9EeGOffqMW1YiZA" name="guard" visibility="public" type="_VZs9oBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VTlukxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZuy3xE9EeGOffqMW1YiZA" annotatedElement="_VZuy3hE9EeGOffqMW1YiZA">
           <body>Constraint of the operand.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0dKgNwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZuy4BE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0dxgNwbEeCT5O2F6sGn5g" name="InteractionUse">
-      <ownedComment xmi:id="_g0dxgdwbEeCT5O2F6sGn5g" annotatedElement="_g0dxgNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZvZ4BE9EeGOffqMW1YiZA" name="InteractionUse">
+      <ownedComment xmi:id="_VZvZ4RE9EeGOffqMW1YiZA" annotatedElement="_VZvZ4BE9EeGOffqMW1YiZA">
         <body>An interaction use refers to an interaction. The interaction use is a shorthand for copying the contents of the referenced interaction where the interaction use is. To be accurate the copying must take into account substituting parameters with arguments and connect the formal gates with the actual ones.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0dxgtwbEeCT5O2F6sGn5g" name="gates_match" constrainedElement="_g0dxgNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0dxg9wbEeCT5O2F6sGn5g" annotatedElement="_g0dxgtwbEeCT5O2F6sGn5g">
-          <body>Actual Gates of the InteractionUse must match Formal Gates of the referred Interaction. Gates match when their names are equal.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0dxhNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g0dxhdwbEeCT5O2F6sGn5g" name="arguments_are_constants" constrainedElement="_g0dxgNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0dxhtwbEeCT5O2F6sGn5g" annotatedElement="_g0dxhdwbEeCT5O2F6sGn5g">
-          <body>The arguments must only be constants, parameters of the enclosing Interaction or attributes of the classifier owning the enclosing Interaction.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0dxh9wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g0dxiNwbEeCT5O2F6sGn5g" name="returnValueRecipient_coverage" constrainedElement="_g0dxgNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0dxidwbEeCT5O2F6sGn5g" annotatedElement="_g0dxiNwbEeCT5O2F6sGn5g">
-          <body>The returnValueRecipient must be a Property of a ConnectableElement that is represented by a Lifeline covered by this InteractionUse.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0dxitwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g0dxi9wbEeCT5O2F6sGn5g" name="arguments_correspond_to_parameters" constrainedElement="_g0dxgNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0dxjNwbEeCT5O2F6sGn5g" annotatedElement="_g0dxi9wbEeCT5O2F6sGn5g">
-          <body>The arguments of the InteractionUse must correspond to parameters of the referred Interaction</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0dxjdwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g0dxjtwbEeCT5O2F6sGn5g" name="returnValue_type_recipient_correspondence" constrainedElement="_g0dxgNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0dxj9wbEeCT5O2F6sGn5g" annotatedElement="_g0dxjtwbEeCT5O2F6sGn5g">
-          <body>The type of the returnValue must correspond to the type of the returnValueRecipient.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0dxkNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g0dxkdwbEeCT5O2F6sGn5g" name="all_lifelines" constrainedElement="_g0dxgNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0dxktwbEeCT5O2F6sGn5g" annotatedElement="_g0dxkdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZvZ4hE9EeGOffqMW1YiZA" name="all_lifelines" constrainedElement="_VZvZ4BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZvZ4xE9EeGOffqMW1YiZA" annotatedElement="_VZvZ4hE9EeGOffqMW1YiZA">
           <body>The InteractionUse must cover all Lifelines of the enclosing Interaction that represent the same properties as lifelines within the referred Interaction.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0dxk9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZvZ5BE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0dxlNwbEeCT5O2F6sGn5g" general="_g0cjYNwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g0dxldwbEeCT5O2F6sGn5g" name="actualGate" visibility="public" type="_g0V1sNwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gySAM9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0dxltwbEeCT5O2F6sGn5g" annotatedElement="_g0dxldwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZvZ5RE9EeGOffqMW1YiZA" name="returnValueRecipient_coverage" constrainedElement="_VZvZ4BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZvZ5hE9EeGOffqMW1YiZA" annotatedElement="_VZvZ5RE9EeGOffqMW1YiZA">
+          <body>The returnValueRecipient must be a Property of a ConnectableElement that is represented by a Lifeline covered by this InteractionUse.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZvZ5xE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VZvZ6BE9EeGOffqMW1YiZA" name="arguments_correspond_to_parameters" constrainedElement="_VZvZ4BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZvZ6RE9EeGOffqMW1YiZA" annotatedElement="_VZvZ6BE9EeGOffqMW1YiZA">
+          <body>The arguments of the InteractionUse must correspond to parameters of the referred Interaction</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZvZ6hE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VZvZ6xE9EeGOffqMW1YiZA" name="gates_match" constrainedElement="_VZvZ4BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZvZ7BE9EeGOffqMW1YiZA" annotatedElement="_VZvZ6xE9EeGOffqMW1YiZA">
+          <body>Actual Gates of the InteractionUse must match Formal Gates of the referred Interaction. Gates match when their names are equal.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZvZ7RE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VZvZ7hE9EeGOffqMW1YiZA" name="arguments_are_constants" constrainedElement="_VZvZ4BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZvZ7xE9EeGOffqMW1YiZA" annotatedElement="_VZvZ7hE9EeGOffqMW1YiZA">
+          <body>The arguments must only be constants, parameters of the enclosing Interaction or attributes of the classifier owning the enclosing Interaction.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZvZ8BE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VZvZ8RE9EeGOffqMW1YiZA" name="returnValue_type_recipient_correspondence" constrainedElement="_VZvZ4BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZvZ8hE9EeGOffqMW1YiZA" annotatedElement="_VZvZ8RE9EeGOffqMW1YiZA">
+          <body>The type of the returnValue must correspond to the type of the returnValueRecipient.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZvZ8xE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VZvZ9BE9EeGOffqMW1YiZA" general="_VZuLwBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VZvZ9RE9EeGOffqMW1YiZA" name="actualGate" visibility="public" type="_VZeUIBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VS8OUxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZvZ9hE9EeGOffqMW1YiZA" annotatedElement="_VZvZ9RE9EeGOffqMW1YiZA">
           <body>The actual gates of the InteractionUse</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0dxl9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0dxmNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZvZ9xE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZvZ-BE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0dxmdwbEeCT5O2F6sGn5g" name="argument" visibility="public" type="_g2YdENwbEeCT5O2F6sGn5g" isOrdered="true" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gySnQ9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0dxmtwbEeCT5O2F6sGn5g" annotatedElement="_g0dxmdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZvZ-RE9EeGOffqMW1YiZA" name="argument" visibility="public" type="_VfGbABE9EeGOffqMW1YiZA" isOrdered="true" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VS-DgBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZvZ-hE9EeGOffqMW1YiZA" annotatedElement="_VZvZ-RE9EeGOffqMW1YiZA">
           <body>The actual arguments of the Interaction</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0dxm9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0dxnNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZvZ-xE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZvZ_BE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0dxndwbEeCT5O2F6sGn5g" name="refersTo" visibility="public" type="_g0bVQNwbEeCT5O2F6sGn5g" association="_gyyWhNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0dxntwbEeCT5O2F6sGn5g" annotatedElement="_g0dxndwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZvZ_RE9EeGOffqMW1YiZA" name="refersTo" visibility="public" type="_VZsWkBE9EeGOffqMW1YiZA" association="_VUY_0BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZvZ_hE9EeGOffqMW1YiZA" annotatedElement="_VZvZ_RE9EeGOffqMW1YiZA">
           <body>Refers to the Interaction that defines its meaning</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0dxn9wbEeCT5O2F6sGn5g" name="returnValue" visibility="public" type="_g2YdENwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gy32ENwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0dxoNwbEeCT5O2F6sGn5g" annotatedElement="_g0dxn9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZvZ_xE9EeGOffqMW1YiZA" name="returnValue" visibility="public" type="_VfGbABE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VUg7pxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZvaABE9EeGOffqMW1YiZA" annotatedElement="_VZvZ_xE9EeGOffqMW1YiZA">
           <body>The value of the executed Interaction.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0dxodwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZvaARE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0dxotwbEeCT5O2F6sGn5g" name="returnValueRecipient" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" association="_gy3PA9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0dxo9wbEeCT5O2F6sGn5g" annotatedElement="_g0dxotwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZvaAhE9EeGOffqMW1YiZA" name="returnValueRecipient" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" association="_VUg7oxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZvaAxE9EeGOffqMW1YiZA" annotatedElement="_VZvaAhE9EeGOffqMW1YiZA">
           <body>The recipient of the return value.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0dxpNwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZvaBBE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_8Ugn8GvtEdqG6fBIPwe-mw" name="Interface">
-      <ownedComment xmi:id="_g0dxpdwbEeCT5O2F6sGn5g" annotatedElement="_8Ugn8GvtEdqG6fBIPwe-mw">
-        <body>Interfaces may include receptions (in addition to operations).</body>
-      </ownedComment>
-      <ownedComment xmi:id="_g0dxptwbEeCT5O2F6sGn5g" annotatedElement="_8Ugn8GvtEdqG6fBIPwe-mw">
-        <body>An interface is a kind of classifier that represents a declaration of a set of coherent public features and obligations. An interface specifies a contract; any instance of a classifier that realizes the interface must fulfill that contract. The obligations that may be associated with an interface are in the form of various kinds of constraints (such as pre- and post-conditions) or protocol specifications, which may impose ordering restrictions on interactions through the interface.</body>
-      </ownedComment>
-      <ownedComment xmi:id="_g0eYkNwbEeCT5O2F6sGn5g" annotatedElement="_8Ugn8GvtEdqG6fBIPwe-mw">
+      <ownedComment xmi:id="_VZwA8BE9EeGOffqMW1YiZA" annotatedElement="_8Ugn8GvtEdqG6fBIPwe-mw">
         <body>Since an interface specifies conformance characteristics, it does not own detailed behavior specifications. Instead, interfaces may own a protocol state machine that specifies event sequences and pre/post conditions for the operations and receptions described by the interface.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0eYkdwbEeCT5O2F6sGn5g" name="visibility" constrainedElement="_8Ugn8GvtEdqG6fBIPwe-mw">
-        <ownedComment xmi:id="_g0eYktwbEeCT5O2F6sGn5g" annotatedElement="_g0eYkdwbEeCT5O2F6sGn5g">
+      <ownedComment xmi:id="_VZwA8RE9EeGOffqMW1YiZA" annotatedElement="_8Ugn8GvtEdqG6fBIPwe-mw">
+        <body>Interfaces may include receptions (in addition to operations).</body>
+      </ownedComment>
+      <ownedComment xmi:id="_VZwA8hE9EeGOffqMW1YiZA" annotatedElement="_8Ugn8GvtEdqG6fBIPwe-mw">
+        <body>An interface is a kind of classifier that represents a declaration of a set of coherent public features and obligations. An interface specifies a contract; any instance of a classifier that realizes the interface must fulfill that contract. The obligations that may be associated with an interface are in the form of various kinds of constraints (such as pre- and post-conditions) or protocol specifications, which may impose ordering restrictions on interactions through the interface.</body>
+      </ownedComment>
+      <ownedRule xmi:id="_VZwA8xE9EeGOffqMW1YiZA" name="visibility" constrainedElement="_8Ugn8GvtEdqG6fBIPwe-mw">
+        <ownedComment xmi:id="_VZwA9BE9EeGOffqMW1YiZA" annotatedElement="_VZwA8xE9EeGOffqMW1YiZA">
           <body>The visibility of all features owned by an interface must be public.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0eYk9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZwA9RE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.feature->forAll(f | f.visibility = #public)</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0eYlNwbEeCT5O2F6sGn5g" general="_6UV2QGwJEdq7X4sGURiZYA"/>
-      <ownedAttribute xmi:id="_g0eYldwbEeCT5O2F6sGn5g" name="nestedClassifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" isOrdered="true" aggregation="composite" subsettedProperty="_gyxIb9wbEeCT5O2F6sGn5g _g1S4AdwbEeCT5O2F6sGn5g" association="_gyk7JdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0eYltwbEeCT5O2F6sGn5g" annotatedElement="_g0eYldwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VZwA9hE9EeGOffqMW1YiZA" general="_6UV2QGwJEdq7X4sGURiZYA"/>
+      <ownedAttribute xmi:id="_VZwA9xE9EeGOffqMW1YiZA" name="nestedClassifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" isOrdered="true" aggregation="composite" subsettedProperty="_VUWjlxE9EeGOffqMW1YiZA _Var1EBE9EeGOffqMW1YiZA" association="_VT0_IBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZwA-BE9EeGOffqMW1YiZA" annotatedElement="_VZwA9xE9EeGOffqMW1YiZA">
           <body>References all the Classifiers that are defined (nested) within the Class.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0eYl9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0eYmNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZwA-RE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZwA-hE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0eYmdwbEeCT5O2F6sGn5g" name="ownedAttribute" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" subsettedProperty="_gzuKp9wbEeCT5O2F6sGn5g _g1S4AdwbEeCT5O2F6sGn5g" association="_gyn-f9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0eYmtwbEeCT5O2F6sGn5g" annotatedElement="_g0eYmdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZwoABE9EeGOffqMW1YiZA" name="ownedAttribute" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" subsettedProperty="_Var1EBE9EeGOffqMW1YiZA _VXldxBE9EeGOffqMW1YiZA" association="_VT-wJRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZwoARE9EeGOffqMW1YiZA" annotatedElement="_VZwoABE9EeGOffqMW1YiZA">
           <body>The attributes (i.e. the properties) owned by the class.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0eYm9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0eYnNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZwoAhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZwoAxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0eYndwbEeCT5O2F6sGn5g" name="ownedOperation" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" subsettedProperty="_gzuKr9wbEeCT5O2F6sGn5g _gyxIb9wbEeCT5O2F6sGn5g _g1S4AdwbEeCT5O2F6sGn5g" association="_gypzotwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0eYntwbEeCT5O2F6sGn5g" annotatedElement="_g0eYndwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZwoBBE9EeGOffqMW1YiZA" name="ownedOperation" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" subsettedProperty="_VXmE1BE9EeGOffqMW1YiZA _VUWjlxE9EeGOffqMW1YiZA _Var1EBE9EeGOffqMW1YiZA" association="_VUBzchE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZwoBRE9EeGOffqMW1YiZA" annotatedElement="_VZwoBBE9EeGOffqMW1YiZA">
           <body>The operations owned by the class.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0eYn9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0eYoNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZwoBhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZwoBxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0eYodwbEeCT5O2F6sGn5g" name="ownedReception" visibility="public" type="_g14t0NwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzuKr9wbEeCT5O2F6sGn5g _g1S4AdwbEeCT5O2F6sGn5g" association="_gyqau9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0eYotwbEeCT5O2F6sGn5g" annotatedElement="_g0eYodwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZwoCBE9EeGOffqMW1YiZA" name="ownedReception" visibility="public" type="_Vdji4BE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VXmE1BE9EeGOffqMW1YiZA _Var1EBE9EeGOffqMW1YiZA" association="_VUDooxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZwoCRE9EeGOffqMW1YiZA" annotatedElement="_VZwoCBE9EeGOffqMW1YiZA">
           <body>Receptions that objects providing this interface are willing to accept.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0eYo9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0eYpNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZwoChE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZwoCxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0eYpdwbEeCT5O2F6sGn5g" name="protocol" visibility="public" type="_g1xZENwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g1S4AdwbEeCT5O2F6sGn5g" association="_gyteBtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0eYptwbEeCT5O2F6sGn5g" annotatedElement="_g0eYpdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZwoDBE9EeGOffqMW1YiZA" name="protocol" visibility="public" type="_VdXVoBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_Var1EBE9EeGOffqMW1YiZA" association="_VUK9ZRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZwoDRE9EeGOffqMW1YiZA" annotatedElement="_VZwoDBE9EeGOffqMW1YiZA">
           <body>References a protocol state machine specifying the legal sequences of the invocation of the behavioral features described in the interface.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0eYp9wbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZwoDhE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0e_oNwbEeCT5O2F6sGn5g" name="redefinedInterface" visibility="public" type="_8Ugn8GvtEdqG6fBIPwe-mw" subsettedProperty="_gzvYyNwbEeCT5O2F6sGn5g" association="_gywhVNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0e_odwbEeCT5O2F6sGn5g" annotatedElement="_g0e_oNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZwoDxE9EeGOffqMW1YiZA" name="redefinedInterface" visibility="public" type="_8Ugn8GvtEdqG6fBIPwe-mw" subsettedProperty="_VXuAoBE9EeGOffqMW1YiZA" association="_VURrFBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZwoEBE9EeGOffqMW1YiZA" annotatedElement="_VZwoDxE9EeGOffqMW1YiZA">
           <body>References all the Interfaces redefined by this Interface.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0e_otwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0e_o9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZwoERE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZwoEhE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
       <ownedOperation xmi:id="_XUC3gHL0EdqziYxiZo0YtA" name="createOwnedAttribute">
         <ownedComment xmi:id="_-2N5wOwgEdqYHf-imTcTdw" annotatedElement="_XUC3gHL0EdqziYxiZo0YtA">
@@ -7910,129 +7913,129 @@
       </ownedOperation>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_l2mXcHLzEdqziYxiZo0YtA" name="InterfaceRealization">
-      <ownedComment xmi:id="_g0e_pNwbEeCT5O2F6sGn5g" annotatedElement="_l2mXcHLzEdqziYxiZo0YtA">
+      <ownedComment xmi:id="_VZxPEBE9EeGOffqMW1YiZA" annotatedElement="_l2mXcHLzEdqziYxiZo0YtA">
         <body>An interface realization is a specialized realization relationship between a classifier and an interface. This relationship signifies that the realizing classifier conforms to the contract specified by the interface.</body>
       </ownedComment>
-      <generalization xmi:id="_g0e_pdwbEeCT5O2F6sGn5g" general="_g14Gx9wbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g0e_ptwbEeCT5O2F6sGn5g" name="contract" visibility="public" type="_8Ugn8GvtEdqG6fBIPwe-mw" subsettedProperty="_g0EI5twbEeCT5O2F6sGn5g" association="_gyW4tNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0e_p9wbEeCT5O2F6sGn5g" annotatedElement="_g0e_ptwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VZxPERE9EeGOffqMW1YiZA" general="_Vdi72xE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VZxPEhE9EeGOffqMW1YiZA" name="contract" visibility="public" type="_8Ugn8GvtEdqG6fBIPwe-mw" subsettedProperty="_VYyXoxE9EeGOffqMW1YiZA" association="_VTJCpBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZxPExE9EeGOffqMW1YiZA" annotatedElement="_VZxPEhE9EeGOffqMW1YiZA">
           <body>References the Interface specifying the conformance contract.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0e_qNwbEeCT5O2F6sGn5g" name="implementingClassifier" visibility="public" type="_iY7sMGvsEdqG6fBIPwe-mw" subsettedProperty="_g0EI49wbEeCT5O2F6sGn5g _g0JodNwbEeCT5O2F6sGn5g" association="_gyhQxNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0e_qdwbEeCT5O2F6sGn5g" annotatedElement="_g0e_qNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZx2IBE9EeGOffqMW1YiZA" name="implementingClassifier" visibility="public" type="_iY7sMGvsEdqG6fBIPwe-mw" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw _VYyXoBE9EeGOffqMW1YiZA" association="_VTr1MBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZx2IRE9EeGOffqMW1YiZA" annotatedElement="_VZx2IBE9EeGOffqMW1YiZA">
           <body>References the BehavioredClassifier that owns this Interfacerealization (i.e., the classifier that realizes the Interface to which it points).</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0fmsNwbEeCT5O2F6sGn5g" name="InterruptibleActivityRegion">
-      <ownedComment xmi:id="_g0fmsdwbEeCT5O2F6sGn5g" annotatedElement="_g0fmsNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZx2IhE9EeGOffqMW1YiZA" name="InterruptibleActivityRegion">
+      <ownedComment xmi:id="_VZx2IxE9EeGOffqMW1YiZA" annotatedElement="_VZx2IhE9EeGOffqMW1YiZA">
         <body>An interruptible activity region is an activity group that supports termination of tokens flowing in the portions of an activity.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0fmstwbEeCT5O2F6sGn5g" name="interrupting_edges" constrainedElement="_g0fmsNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0fms9wbEeCT5O2F6sGn5g" annotatedElement="_g0fmstwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZx2JBE9EeGOffqMW1YiZA" name="interrupting_edges" constrainedElement="_VZx2IhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZx2JRE9EeGOffqMW1YiZA" annotatedElement="_VZx2JBE9EeGOffqMW1YiZA">
           <body>Interrupting edges of a region must have their source node in the region and their target node outside the region in the same activity containing the region.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0fmtNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZx2JhE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0fmtdwbEeCT5O2F6sGn5g" general="_gzaBkNwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g0fmttwbEeCT5O2F6sGn5g" name="interruptingEdge" visibility="public" type="_gzZagNwbEeCT5O2F6sGn5g" association="_gyhQxdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0fmt9wbEeCT5O2F6sGn5g" annotatedElement="_g0fmttwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VZx2JxE9EeGOffqMW1YiZA" general="_aZICgAs-EeGcpbeCPJfCmw"/>
+      <ownedAttribute xmi:id="_VZx2KBE9EeGOffqMW1YiZA" name="interruptingEdge" visibility="public" type="_VVcIsBE9EeGOffqMW1YiZA" association="_VTr1MRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZx2KRE9EeGOffqMW1YiZA" annotatedElement="_VZx2KBE9EeGOffqMW1YiZA">
           <body>The edges leaving the region that will abort other tokens flowing in the region.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0fmuNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0fmudwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZx2KhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZx2KxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0fmutwbEeCT5O2F6sGn5g" name="node" visibility="public" type="_gzbPsNwbEeCT5O2F6sGn5g" subsettedProperty="_gzaBoNwbEeCT5O2F6sGn5g" association="_gyfbmNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0fmu9wbEeCT5O2F6sGn5g" annotatedElement="_g0fmutwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZx2LBE9EeGOffqMW1YiZA" name="node" visibility="public" type="_WpiyYAs-EeGcpbeCPJfCmw" subsettedProperty="_VVd96BE9EeGOffqMW1YiZA" association="_VTnjyBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZx2LRE9EeGOffqMW1YiZA" annotatedElement="_VZx2LBE9EeGOffqMW1YiZA">
           <body>Nodes immediately contained in the group.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0fmvNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0fmvdwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZx2LhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZx2LxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0fmvtwbEeCT5O2F6sGn5g" name="Interval">
-      <ownedComment xmi:id="_g0fmv9wbEeCT5O2F6sGn5g" annotatedElement="_g0fmvtwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZydMBE9EeGOffqMW1YiZA" name="Interval">
+      <ownedComment xmi:id="_VZydMRE9EeGOffqMW1YiZA" annotatedElement="_VZydMBE9EeGOffqMW1YiZA">
         <body>An interval defines the range between two value specifications.</body>
       </ownedComment>
-      <generalization xmi:id="_g0fmwNwbEeCT5O2F6sGn5g" general="_g2YdENwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g0fmwdwbEeCT5O2F6sGn5g" name="max" visibility="public" type="_g2YdENwbEeCT5O2F6sGn5g" association="_gyie6NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0fmwtwbEeCT5O2F6sGn5g" annotatedElement="_g0fmwdwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VZydMhE9EeGOffqMW1YiZA" general="_VfGbABE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VZydMxE9EeGOffqMW1YiZA" name="max" visibility="public" type="_VfGbABE9EeGOffqMW1YiZA" association="_VTvflBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZydNBE9EeGOffqMW1YiZA" annotatedElement="_VZydMxE9EeGOffqMW1YiZA">
           <body>Refers to the ValueSpecification denoting the maximum value of the range.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0fmw9wbEeCT5O2F6sGn5g" name="min" visibility="public" type="_g2YdENwbEeCT5O2F6sGn5g" association="_gyjtENwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0fmxNwbEeCT5O2F6sGn5g" annotatedElement="_g0fmw9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZydNRE9EeGOffqMW1YiZA" name="min" visibility="public" type="_VfGbABE9EeGOffqMW1YiZA" association="_VTzJ8BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZydNhE9EeGOffqMW1YiZA" annotatedElement="_VZydNRE9EeGOffqMW1YiZA">
           <body>Refers to the ValueSpecification denoting the minimum value of the range.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0gNwNwbEeCT5O2F6sGn5g" name="IntervalConstraint">
-      <ownedComment xmi:id="_g0gNwdwbEeCT5O2F6sGn5g" annotatedElement="_g0gNwNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZydNxE9EeGOffqMW1YiZA" name="IntervalConstraint">
+      <ownedComment xmi:id="_VZydOBE9EeGOffqMW1YiZA" annotatedElement="_VZydNxE9EeGOffqMW1YiZA">
         <body>An interval constraint is a constraint that refers to an interval.</body>
       </ownedComment>
-      <generalization xmi:id="_g0gNwtwbEeCT5O2F6sGn5g" general="_g0AegNwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g0gNw9wbEeCT5O2F6sGn5g" name="specification" visibility="public" type="_g0fmvtwbEeCT5O2F6sGn5g" aggregation="composite" redefinedProperty="_g0AeltwbEeCT5O2F6sGn5g" association="_gy6SUNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0gNxNwbEeCT5O2F6sGn5g" annotatedElement="_g0gNw9wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VZydORE9EeGOffqMW1YiZA" general="_VYbLQBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VZydOhE9EeGOffqMW1YiZA" name="specification" visibility="public" type="_VZydMBE9EeGOffqMW1YiZA" aggregation="composite" redefinedProperty="_VYbLVhE9EeGOffqMW1YiZA" association="_VUlNFBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZydOxE9EeGOffqMW1YiZA" annotatedElement="_VZydOhE9EeGOffqMW1YiZA">
           <body>A condition that must be true when evaluated in order for the constraint to be satisfied.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0gNxdwbEeCT5O2F6sGn5g" name="InvocationAction" isAbstract="true">
-      <ownedComment xmi:id="_g0gNxtwbEeCT5O2F6sGn5g" annotatedElement="_g0gNxdwbEeCT5O2F6sGn5g">
-        <body>In addition to targeting an object, invocation actions can also invoke behavioral features on ports from where the invocation requests are routed onwards on links deriving from attached connectors. Invocation actions may also be sent to a target via a given port, either on the sending object or on another object.</body>
-      </ownedComment>
-      <ownedComment xmi:id="_g0gNx9wbEeCT5O2F6sGn5g" annotatedElement="_g0gNxdwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZzEQBE9EeGOffqMW1YiZA" name="InvocationAction" isAbstract="true">
+      <ownedComment xmi:id="_VZzEQRE9EeGOffqMW1YiZA" annotatedElement="_VZzEQBE9EeGOffqMW1YiZA">
         <body>InvocationAction is an abstract class for the various actions that invoke behavior.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0gNyNwbEeCT5O2F6sGn5g" name="on_port_receiver" constrainedElement="_g0gNxdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0gNydwbEeCT5O2F6sGn5g" annotatedElement="_g0gNyNwbEeCT5O2F6sGn5g">
+      <ownedComment xmi:id="_VZzEQhE9EeGOffqMW1YiZA" annotatedElement="_VZzEQBE9EeGOffqMW1YiZA">
+        <body>In addition to targeting an object, invocation actions can also invoke behavioral features on ports from where the invocation requests are routed onwards on links deriving from attached connectors. Invocation actions may also be sent to a target via a given port, either on the sending object or on another object.</body>
+      </ownedComment>
+      <ownedRule xmi:id="_VZzEQxE9EeGOffqMW1YiZA" name="on_port_receiver" constrainedElement="_VZzEQBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZzERBE9EeGOffqMW1YiZA" annotatedElement="_VZzEQxE9EeGOffqMW1YiZA">
           <body>The onPort must be a port on the receiver object.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0gNytwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZzERRE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0gNy9wbEeCT5O2F6sGn5g" general="_6WKakLLQEeCsYvaJqFFivQ"/>
-      <ownedAttribute xmi:id="_g0gNzNwbEeCT5O2F6sGn5g" name="argument" visibility="public" type="_g0aHKdwbEeCT5O2F6sGn5g" isOrdered="true" aggregation="composite" subsettedProperty="_gzBnMNwbEeCT5O2F6sGn5g" association="_gySnRtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0gNzdwbEeCT5O2F6sGn5g" annotatedElement="_g0gNzNwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VZzERhE9EeGOffqMW1YiZA" general="_6WKakLLQEeCsYvaJqFFivQ"/>
+      <ownedAttribute xmi:id="_VZzERxE9EeGOffqMW1YiZA" name="argument" visibility="public" type="_VZp6WRE9EeGOffqMW1YiZA" isOrdered="true" aggregation="composite" subsettedProperty="_VU4IABE9EeGOffqMW1YiZA" association="_VS-DgxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZzESBE9EeGOffqMW1YiZA" annotatedElement="_VZzERxE9EeGOffqMW1YiZA">
           <body>Specification of the ordered set of argument values that appears during execution.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0gNztwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0gNz9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZzESRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZzEShE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0gN0NwbEeCT5O2F6sGn5g" name="onPort" visibility="public" type="_ZAuvEGveEdq4DLWZOhbdEA" association="_gymwV9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0gN0dwbEeCT5O2F6sGn5g" annotatedElement="_g0gN0NwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZzESxE9EeGOffqMW1YiZA" name="onPort" visibility="public" type="_ZAuvEGveEdq4DLWZOhbdEA" association="_VT8T4BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZzETBE9EeGOffqMW1YiZA" annotatedElement="_VZzESxE9EeGOffqMW1YiZA">
           <body>A optional port of the receiver object on which the behavioral feature is invoked.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0gN0twbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZzETRE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0g00NwbEeCT5O2F6sGn5g" name="JoinNode">
-      <ownedComment xmi:id="_g0g00dwbEeCT5O2F6sGn5g" annotatedElement="_g0g00NwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZzrUBE9EeGOffqMW1YiZA" name="JoinNode">
+      <ownedComment xmi:id="_VZzrURE9EeGOffqMW1YiZA" annotatedElement="_VZzrUBE9EeGOffqMW1YiZA">
         <body>A join node is a control node that synchronizes multiple flows.</body>
       </ownedComment>
-      <ownedComment xmi:id="_g0g00twbEeCT5O2F6sGn5g" annotatedElement="_g0g00NwbEeCT5O2F6sGn5g">
+      <ownedComment xmi:id="_VZzrUhE9EeGOffqMW1YiZA" annotatedElement="_VZzrUBE9EeGOffqMW1YiZA">
         <body>Join nodes have a Boolean value specification using the names of the incoming edges to specify the conditions under which the join will emit a token.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0g009wbEeCT5O2F6sGn5g" name="one_outgoing_edge" constrainedElement="_g0g00NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0g01NwbEeCT5O2F6sGn5g" annotatedElement="_g0g009wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZzrUxE9EeGOffqMW1YiZA" name="one_outgoing_edge" constrainedElement="_VZzrUBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZzrVBE9EeGOffqMW1YiZA" annotatedElement="_VZzrUxE9EeGOffqMW1YiZA">
           <body>A join node has one outgoing edge.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0g01dwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZzrVRE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.outgoing->size() = 1</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g0g01twbEeCT5O2F6sGn5g" name="incoming_object_flow" constrainedElement="_g0g00NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0g019wbEeCT5O2F6sGn5g" annotatedElement="_g0g01twbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZzrVhE9EeGOffqMW1YiZA" name="incoming_object_flow" constrainedElement="_VZzrUBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZzrVxE9EeGOffqMW1YiZA" annotatedElement="_VZzrVhE9EeGOffqMW1YiZA">
           <body>If a join node has an incoming object flow, it must have an outgoing object flow, otherwise, it must have an outgoing control flow.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0g02NwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZzrWBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>(self.incoming.select(e | e.isTypeOf(ObjectFlow)->notEmpty() implies
   self.outgoing.isTypeOf(ObjectFlow)) and
@@ -8040,96 +8043,96 @@
       self.outgoing.isTypeOf(ControlFlow))</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0g02dwbEeCT5O2F6sGn5g" general="_g0BFndwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g0g02twbEeCT5O2F6sGn5g" name="isCombineDuplicate" visibility="public">
-        <ownedComment xmi:id="_g0g029wbEeCT5O2F6sGn5g" annotatedElement="_g0g02twbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VZzrWRE9EeGOffqMW1YiZA" general="_VYdAcBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VZzrWhE9EeGOffqMW1YiZA" name="isCombineDuplicate" visibility="public">
+        <ownedComment xmi:id="_VZzrWxE9EeGOffqMW1YiZA" annotatedElement="_VZzrWhE9EeGOffqMW1YiZA">
           <body>Tells whether tokens having objects with the same identity are combined into one by the join.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g0g03NwbEeCT5O2F6sGn5g" value="true"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VZzrXBE9EeGOffqMW1YiZA" value="true"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0g03dwbEeCT5O2F6sGn5g" name="joinSpec" visibility="public" type="_g2YdENwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gyhQydwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0g03twbEeCT5O2F6sGn5g" annotatedElement="_g0g03dwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZzrXRE9EeGOffqMW1YiZA" name="joinSpec" visibility="public" type="_VfGbABE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VTr1NRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZzrXhE9EeGOffqMW1YiZA" annotatedElement="_VZzrXRE9EeGOffqMW1YiZA">
           <body>A specification giving the conditions under which the join with emit a token. Default is &quot;and&quot;.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0hb4NwbEeCT5O2F6sGn5g" name="Lifeline">
-      <ownedComment xmi:id="_g0hb4dwbEeCT5O2F6sGn5g" annotatedElement="_g0hb4NwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZ0SYBE9EeGOffqMW1YiZA" name="Lifeline">
+      <ownedComment xmi:id="_VZ0SYRE9EeGOffqMW1YiZA" annotatedElement="_VZ0SYBE9EeGOffqMW1YiZA">
         <body>A lifeline represents an individual participant in the interaction. While parts and structural features may have multiplicity greater than 1, lifelines represent only one interacting entity.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0hb4twbEeCT5O2F6sGn5g" name="selector_specified" constrainedElement="_g0hb4NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0hb49wbEeCT5O2F6sGn5g" annotatedElement="_g0hb4twbEeCT5O2F6sGn5g">
-          <body>The selector for a Lifeline must only be specified if the referenced Part is multivalued.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0hb5NwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>(self.selector->isEmpty() implies not self.represents.isMultivalued()) or
-(not self.selector->isEmpty() implies self.represents.isMultivalued())
-</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g0hb5dwbEeCT5O2F6sGn5g" name="interaction_uses_share_lifeline" constrainedElement="_g0hb4NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0hb5twbEeCT5O2F6sGn5g" annotatedElement="_g0hb5dwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZ0SYhE9EeGOffqMW1YiZA" name="interaction_uses_share_lifeline" constrainedElement="_VZ0SYBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ0SYxE9EeGOffqMW1YiZA" annotatedElement="_VZ0SYhE9EeGOffqMW1YiZA">
           <body>If two (or more) InteractionUses within one Interaction, refer to Interactions with 'common Lifelines,' those Lifelines must also appear in the Interaction with the InteractionUses. By common Lifelines we mean Lifelines with the same selector and represents associations.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0hb59wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZ0SZBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g0hb6NwbEeCT5O2F6sGn5g" name="same_classifier" constrainedElement="_g0hb4NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0hb6dwbEeCT5O2F6sGn5g" annotatedElement="_g0hb6NwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZ0SZRE9EeGOffqMW1YiZA" name="same_classifier" constrainedElement="_VZ0SYBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ0SZhE9EeGOffqMW1YiZA" annotatedElement="_VZ0SZRE9EeGOffqMW1YiZA">
           <body>The classifier containing the referenced ConnectableElement must be the same classifier, or an ancestor, of the classifier that contains the interaction enclosing this lifeline.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0hb6twbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZ0SZxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>if (represents->notEmpty()) then
 (if selector->notEmpty() then represents.isMultivalued() else not represents.isMultivalued())
 </body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0hb69wbEeCT5O2F6sGn5g" general="_csVgUGvtEdqG6fBIPwe-mw"/>
-      <ownedAttribute xmi:id="_g0hb7NwbEeCT5O2F6sGn5g" name="coveredBy" visibility="public" type="_g0cjYNwbEeCT5O2F6sGn5g" association="_gyW4wNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0hb7dwbEeCT5O2F6sGn5g" annotatedElement="_g0hb7NwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZ0SaBE9EeGOffqMW1YiZA" name="selector_specified" constrainedElement="_VZ0SYBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ0SaRE9EeGOffqMW1YiZA" annotatedElement="_VZ0SaBE9EeGOffqMW1YiZA">
+          <body>The selector for a Lifeline must only be specified if the referenced Part is multivalued.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZ0SahE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>(self.selector->isEmpty() implies not self.represents.isMultivalued()) or
+(not self.selector->isEmpty() implies self.represents.isMultivalued())
+</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VZ0SaxE9EeGOffqMW1YiZA" general="_csVgUGvtEdqG6fBIPwe-mw"/>
+      <ownedAttribute xmi:id="_VZ0SbBE9EeGOffqMW1YiZA" name="coveredBy" visibility="public" type="_VZuLwBE9EeGOffqMW1YiZA" association="_VTKQwBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ0SbRE9EeGOffqMW1YiZA" annotatedElement="_VZ0SbBE9EeGOffqMW1YiZA">
           <body>References the InteractionFragments in which this Lifeline takes part.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0hb7twbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0hb79wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZ0SbhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZ0SbxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0hb8NwbEeCT5O2F6sGn5g" name="decomposedAs" visibility="public" type="_g1oPINwbEeCT5O2F6sGn5g" association="_gyYG0twbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0hb8dwbEeCT5O2F6sGn5g" annotatedElement="_g0hb8NwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZ0ScBE9EeGOffqMW1YiZA" name="decomposedAs" visibility="public" type="_Vc8e4BE9EeGOffqMW1YiZA" association="_VTMtABE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ0ScRE9EeGOffqMW1YiZA" annotatedElement="_VZ0ScBE9EeGOffqMW1YiZA">
           <body>References the Interaction that represents the decomposition.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0hb8twbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZ0SchE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0hb89wbEeCT5O2F6sGn5g" name="interaction" visibility="public" type="_g0bVQNwbEeCT5O2F6sGn5g" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_gyhQzNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0hb9NwbEeCT5O2F6sGn5g" annotatedElement="_g0hb89wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZ0ScxE9EeGOffqMW1YiZA" name="interaction" visibility="public" type="_VZsWkBE9EeGOffqMW1YiZA" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_VTscQBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ0SdBE9EeGOffqMW1YiZA" annotatedElement="_VZ0ScxE9EeGOffqMW1YiZA">
           <body>References the Interaction enclosing this Lifeline.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0hb9dwbEeCT5O2F6sGn5g" name="represents" visibility="public" type="_0dB44PnhEdunWsS3se92JQ" association="_gyzkqNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0hb9twbEeCT5O2F6sGn5g" annotatedElement="_g0hb9dwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZ0SdRE9EeGOffqMW1YiZA" name="represents" visibility="public" type="_0dB44PnhEdunWsS3se92JQ" association="_VUbcEBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ0SdhE9EeGOffqMW1YiZA" annotatedElement="_VZ0SdRE9EeGOffqMW1YiZA">
           <body>References the ConnectableElement within the classifier that contains the enclosing interaction.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0hb99wbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZ0SdxE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0hb-NwbEeCT5O2F6sGn5g" name="selector" visibility="public" type="_g2YdENwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gy4dKNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0hb-dwbEeCT5O2F6sGn5g" annotatedElement="_g0hb-NwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZ0SeBE9EeGOffqMW1YiZA" name="selector" visibility="public" type="_VfGbABE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VUiw0BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ0SeRE9EeGOffqMW1YiZA" annotatedElement="_VZ0SeBE9EeGOffqMW1YiZA">
           <body>If the referenced ConnectableElement is multivalued, then this specifies the specific individual part within that set.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0hb-twbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZ0SehE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0iC8NwbEeCT5O2F6sGn5g" name="LinkAction" isAbstract="true">
-      <ownedComment xmi:id="_g0iC8dwbEeCT5O2F6sGn5g" annotatedElement="_g0iC8NwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZ1ggBE9EeGOffqMW1YiZA" name="LinkAction" isAbstract="true">
+      <ownedComment xmi:id="_VZ1ggRE9EeGOffqMW1YiZA" annotatedElement="_VZ1ggBE9EeGOffqMW1YiZA">
         <body>LinkAction is an abstract class for all link actions that identify their links by the objects at the ends of the links and by the qualifiers at ends of the links.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0iC8twbEeCT5O2F6sGn5g" name="same_pins" constrainedElement="_g0iC8NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0iC89wbEeCT5O2F6sGn5g" annotatedElement="_g0iC8twbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZ1gghE9EeGOffqMW1YiZA" name="same_pins" constrainedElement="_VZ1ggBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ1ggxE9EeGOffqMW1YiZA" annotatedElement="_VZ1gghE9EeGOffqMW1YiZA">
           <body>The input pins of the action are the same as the pins of the link end data and insertion pins.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0iC9NwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZ1ghBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.input->asSet() =
 let ledpins : Set = self.endData->collect(value) in
@@ -8139,60 +8142,69 @@
 </body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g0iC9dwbEeCT5O2F6sGn5g" name="same_association" constrainedElement="_g0iC8NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0iC9twbEeCT5O2F6sGn5g" annotatedElement="_g0iC9dwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZ1ghRE9EeGOffqMW1YiZA" name="same_association" constrainedElement="_VZ1ggBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ1ghhE9EeGOffqMW1YiZA" annotatedElement="_VZ1ghRE9EeGOffqMW1YiZA">
           <body>The association ends of the link end data must all be from the same association and include all and only the association ends of that association.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0iC99wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZ1ghxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.endData->collect(end) = self.association()->collect(connection))</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g0iC-NwbEeCT5O2F6sGn5g" name="not_static" constrainedElement="_g0iC8NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0iC-dwbEeCT5O2F6sGn5g" annotatedElement="_g0iC-NwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZ1giBE9EeGOffqMW1YiZA" name="not_static" constrainedElement="_VZ1ggBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ1giRE9EeGOffqMW1YiZA" annotatedElement="_VZ1giBE9EeGOffqMW1YiZA">
           <body>The association ends of the link end data must not be static.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0iC-twbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZ1gihE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.endData->forall(end.oclisKindOf(NavigableEnd) implies end.isStatic = #false</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0iC-9wbEeCT5O2F6sGn5g" general="_6WKakLLQEeCsYvaJqFFivQ"/>
-      <ownedAttribute xmi:id="_g0iC_NwbEeCT5O2F6sGn5g" name="endData" visibility="public" type="_g0jRENwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gyZ8A9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0iC_dwbEeCT5O2F6sGn5g" annotatedElement="_g0iC_NwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VZ1gixE9EeGOffqMW1YiZA" general="_6WKakLLQEeCsYvaJqFFivQ"/>
+      <ownedAttribute xmi:id="_VZ1gjBE9EeGOffqMW1YiZA" name="endData" visibility="public" type="_VZ3VsBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VTRlhhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ1gjRE9EeGOffqMW1YiZA" annotatedElement="_VZ1gjBE9EeGOffqMW1YiZA">
           <body>Data identifying one end of a link by the objects on its ends and qualifiers.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0iC_twbEeCT5O2F6sGn5g" value="2"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0iC_9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZ1gjhE9EeGOffqMW1YiZA" value="2"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZ1gjxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0iDANwbEeCT5O2F6sGn5g" name="inputValue" visibility="public" type="_g0aHKdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzBnMNwbEeCT5O2F6sGn5g" association="_gygpsNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0iDAdwbEeCT5O2F6sGn5g" annotatedElement="_g0iDANwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZ1gkBE9EeGOffqMW1YiZA" name="inputValue" visibility="public" type="_VZp6WRE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4IABE9EeGOffqMW1YiZA" association="_VTqABRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ1gkRE9EeGOffqMW1YiZA" annotatedElement="_VZ1gkBE9EeGOffqMW1YiZA">
           <body>Pins taking end objects and qualifier values as input.</body>
         </ownedComment>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0iDAtwbEeCT5O2F6sGn5g" value="*"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZ1gkhE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedOperation xmi:id="_g0iDA9wbEeCT5O2F6sGn5g" name="association" visibility="public" bodyCondition="_g0iDBdwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g0iDBNwbEeCT5O2F6sGn5g" annotatedElement="_g0iDA9wbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VZ1gkxE9EeGOffqMW1YiZA" name="association" visibility="public" bodyCondition="_VZ1glRE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VZ1glBE9EeGOffqMW1YiZA" annotatedElement="_VZ1gkxE9EeGOffqMW1YiZA">
           <body>The association operates on LinkAction. It returns the association of the action.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g0iDBdwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g0iDA9wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0iDBtwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VZ1glRE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VZ1gkxE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZ1glhE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = self.endData->asSequence().first().end.association</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g0iDB9wbEeCT5O2F6sGn5g" name="result" visibility="public" type="_AwvxoGwNEdq7X4sGURiZYA" direction="return"/>
+        <ownedParameter xmi:id="_VZ1glxE9EeGOffqMW1YiZA" name="result" visibility="public" type="_AwvxoGwNEdq7X4sGURiZYA" direction="return"/>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0iqANwbEeCT5O2F6sGn5g" name="LinkEndCreationData">
-      <ownedComment xmi:id="_g0iqAdwbEeCT5O2F6sGn5g" annotatedElement="_g0iqANwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZ2HkBE9EeGOffqMW1YiZA" name="LinkEndCreationData">
+      <ownedComment xmi:id="_VZ2HkRE9EeGOffqMW1YiZA" annotatedElement="_VZ2HkBE9EeGOffqMW1YiZA">
         <body>A link end creation data is not an action. It is an element that identifies links. It identifies one end of a link to be created by a create link action.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0iqAtwbEeCT5O2F6sGn5g" name="single_input_pin" constrainedElement="_g0iqANwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0iqA9wbEeCT5O2F6sGn5g" annotatedElement="_g0iqAtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZ2HkhE9EeGOffqMW1YiZA" name="create_link_action" constrainedElement="_VZ2HkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ2HkxE9EeGOffqMW1YiZA" annotatedElement="_VZ2HkhE9EeGOffqMW1YiZA">
+          <body>LinkEndCreationData can only be end data for CreateLinkAction or one of its specializations.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZ2HlBE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>self.LinkAction.oclIsKindOf(CreateLinkAction)</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VZ2HlRE9EeGOffqMW1YiZA" name="single_input_pin" constrainedElement="_VZ2HkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ2HlhE9EeGOffqMW1YiZA" annotatedElement="_VZ2HlRE9EeGOffqMW1YiZA">
           <body>Link end creation data for ordered association ends must have a single input pin for the insertion point with type UnlimitedNatural and multiplicity of 1..1, otherwise the action has no input pin for the insertion point.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0iqBNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZ2HlxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>let insertAtPins : Collection = self.insertAt in
 if self.end.ordering = #unordered
@@ -8205,268 +8217,259 @@
 </body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g0iqBdwbEeCT5O2F6sGn5g" name="create_link_action" constrainedElement="_g0iqANwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0iqBtwbEeCT5O2F6sGn5g" annotatedElement="_g0iqBdwbEeCT5O2F6sGn5g">
-          <body>LinkEndCreationData can only be end data for CreateLinkAction or one of its specializations.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0iqB9wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>self.LinkAction.oclIsKindOf(CreateLinkAction)</body>
-        </specification>
-      </ownedRule>
-      <generalization xmi:id="_g0iqCNwbEeCT5O2F6sGn5g" general="_g0jRENwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g0iqCdwbEeCT5O2F6sGn5g" name="insertAt" visibility="public" type="_g0aHKdwbEeCT5O2F6sGn5g" association="_gygpv9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0iqCtwbEeCT5O2F6sGn5g" annotatedElement="_g0iqCdwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VZ2HmBE9EeGOffqMW1YiZA" general="_VZ3VsBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VZ2HmRE9EeGOffqMW1YiZA" name="insertAt" visibility="public" type="_VZp6WRE9EeGOffqMW1YiZA" association="_VTrOIxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ2HmhE9EeGOffqMW1YiZA" annotatedElement="_VZ2HmRE9EeGOffqMW1YiZA">
           <body>Specifies where the new link should be inserted for ordered association ends, or where an existing link should be moved to. The type of the input is UnlimitedNatural, but the input cannot be zero. This pin is omitted for association ends that are not ordered.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0iqC9wbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZ2HmxE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0iqDNwbEeCT5O2F6sGn5g" name="isReplaceAll" visibility="public">
-        <ownedComment xmi:id="_g0iqDdwbEeCT5O2F6sGn5g" annotatedElement="_g0iqDNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZ2HnBE9EeGOffqMW1YiZA" name="isReplaceAll" visibility="public">
+        <ownedComment xmi:id="_VZ2HnRE9EeGOffqMW1YiZA" annotatedElement="_VZ2HnBE9EeGOffqMW1YiZA">
           <body>Specifies whether the existing links emanating from the object on this end should be destroyed before creating a new link.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g0iqDtwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VZ2HnhE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0jRENwbEeCT5O2F6sGn5g" name="LinkEndData">
-      <ownedComment xmi:id="_g0jREdwbEeCT5O2F6sGn5g" annotatedElement="_g0jRENwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZ3VsBE9EeGOffqMW1YiZA" name="LinkEndData">
+      <ownedComment xmi:id="_VZ3VsRE9EeGOffqMW1YiZA" annotatedElement="_VZ3VsBE9EeGOffqMW1YiZA">
         <body>A link end data is not an action. It is an element that identifies links. It identifies one end of a link to be read or written by the children of a link action. A link cannot be passed as a runtime value to or from an action. Instead, a link is identified by its end objects and qualifier values, if any. This requires more than one piece of data, namely, the statically-specified end in the user model, the object on the end, and the qualifier values for that end, if any. These pieces are brought together around a link end data. Each association end is identified separately with an instance of the LinkEndData class.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0jREtwbEeCT5O2F6sGn5g" name="same_type" constrainedElement="_g0jRENwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0jRE9wbEeCT5O2F6sGn5g" annotatedElement="_g0jREtwbEeCT5O2F6sGn5g">
-          <body>The type of the end object input pin is the same as the type of the association end.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0jRFNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>self.value.type = self.end.type</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g0jRFdwbEeCT5O2F6sGn5g" name="multiplicity" constrainedElement="_g0jRENwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0jRFtwbEeCT5O2F6sGn5g" annotatedElement="_g0jRFdwbEeCT5O2F6sGn5g">
-          <body>The multiplicity of the end object input pin must be 1..1.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0jRF9wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>self.value.multiplicity.is(1,1)</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g0jRGNwbEeCT5O2F6sGn5g" name="end_object_input_pin" constrainedElement="_g0jRENwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0jRGdwbEeCT5O2F6sGn5g" annotatedElement="_g0jRGNwbEeCT5O2F6sGn5g">
-          <body>The end object input pin is not also a qualifier value input pin.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0jRGtwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>self.value->excludesAll(self.qualifier.value)</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g0jRG9wbEeCT5O2F6sGn5g" name="property_is_association_end" constrainedElement="_g0jRENwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0jRHNwbEeCT5O2F6sGn5g" annotatedElement="_g0jRG9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZ3VshE9EeGOffqMW1YiZA" name="property_is_association_end" constrainedElement="_VZ3VsBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ3VsxE9EeGOffqMW1YiZA" annotatedElement="_VZ3VshE9EeGOffqMW1YiZA">
           <body>The property must be an association end.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0jRHdwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZ3VtBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.end.association->size() = 1</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g0jRHtwbEeCT5O2F6sGn5g" name="qualifiers" constrainedElement="_g0jRENwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0jRH9wbEeCT5O2F6sGn5g" annotatedElement="_g0jRHtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZ3VtRE9EeGOffqMW1YiZA" name="end_object_input_pin" constrainedElement="_VZ3VsBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ3VthE9EeGOffqMW1YiZA" annotatedElement="_VZ3VtRE9EeGOffqMW1YiZA">
+          <body>The end object input pin is not also a qualifier value input pin.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZ3VtxE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>self.value->excludesAll(self.qualifier.value)</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VZ3VuBE9EeGOffqMW1YiZA" name="same_type" constrainedElement="_VZ3VsBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ3VuRE9EeGOffqMW1YiZA" annotatedElement="_VZ3VuBE9EeGOffqMW1YiZA">
+          <body>The type of the end object input pin is the same as the type of the association end.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZ3VuhE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>self.value.type = self.end.type</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VZ3VuxE9EeGOffqMW1YiZA" name="multiplicity" constrainedElement="_VZ3VsBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ3VvBE9EeGOffqMW1YiZA" annotatedElement="_VZ3VuxE9EeGOffqMW1YiZA">
+          <body>The multiplicity of the end object input pin must be 1..1.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZ3VvRE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>self.value.multiplicity.is(1,1)</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VZ3VvhE9EeGOffqMW1YiZA" name="qualifiers" constrainedElement="_VZ3VsBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ3VvxE9EeGOffqMW1YiZA" annotatedElement="_VZ3VvhE9EeGOffqMW1YiZA">
           <body>The qualifiers include all and only the qualifiers of the association end.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0jRINwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZ3VwBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.qualifier->collect(qualifier) = self.end.qualifier</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0jRIdwbEeCT5O2F6sGn5g" general="_kl90MGvbEdq4DLWZOhbdEA"/>
-      <ownedAttribute xmi:id="_g0jRItwbEeCT5O2F6sGn5g" name="end" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" association="_gyZ8C9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0jRI9wbEeCT5O2F6sGn5g" annotatedElement="_g0jRItwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VZ3VwRE9EeGOffqMW1YiZA" general="_kl90MGvbEdq4DLWZOhbdEA"/>
+      <ownedAttribute xmi:id="_VZ3VwhE9EeGOffqMW1YiZA" name="end" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" association="_VTSzoBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ3VwxE9EeGOffqMW1YiZA" annotatedElement="_VZ3VwhE9EeGOffqMW1YiZA">
           <body>Association end for which this link-end data specifies values.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0jRJNwbEeCT5O2F6sGn5g" name="qualifier" visibility="public" type="_g1zOZ9wbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gyuFGdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0jRJdwbEeCT5O2F6sGn5g" annotatedElement="_g0jRJNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZ3VxBE9EeGOffqMW1YiZA" name="qualifier" visibility="public" type="_VdbnEBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VUMLhRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ3VxRE9EeGOffqMW1YiZA" annotatedElement="_VZ3VxBE9EeGOffqMW1YiZA">
           <body>List of qualifier values</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0jRJtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g0jRJ9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZ3VxhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZ3VxxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0jRKNwbEeCT5O2F6sGn5g" name="value" visibility="public" type="_g0aHKdwbEeCT5O2F6sGn5g" association="_gy_K0NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0jRKdwbEeCT5O2F6sGn5g" annotatedElement="_g0jRKNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZ3VyBE9EeGOffqMW1YiZA" name="value" visibility="public" type="_VZp6WRE9EeGOffqMW1YiZA" association="_VUwMMBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ3VyRE9EeGOffqMW1YiZA" annotatedElement="_VZ3VyBE9EeGOffqMW1YiZA">
           <body>Input pin that provides the specified object for the given end. This pin is omitted if the link-end data specifies an 'open' end for reading.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0jRKtwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZ3VyhE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g0j4INwbEeCT5O2F6sGn5g" name="LinkEndDestructionData">
-      <ownedComment xmi:id="_g0j4IdwbEeCT5O2F6sGn5g" annotatedElement="_g0j4INwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZ38wBE9EeGOffqMW1YiZA" name="LinkEndDestructionData">
+      <ownedComment xmi:id="_VZ38wRE9EeGOffqMW1YiZA" annotatedElement="_VZ38wBE9EeGOffqMW1YiZA">
         <body>A link end destruction data is not an action. It is an element that identifies links. It identifies one end of a link to be destroyed by destroy link action.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g0j4ItwbEeCT5O2F6sGn5g" name="unlimited_natural_and_multiplicity" constrainedElement="_g0j4INwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0j4I9wbEeCT5O2F6sGn5g" annotatedElement="_g0j4ItwbEeCT5O2F6sGn5g">
-          <body>LinkEndDestructionData for ordered nonunique association ends must have a single destroyAt input pin if isDestroyDuplicates is false. It must be of type UnlimitedNatural and have a multiplicity of 1..1. Otherwise, the action has no input pin for the removal position.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0j4JNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g0j4JdwbEeCT5O2F6sGn5g" name="destroy_link_action" constrainedElement="_g0j4INwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0j4JtwbEeCT5O2F6sGn5g" annotatedElement="_g0j4JdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZ38whE9EeGOffqMW1YiZA" name="destroy_link_action" constrainedElement="_VZ38wBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ38wxE9EeGOffqMW1YiZA" annotatedElement="_VZ38whE9EeGOffqMW1YiZA">
           <body>LinkEndDestructionData can only be end data for DestroyLinkAction or one of its specializations.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0j4J9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZ38xBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g0j4KNwbEeCT5O2F6sGn5g" general="_g0jRENwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g0j4KdwbEeCT5O2F6sGn5g" name="destroyAt" visibility="public" type="_g0aHKdwbEeCT5O2F6sGn5g" association="_gyYt8dwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0j4KtwbEeCT5O2F6sGn5g" annotatedElement="_g0j4KdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZ38xRE9EeGOffqMW1YiZA" name="unlimited_natural_and_multiplicity" constrainedElement="_VZ38wBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ38xhE9EeGOffqMW1YiZA" annotatedElement="_VZ38xRE9EeGOffqMW1YiZA">
+          <body>LinkEndDestructionData for ordered nonunique association ends must have a single destroyAt input pin if isDestroyDuplicates is false. It must be of type UnlimitedNatural and have a multiplicity of 1..1. Otherwise, the action has no input pin for the removal position.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZ38xxE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VZ38yBE9EeGOffqMW1YiZA" general="_VZ3VsBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VZ38yRE9EeGOffqMW1YiZA" name="destroyAt" visibility="public" type="_VZp6WRE9EeGOffqMW1YiZA" association="_VTPwUBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ38yhE9EeGOffqMW1YiZA" annotatedElement="_VZ38yRE9EeGOffqMW1YiZA">
           <body>Specifies the position of an existing link to be destroyed in ordered nonunique association ends. The type of the pin is UnlimitedNatural, but the value cannot be zero or unlimited.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g0j4K9wbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZ38yxE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g0j4LNwbEeCT5O2F6sGn5g" name="isDestroyDuplicates" visibility="public">
-        <ownedComment xmi:id="_g0j4LdwbEeCT5O2F6sGn5g" annotatedElement="_g0j4LNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZ38zBE9EeGOffqMW1YiZA" name="isDestroyDuplicates" visibility="public">
+        <ownedComment xmi:id="_VZ38zRE9EeGOffqMW1YiZA" annotatedElement="_VZ38zBE9EeGOffqMW1YiZA">
           <body>Specifies whether to destroy duplicates of the value in nonunique association ends.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g0j4LtwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VZ38zhE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_FFMNsGveEdq4DLWZOhbdEA" name="LiteralBoolean">
-      <ownedComment xmi:id="_g0j4L9wbEeCT5O2F6sGn5g" annotatedElement="_FFMNsGveEdq4DLWZOhbdEA">
+      <ownedComment xmi:id="_VZ38zxE9EeGOffqMW1YiZA" annotatedElement="_FFMNsGveEdq4DLWZOhbdEA">
         <body>A literal Boolean is a specification of a Boolean value.</body>
       </ownedComment>
-      <generalization xmi:id="_g0j4MNwbEeCT5O2F6sGn5g" general="_g1HRxdwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g0j4MdwbEeCT5O2F6sGn5g" name="value" visibility="public">
-        <ownedComment xmi:id="_g0j4MtwbEeCT5O2F6sGn5g" annotatedElement="_g0j4MdwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VZ380BE9EeGOffqMW1YiZA" general="_VZ7nIBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VZ380RE9EeGOffqMW1YiZA" name="value" visibility="public">
+        <ownedComment xmi:id="_VZ380hE9EeGOffqMW1YiZA" annotatedElement="_VZ380RE9EeGOffqMW1YiZA">
           <body>The specified Boolean value.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g0j4M9wbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VZ380xE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
       <ownedOperation xmi:id="_aXS3gGWKEdq-f4093SZhVA" name="stringValue" visibility="protected" isQuery="true">
         <ownedParameter xmi:id="_cFthIGWKEdq-f4093SZhVA" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g0j4NNwbEeCT5O2F6sGn5g" name="booleanValue" visibility="public" bodyCondition="_g0j4NtwbEeCT5O2F6sGn5g" isQuery="true" redefinedOperation="_g2YdFdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g0j4NdwbEeCT5O2F6sGn5g" annotatedElement="_g0j4NNwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VZ381BE9EeGOffqMW1YiZA" name="booleanValue" visibility="public" bodyCondition="_VZ381hE9EeGOffqMW1YiZA" isQuery="true" redefinedOperation="_VfGbBRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ381RE9EeGOffqMW1YiZA" annotatedElement="_VZ381BE9EeGOffqMW1YiZA">
           <body>The query booleanValue() gives the value.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g0j4NtwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g0j4NNwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g0j4N9wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VZ381hE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VZ381BE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZ381xE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = value</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g0j4ONwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VZ4j0BE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g052YNwbEeCT5O2F6sGn5g" name="isComputable" visibility="public" bodyCondition="_g052YtwbEeCT5O2F6sGn5g" isQuery="true" redefinedOperation="_g2YdJ9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g052YdwbEeCT5O2F6sGn5g" annotatedElement="_g052YNwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VZ4j0RE9EeGOffqMW1YiZA" name="isComputable" visibility="public" bodyCondition="_VZ4j0xE9EeGOffqMW1YiZA" isQuery="true" redefinedOperation="_VfGbFxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ4j0hE9EeGOffqMW1YiZA" annotatedElement="_VZ4j0RE9EeGOffqMW1YiZA">
           <body>The query isComputable() is redefined to be true.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g052YtwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g052YNwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g052Y9wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VZ4j0xE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VZ4j0RE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZ4j1BE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = true</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g052ZNwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VZ4j1RE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_Dy77oGveEdq4DLWZOhbdEA" name="LiteralInteger">
-      <ownedComment xmi:id="_g1AkENwbEeCT5O2F6sGn5g" annotatedElement="_Dy77oGveEdq4DLWZOhbdEA">
+      <ownedComment xmi:id="_VZ4j1hE9EeGOffqMW1YiZA" annotatedElement="_Dy77oGveEdq4DLWZOhbdEA">
         <body>A literal integer is a specification of an integer value.</body>
       </ownedComment>
-      <generalization xmi:id="_g1AkEdwbEeCT5O2F6sGn5g" general="_g1HRxdwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g1DAUNwbEeCT5O2F6sGn5g" name="value" visibility="public">
-        <ownedComment xmi:id="_g1DAUdwbEeCT5O2F6sGn5g" annotatedElement="_g1DAUNwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VZ4j1xE9EeGOffqMW1YiZA" general="_VZ7nIBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VZ5K4BE9EeGOffqMW1YiZA" name="value" visibility="public">
+        <ownedComment xmi:id="_VZ5K4RE9EeGOffqMW1YiZA" annotatedElement="_VZ5K4BE9EeGOffqMW1YiZA">
           <body>The specified Integer value.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
-        <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_g1DAUtwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_VZ5K4hE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
       <ownedOperation xmi:id="_e2SLUGWKEdq-f4093SZhVA" name="stringValue" visibility="protected" isQuery="true">
         <ownedParameter xmi:id="_hAkRkGWKEdq-f4093SZhVA" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1GDoNwbEeCT5O2F6sGn5g" name="integerValue" visibility="public" bodyCondition="_g1GDotwbEeCT5O2F6sGn5g" isQuery="true" redefinedOperation="_g2YdG9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1GDodwbEeCT5O2F6sGn5g" annotatedElement="_g1GDoNwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VZ5K4xE9EeGOffqMW1YiZA" name="integerValue" visibility="public" bodyCondition="_VZ5K5RE9EeGOffqMW1YiZA" isQuery="true" redefinedOperation="_VfGbCxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ5K5BE9EeGOffqMW1YiZA" annotatedElement="_VZ5K4xE9EeGOffqMW1YiZA">
           <body>The query integerValue() gives the value.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1GDotwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1GDoNwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1GDo9wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VZ5K5RE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VZ5K4xE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZ5K5hE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = value</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1GDpNwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VZ5K5xE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1GDpdwbEeCT5O2F6sGn5g" name="isComputable" visibility="public" bodyCondition="_g1GDp9wbEeCT5O2F6sGn5g" isQuery="true" redefinedOperation="_g2YdJ9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1GDptwbEeCT5O2F6sGn5g" annotatedElement="_g1GDpdwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VZ5K6BE9EeGOffqMW1YiZA" name="isComputable" visibility="public" bodyCondition="_VZ5K6hE9EeGOffqMW1YiZA" isQuery="true" redefinedOperation="_VfGbFxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ5K6RE9EeGOffqMW1YiZA" annotatedElement="_VZ5K6BE9EeGOffqMW1YiZA">
           <body>The query isComputable() is redefined to be true.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1GDp9wbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1GDpdwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1GDqNwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VZ5K6hE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VZ5K6BE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZ5K6xE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = true</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1GDqdwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VZ5K7BE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g1GqsNwbEeCT5O2F6sGn5g" name="LiteralNull">
-      <ownedComment xmi:id="_g1GqsdwbEeCT5O2F6sGn5g" annotatedElement="_g1GqsNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZ5x8BE9EeGOffqMW1YiZA" name="LiteralNull">
+      <ownedComment xmi:id="_VZ5x8RE9EeGOffqMW1YiZA" annotatedElement="_VZ5x8BE9EeGOffqMW1YiZA">
         <body>A literal null specifies the lack of a value.</body>
       </ownedComment>
-      <generalization xmi:id="_g1GqstwbEeCT5O2F6sGn5g" general="_g1HRxdwbEeCT5O2F6sGn5g"/>
-      <ownedOperation xmi:id="_g1Gqs9wbEeCT5O2F6sGn5g" name="isComputable" visibility="public" bodyCondition="_g1GqtdwbEeCT5O2F6sGn5g" isQuery="true" redefinedOperation="_g2YdJ9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1GqtNwbEeCT5O2F6sGn5g" annotatedElement="_g1Gqs9wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VZ5x8hE9EeGOffqMW1YiZA" general="_VZ7nIBE9EeGOffqMW1YiZA"/>
+      <ownedOperation xmi:id="_VZ5x8xE9EeGOffqMW1YiZA" name="isComputable" visibility="public" bodyCondition="_VZ5x9RE9EeGOffqMW1YiZA" isQuery="true" redefinedOperation="_VfGbFxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ5x9BE9EeGOffqMW1YiZA" annotatedElement="_VZ5x8xE9EeGOffqMW1YiZA">
           <body>The query isComputable() is redefined to be true.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1GqtdwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1Gqs9wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1GqttwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VZ5x9RE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VZ5x8xE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZ5x9hE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = true</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1Gqt9wbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VZ6ZABE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1GquNwbEeCT5O2F6sGn5g" name="isNull" visibility="public" bodyCondition="_g1GqutwbEeCT5O2F6sGn5g" isQuery="true" redefinedOperation="_g2YdLNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1GqudwbEeCT5O2F6sGn5g" annotatedElement="_g1GquNwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VZ6ZARE9EeGOffqMW1YiZA" name="isNull" visibility="public" bodyCondition="_VZ6ZAxE9EeGOffqMW1YiZA" isQuery="true" redefinedOperation="_VfGbHBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ6ZAhE9EeGOffqMW1YiZA" annotatedElement="_VZ6ZARE9EeGOffqMW1YiZA">
           <body>The query isNull() returns true.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1GqutwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1GquNwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1Gqu9wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VZ6ZAxE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VZ6ZARE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZ6ZBBE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = true</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1GqvNwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VZ6ZBRE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_KF5QYK3PEeCff5DsMzqH0w" name="LiteralReal">
-      <ownedComment xmi:id="_g1GqvdwbEeCT5O2F6sGn5g" annotatedElement="_KF5QYK3PEeCff5DsMzqH0w">
+      <ownedComment xmi:id="_VZ6ZBhE9EeGOffqMW1YiZA" annotatedElement="_KF5QYK3PEeCff5DsMzqH0w">
         <body>A literal real is a specification of a real value.</body>
       </ownedComment>
-      <generalization xmi:id="_g1GqvtwbEeCT5O2F6sGn5g" general="_g1HRxdwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g1Gqv9wbEeCT5O2F6sGn5g" name="value" visibility="public">
+      <generalization xmi:id="_VZ6ZBxE9EeGOffqMW1YiZA" general="_VZ7nIBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VZ6ZCBE9EeGOffqMW1YiZA" name="value" visibility="public">
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
       </ownedAttribute>
       <ownedOperation xmi:id="_KF5QYa3PEeCff5DsMzqH0w" name="stringValue" visibility="protected" isQuery="true">
@@ -8474,52 +8477,52 @@
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1GqwNwbEeCT5O2F6sGn5g" name="isComputable" visibility="public" bodyCondition="_g1GqwtwbEeCT5O2F6sGn5g" isQuery="true" redefinedOperation="_g2YdJ9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1GqwdwbEeCT5O2F6sGn5g" annotatedElement="_g1GqwNwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VZ6ZCRE9EeGOffqMW1YiZA" name="isComputable" visibility="public" bodyCondition="_VZ6ZCxE9EeGOffqMW1YiZA" isQuery="true" redefinedOperation="_VfGbFxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ6ZChE9EeGOffqMW1YiZA" annotatedElement="_VZ6ZCRE9EeGOffqMW1YiZA">
           <body>The query isComputable() is redefined to be true.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1GqwtwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1GqwNwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1Gqw9wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VZ6ZCxE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VZ6ZCRE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZ6ZDBE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = true</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1GqxNwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VZ6ZDRE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1HRwNwbEeCT5O2F6sGn5g" name="realValue" visibility="public" bodyCondition="_g1HRwtwbEeCT5O2F6sGn5g" isQuery="true" redefinedOperation="_g2YdMdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1HRwdwbEeCT5O2F6sGn5g" annotatedElement="_g1HRwNwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VZ7AEBE9EeGOffqMW1YiZA" name="realValue" visibility="public" bodyCondition="_VZ7AEhE9EeGOffqMW1YiZA" isQuery="true" redefinedOperation="_VfGbIRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ7AERE9EeGOffqMW1YiZA" annotatedElement="_VZ7AEBE9EeGOffqMW1YiZA">
           <body>The query realValue() gives the value.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1HRwtwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1HRwNwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1HRw9wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VZ7AEhE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VZ7AEBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZ7AExE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = value</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1HRxNwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VZ7AFBE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g1HRxdwbEeCT5O2F6sGn5g" name="LiteralSpecification" isAbstract="true">
-      <ownedComment xmi:id="_g1HRxtwbEeCT5O2F6sGn5g" annotatedElement="_g1HRxdwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZ7nIBE9EeGOffqMW1YiZA" name="LiteralSpecification" isAbstract="true">
+      <ownedComment xmi:id="_VZ7nIRE9EeGOffqMW1YiZA" annotatedElement="_VZ7nIBE9EeGOffqMW1YiZA">
         <body>A literal specification identifies a literal constant being modeled.</body>
       </ownedComment>
-      <generalization xmi:id="_g1HRx9wbEeCT5O2F6sGn5g" general="_g2YdENwbEeCT5O2F6sGn5g"/>
+      <generalization xmi:id="_VZ7nIhE9EeGOffqMW1YiZA" general="_VfGbABE9EeGOffqMW1YiZA"/>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_5jXJsTEkEdu9VoNTbEBQkQ" name="LiteralString">
-      <ownedComment xmi:id="_g1HRyNwbEeCT5O2F6sGn5g" annotatedElement="_5jXJsTEkEdu9VoNTbEBQkQ">
+      <ownedComment xmi:id="_VZ7nIxE9EeGOffqMW1YiZA" annotatedElement="_5jXJsTEkEdu9VoNTbEBQkQ">
         <body>A literal string is a specification of a string value.</body>
       </ownedComment>
-      <generalization xmi:id="_g1HRydwbEeCT5O2F6sGn5g" general="_g1HRxdwbEeCT5O2F6sGn5g"/>
+      <generalization xmi:id="_VZ7nJBE9EeGOffqMW1YiZA" general="_VZ7nIBE9EeGOffqMW1YiZA"/>
       <ownedAttribute xmi:id="_RFmAkLG4EeCDe8CO90iVKQ" name="value" visibility="public">
-        <ownedComment xmi:id="_g1HRytwbEeCT5O2F6sGn5g" annotatedElement="_RFmAkLG4EeCDe8CO90iVKQ">
+        <ownedComment xmi:id="_VZ7nJRE9EeGOffqMW1YiZA" annotatedElement="_RFmAkLG4EeCDe8CO90iVKQ">
           <body>The specified String value.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1HRy9wbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZ7nJhE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
       <ownedOperation xmi:id="_-SmgADEkEdu9VoNTbEBQkQ" name="integerValue" visibility="protected" isQuery="true">
         <ownedParameter xmi:id="_-SmgATEkEdu9VoNTbEBQkQ" direction="return">
@@ -8531,340 +8534,340 @@
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#UnlimitedNatural"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1H40NwbEeCT5O2F6sGn5g" name="isComputable" visibility="public" bodyCondition="_g1H40twbEeCT5O2F6sGn5g" isQuery="true" redefinedOperation="_g2YdJ9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1H40dwbEeCT5O2F6sGn5g" annotatedElement="_g1H40NwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VZ8OMBE9EeGOffqMW1YiZA" name="isComputable" visibility="public" bodyCondition="_VZ8OMhE9EeGOffqMW1YiZA" isQuery="true" redefinedOperation="_VfGbFxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ8OMRE9EeGOffqMW1YiZA" annotatedElement="_VZ8OMBE9EeGOffqMW1YiZA">
           <body>The query isComputable() is redefined to be true.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1H40twbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1H40NwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1H409wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VZ8OMhE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VZ8OMBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZ8OMxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = true</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1H41NwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VZ8ONBE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1H41dwbEeCT5O2F6sGn5g" name="stringValue" visibility="public" bodyCondition="_g1H419wbEeCT5O2F6sGn5g" isQuery="true" redefinedOperation="_g2YdN9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1H41twbEeCT5O2F6sGn5g" annotatedElement="_g1H41dwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VZ8ONRE9EeGOffqMW1YiZA" name="stringValue" visibility="public" bodyCondition="_VZ8ONxE9EeGOffqMW1YiZA" isQuery="true" redefinedOperation="_VfGbJxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ8ONhE9EeGOffqMW1YiZA" annotatedElement="_VZ8ONRE9EeGOffqMW1YiZA">
           <body>The query stringValue() gives the value.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1H419wbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1H41dwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1H42NwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VZ8ONxE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VZ8ONRE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZ8OOBE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = value</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1H42dwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VZ8OORE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_Q-yR4GveEdq4DLWZOhbdEA" name="LiteralUnlimitedNatural">
-      <ownedComment xmi:id="_g1H42twbEeCT5O2F6sGn5g" annotatedElement="_Q-yR4GveEdq4DLWZOhbdEA">
+      <ownedComment xmi:id="_VZ81QBE9EeGOffqMW1YiZA" annotatedElement="_Q-yR4GveEdq4DLWZOhbdEA">
         <body>A literal unlimited natural is a specification of an unlimited natural number.</body>
       </ownedComment>
-      <generalization xmi:id="_g1H429wbEeCT5O2F6sGn5g" general="_g1HRxdwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g1If4NwbEeCT5O2F6sGn5g" name="value" visibility="public">
-        <ownedComment xmi:id="_g1If4dwbEeCT5O2F6sGn5g" annotatedElement="_g1If4NwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VZ81QRE9EeGOffqMW1YiZA" general="_VZ7nIBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VZ81QhE9EeGOffqMW1YiZA" name="value" visibility="public">
+        <ownedComment xmi:id="_VZ9cUBE9EeGOffqMW1YiZA" annotatedElement="_VZ81QhE9EeGOffqMW1YiZA">
           <body>The specified UnlimitedNatural value.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#UnlimitedNatural"/>
-        <defaultValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1If4twbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZ9cURE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
       <ownedOperation xmi:id="_lSARkGWKEdq-f4093SZhVA" name="stringValue" visibility="protected" isQuery="true">
         <ownedParameter xmi:id="_nyfRUGWKEdq-f4093SZhVA" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1If49wbEeCT5O2F6sGn5g" name="isComputable" visibility="public" bodyCondition="_g1If5dwbEeCT5O2F6sGn5g" isQuery="true" redefinedOperation="_g2YdJ9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1If5NwbEeCT5O2F6sGn5g" annotatedElement="_g1If49wbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VZ9cUhE9EeGOffqMW1YiZA" name="isComputable" visibility="public" bodyCondition="_VZ9cVBE9EeGOffqMW1YiZA" isQuery="true" redefinedOperation="_VfGbFxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ9cUxE9EeGOffqMW1YiZA" annotatedElement="_VZ9cUhE9EeGOffqMW1YiZA">
           <body>The query isComputable() is redefined to be true.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1If5dwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1If49wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1If5twbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VZ9cVBE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VZ9cUhE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZ9cVRE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = true</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1If59wbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VZ9cVhE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1If6NwbEeCT5O2F6sGn5g" name="unlimitedValue" visibility="public" bodyCondition="_g1If6twbEeCT5O2F6sGn5g" isQuery="true" redefinedOperation="_g2YdPdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1If6dwbEeCT5O2F6sGn5g" annotatedElement="_g1If6NwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VZ9cVxE9EeGOffqMW1YiZA" name="unlimitedValue" visibility="public" bodyCondition="_VZ9cWRE9EeGOffqMW1YiZA" isQuery="true" redefinedOperation="_VfGbLRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ9cWBE9EeGOffqMW1YiZA" annotatedElement="_VZ9cVxE9EeGOffqMW1YiZA">
           <body>The query unlimitedValue() gives the value.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1If6twbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1If6NwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1If69wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VZ9cWRE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VZ9cVxE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZ9cWhE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = value</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1If7NwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VZ9cWxE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#UnlimitedNatural"/>
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g1JuANwbEeCT5O2F6sGn5g" name="LoopNode">
-      <ownedComment xmi:id="_g1JuAdwbEeCT5O2F6sGn5g" annotatedElement="_g1JuANwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZ_RgBE9EeGOffqMW1YiZA" name="LoopNode">
+      <ownedComment xmi:id="_VZ_RgRE9EeGOffqMW1YiZA" annotatedElement="_VZ_RgBE9EeGOffqMW1YiZA">
         <body>A loop node is a structured activity node that represents a loop with setup, test, and body sections.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g1JuAtwbEeCT5O2F6sGn5g" name="result_no_incoming" constrainedElement="_g1JuANwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1JuA9wbEeCT5O2F6sGn5g" annotatedElement="_g1JuAtwbEeCT5O2F6sGn5g">
-          <body>The result output pins have no incoming edges.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1JuBNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g1JuBdwbEeCT5O2F6sGn5g" name="input_edges" constrainedElement="_g1JuANwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1JuBtwbEeCT5O2F6sGn5g" annotatedElement="_g1JuBdwbEeCT5O2F6sGn5g">
-          <body>Loop variable inputs must not have outgoing edges.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1JuB9wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g1JuCNwbEeCT5O2F6sGn5g" name="executable_nodes" constrainedElement="_g1JuANwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1JuCdwbEeCT5O2F6sGn5g" annotatedElement="_g1JuCNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZ_RghE9EeGOffqMW1YiZA" name="executable_nodes" constrainedElement="_VZ_RgBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ_RgxE9EeGOffqMW1YiZA" annotatedElement="_VZ_RghE9EeGOffqMW1YiZA">
           <body>The union of the ExecutableNodes in the setupPart, test and bodyPart of a LoopNode must be the same as the subset of nodes contained in the LoopNode (considered as a StructuredActivityNode) that are ExecutableNodes.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1JuCtwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZ_RhBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g1JuC9wbEeCT5O2F6sGn5g" name="body_output_pins" constrainedElement="_g1JuANwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1JuDNwbEeCT5O2F6sGn5g" annotatedElement="_g1JuC9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZ_RhRE9EeGOffqMW1YiZA" name="body_output_pins" constrainedElement="_VZ_RgBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ_RhhE9EeGOffqMW1YiZA" annotatedElement="_VZ_RhRE9EeGOffqMW1YiZA">
           <body>The bodyOutput pins are output pins on actions in the body of the loop node.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1JuDdwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZ_RhxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g1JuDtwbEeCT5O2F6sGn5g" general="_w1_2cLLREeCsYvaJqFFivQ"/>
-      <ownedAttribute xmi:id="_g1JuD9wbEeCT5O2F6sGn5g" name="bodyOutput" visibility="public" type="_g1fsRdwbEeCT5O2F6sGn5g" isOrdered="true" association="_gyT1YNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1JuENwbEeCT5O2F6sGn5g" annotatedElement="_g1JuD9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZ_RiBE9EeGOffqMW1YiZA" name="result_no_incoming" constrainedElement="_VZ_RgBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ_RiRE9EeGOffqMW1YiZA" annotatedElement="_VZ_RiBE9EeGOffqMW1YiZA">
+          <body>The result output pins have no incoming edges.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZ_RihE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VZ_RixE9EeGOffqMW1YiZA" name="input_edges" constrainedElement="_VZ_RgBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ_RjBE9EeGOffqMW1YiZA" annotatedElement="_VZ_RixE9EeGOffqMW1YiZA">
+          <body>Loop variable inputs must not have outgoing edges.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZ_RjRE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VZ_RjhE9EeGOffqMW1YiZA" general="_w1_2cLLREeCsYvaJqFFivQ"/>
+      <ownedAttribute xmi:id="_VZ_RjxE9EeGOffqMW1YiZA" name="bodyOutput" visibility="public" type="_VcHYcBE9EeGOffqMW1YiZA" isOrdered="true" association="_VTAfxBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ_RkBE9EeGOffqMW1YiZA" annotatedElement="_VZ_RjxE9EeGOffqMW1YiZA">
           <body>A list of output pins within the body fragment the values of which are moved to the loop variable pins after completion of execution of the body, before the next iteration of the loop begins or before the loop exits.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1JuEdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1JuEtwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZ_RkRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZ_RkhE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1JuE9wbEeCT5O2F6sGn5g" name="bodyPart" visibility="public" type="_g0OhCNwbEeCT5O2F6sGn5g" association="_gyT1ZNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1JuFNwbEeCT5O2F6sGn5g" annotatedElement="_g1JuE9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZ_RkxE9EeGOffqMW1YiZA" name="bodyPart" visibility="public" type="_VZPqoBE9EeGOffqMW1YiZA" association="_VTBG0BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ_RlBE9EeGOffqMW1YiZA" annotatedElement="_VZ_RkxE9EeGOffqMW1YiZA">
           <body>The set of nodes and edges that perform the repetitive computations of the loop. The body section is executed as long as the test section produces a true value.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1JuFdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1JuFtwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZ_RlRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZ_RlhE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1JuF9wbEeCT5O2F6sGn5g" name="decider" visibility="public" type="_g1fsRdwbEeCT5O2F6sGn5g" association="_gyXfy9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1JuGNwbEeCT5O2F6sGn5g" annotatedElement="_g1JuF9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZ_RlxE9EeGOffqMW1YiZA" name="decider" visibility="public" type="_VcHYcBE9EeGOffqMW1YiZA" association="_VTLe5xE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ_RmBE9EeGOffqMW1YiZA" annotatedElement="_VZ_RlxE9EeGOffqMW1YiZA">
           <body>An output pin within the test fragment the value of which is examined after execution of the test to determine whether to execute the loop body.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1JuGdwbEeCT5O2F6sGn5g" name="isTestedFirst" visibility="public">
-        <ownedComment xmi:id="_g1JuGtwbEeCT5O2F6sGn5g" annotatedElement="_g1JuGdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZ_RmRE9EeGOffqMW1YiZA" name="isTestedFirst" visibility="public">
+        <ownedComment xmi:id="_VZ_RmhE9EeGOffqMW1YiZA" annotatedElement="_VZ_RmRE9EeGOffqMW1YiZA">
           <body>If true, the test is performed before the first execution of the body. If false, the body is executed once before the test is performed.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g1JuG9wbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VZ_RmxE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1JuHNwbEeCT5O2F6sGn5g" name="loopVariable" visibility="public" type="_g1fsRdwbEeCT5O2F6sGn5g" isOrdered="true" association="_gyh32dwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1JuHdwbEeCT5O2F6sGn5g" annotatedElement="_g1JuHNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZ_RnBE9EeGOffqMW1YiZA" name="loopVariable" visibility="public" type="_VcHYcBE9EeGOffqMW1YiZA" isOrdered="true" association="_VTuRcxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ_RnRE9EeGOffqMW1YiZA" annotatedElement="_VZ_RnBE9EeGOffqMW1YiZA">
           <body>A list of output pins that hold the values of the loop variables during an execution of the loop. When the test fails, the values are movied to the result pins of the loop.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1JuHtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1JuH9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZ_RnhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZ_RnxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1JuINwbEeCT5O2F6sGn5g" name="loopVariableInput" visibility="public" type="_g0aHKdwbEeCT5O2F6sGn5g" isOrdered="true" aggregation="composite" redefinedProperty="_g2IlftwbEeCT5O2F6sGn5g" association="_gyh31twbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1JuIdwbEeCT5O2F6sGn5g" annotatedElement="_g1JuINwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZ_RoBE9EeGOffqMW1YiZA" name="loopVariableInput" visibility="public" type="_VZp6WRE9EeGOffqMW1YiZA" isOrdered="true" aggregation="composite" redefinedProperty="_VeiaVxE9EeGOffqMW1YiZA" association="_VTuRcBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ_RoRE9EeGOffqMW1YiZA" annotatedElement="_VZ_RoBE9EeGOffqMW1YiZA">
           <body>A list of values that are moved into the loop variable pins before the first iteration of the loop.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1JuItwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1JuI9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZ_RohE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZ_RoxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1JuJNwbEeCT5O2F6sGn5g" name="result" visibility="public" type="_g1fsRdwbEeCT5O2F6sGn5g" isOrdered="true" aggregation="composite" redefinedProperty="_g2IlgdwbEeCT5O2F6sGn5g" association="_gy0yydwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1JuJdwbEeCT5O2F6sGn5g" annotatedElement="_g1JuJNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZ_RpBE9EeGOffqMW1YiZA" name="result" visibility="public" type="_VcHYcBE9EeGOffqMW1YiZA" isOrdered="true" aggregation="composite" redefinedProperty="_VeiaWhE9EeGOffqMW1YiZA" association="_VUdRRhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ_RpRE9EeGOffqMW1YiZA" annotatedElement="_VZ_RpBE9EeGOffqMW1YiZA">
           <body>A list of output pins that constitute the data flow output of the entire loop.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1JuJtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1JuJ9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZ_RphE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZ_RpxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1JuKNwbEeCT5O2F6sGn5g" name="setupPart" visibility="public" type="_g0OhCNwbEeCT5O2F6sGn5g" association="_gy4dLtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1JuKdwbEeCT5O2F6sGn5g" annotatedElement="_g1JuKNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZ_RqBE9EeGOffqMW1YiZA" name="setupPart" visibility="public" type="_VZPqoBE9EeGOffqMW1YiZA" association="_VUiw1hE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ_RqRE9EeGOffqMW1YiZA" annotatedElement="_VZ_RqBE9EeGOffqMW1YiZA">
           <body>The set of nodes and edges that initialize values or perform other setup computations for the loop.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1JuKtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1JuK9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VZ_RqhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZ_RqxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1JuLNwbEeCT5O2F6sGn5g" name="test" visibility="public" type="_g0OhCNwbEeCT5O2F6sGn5g" association="_gy9VoNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1JuLdwbEeCT5O2F6sGn5g" annotatedElement="_g1JuLNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VZ_RrBE9EeGOffqMW1YiZA" name="test" visibility="public" type="_VZPqoBE9EeGOffqMW1YiZA" association="_VUqFlBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ_RrRE9EeGOffqMW1YiZA" annotatedElement="_VZ_RrBE9EeGOffqMW1YiZA">
           <body>The set of nodes, edges, and designated value that compute a Boolean value to determine if another execution of the body will be performed.</body>
         </ownedComment>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1JuLtwbEeCT5O2F6sGn5g" value="*"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VZ_RrhE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g1KVENwbEeCT5O2F6sGn5g" name="Manifestation">
-      <ownedComment xmi:id="_g1KVEdwbEeCT5O2F6sGn5g" annotatedElement="_g1KVENwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZ_RrxE9EeGOffqMW1YiZA" name="Manifestation">
+      <ownedComment xmi:id="_VZ_RsBE9EeGOffqMW1YiZA" annotatedElement="_VZ_RrxE9EeGOffqMW1YiZA">
         <body>A manifestation is the concrete physical rendering of one or more model elements by an artifact.</body>
       </ownedComment>
-      <generalization xmi:id="_g1KVEtwbEeCT5O2F6sGn5g" general="_gzAY9twbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g1KVE9wbEeCT5O2F6sGn5g" name="utilizedElement" visibility="public" type="_jKxnwGwLEdq7X4sGURiZYA" subsettedProperty="_g0EI5twbEeCT5O2F6sGn5g" association="_gy-jztwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1KVFNwbEeCT5O2F6sGn5g" annotatedElement="_g1KVE9wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VZ_RsRE9EeGOffqMW1YiZA" general="_VU1EsBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VZ_RshE9EeGOffqMW1YiZA" name="utilizedElement" visibility="public" type="_jKxnwGwLEdq7X4sGURiZYA" subsettedProperty="_VYyXoxE9EeGOffqMW1YiZA" association="_VUuXAxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ_RsxE9EeGOffqMW1YiZA" annotatedElement="_VZ_RshE9EeGOffqMW1YiZA">
           <body>The model element that is utilized in the manifestation in an Artifact.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g1KVFdwbEeCT5O2F6sGn5g" name="MergeNode">
-      <ownedComment xmi:id="_g1KVFtwbEeCT5O2F6sGn5g" annotatedElement="_g1KVFdwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VZ_4kBE9EeGOffqMW1YiZA" name="MergeNode">
+      <ownedComment xmi:id="_VZ_4kRE9EeGOffqMW1YiZA" annotatedElement="_VZ_4kBE9EeGOffqMW1YiZA">
         <body>A merge node is a control node that brings together multiple alternate flows. It is not used to synchronize concurrent flows but to accept one among several alternate flows.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g1KVF9wbEeCT5O2F6sGn5g" name="one_outgoing_edge" constrainedElement="_g1KVFdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1KVGNwbEeCT5O2F6sGn5g" annotatedElement="_g1KVF9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZ_4khE9EeGOffqMW1YiZA" name="one_outgoing_edge" constrainedElement="_VZ_4kBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ_4kxE9EeGOffqMW1YiZA" annotatedElement="_VZ_4khE9EeGOffqMW1YiZA">
           <body>A merge node has one outgoing edge.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1KVGdwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZ_4lBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g1KVGtwbEeCT5O2F6sGn5g" name="edges" constrainedElement="_g1KVFdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1KVG9wbEeCT5O2F6sGn5g" annotatedElement="_g1KVGtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZ_4lRE9EeGOffqMW1YiZA" name="edges" constrainedElement="_VZ_4kBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VZ_4lhE9EeGOffqMW1YiZA" annotatedElement="_VZ_4lRE9EeGOffqMW1YiZA">
           <body>The edges coming into and out of a merge node must be either all object flows or all control flows.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1KVHNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZ_4lxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g1KVHdwbEeCT5O2F6sGn5g" general="_g0BFndwbEeCT5O2F6sGn5g"/>
+      <generalization xmi:id="_VZ_4mBE9EeGOffqMW1YiZA" general="_VYdAcBE9EeGOffqMW1YiZA"/>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_gfgNwGveEdq4DLWZOhbdEA" name="Message">
-      <ownedComment xmi:id="_g1KVHtwbEeCT5O2F6sGn5g" annotatedElement="_gfgNwGveEdq4DLWZOhbdEA">
+      <ownedComment xmi:id="_VZ_4mRE9EeGOffqMW1YiZA" annotatedElement="_gfgNwGveEdq4DLWZOhbdEA">
         <body>A message defines a particular communication between lifelines of an interaction.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g1KVH9wbEeCT5O2F6sGn5g" name="sending_receiving_message_event" constrainedElement="_gfgNwGveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_g1KVINwbEeCT5O2F6sGn5g" annotatedElement="_g1KVH9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VZ_4mhE9EeGOffqMW1YiZA" name="sending_receiving_message_event" constrainedElement="_gfgNwGveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VZ_4mxE9EeGOffqMW1YiZA" annotatedElement="_VZ_4mhE9EeGOffqMW1YiZA">
           <body>If the sendEvent and the receiveEvent of the same Message are on the same Lifeline, the sendEvent must be ordered before the receiveEvent.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1KVIdwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VZ_4nBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g1KVItwbEeCT5O2F6sGn5g" name="arguments" constrainedElement="_gfgNwGveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_g1KVI9wbEeCT5O2F6sGn5g" annotatedElement="_g1KVItwbEeCT5O2F6sGn5g">
-          <body>Arguments of a Message must only be: i) attributes of the sending lifeline ii) constants iii) symbolic values (which are wildcard values representing any legal value) iv) explicit parameters of the enclosing Interaction v) attributes of the class owning the Interaction</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1KVJNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g1KVJdwbEeCT5O2F6sGn5g" name="cannot_cross_boundaries" constrainedElement="_gfgNwGveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_g1KVJtwbEeCT5O2F6sGn5g" annotatedElement="_g1KVJdwbEeCT5O2F6sGn5g">
-          <body>Messages cannot cross bounderies of CombinedFragments or their operands.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1KVJ9wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g1KVKNwbEeCT5O2F6sGn5g" name="signature_is_signal" constrainedElement="_gfgNwGveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_g1KVKdwbEeCT5O2F6sGn5g" annotatedElement="_g1KVKNwbEeCT5O2F6sGn5g">
-          <body>In the case when the Message signature is a Signal, the arguments of the Message must correspond to the attributes of the Signal. A Message Argument corresponds to a Signal Attribute if the Arguement is of the same Class or a specialization of that of the Attribute.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1KVKtwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g1K8INwbEeCT5O2F6sGn5g" name="occurrence_specifications" constrainedElement="_gfgNwGveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_g1K8IdwbEeCT5O2F6sGn5g" annotatedElement="_g1K8INwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VaAfoBE9EeGOffqMW1YiZA" name="occurrence_specifications" constrainedElement="_gfgNwGveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VaAfoRE9EeGOffqMW1YiZA" annotatedElement="_VaAfoBE9EeGOffqMW1YiZA">
           <body>If the MessageEnds are both OccurrenceSpecifications then the connector must go between the Parts represented by the Lifelines of the two MessageEnds.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1K8ItwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VaAfohE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g1K8I9wbEeCT5O2F6sGn5g" name="signature_refer_to" constrainedElement="_gfgNwGveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_g1K8JNwbEeCT5O2F6sGn5g" annotatedElement="_g1K8I9wbEeCT5O2F6sGn5g">
-          <body>The signature must either refer an Operation (in which case messageSort is either synchCall or asynchCall) or a Signal (in which case messageSort is asynchSignal). The name of the NamedElement referenced by signature must be the same as that of the Message.</body>
+      <ownedRule xmi:id="_VaAfoxE9EeGOffqMW1YiZA" name="signature_is_signal" constrainedElement="_gfgNwGveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VaAfpBE9EeGOffqMW1YiZA" annotatedElement="_VaAfoxE9EeGOffqMW1YiZA">
+          <body>In the case when the Message signature is a Signal, the arguments of the Message must correspond to the attributes of the Signal. A Message Argument corresponds to a Signal Attribute if the Arguement is of the same Class or a specialization of that of the Attribute.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1K8JdwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VaAfpRE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g1K8JtwbEeCT5O2F6sGn5g" name="signature_is_operation" constrainedElement="_gfgNwGveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_g1K8J9wbEeCT5O2F6sGn5g" annotatedElement="_g1K8JtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VaAfphE9EeGOffqMW1YiZA" name="signature_is_operation" constrainedElement="_gfgNwGveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VaAfpxE9EeGOffqMW1YiZA" annotatedElement="_VaAfphE9EeGOffqMW1YiZA">
           <body>In the case when the Message signature is an Operation, the arguments of the Message must correspond to the parameters of the Operation. A Parameter corresponds to an Argument if the Argument is of the same Class or a specialization of that of the Parameter.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1K8KNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VaAfqBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g1K8KdwbEeCT5O2F6sGn5g" general="_csVgUGvtEdqG6fBIPwe-mw"/>
-      <ownedAttribute xmi:id="_g1K8KtwbEeCT5O2F6sGn5g" name="argument" visibility="public" type="_g2YdENwbEeCT5O2F6sGn5g" isOrdered="true" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gySnSdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1K8K9wbEeCT5O2F6sGn5g" annotatedElement="_g1K8KtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VaAfqRE9EeGOffqMW1YiZA" name="arguments" constrainedElement="_gfgNwGveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VaAfqhE9EeGOffqMW1YiZA" annotatedElement="_VaAfqRE9EeGOffqMW1YiZA">
+          <body>Arguments of a Message must only be: i) attributes of the sending lifeline ii) constants iii) symbolic values (which are wildcard values representing any legal value) iv) explicit parameters of the enclosing Interaction v) attributes of the class owning the Interaction</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VaAfqxE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VaAfrBE9EeGOffqMW1YiZA" name="cannot_cross_boundaries" constrainedElement="_gfgNwGveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VaAfrRE9EeGOffqMW1YiZA" annotatedElement="_VaAfrBE9EeGOffqMW1YiZA">
+          <body>Messages cannot cross bounderies of CombinedFragments or their operands.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VaAfrhE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VaAfrxE9EeGOffqMW1YiZA" name="signature_refer_to" constrainedElement="_gfgNwGveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VaAfsBE9EeGOffqMW1YiZA" annotatedElement="_VaAfrxE9EeGOffqMW1YiZA">
+          <body>The signature must either refer an Operation (in which case messageSort is either synchCall or asynchCall) or a Signal (in which case messageSort is asynchSignal). The name of the NamedElement referenced by signature must be the same as that of the Message.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VaAfsRE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VaBGsBE9EeGOffqMW1YiZA" general="_csVgUGvtEdqG6fBIPwe-mw"/>
+      <ownedAttribute xmi:id="_VaBGsRE9EeGOffqMW1YiZA" name="argument" visibility="public" type="_VfGbABE9EeGOffqMW1YiZA" isOrdered="true" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VS-DhhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VaBGshE9EeGOffqMW1YiZA" annotatedElement="_VaBGsRE9EeGOffqMW1YiZA">
           <body>The arguments of the Message</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1K8LNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1K8LdwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VaBGsxE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VaBGtBE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1K8LtwbEeCT5O2F6sGn5g" name="connector" visibility="public" type="_YxC2YLLWEeCsYvaJqFFivQ" association="_gyVqnNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1K8L9wbEeCT5O2F6sGn5g" annotatedElement="_g1K8LtwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VaBGtRE9EeGOffqMW1YiZA" name="connector" visibility="public" type="_YxC2YLLWEeCsYvaJqFFivQ" association="_VTHNcBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VaBGthE9EeGOffqMW1YiZA" annotatedElement="_VaBGtRE9EeGOffqMW1YiZA">
           <body>The Connector on which this Message is sent.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1K8MNwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VaBGtxE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1K8MdwbEeCT5O2F6sGn5g" name="interaction" visibility="public" type="_g0bVQNwbEeCT5O2F6sGn5g" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_gyjF_9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1K8MtwbEeCT5O2F6sGn5g" annotatedElement="_g1K8MdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VaBGuBE9EeGOffqMW1YiZA" name="interaction" visibility="public" type="_VZsWkBE9EeGOffqMW1YiZA" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_VTxUyBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VaBGuRE9EeGOffqMW1YiZA" annotatedElement="_VaBGuBE9EeGOffqMW1YiZA">
           <body>The enclosing Interaction owning the Message</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1K8M9wbEeCT5O2F6sGn5g" name="messageKind" visibility="public" type="_Y_jskGvtEdqG6fBIPwe-mw" isReadOnly="true" isDerived="true">
-        <ownedComment xmi:id="_g1K8NNwbEeCT5O2F6sGn5g" annotatedElement="_g1K8M9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VaBGuhE9EeGOffqMW1YiZA" name="messageKind" visibility="public" type="_Y_jskGvtEdqG6fBIPwe-mw" isReadOnly="true" isDerived="true">
+        <ownedComment xmi:id="_VaBGuxE9EeGOffqMW1YiZA" annotatedElement="_VaBGuhE9EeGOffqMW1YiZA">
           <body>The derived kind of the Message (complete, lost, found or unknown)</body>
         </ownedComment>
-        <defaultValue xmi:type="uml:InstanceValue" xmi:id="_g1K8NdwbEeCT5O2F6sGn5g" type="_Y_jskGvtEdqG6fBIPwe-mw" instance="_g2dVsdwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:InstanceValue" xmi:id="_VaBGvBE9EeGOffqMW1YiZA" type="_Y_jskGvtEdqG6fBIPwe-mw" instance="_VfOW8RE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1K8NtwbEeCT5O2F6sGn5g" name="messageSort" visibility="public" type="_g2d8oNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1K8N9wbEeCT5O2F6sGn5g" annotatedElement="_g1K8NtwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VaBtwBE9EeGOffqMW1YiZA" name="messageSort" visibility="public" type="_VfO94BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VaBtwRE9EeGOffqMW1YiZA" annotatedElement="_VaBtwBE9EeGOffqMW1YiZA">
           <body>The sort of communication reflected by the Message</body>
         </ownedComment>
-        <defaultValue xmi:type="uml:InstanceValue" xmi:id="_g1K8ONwbEeCT5O2F6sGn5g" type="_g2d8oNwbEeCT5O2F6sGn5g" instance="_g2d8otwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:InstanceValue" xmi:id="_VaBtwhE9EeGOffqMW1YiZA" type="_VfO94BE9EeGOffqMW1YiZA" instance="_VfO94hE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1LjMNwbEeCT5O2F6sGn5g" name="receiveEvent" visibility="public" type="_g1MKQNwbEeCT5O2F6sGn5g" subsettedProperty="_gyjtAdwbEeCT5O2F6sGn5g" association="_gyv6QNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1LjMdwbEeCT5O2F6sGn5g" annotatedElement="_g1LjMNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VaBtwxE9EeGOffqMW1YiZA" name="receiveEvent" visibility="public" type="_VaEKABE9EeGOffqMW1YiZA" subsettedProperty="_VTx70RE9EeGOffqMW1YiZA" association="_VUP15BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VaBtxBE9EeGOffqMW1YiZA" annotatedElement="_VaBtwxE9EeGOffqMW1YiZA">
           <body>References the Receiving of the Message</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1LjMtwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VaBtxRE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1LjM9wbEeCT5O2F6sGn5g" name="sendEvent" visibility="public" type="_g1MKQNwbEeCT5O2F6sGn5g" subsettedProperty="_gyjtAdwbEeCT5O2F6sGn5g" association="_gy4dK9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1LjNNwbEeCT5O2F6sGn5g" annotatedElement="_g1LjM9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VaBtxhE9EeGOffqMW1YiZA" name="sendEvent" visibility="public" type="_VaEKABE9EeGOffqMW1YiZA" subsettedProperty="_VTx70RE9EeGOffqMW1YiZA" association="_VUiw0xE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VaBtxxE9EeGOffqMW1YiZA" annotatedElement="_VaBtxhE9EeGOffqMW1YiZA">
           <body>References the Sending of the Message.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1LjNdwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VaBtyBE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1LjNtwbEeCT5O2F6sGn5g" name="signature" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw" association="_gy5rQNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1LjN9wbEeCT5O2F6sGn5g" annotatedElement="_g1LjNtwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VaBtyRE9EeGOffqMW1YiZA" name="signature" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw" association="_VUj--BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VaBtyhE9EeGOffqMW1YiZA" annotatedElement="_VaBtyRE9EeGOffqMW1YiZA">
           <body>The signature of the Message is the specification of its content. It refers either an Operation or a Signal.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1LjONwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VaBtyxE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedOperation xmi:id="_8U6CAFYfEdqB6vblk3tuMA" name="messageKind" visibility="public" bodyCondition="_g1LjOtwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1LjOdwbEeCT5O2F6sGn5g" annotatedElement="_8U6CAFYfEdqB6vblk3tuMA">
+      <ownedOperation xmi:id="_8U6CAFYfEdqB6vblk3tuMA" name="messageKind" visibility="public" bodyCondition="_VaCU0RE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VaCU0BE9EeGOffqMW1YiZA" annotatedElement="_8U6CAFYfEdqB6vblk3tuMA">
           <body>Missing derivation for Message::/messageKind : MessageKind</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1LjOtwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_8U6CAFYfEdqB6vblk3tuMA _g1K8M9wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1LjO9wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VaCU0RE9EeGOffqMW1YiZA" name="spec" constrainedElement="_8U6CAFYfEdqB6vblk3tuMA _VaBGuhE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VaCU0hE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>true</body>
           </specification>
@@ -8872,42 +8875,42 @@
         <ownedParameter xmi:id="_-_OTMFYfEdqB6vblk3tuMA" name="result" visibility="public" type="_Y_jskGvtEdqG6fBIPwe-mw" direction="return"/>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g1MKQNwbEeCT5O2F6sGn5g" name="MessageEnd" isAbstract="true">
-      <ownedComment xmi:id="_g1MKQdwbEeCT5O2F6sGn5g" annotatedElement="_g1MKQNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VaEKABE9EeGOffqMW1YiZA" name="MessageEnd" isAbstract="true">
+      <ownedComment xmi:id="_VaEKARE9EeGOffqMW1YiZA" annotatedElement="_VaEKABE9EeGOffqMW1YiZA">
         <body>MessageEnd is an abstract specialization of NamedElement that represents what can occur at the end of a message.</body>
       </ownedComment>
-      <generalization xmi:id="_g1MKQtwbEeCT5O2F6sGn5g" general="_csVgUGvtEdqG6fBIPwe-mw"/>
-      <ownedAttribute xmi:id="_g1MKQ9wbEeCT5O2F6sGn5g" name="message" visibility="public" type="_gfgNwGveEdq4DLWZOhbdEA" association="_gyjtANwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1MKRNwbEeCT5O2F6sGn5g" annotatedElement="_g1MKQ9wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VaEKAhE9EeGOffqMW1YiZA" general="_csVgUGvtEdqG6fBIPwe-mw"/>
+      <ownedAttribute xmi:id="_VaEKAxE9EeGOffqMW1YiZA" name="message" visibility="public" type="_gfgNwGveEdq4DLWZOhbdEA" association="_VTx70BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VaEKBBE9EeGOffqMW1YiZA" annotatedElement="_VaEKAxE9EeGOffqMW1YiZA">
           <body>References a Message.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1MKRdwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VaEKBRE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g1MKRtwbEeCT5O2F6sGn5g" name="MessageEvent" isAbstract="true">
-      <ownedComment xmi:id="_g1MKR9wbEeCT5O2F6sGn5g" annotatedElement="_g1MKRtwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VaEKBhE9EeGOffqMW1YiZA" name="MessageEvent" isAbstract="true">
+      <ownedComment xmi:id="_VaEKBxE9EeGOffqMW1YiZA" annotatedElement="_VaEKBhE9EeGOffqMW1YiZA">
         <body>A message event specifies the receipt by an object of either a call or a signal.</body>
       </ownedComment>
-      <generalization xmi:id="_g1MKSNwbEeCT5O2F6sGn5g" general="_g0N54NwbEeCT5O2F6sGn5g"/>
+      <generalization xmi:id="_VaEKCBE9EeGOffqMW1YiZA" general="_VZOcgBE9EeGOffqMW1YiZA"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g1MKSdwbEeCT5O2F6sGn5g" name="MessageOccurrenceSpecification">
-      <ownedComment xmi:id="_g1MKStwbEeCT5O2F6sGn5g" annotatedElement="_g1MKSdwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VaExEBE9EeGOffqMW1YiZA" name="MessageOccurrenceSpecification">
+      <ownedComment xmi:id="_VaExERE9EeGOffqMW1YiZA" annotatedElement="_VaExEBE9EeGOffqMW1YiZA">
         <body>A message occurrence specification pecifies the occurrence of message events, such as sending and receiving of signals or invoking or receiving of operation calls. A message occurrence specification is a kind of message end. Messages are generated either by synchronous operation calls or asynchronous signal sends. They are received by the execution of corresponding accept event actions.</body>
       </ownedComment>
-      <generalization xmi:id="_g1MKS9wbEeCT5O2F6sGn5g" general="_g1MKQNwbEeCT5O2F6sGn5g"/>
-      <generalization xmi:id="_g1MKTNwbEeCT5O2F6sGn5g" general="_g1XwcNwbEeCT5O2F6sGn5g"/>
+      <generalization xmi:id="_VaExEhE9EeGOffqMW1YiZA" general="_VbdRIBE9EeGOffqMW1YiZA"/>
+      <generalization xmi:id="_VaExExE9EeGOffqMW1YiZA" general="_VaEKABE9EeGOffqMW1YiZA"/>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_NVhqMGv0Edq7X4sGURiZYA" name="Model">
-      <ownedComment xmi:id="_g1MKTdwbEeCT5O2F6sGn5g" annotatedElement="_NVhqMGv0Edq7X4sGURiZYA">
+      <ownedComment xmi:id="_VaExFBE9EeGOffqMW1YiZA" annotatedElement="_NVhqMGv0Edq7X4sGURiZYA">
         <body>A model captures a view of a physical system. It is an abstraction of the physical system, with a certain purpose. This purpose determines what is to be included in the model and what is irrelevant. Thus the model completely describes those aspects of the physical system that are relevant to the purpose of the model, at the appropriate level of detail.</body>
       </ownedComment>
-      <generalization xmi:id="_g1MKTtwbEeCT5O2F6sGn5g" general="_-cvRAGvzEdq7X4sGURiZYA"/>
+      <generalization xmi:id="_VaExFRE9EeGOffqMW1YiZA" general="_-cvRAGvzEdq7X4sGURiZYA"/>
       <ownedAttribute xmi:id="_vyLfILG3EeCDe8CO90iVKQ" name="viewpoint" visibility="public">
-        <ownedComment xmi:id="_g1MxUNwbEeCT5O2F6sGn5g" annotatedElement="_vyLfILG3EeCDe8CO90iVKQ">
+        <ownedComment xmi:id="_VaExFhE9EeGOffqMW1YiZA" annotatedElement="_vyLfILG3EeCDe8CO90iVKQ">
           <body>The name of the viewpoint that is expressed by a model (This name may refer to a profile definition).</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1MxUdwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VaExFxE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
       <ownedOperation xmi:id="_9nl2EGwREdq14q0ETb1t3g" name="isMetamodel" isQuery="true">
         <ownedComment xmi:id="_9s0W0OwiEdqYHf-imTcTdw" annotatedElement="_9nl2EGwREdq14q0ETb1t3g">
@@ -8919,87 +8922,87 @@
       </ownedOperation>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_Gjgl0GveEdq4DLWZOhbdEA" name="MultiplicityElement" isAbstract="true">
-      <ownedComment xmi:id="_g1MxUtwbEeCT5O2F6sGn5g" annotatedElement="_Gjgl0GveEdq4DLWZOhbdEA">
+      <ownedComment xmi:id="_VaF_MBE9EeGOffqMW1YiZA" annotatedElement="_Gjgl0GveEdq4DLWZOhbdEA">
         <body>A multiplicity is a definition of an inclusive interval of non-negative integers beginning with a lower bound and ending with a (possibly infinite) upper bound. A multiplicity element embeds this information to specify the allowable cardinalities for an instantiation of this element.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g1MxU9wbEeCT5O2F6sGn5g" name="upper_ge_lower" constrainedElement="_Gjgl0GveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_g1MxVNwbEeCT5O2F6sGn5g" annotatedElement="_g1MxU9wbEeCT5O2F6sGn5g">
-          <body>The upper bound must be greater than or equal to the lower bound.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1MxVdwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>(upperBound()->notEmpty() and lowerBound()->notEmpty()) implies upperBound() >= lowerBound()</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g1NYYNwbEeCT5O2F6sGn5g" name="lower_ge_0" constrainedElement="_Gjgl0GveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_g1NYYdwbEeCT5O2F6sGn5g" annotatedElement="_g1NYYNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VaF_MRE9EeGOffqMW1YiZA" name="lower_ge_0" constrainedElement="_Gjgl0GveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VaF_MhE9EeGOffqMW1YiZA" annotatedElement="_VaF_MRE9EeGOffqMW1YiZA">
           <body>The lower bound must be a non-negative integer literal.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1NYYtwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VaF_MxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>lowerBound()->notEmpty() implies lowerBound() >= 0</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g1NYY9wbEeCT5O2F6sGn5g" name="value_specification_no_side_effects" constrainedElement="_Gjgl0GveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_g1NYZNwbEeCT5O2F6sGn5g" annotatedElement="_g1NYY9wbEeCT5O2F6sGn5g">
-          <body>If a non-literal ValueSpecification is used for the lower or upper bound, then evaluating that specification must not have side effects.</body>
+      <ownedRule xmi:id="_VaF_NBE9EeGOffqMW1YiZA" name="upper_ge_lower" constrainedElement="_Gjgl0GveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VaF_NRE9EeGOffqMW1YiZA" annotatedElement="_VaF_NBE9EeGOffqMW1YiZA">
+          <body>The upper bound must be greater than or equal to the lower bound.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1NYZdwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VaF_NhE9EeGOffqMW1YiZA">
           <language>OCL</language>
-          <body>true</body>
+          <body>(upperBound()->notEmpty() and lowerBound()->notEmpty()) implies upperBound() >= lowerBound()</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g1NYZtwbEeCT5O2F6sGn5g" name="value_specification_constant" constrainedElement="_Gjgl0GveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_g1NYZ9wbEeCT5O2F6sGn5g" annotatedElement="_g1NYZtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VaF_NxE9EeGOffqMW1YiZA" name="value_specification_constant" constrainedElement="_Gjgl0GveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VaF_OBE9EeGOffqMW1YiZA" annotatedElement="_VaF_NxE9EeGOffqMW1YiZA">
           <body>If a non-literal ValueSpecification is used for the lower or upper bound, then that specification must be a constant expression.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1NYaNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VaF_ORE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g1NYadwbEeCT5O2F6sGn5g" general="_kl90MGvbEdq4DLWZOhbdEA"/>
-      <ownedAttribute xmi:id="_g1NYatwbEeCT5O2F6sGn5g" name="isOrdered" visibility="public">
-        <ownedComment xmi:id="_g1NYa9wbEeCT5O2F6sGn5g" annotatedElement="_g1NYatwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VaGmQBE9EeGOffqMW1YiZA" name="value_specification_no_side_effects" constrainedElement="_Gjgl0GveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VaGmQRE9EeGOffqMW1YiZA" annotatedElement="_VaGmQBE9EeGOffqMW1YiZA">
+          <body>If a non-literal ValueSpecification is used for the lower or upper bound, then evaluating that specification must not have side effects.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VaGmQhE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VaGmQxE9EeGOffqMW1YiZA" general="_kl90MGvbEdq4DLWZOhbdEA"/>
+      <ownedAttribute xmi:id="_VaGmRBE9EeGOffqMW1YiZA" name="isOrdered" visibility="public">
+        <ownedComment xmi:id="_VaGmRRE9EeGOffqMW1YiZA" annotatedElement="_VaGmRBE9EeGOffqMW1YiZA">
           <body>For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g1NYbNwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VaGmRhE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1NYbdwbEeCT5O2F6sGn5g" name="isUnique" visibility="public">
-        <ownedComment xmi:id="_g1NYbtwbEeCT5O2F6sGn5g" annotatedElement="_g1NYbdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VaHNUBE9EeGOffqMW1YiZA" name="isUnique" visibility="public">
+        <ownedComment xmi:id="_VaHNURE9EeGOffqMW1YiZA" annotatedElement="_VaHNUBE9EeGOffqMW1YiZA">
           <body>For a multivalued multiplicity, this attributes specifies whether the values in an instantiation of this element are unique.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g1NYb9wbEeCT5O2F6sGn5g" value="true"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VaHNUhE9EeGOffqMW1YiZA" value="true"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1NYcNwbEeCT5O2F6sGn5g" name="lower" visibility="public" isDerived="true">
-        <ownedComment xmi:id="_g1NYcdwbEeCT5O2F6sGn5g" annotatedElement="_g1NYcNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VaHNUxE9EeGOffqMW1YiZA" name="lower" visibility="public" isDerived="true">
+        <ownedComment xmi:id="_VaHNVBE9EeGOffqMW1YiZA" annotatedElement="_VaHNUxE9EeGOffqMW1YiZA">
           <body>Specifies the lower bound of the multiplicity interval.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1NYctwbEeCT5O2F6sGn5g"/>
-        <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_g1NYc9wbEeCT5O2F6sGn5g" value="1"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VaHNVRE9EeGOffqMW1YiZA"/>
+        <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_VaHNVhE9EeGOffqMW1YiZA" value="1"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1NYdNwbEeCT5O2F6sGn5g" name="lowerValue" visibility="public" type="_g2YdENwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gyh33NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1NYddwbEeCT5O2F6sGn5g" annotatedElement="_g1NYdNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VaHNVxE9EeGOffqMW1YiZA" name="lowerValue" visibility="public" type="_VfGbABE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VTuRdhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VaHNWBE9EeGOffqMW1YiZA" annotatedElement="_VaHNVxE9EeGOffqMW1YiZA">
           <body>The specification of the lower bound for this multiplicity.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1NYdtwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VaHNWRE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1NYd9wbEeCT5O2F6sGn5g" name="upper" visibility="public" isDerived="true">
-        <ownedComment xmi:id="_g1NYeNwbEeCT5O2F6sGn5g" annotatedElement="_g1NYd9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VaHNWhE9EeGOffqMW1YiZA" name="upper" visibility="public" isDerived="true">
+        <ownedComment xmi:id="_VaHNWxE9EeGOffqMW1YiZA" annotatedElement="_VaHNWhE9EeGOffqMW1YiZA">
           <body>Specifies the upper bound of the multiplicity interval.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#UnlimitedNatural"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1N_cNwbEeCT5O2F6sGn5g"/>
-        <defaultValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1N_cdwbEeCT5O2F6sGn5g" value="1"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VaHNXBE9EeGOffqMW1YiZA"/>
+        <defaultValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VaHNXRE9EeGOffqMW1YiZA" value="1"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1N_ctwbEeCT5O2F6sGn5g" name="upperValue" visibility="public" type="_g2YdENwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gy-jy9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1N_c9wbEeCT5O2F6sGn5g" annotatedElement="_g1N_ctwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VaHNXhE9EeGOffqMW1YiZA" name="upperValue" visibility="public" type="_VfGbABE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VUuXABE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VaHNXxE9EeGOffqMW1YiZA" annotatedElement="_VaHNXhE9EeGOffqMW1YiZA">
           <body>The specification of the upper bound for this multiplicity.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1N_dNwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VaHNYBE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
       <ownedOperation xmi:id="_qtCaIFYkEdqB6vblk3tuMA" name="setLower" visibility="protected">
         <ownedParameter xmi:id="_scWboFYkEdqB6vblk3tuMA" name="newLower" visibility="protected" effect="read">
@@ -9011,241 +9014,241 @@
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#UnlimitedNatural"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1N_ddwbEeCT5O2F6sGn5g" name="compatibleWith" visibility="public" bodyCondition="_g1N_d9wbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1N_dtwbEeCT5O2F6sGn5g" annotatedElement="_g1N_ddwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VaH0YBE9EeGOffqMW1YiZA" name="compatibleWith" visibility="public" bodyCondition="_VaH0YhE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VaH0YRE9EeGOffqMW1YiZA" annotatedElement="_VaH0YBE9EeGOffqMW1YiZA">
           <body>The operation compatibleWith takes another multiplicity as input. It checks if one multiplicity is compatible with another.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1N_d9wbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1N_ddwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1N_eNwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VaH0YhE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VaH0YBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VaH0YxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = Integer.allInstances()->forAll(i : Integer | self.includesCardinality(i) implies other.includesCardinality(i))</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1N_edwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VaH0ZBE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
-        <ownedParameter xmi:id="_g1N_etwbEeCT5O2F6sGn5g" name="other" visibility="public" type="_Gjgl0GveEdq4DLWZOhbdEA"/>
+        <ownedParameter xmi:id="_VaH0ZRE9EeGOffqMW1YiZA" name="other" visibility="public" type="_Gjgl0GveEdq4DLWZOhbdEA"/>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1N_e9wbEeCT5O2F6sGn5g" name="includesCardinality" visibility="public" bodyCondition="_g1N_f9wbEeCT5O2F6sGn5g" isQuery="true" precondition="_g1N_fdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1N_fNwbEeCT5O2F6sGn5g" annotatedElement="_g1N_e9wbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VaH0ZhE9EeGOffqMW1YiZA" name="includesCardinality" visibility="public" bodyCondition="_VaH0ahE9EeGOffqMW1YiZA" isQuery="true" precondition="_VaH0aBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VaH0ZxE9EeGOffqMW1YiZA" annotatedElement="_VaH0ZhE9EeGOffqMW1YiZA">
           <body>The query includesCardinality() checks whether the specified cardinality is valid for this multiplicity.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1N_fdwbEeCT5O2F6sGn5g" name="pre" constrainedElement="_g1N_e9wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1N_ftwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VaH0aBE9EeGOffqMW1YiZA" name="pre" constrainedElement="_VaH0ZhE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VaH0aRE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>upperBound()->notEmpty() and lowerBound()->notEmpty()</body>
           </specification>
         </ownedRule>
-        <ownedRule xmi:id="_g1N_f9wbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1N_e9wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1N_gNwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VaH0ahE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VaH0ZhE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VaH0axE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = (lowerBound() &lt;= C) and (upperBound() >= C)</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1N_gdwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VaH0bBE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
-        <ownedParameter xmi:id="_g1N_gtwbEeCT5O2F6sGn5g" name="C" visibility="public">
+        <ownedParameter xmi:id="_VaH0bRE9EeGOffqMW1YiZA" name="C" visibility="public">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1N_g9wbEeCT5O2F6sGn5g" name="includesMultiplicity" visibility="public" bodyCondition="_g1N_h9wbEeCT5O2F6sGn5g" isQuery="true" precondition="_g1N_hdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1N_hNwbEeCT5O2F6sGn5g" annotatedElement="_g1N_g9wbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VaIbcBE9EeGOffqMW1YiZA" name="includesMultiplicity" visibility="public" bodyCondition="_VaIbchE9EeGOffqMW1YiZA" isQuery="true" precondition="_VaIbdBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VaIbcRE9EeGOffqMW1YiZA" annotatedElement="_VaIbcBE9EeGOffqMW1YiZA">
           <body>The query includesMultiplicity() checks whether this multiplicity includes all the cardinalities allowed by the specified multiplicity.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1N_hdwbEeCT5O2F6sGn5g" name="pre" constrainedElement="_g1N_g9wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1N_htwbEeCT5O2F6sGn5g">
-            <language>OCL</language>
-            <body>self.upperBound()->notEmpty() and self.lowerBound()->notEmpty() and M.upperBound()->notEmpty() and M.lowerBound()->notEmpty()</body>
-          </specification>
-        </ownedRule>
-        <ownedRule xmi:id="_g1N_h9wbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1N_g9wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1N_iNwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VaIbchE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VaIbcBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VaIbcxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = (self.lowerBound() &lt;= M.lowerBound()) and (self.upperBound() >= M.upperBound())</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1N_idwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedRule xmi:id="_VaIbdBE9EeGOffqMW1YiZA" name="pre" constrainedElement="_VaIbcBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VaIbdRE9EeGOffqMW1YiZA">
+            <language>OCL</language>
+            <body>self.upperBound()->notEmpty() and self.lowerBound()->notEmpty() and M.upperBound()->notEmpty() and M.lowerBound()->notEmpty()</body>
+          </specification>
+        </ownedRule>
+        <ownedParameter xmi:id="_VaIbdhE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
-        <ownedParameter xmi:id="_g1N_itwbEeCT5O2F6sGn5g" name="M" visibility="public" type="_Gjgl0GveEdq4DLWZOhbdEA"/>
+        <ownedParameter xmi:id="_VaIbdxE9EeGOffqMW1YiZA" name="M" visibility="public" type="_Gjgl0GveEdq4DLWZOhbdEA"/>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1OmgNwbEeCT5O2F6sGn5g" name="is" visibility="public" bodyCondition="_g1OmgtwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1OmgdwbEeCT5O2F6sGn5g" annotatedElement="_g1OmgNwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VaJpkBE9EeGOffqMW1YiZA" name="is" visibility="public" bodyCondition="_VaJpkhE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VaJpkRE9EeGOffqMW1YiZA" annotatedElement="_VaJpkBE9EeGOffqMW1YiZA">
           <body>The operation is determines if the upper and lower bound of the ranges are the ones given.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1OmgtwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1OmgNwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1Omg9wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VaJpkhE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VaJpkBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VaJpkxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = (lowerbound = self.lowerbound and upperbound = self.upperbound)</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1OmhNwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VaJplBE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
-        <ownedParameter xmi:id="_g1OmhdwbEeCT5O2F6sGn5g" name="lowerbound" visibility="public">
+        <ownedParameter xmi:id="_VaJplRE9EeGOffqMW1YiZA" name="lowerbound" visibility="public">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
         </ownedParameter>
-        <ownedParameter xmi:id="_g1OmhtwbEeCT5O2F6sGn5g" name="upperbound" visibility="public">
+        <ownedParameter xmi:id="_VaJplhE9EeGOffqMW1YiZA" name="upperbound" visibility="public">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1Omh9wbEeCT5O2F6sGn5g" name="isMultivalued" visibility="public" bodyCondition="_g1Omi9wbEeCT5O2F6sGn5g" isQuery="true" precondition="_g1OmidwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1OmiNwbEeCT5O2F6sGn5g" annotatedElement="_g1Omh9wbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VaKQoBE9EeGOffqMW1YiZA" name="isMultivalued" visibility="public" bodyCondition="_VaKQohE9EeGOffqMW1YiZA" isQuery="true" precondition="_VaKQpBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VaKQoRE9EeGOffqMW1YiZA" annotatedElement="_VaKQoBE9EeGOffqMW1YiZA">
           <body>The query isMultivalued() checks whether this multiplicity has an upper bound greater than one.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1OmidwbEeCT5O2F6sGn5g" name="pre" constrainedElement="_g1Omh9wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1OmitwbEeCT5O2F6sGn5g">
-            <language>OCL</language>
-            <body>upperBound()->notEmpty()</body>
-          </specification>
-        </ownedRule>
-        <ownedRule xmi:id="_g1Omi9wbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1Omh9wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1OmjNwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VaKQohE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VaKQoBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VaKQoxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = upperBound() > 1</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1OmjdwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedRule xmi:id="_VaKQpBE9EeGOffqMW1YiZA" name="pre" constrainedElement="_VaKQoBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VaKQpRE9EeGOffqMW1YiZA">
+            <language>OCL</language>
+            <body>upperBound()->notEmpty()</body>
+          </specification>
+        </ownedRule>
+        <ownedParameter xmi:id="_VaKQphE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_Y8IpELL3EeCBifIhhuFqZA" name="lower" visibility="public" bodyCondition="_g1Omj9wbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1OmjtwbEeCT5O2F6sGn5g" annotatedElement="_Y8IpELL3EeCBifIhhuFqZA">
+      <ownedOperation xmi:id="_Y8IpELL3EeCBifIhhuFqZA" name="lower" visibility="public" bodyCondition="_VaK3sBE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VaKQpxE9EeGOffqMW1YiZA" annotatedElement="_Y8IpELL3EeCBifIhhuFqZA">
           <body>The derived lower attribute must equal the lowerBound.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1Omj9wbEeCT5O2F6sGn5g" name="spec" constrainedElement="_Y8IpELL3EeCBifIhhuFqZA _g1NYcNwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1OmkNwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VaK3sBE9EeGOffqMW1YiZA" name="spec" constrainedElement="_Y8IpELL3EeCBifIhhuFqZA _VaHNUxE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VaK3sRE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = lowerBound()</body>
           </specification>
         </ownedRule>
         <ownedParameter xmi:id="_Y8IpEbL3EeCBifIhhuFqZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1OmkdwbEeCT5O2F6sGn5g"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VaK3shE9EeGOffqMW1YiZA"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1PNkNwbEeCT5O2F6sGn5g" name="lowerBound" visibility="public" bodyCondition="_g1PNktwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1PNkdwbEeCT5O2F6sGn5g" annotatedElement="_g1PNkNwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VaK3sxE9EeGOffqMW1YiZA" name="lowerBound" visibility="public" bodyCondition="_VaK3tRE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VaK3tBE9EeGOffqMW1YiZA" annotatedElement="_VaK3sxE9EeGOffqMW1YiZA">
           <body>The query lowerBound() returns the lower bound of the multiplicity as an integer.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1PNktwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1PNkNwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1PNk9wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VaK3tRE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VaK3sxE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VaK3thE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = if lowerValue->isEmpty() then 1 else lowerValue.integerValue() endif</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1PNlNwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VaK3txE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1PNldwbEeCT5O2F6sGn5g"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VaK3uBE9EeGOffqMW1YiZA"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_a_qnELL3EeCBifIhhuFqZA" name="upper" visibility="public" bodyCondition="_g1PNl9wbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1PNltwbEeCT5O2F6sGn5g" annotatedElement="_a_qnELL3EeCBifIhhuFqZA">
+      <ownedOperation xmi:id="_a_qnELL3EeCBifIhhuFqZA" name="upper" visibility="public" bodyCondition="_VaLewRE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VaLewBE9EeGOffqMW1YiZA" annotatedElement="_a_qnELL3EeCBifIhhuFqZA">
           <body>The derived upper attribute must equal the upperBound.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1PNl9wbEeCT5O2F6sGn5g" name="spec" constrainedElement="_a_qnELL3EeCBifIhhuFqZA _g1NYd9wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1PNmNwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VaLewRE9EeGOffqMW1YiZA" name="spec" constrainedElement="_a_qnELL3EeCBifIhhuFqZA _VaHNWhE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VaLewhE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = upperBound()</body>
           </specification>
         </ownedRule>
         <ownedParameter xmi:id="_a_qnEbL3EeCBifIhhuFqZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#UnlimitedNatural"/>
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1PNmdwbEeCT5O2F6sGn5g"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VaLewxE9EeGOffqMW1YiZA"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1PNmtwbEeCT5O2F6sGn5g" name="upperBound" visibility="public" bodyCondition="_g1PNnNwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1PNm9wbEeCT5O2F6sGn5g" annotatedElement="_g1PNmtwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VaMF0BE9EeGOffqMW1YiZA" name="upperBound" visibility="public" bodyCondition="_VaMF0hE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VaMF0RE9EeGOffqMW1YiZA" annotatedElement="_VaMF0BE9EeGOffqMW1YiZA">
           <body>The query upperBound() returns the upper bound of the multiplicity for a bounded multiplicity as an unlimited natural.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1PNnNwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1PNmtwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1PNndwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VaMF0hE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VaMF0BE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VaMF0xE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = if upperValue->isEmpty() then 1 else upperValue.unlimitedValue() endif</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1PNntwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VaMF1BE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#UnlimitedNatural"/>
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1PNn9wbEeCT5O2F6sGn5g"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VaMF1RE9EeGOffqMW1YiZA"/>
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_csVgUGvtEdqG6fBIPwe-mw" name="NamedElement" isAbstract="true">
-      <ownedComment xmi:id="_g1P0oNwbEeCT5O2F6sGn5g" annotatedElement="_csVgUGvtEdqG6fBIPwe-mw">
+      <ownedComment xmi:id="_VaMs4BE9EeGOffqMW1YiZA" annotatedElement="_csVgUGvtEdqG6fBIPwe-mw">
         <body>A named element supports using a string expression to specify its name. This allows names of model elements to involve template parameters. The actual name is evaluated from the string expression only when it is sensible to do so (e.g., when a template is bound).</body>
       </ownedComment>
-      <ownedComment xmi:id="_g1P0odwbEeCT5O2F6sGn5g" annotatedElement="_csVgUGvtEdqG6fBIPwe-mw">
+      <ownedComment xmi:id="_VaMs4RE9EeGOffqMW1YiZA" annotatedElement="_csVgUGvtEdqG6fBIPwe-mw">
         <body>A named element is an element in a model that may have a name.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g1P0otwbEeCT5O2F6sGn5g" name="visibility_needs_ownership" constrainedElement="_csVgUGvtEdqG6fBIPwe-mw">
-        <ownedComment xmi:id="_g1P0o9wbEeCT5O2F6sGn5g" annotatedElement="_g1P0otwbEeCT5O2F6sGn5g">
-          <body>If a NamedElement is not owned by a Namespace, it does not have a visibility.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1P0pNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>namespace->isEmpty() implies visibility->isEmpty()</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g1P0pdwbEeCT5O2F6sGn5g" name="has_qualified_name" constrainedElement="_csVgUGvtEdqG6fBIPwe-mw">
-        <ownedComment xmi:id="_g1P0ptwbEeCT5O2F6sGn5g" annotatedElement="_g1P0pdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VaMs4hE9EeGOffqMW1YiZA" name="has_qualified_name" constrainedElement="_csVgUGvtEdqG6fBIPwe-mw">
+        <ownedComment xmi:id="_VaMs4xE9EeGOffqMW1YiZA" annotatedElement="_VaMs4hE9EeGOffqMW1YiZA">
           <body>When there is a name, and all of the containing namespaces have a name, the qualified name is constructed from the names of the containing namespaces.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1P0p9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VaMs5BE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>(self.name->notEmpty() and self.allNamespaces()->select(ns | ns.name->isEmpty())->isEmpty()) implies
   self.qualifiedName = self.allNamespaces()->iterate( ns : Namespace; result: String = self.name | ns.name->union(self.separator())->union(result))</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g1P0qNwbEeCT5O2F6sGn5g" name="has_no_qualified_name" constrainedElement="_csVgUGvtEdqG6fBIPwe-mw">
-        <ownedComment xmi:id="_g1P0qdwbEeCT5O2F6sGn5g" annotatedElement="_g1P0qNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VaMs5RE9EeGOffqMW1YiZA" name="has_no_qualified_name" constrainedElement="_csVgUGvtEdqG6fBIPwe-mw">
+        <ownedComment xmi:id="_VaMs5hE9EeGOffqMW1YiZA" annotatedElement="_VaMs5RE9EeGOffqMW1YiZA">
           <body>If there is no name, or one of the containing namespaces has no name, there is no qualified name.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1P0qtwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VaMs5xE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>(self.name->isEmpty() or self.allNamespaces()->select(ns | ns.name->isEmpty())->notEmpty())
   implies self.qualifiedName->isEmpty()</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g1P0q9wbEeCT5O2F6sGn5g" general="_kl90MGvbEdq4DLWZOhbdEA"/>
-      <ownedAttribute xmi:id="_g1QbsNwbEeCT5O2F6sGn5g" name="clientDependency" visibility="public" type="_rEDGkGwKEdq7X4sGURiZYA" subsettedProperty="_gy5rStwbEeCT5O2F6sGn5g" association="_gyVDh9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1QbsdwbEeCT5O2F6sGn5g" annotatedElement="_g1QbsNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VaNT8BE9EeGOffqMW1YiZA" name="visibility_needs_ownership" constrainedElement="_csVgUGvtEdqG6fBIPwe-mw">
+        <ownedComment xmi:id="_VaNT8RE9EeGOffqMW1YiZA" annotatedElement="_VaNT8BE9EeGOffqMW1YiZA">
+          <body>If a NamedElement is not owned by a Namespace, it does not have a visibility.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VaNT8hE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>namespace->isEmpty() implies visibility->isEmpty()</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VaNT8xE9EeGOffqMW1YiZA" general="_kl90MGvbEdq4DLWZOhbdEA"/>
+      <ownedAttribute xmi:id="_VaN7ABE9EeGOffqMW1YiZA" name="clientDependency" visibility="public" type="_rEDGkGwKEdq7X4sGURiZYA" subsettedProperty="_VUkmBhE9EeGOffqMW1YiZA" association="_VTExMBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VaN7ARE9EeGOffqMW1YiZA" annotatedElement="_VaN7ABE9EeGOffqMW1YiZA">
           <body>Indicates the dependencies that reference the client.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1QbstwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1Qbs9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VaN7AhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VaN7AxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
       <ownedAttribute xmi:id="_8n2t4LGzEeCDe8CO90iVKQ" name="name" visibility="public">
-        <ownedComment xmi:id="_g1QbtNwbEeCT5O2F6sGn5g" annotatedElement="_8n2t4LGzEeCDe8CO90iVKQ">
+        <ownedComment xmi:id="_VaN7BBE9EeGOffqMW1YiZA" annotatedElement="_8n2t4LGzEeCDe8CO90iVKQ">
           <body>The name of the NamedElement.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1QbtdwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VaN7BRE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1QbttwbEeCT5O2F6sGn5g" name="nameExpression" visibility="public" type="_g2GwQNwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gykUGNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1Qbt9wbEeCT5O2F6sGn5g" annotatedElement="_g1QbttwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VaN7BhE9EeGOffqMW1YiZA" name="nameExpression" visibility="public" type="_VefXABE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VTzxAxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VaN7BxE9EeGOffqMW1YiZA" annotatedElement="_VaN7BhE9EeGOffqMW1YiZA">
           <body>The string expression used to define the name of this named element.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1QbuNwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VaN7CBE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_1vzv0LbIEeCRxrN1JUGuxA" name="namespace" visibility="public" type="_ZiwkoGwLEdq7X4sGURiZYA" isReadOnly="true" isDerived="true" isDerivedUnion="true" subsettedProperty="_gyjF9NwbEeCT5O2F6sGn5g _g0JodNwbEeCT5O2F6sGn5g" association="_gypMmdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1QbudwbEeCT5O2F6sGn5g" annotatedElement="_1vzv0LbIEeCRxrN1JUGuxA">
+      <ownedAttribute xmi:id="_1vzv0LbIEeCRxrN1JUGuxA" name="namespace" visibility="public" type="_ZiwkoGwLEdq7X4sGURiZYA" isReadOnly="true" isDerived="true" isDerivedUnion="true" subsettedProperty="_VTwttRE9EeGOffqMW1YiZA _N3hRMAtAEeGcpbeCPJfCmw" association="_VUBMYRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VaN7CRE9EeGOffqMW1YiZA" annotatedElement="_1vzv0LbIEeCRxrN1JUGuxA">
           <body>Specifies the namespace that owns the NamedElement.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1QbutwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VaOiEBE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1Qbu9wbEeCT5O2F6sGn5g" name="qualifiedName" visibility="public" isReadOnly="true" isDerived="true">
-        <ownedComment xmi:id="_g1QbvNwbEeCT5O2F6sGn5g" annotatedElement="_g1Qbu9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VaOiERE9EeGOffqMW1YiZA" name="qualifiedName" visibility="public" isReadOnly="true" isDerived="true">
+        <ownedComment xmi:id="_VaOiEhE9EeGOffqMW1YiZA" annotatedElement="_VaOiERE9EeGOffqMW1YiZA">
           <body>A name which allows the NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from the names of the containing namespaces starting at the root of the hierarchy and ending with the name of the NamedElement itself.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1QbvdwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VaOiExE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
       <ownedAttribute xmi:id="_PfdtELG0EeCDe8CO90iVKQ" name="visibility" visibility="public" type="_AyM_oGwMEdq7X4sGURiZYA">
-        <ownedComment xmi:id="_g1RCwNwbEeCT5O2F6sGn5g" annotatedElement="_PfdtELG0EeCDe8CO90iVKQ">
+        <ownedComment xmi:id="_VaOiFBE9EeGOffqMW1YiZA" annotatedElement="_PfdtELG0EeCDe8CO90iVKQ">
           <body>Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1RCwdwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VaOiFRE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
       <ownedOperation xmi:id="_o2CW4GwKEdq7X4sGURiZYA" name="createDependency">
         <ownedComment xmi:id="_kZ5L8OwgEdqYHf-imTcTdw" annotatedElement="_o2CW4GwKEdq7X4sGURiZYA">
@@ -9295,12 +9298,12 @@
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1RCwtwbEeCT5O2F6sGn5g" name="allNamespaces" visibility="public" bodyCondition="_g1RCxNwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1RCw9wbEeCT5O2F6sGn5g" annotatedElement="_g1RCwtwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VaPJIBE9EeGOffqMW1YiZA" name="allNamespaces" visibility="public" bodyCondition="_VaPJIhE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VaPJIRE9EeGOffqMW1YiZA" annotatedElement="_VaPJIBE9EeGOffqMW1YiZA">
           <body>The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1RCxNwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1RCwtwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1RCxdwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VaPJIhE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VaPJIBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VaPJIxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = if self.namespace->isEmpty()
 then Sequence{}
@@ -9308,32 +9311,32 @@
 endif</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1RCxtwbEeCT5O2F6sGn5g" name="result" visibility="public" type="_ZiwkoGwLEdq7X4sGURiZYA" isOrdered="true" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1RCx9wbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1RCyNwbEeCT5O2F6sGn5g" value="*"/>
+        <ownedParameter xmi:id="_VaPJJBE9EeGOffqMW1YiZA" name="result" visibility="public" type="_ZiwkoGwLEdq7X4sGURiZYA" isOrdered="true" direction="return">
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VaPJJRE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VaPJJhE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1RCydwbEeCT5O2F6sGn5g" name="allOwningPackages" visibility="public" bodyCondition="_g1RCy9wbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1RCytwbEeCT5O2F6sGn5g" annotatedElement="_g1RCydwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VaPJJxE9EeGOffqMW1YiZA" name="allOwningPackages" visibility="public" bodyCondition="_VaPJKRE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VaPJKBE9EeGOffqMW1YiZA" annotatedElement="_VaPJJxE9EeGOffqMW1YiZA">
           <body>The query allOwningPackages() returns all the directly or indirectly owning packages.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1RCy9wbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1RCydwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1RCzNwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VaPJKRE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VaPJJxE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VaPJKhE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = self.namespace->select(p | p.oclIsKindOf(Package))->union(p.allOwningPackages())</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1RCzdwbEeCT5O2F6sGn5g" name="result" visibility="public" type="_-cvRAGvzEdq7X4sGURiZYA" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1RCztwbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1RCz9wbEeCT5O2F6sGn5g" value="*"/>
+        <ownedParameter xmi:id="_VaPJKxE9EeGOffqMW1YiZA" name="result" visibility="public" type="_-cvRAGvzEdq7X4sGURiZYA" direction="return">
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VaPJLBE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VaPJLRE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1Rp0NwbEeCT5O2F6sGn5g" name="isDistinguishableFrom" visibility="public" bodyCondition="_g1Rp0twbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1Rp0dwbEeCT5O2F6sGn5g" annotatedElement="_g1Rp0NwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VaPwMBE9EeGOffqMW1YiZA" name="isDistinguishableFrom" visibility="public" bodyCondition="_VaPwMhE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VaPwMRE9EeGOffqMW1YiZA" annotatedElement="_VaPwMBE9EeGOffqMW1YiZA">
           <body>The query isDistinguishableFrom() determines whether two NamedElements may logically co-exist within a Namespace. By default, two named elements are distinguishable if (a) they have unrelated types or (b) they have related types but different names.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1Rp0twbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1Rp0NwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1Rp09wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VaPwMhE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VaPwMBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VaPwMxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = if self.oclIsKindOf(n.oclType) or n.oclIsKindOf(self.oclType)
 then ns.getNamesOfMember(self)->intersection(ns.getNamesOfMember(n))->isEmpty()
@@ -9341,32 +9344,32 @@
 endif</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1Rp1NwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VaPwNBE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
-        <ownedParameter xmi:id="_g1Rp1dwbEeCT5O2F6sGn5g" name="n" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw"/>
-        <ownedParameter xmi:id="_g1Rp1twbEeCT5O2F6sGn5g" name="ns" visibility="public" type="_ZiwkoGwLEdq7X4sGURiZYA"/>
+        <ownedParameter xmi:id="_VaPwNRE9EeGOffqMW1YiZA" name="n" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw"/>
+        <ownedParameter xmi:id="_VaPwNhE9EeGOffqMW1YiZA" name="ns" visibility="public" type="_ZiwkoGwLEdq7X4sGURiZYA"/>
       </ownedOperation>
-      <ownedOperation xmi:id="_qV1f0LL3EeCBifIhhuFqZA" name="namespace" visibility="public" bodyCondition="_g1Rp2NwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1Rp19wbEeCT5O2F6sGn5g" annotatedElement="_qV1f0LL3EeCBifIhhuFqZA">
+      <ownedOperation xmi:id="_qV1f0LL3EeCBifIhhuFqZA" name="namespace" visibility="public" bodyCondition="_VaPwOBE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VaPwNxE9EeGOffqMW1YiZA" annotatedElement="_qV1f0LL3EeCBifIhhuFqZA">
           <body>Missing derivation for NamedElement::/namespace : Namespace</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1Rp2NwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_qV1f0LL3EeCBifIhhuFqZA _1vzv0LbIEeCRxrN1JUGuxA">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1Rp2dwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VaPwOBE9EeGOffqMW1YiZA" name="spec" constrainedElement="_qV1f0LL3EeCBifIhhuFqZA _1vzv0LbIEeCRxrN1JUGuxA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VaPwORE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>true</body>
           </specification>
         </ownedRule>
         <ownedParameter xmi:id="_tdXRcLL3EeCBifIhhuFqZA" name="result" visibility="public" type="_ZiwkoGwLEdq7X4sGURiZYA" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1Rp2twbEeCT5O2F6sGn5g"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VaPwOhE9EeGOffqMW1YiZA"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_8RZtgLL3EeCBifIhhuFqZA" name="qualifiedName" visibility="public" bodyCondition="_g1Rp3NwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1Rp29wbEeCT5O2F6sGn5g" annotatedElement="_8RZtgLL3EeCBifIhhuFqZA">
+      <ownedOperation xmi:id="_8RZtgLL3EeCBifIhhuFqZA" name="qualifiedName" visibility="public" bodyCondition="_VapY0BE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VaoxwBE9EeGOffqMW1YiZA" annotatedElement="_8RZtgLL3EeCBifIhhuFqZA">
           <body>When there is a name, and all of the containing namespaces have a name, the qualified name is constructed from the names of the containing namespaces.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1Rp3NwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_8RZtgLL3EeCBifIhhuFqZA _g1Qbu9wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1Rp3dwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VapY0BE9EeGOffqMW1YiZA" name="spec" constrainedElement="_8RZtgLL3EeCBifIhhuFqZA _VaOiERE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VapY0RE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = if self.name->notEmpty() and self.allNamespaces()->select(ns | ns.name->isEmpty())->isEmpty()
 then 
@@ -9381,76 +9384,76 @@
           <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BRyeMLL4EeCBifIhhuFqZA"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1SQ4NwbEeCT5O2F6sGn5g" name="separator" visibility="public" bodyCondition="_g1SQ4twbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1SQ4dwbEeCT5O2F6sGn5g" annotatedElement="_g1SQ4NwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VapY0hE9EeGOffqMW1YiZA" name="separator" visibility="public" bodyCondition="_VapY1BE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VapY0xE9EeGOffqMW1YiZA" annotatedElement="_VapY0hE9EeGOffqMW1YiZA">
           <body>The query separator() gives the string that is used to separate names when constructing a qualified name.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1SQ4twbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1SQ4NwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1SQ49wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VapY1BE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VapY0hE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VapY1RE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = '::'</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1SQ5NwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VapY1hE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_ZiwkoGwLEdq7X4sGURiZYA" name="Namespace" isAbstract="true">
-      <ownedComment xmi:id="_g1S38NwbEeCT5O2F6sGn5g" annotatedElement="_ZiwkoGwLEdq7X4sGURiZYA">
+      <ownedComment xmi:id="_Vaqm8BE9EeGOffqMW1YiZA" annotatedElement="_ZiwkoGwLEdq7X4sGURiZYA">
         <body>A namespace is an element in a model that contains a set of named elements that can be identified by name.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g1S38dwbEeCT5O2F6sGn5g" name="members_distinguishable" constrainedElement="_ZiwkoGwLEdq7X4sGURiZYA">
-        <ownedComment xmi:id="_g1S38twbEeCT5O2F6sGn5g" annotatedElement="_g1S38dwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_Vaqm8RE9EeGOffqMW1YiZA" name="members_distinguishable" constrainedElement="_ZiwkoGwLEdq7X4sGURiZYA">
+        <ownedComment xmi:id="_Vaqm8hE9EeGOffqMW1YiZA" annotatedElement="_Vaqm8RE9EeGOffqMW1YiZA">
           <body>All the members of a Namespace are distinguishable within it.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1S389wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vaqm8xE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>membersAreDistinguishable()</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g1S39NwbEeCT5O2F6sGn5g" general="_csVgUGvtEdqG6fBIPwe-mw"/>
-      <ownedAttribute xmi:id="_g1S39dwbEeCT5O2F6sGn5g" name="elementImport" visibility="public" type="_RPl78GwIEdq7X4sGURiZYA" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g _gy5rStwbEeCT5O2F6sGn5g" association="_gyZU-dwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1S39twbEeCT5O2F6sGn5g" annotatedElement="_g1S39dwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_Vaqm9BE9EeGOffqMW1YiZA" general="_csVgUGvtEdqG6fBIPwe-mw"/>
+      <ownedAttribute xmi:id="_VarOABE9EeGOffqMW1YiZA" name="elementImport" visibility="public" type="_RPl78GwIEdq7X4sGURiZYA" aggregation="composite" subsettedProperty="_VUkmBhE9EeGOffqMW1YiZA _GDD2YAtAEeGcpbeCPJfCmw" association="_VTQ-cBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VarOARE9EeGOffqMW1YiZA" annotatedElement="_VarOABE9EeGOffqMW1YiZA">
           <body>References the ElementImports owned by the Namespace.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1S399wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1S3-NwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VarOAhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VarOAxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1S3-dwbEeCT5O2F6sGn5g" name="importedMember" visibility="public" type="_jKxnwGwLEdq7X4sGURiZYA" isReadOnly="true" isDerived="true" subsettedProperty="_g1S3_dwbEeCT5O2F6sGn5g" association="_gyfbkNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1S3-twbEeCT5O2F6sGn5g" annotatedElement="_g1S3-dwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VarOBBE9EeGOffqMW1YiZA" name="importedMember" visibility="public" type="_jKxnwGwLEdq7X4sGURiZYA" isReadOnly="true" isDerived="true" subsettedProperty="_VarOCBE9EeGOffqMW1YiZA" association="_VTnjwBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VarOBRE9EeGOffqMW1YiZA" annotatedElement="_VarOBBE9EeGOffqMW1YiZA">
           <body>References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1S3-9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1S3_NwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VarOBhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VarOBxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1S3_dwbEeCT5O2F6sGn5g" name="member" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw" isReadOnly="true" isDerived="true" isDerivedUnion="true" association="_gyjF89wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1S3_twbEeCT5O2F6sGn5g" annotatedElement="_g1S3_dwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VarOCBE9EeGOffqMW1YiZA" name="member" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw" isReadOnly="true" isDerived="true" isDerivedUnion="true" association="_VTwttBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VarOCRE9EeGOffqMW1YiZA" annotatedElement="_VarOCBE9EeGOffqMW1YiZA">
           <body>A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1S3_9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1S4ANwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VarOChE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VarOCxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1S4AdwbEeCT5O2F6sGn5g" name="ownedMember" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw" isReadOnly="true" aggregation="composite" isDerived="true" isDerivedUnion="true" subsettedProperty="_g1S3_dwbEeCT5O2F6sGn5g _g0JocNwbEeCT5O2F6sGn5g" association="_gypMmdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1S4AtwbEeCT5O2F6sGn5g" annotatedElement="_g1S4AdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_Var1EBE9EeGOffqMW1YiZA" name="ownedMember" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw" isReadOnly="true" aggregation="composite" isDerived="true" isDerivedUnion="true" subsettedProperty="_VarOCBE9EeGOffqMW1YiZA _GDD2YAtAEeGcpbeCPJfCmw" association="_VUBMYRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Var1ERE9EeGOffqMW1YiZA" annotatedElement="_Var1EBE9EeGOffqMW1YiZA">
           <body>A collection of NamedElements owned by the Namespace.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1S4A9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1S4BNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Var1EhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Var1ExE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1TfANwbEeCT5O2F6sGn5g" name="ownedRule" visibility="public" type="_g0AegNwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g1S4AdwbEeCT5O2F6sGn5g" association="_gyqavtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1TfAdwbEeCT5O2F6sGn5g" annotatedElement="_g1TfANwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_Var1FBE9EeGOffqMW1YiZA" name="ownedRule" visibility="public" type="_VYbLQBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_Var1EBE9EeGOffqMW1YiZA" association="_VUDophE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Var1FRE9EeGOffqMW1YiZA" annotatedElement="_Var1FBE9EeGOffqMW1YiZA">
           <body>Specifies a set of Constraints owned by this Namespace.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1TfAtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1TfA9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Var1FhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Var1FxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1TfBNwbEeCT5O2F6sGn5g" name="packageImport" visibility="public" type="_SnNPIGwIEdq7X4sGURiZYA" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g _gy5rStwbEeCT5O2F6sGn5g" association="_gyrBydwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1TfBdwbEeCT5O2F6sGn5g" annotatedElement="_g1TfBNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_Var1GBE9EeGOffqMW1YiZA" name="packageImport" visibility="public" type="_SnNPIGwIEdq7X4sGURiZYA" aggregation="composite" subsettedProperty="_VUkmBhE9EeGOffqMW1YiZA _GDD2YAtAEeGcpbeCPJfCmw" association="_VUFd0BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Var1GRE9EeGOffqMW1YiZA" annotatedElement="_Var1GBE9EeGOffqMW1YiZA">
           <body>References the PackageImports owned by the Namespace.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1TfBtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1TfB9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Var1GhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Var1GxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
       <ownedOperation xmi:id="_vI18QGwLEdq7X4sGURiZYA" name="createElementImport">
         <ownedComment xmi:id="_sdLToOwlEdqYHf-imTcTdw" annotatedElement="_vI18QGwLEdq7X4sGURiZYA">
@@ -9502,34 +9505,34 @@
           <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6sF9AWwLEdq7X4sGURiZYA" value="*"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1TfCNwbEeCT5O2F6sGn5g" name="excludeCollisions" visibility="public" bodyCondition="_g1TfCtwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1TfCdwbEeCT5O2F6sGn5g" annotatedElement="_g1TfCNwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_Var1HBE9EeGOffqMW1YiZA" name="excludeCollisions" visibility="public" bodyCondition="_Var1HhE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_Var1HRE9EeGOffqMW1YiZA" annotatedElement="_Var1HBE9EeGOffqMW1YiZA">
           <body>The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1TfCtwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1TfCNwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1TfC9wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_Var1HhE9EeGOffqMW1YiZA" name="spec" constrainedElement="_Var1HBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_Var1HxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = imps->reject(imp1 | imps.exists(imp2 | not imp1.isDistinguishableFrom(imp2, self)))</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1TfDNwbEeCT5O2F6sGn5g" name="result" visibility="public" type="_jKxnwGwLEdq7X4sGURiZYA" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1TfDdwbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1TfDtwbEeCT5O2F6sGn5g" value="*"/>
+        <ownedParameter xmi:id="_Var1IBE9EeGOffqMW1YiZA" name="result" visibility="public" type="_jKxnwGwLEdq7X4sGURiZYA" direction="return">
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Var1IRE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Var1IhE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
-        <ownedParameter xmi:id="_g1TfD9wbEeCT5O2F6sGn5g" name="imps" visibility="public" type="_jKxnwGwLEdq7X4sGURiZYA">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1TfENwbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1TfEdwbEeCT5O2F6sGn5g" value="*"/>
+        <ownedParameter xmi:id="_Var1IxE9EeGOffqMW1YiZA" name="imps" visibility="public" type="_jKxnwGwLEdq7X4sGURiZYA">
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Var1JBE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Var1JRE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1UGENwbEeCT5O2F6sGn5g" name="getNamesOfMember" visibility="public" bodyCondition="_g1UGE9wbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1UGEdwbEeCT5O2F6sGn5g" annotatedElement="_g1UGENwbEeCT5O2F6sGn5g">
-          <body>The query getNamesOfMember() takes importing into account. It gives back the set of names that an element would have in an importing namespace, either because it is owned, or if not owned then imported individually, or if not individually then from a package.</body>
-        </ownedComment>
-        <ownedComment xmi:id="_g1UGEtwbEeCT5O2F6sGn5g" annotatedElement="_g1UGENwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VascIBE9EeGOffqMW1YiZA" name="getNamesOfMember" visibility="public" bodyCondition="_VascIxE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VascIRE9EeGOffqMW1YiZA" annotatedElement="_VascIBE9EeGOffqMW1YiZA">
           <body>The query getNamesOfMember() gives a set of all of the names that a member would have in a Namespace. In general a member can have multiple names in a Namespace if it is imported more than once with different aliases. The query takes account of importing. It gives back the set of names that an element would have in an importing namespace, either because it is owned, or if not owned then imported individually, or if not individually then from a package.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1UGE9wbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1UGENwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1UGFNwbEeCT5O2F6sGn5g">
+        <ownedComment xmi:id="_VascIhE9EeGOffqMW1YiZA" annotatedElement="_VascIBE9EeGOffqMW1YiZA">
+          <body>The query getNamesOfMember() takes importing into account. It gives back the set of names that an element would have in an importing namespace, either because it is owned, or if not owned then imported individually, or if not individually then from a package.</body>
+        </ownedComment>
+        <ownedRule xmi:id="_VascIxE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VascIBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VascJBE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = if self.ownedMember ->includes(element)
 then Set{}->include(element.name)
@@ -9541,102 +9544,102 @@
 endif</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1UGFdwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VascJRE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1UGFtwbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1UGF9wbEeCT5O2F6sGn5g" value="*"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VascJhE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VascJxE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
-        <ownedParameter xmi:id="_g1UGGNwbEeCT5O2F6sGn5g" name="element" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw"/>
+        <ownedParameter xmi:id="_VascKBE9EeGOffqMW1YiZA" name="element" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw"/>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1UGGdwbEeCT5O2F6sGn5g" name="importMembers" visibility="public" bodyCondition="_g1UGG9wbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1UGGtwbEeCT5O2F6sGn5g" annotatedElement="_g1UGGdwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VascKRE9EeGOffqMW1YiZA" name="importMembers" visibility="public" bodyCondition="_VascKxE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VascKhE9EeGOffqMW1YiZA" annotatedElement="_VascKRE9EeGOffqMW1YiZA">
           <body>The query importMembers() defines which of a set of PackageableElements are actually imported into the namespace. This excludes hidden ones, i.e., those which have names that conflict with names of owned members, and also excludes elements which would have the same name when imported.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1UGG9wbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1UGGdwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1UGHNwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VascKxE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VascKRE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VascLBE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = self.excludeCollisions(imps)->select(imp | self.ownedMember->forAll(mem |
 mem.imp.isDistinguishableFrom(mem, self)))</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1UGHdwbEeCT5O2F6sGn5g" name="result" visibility="public" type="_jKxnwGwLEdq7X4sGURiZYA" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1UGHtwbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1UGH9wbEeCT5O2F6sGn5g" value="*"/>
+        <ownedParameter xmi:id="_VascLRE9EeGOffqMW1YiZA" name="result" visibility="public" type="_jKxnwGwLEdq7X4sGURiZYA" direction="return">
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VascLhE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VascLxE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
-        <ownedParameter xmi:id="_g1UGINwbEeCT5O2F6sGn5g" name="imps" visibility="public" type="_jKxnwGwLEdq7X4sGURiZYA">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1UGIdwbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1UGItwbEeCT5O2F6sGn5g" value="*"/>
+        <ownedParameter xmi:id="_VascMBE9EeGOffqMW1YiZA" name="imps" visibility="public" type="_jKxnwGwLEdq7X4sGURiZYA">
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VascMRE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VascMhE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_OanVoLL4EeCBifIhhuFqZA" name="importedMember" visibility="public" bodyCondition="_g1UGJNwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1UGI9wbEeCT5O2F6sGn5g" annotatedElement="_OanVoLL4EeCBifIhhuFqZA">
+      <ownedOperation xmi:id="_OanVoLL4EeCBifIhhuFqZA" name="importedMember" visibility="public" bodyCondition="_VatDMRE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VatDMBE9EeGOffqMW1YiZA" annotatedElement="_OanVoLL4EeCBifIhhuFqZA">
           <body>The importedMember property is derived from the ElementImports and the PackageImports. References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1UGJNwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_OanVoLL4EeCBifIhhuFqZA _g1S3-dwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1UGJdwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VatDMRE9EeGOffqMW1YiZA" name="spec" constrainedElement="_OanVoLL4EeCBifIhhuFqZA _VarOBBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VatDMhE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = self.importMembers(self.elementImport.importedElement.asSet()-
 >union(self.packageImport.importedPackage->collect(p | p.visibleMembers())))</body>
           </specification>
         </ownedRule>
         <ownedParameter xmi:id="_RAhn8LL4EeCBifIhhuFqZA" name="result" visibility="public" type="_jKxnwGwLEdq7X4sGURiZYA" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1UGJtwbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1UGJ9wbEeCT5O2F6sGn5g" value="*"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Va5QcBE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Va5QcRE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1UtINwbEeCT5O2F6sGn5g" name="membersAreDistinguishable" visibility="public" bodyCondition="_g1UtItwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1UtIdwbEeCT5O2F6sGn5g" annotatedElement="_g1UtINwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_Va53gBE9EeGOffqMW1YiZA" name="membersAreDistinguishable" visibility="public" bodyCondition="_Va53ghE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_Va53gRE9EeGOffqMW1YiZA" annotatedElement="_Va53gBE9EeGOffqMW1YiZA">
           <body>The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1UtItwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1UtINwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1UtI9wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_Va53ghE9EeGOffqMW1YiZA" name="spec" constrainedElement="_Va53gBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_Va53gxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = self.member->forAll( memb |
 self.member->excluding(memb)->forAll(other |
 memb.isDistinguishableFrom(other, self)))</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1UtJNwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_Va53hBE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_aGIhkLL4EeCBifIhhuFqZA" name="ownedMember" visibility="public" bodyCondition="_g1UtJtwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1UtJdwbEeCT5O2F6sGn5g" annotatedElement="_aGIhkLL4EeCBifIhhuFqZA">
+      <ownedOperation xmi:id="_aGIhkLL4EeCBifIhhuFqZA" name="ownedMember" visibility="public" bodyCondition="_Va53hhE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_Va53hRE9EeGOffqMW1YiZA" annotatedElement="_aGIhkLL4EeCBifIhhuFqZA">
           <body>Missing derivation for Namespace::/ownedMember : NamedElement</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1UtJtwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_aGIhkLL4EeCBifIhhuFqZA _g1S4AdwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1UtJ9wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_Va53hhE9EeGOffqMW1YiZA" name="spec" constrainedElement="_aGIhkLL4EeCBifIhhuFqZA _Var1EBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_Va53hxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>true</body>
           </specification>
         </ownedRule>
         <ownedParameter xmi:id="_aGIhkbL4EeCBifIhhuFqZA" name="result" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1UtKNwbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1UtKdwbEeCT5O2F6sGn5g" value="*"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Va6ekBE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VbDogBE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_5YOyUKJ8EdywJr5C4uHLKw" name="Node">
-      <ownedComment xmi:id="_g1VUMNwbEeCT5O2F6sGn5g" annotatedElement="_5YOyUKJ8EdywJr5C4uHLKw">
+      <ownedComment xmi:id="_VbE2oBE9EeGOffqMW1YiZA" annotatedElement="_5YOyUKJ8EdywJr5C4uHLKw">
         <body>A node is computational resource upon which artifacts may be deployed for execution. Nodes can be interconnected through communication paths to define network structures.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g1VUMdwbEeCT5O2F6sGn5g" name="internal_structure" constrainedElement="_5YOyUKJ8EdywJr5C4uHLKw">
-        <ownedComment xmi:id="_g1VUMtwbEeCT5O2F6sGn5g" annotatedElement="_g1VUMdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VbFdsBE9EeGOffqMW1YiZA" name="internal_structure" constrainedElement="_5YOyUKJ8EdywJr5C4uHLKw">
+        <ownedComment xmi:id="_VbFdsRE9EeGOffqMW1YiZA" annotatedElement="_VbFdsBE9EeGOffqMW1YiZA">
           <body>The internal structure of a Node (if defined) consists solely of parts of type Node.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1VUM9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VbFdshE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g1VUNNwbEeCT5O2F6sGn5g" general="_00owUGvdEdq4DLWZOhbdEA"/>
-      <generalization xmi:id="_g1VUNdwbEeCT5O2F6sGn5g" general="_PkmfgLLXEeCsYvaJqFFivQ"/>
-      <ownedAttribute xmi:id="_g1V7QNwbEeCT5O2F6sGn5g" name="nestedNode" visibility="public" type="_5YOyUKJ8EdywJr5C4uHLKw" aggregation="composite" subsettedProperty="_g1S4AdwbEeCT5O2F6sGn5g" association="_gyk7KNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1V7QdwbEeCT5O2F6sGn5g" annotatedElement="_g1V7QNwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VbFdsxE9EeGOffqMW1YiZA" general="_00owUGvdEdq4DLWZOhbdEA"/>
+      <generalization xmi:id="_VbFdtBE9EeGOffqMW1YiZA" general="_PkmfgLLXEeCsYvaJqFFivQ"/>
+      <ownedAttribute xmi:id="_VbFdtRE9EeGOffqMW1YiZA" name="nestedNode" visibility="public" type="_5YOyUKJ8EdywJr5C4uHLKw" aggregation="composite" subsettedProperty="_Var1EBE9EeGOffqMW1YiZA" association="_VT0_IxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VbFdthE9EeGOffqMW1YiZA" annotatedElement="_VbFdtRE9EeGOffqMW1YiZA">
           <body>The Nodes that are defined (nested) within the Node.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1V7QtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1V7Q9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VbFdtxE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VbFduBE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
       <ownedOperation xmi:id="_8asdwKJ8EdywJr5C4uHLKw" name="createCommunicationPath">
         <ownedComment xmi:id="_8asdwaJ8EdywJr5C4uHLKw" annotatedElement="_8asdwKJ8EdywJr5C4uHLKw">
@@ -9717,586 +9720,586 @@
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g1WiUNwbEeCT5O2F6sGn5g" name="ObjectFlow">
-      <ownedComment xmi:id="_g1WiUdwbEeCT5O2F6sGn5g" annotatedElement="_g1WiUNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VbVVUBE9EeGOffqMW1YiZA" name="ObjectFlow">
+      <ownedComment xmi:id="_VbVVURE9EeGOffqMW1YiZA" annotatedElement="_VbVVUBE9EeGOffqMW1YiZA">
         <body>An object flow is an activity edge that can have objects or data passing along it.</body>
       </ownedComment>
-      <ownedComment xmi:id="_g1WiUtwbEeCT5O2F6sGn5g" annotatedElement="_g1WiUNwbEeCT5O2F6sGn5g">
+      <ownedComment xmi:id="_VbVVUhE9EeGOffqMW1YiZA" annotatedElement="_VbVVUBE9EeGOffqMW1YiZA">
         <body>Object flows have support for multicast/receive, token selection from object nodes, and transformation of tokens.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g1WiU9wbEeCT5O2F6sGn5g" name="input_and_output_parameter" constrainedElement="_g1WiUNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1WiVNwbEeCT5O2F6sGn5g" annotatedElement="_g1WiU9wbEeCT5O2F6sGn5g">
-          <body>A selection behavior has one input parameter and one output parameter. The input parameter must be a bag of elements of the same as or a supertype of the type of source object node. The output parameter must be the same or a subtype of the type of source object node. The behavior cannot have side effects.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1WiVdwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g1WiVtwbEeCT5O2F6sGn5g" name="no_actions" constrainedElement="_g1WiUNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1WiV9wbEeCT5O2F6sGn5g" annotatedElement="_g1WiVtwbEeCT5O2F6sGn5g">
-          <body>Object flows may not have actions at either end.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1WiWNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g1WiWdwbEeCT5O2F6sGn5g" name="transformation_behaviour" constrainedElement="_g1WiUNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1WiWtwbEeCT5O2F6sGn5g" annotatedElement="_g1WiWdwbEeCT5O2F6sGn5g">
-          <body>A transformation behavior has one input parameter and one output parameter. The input parameter must be the same as or a supertype of the type of object token coming from the source end. The output parameter must be the same or a subtype of the type of object token expected downstream. The behavior cannot have side effects.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1WiW9wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g1WiXNwbEeCT5O2F6sGn5g" name="selection_behaviour" constrainedElement="_g1WiUNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1WiXdwbEeCT5O2F6sGn5g" annotatedElement="_g1WiXNwbEeCT5O2F6sGn5g">
-          <body>An object flow may have a selection behavior only if has an object node as a source.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1WiXtwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g1WiX9wbEeCT5O2F6sGn5g" name="compatible_types" constrainedElement="_g1WiUNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1WiYNwbEeCT5O2F6sGn5g" annotatedElement="_g1WiX9wbEeCT5O2F6sGn5g">
-          <body>Object nodes connected by an object flow, with optionally intervening control nodes, must have compatible types. In particular, the downstream object node type must be the same or a supertype of the upstream object node type.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1WiYdwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g1WiYtwbEeCT5O2F6sGn5g" name="same_upper_bounds" constrainedElement="_g1WiUNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1WiY9wbEeCT5O2F6sGn5g" annotatedElement="_g1WiYtwbEeCT5O2F6sGn5g">
-          <body>Object nodes connected by an object flow, with optionally intervening control nodes, must have the same upper bounds.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1WiZNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g1WiZdwbEeCT5O2F6sGn5g" name="target" constrainedElement="_g1WiUNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1WiZtwbEeCT5O2F6sGn5g" annotatedElement="_g1WiZdwbEeCT5O2F6sGn5g">
-          <body>An edge with constant weight may not target an object node, or lead to an object node downstream with no intervening actions, that has an upper bound less than the weight.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1WiZ9wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g1WiaNwbEeCT5O2F6sGn5g" name="is_multicast_or_is_multireceive" constrainedElement="_g1WiUNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1WiadwbEeCT5O2F6sGn5g" annotatedElement="_g1WiaNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VbVVUxE9EeGOffqMW1YiZA" name="is_multicast_or_is_multireceive" constrainedElement="_VbVVUBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VbVVVBE9EeGOffqMW1YiZA" annotatedElement="_VbVVUxE9EeGOffqMW1YiZA">
           <body>isMulticast and isMultireceive cannot both be true.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1WiatwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VbVVVRE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g1Wia9wbEeCT5O2F6sGn5g" general="_gzZagNwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g1WibNwbEeCT5O2F6sGn5g" name="isMulticast" visibility="public">
-        <ownedComment xmi:id="_g1WibdwbEeCT5O2F6sGn5g" annotatedElement="_g1WibNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VbVVVhE9EeGOffqMW1YiZA" name="selection_behaviour" constrainedElement="_VbVVUBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VbVVVxE9EeGOffqMW1YiZA" annotatedElement="_VbVVVhE9EeGOffqMW1YiZA">
+          <body>An object flow may have a selection behavior only if has an object node as a source.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VbVVWBE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VbVVWRE9EeGOffqMW1YiZA" name="compatible_types" constrainedElement="_VbVVUBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VbVVWhE9EeGOffqMW1YiZA" annotatedElement="_VbVVWRE9EeGOffqMW1YiZA">
+          <body>Object nodes connected by an object flow, with optionally intervening control nodes, must have compatible types. In particular, the downstream object node type must be the same or a supertype of the upstream object node type.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VbVVWxE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VbVVXBE9EeGOffqMW1YiZA" name="no_actions" constrainedElement="_VbVVUBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VbVVXRE9EeGOffqMW1YiZA" annotatedElement="_VbVVXBE9EeGOffqMW1YiZA">
+          <body>Object flows may not have actions at either end.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VbVVXhE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VbVVXxE9EeGOffqMW1YiZA" name="input_and_output_parameter" constrainedElement="_VbVVUBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VbVVYBE9EeGOffqMW1YiZA" annotatedElement="_VbVVXxE9EeGOffqMW1YiZA">
+          <body>A selection behavior has one input parameter and one output parameter. The input parameter must be a bag of elements of the same as or a supertype of the type of source object node. The output parameter must be the same or a subtype of the type of source object node. The behavior cannot have side effects.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VbVVYRE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VbVVYhE9EeGOffqMW1YiZA" name="transformation_behaviour" constrainedElement="_VbVVUBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VbVVYxE9EeGOffqMW1YiZA" annotatedElement="_VbVVYhE9EeGOffqMW1YiZA">
+          <body>A transformation behavior has one input parameter and one output parameter. The input parameter must be the same as or a supertype of the type of object token coming from the source end. The output parameter must be the same or a subtype of the type of object token expected downstream. The behavior cannot have side effects.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VbVVZBE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VbVVZRE9EeGOffqMW1YiZA" name="target" constrainedElement="_VbVVUBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VbVVZhE9EeGOffqMW1YiZA" annotatedElement="_VbVVZRE9EeGOffqMW1YiZA">
+          <body>An edge with constant weight may not target an object node, or lead to an object node downstream with no intervening actions, that has an upper bound less than the weight.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VbVVZxE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VbVVaBE9EeGOffqMW1YiZA" name="same_upper_bounds" constrainedElement="_VbVVUBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VbVVaRE9EeGOffqMW1YiZA" annotatedElement="_VbVVaBE9EeGOffqMW1YiZA">
+          <body>Object nodes connected by an object flow, with optionally intervening control nodes, must have the same upper bounds.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VbVVahE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VbVVaxE9EeGOffqMW1YiZA" general="_VVcIsBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VbVVbBE9EeGOffqMW1YiZA" name="isMulticast" visibility="public">
+        <ownedComment xmi:id="_VbVVbRE9EeGOffqMW1YiZA" annotatedElement="_VbVVbBE9EeGOffqMW1YiZA">
           <body>Tells whether the objects in the flow are passed by multicasting.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g1WibtwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VbVVbhE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1Wib9wbEeCT5O2F6sGn5g" name="isMultireceive" visibility="public">
-        <ownedComment xmi:id="_g1WicNwbEeCT5O2F6sGn5g" annotatedElement="_g1Wib9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VbVVbxE9EeGOffqMW1YiZA" name="isMultireceive" visibility="public">
+        <ownedComment xmi:id="_VbVVcBE9EeGOffqMW1YiZA" annotatedElement="_VbVVbxE9EeGOffqMW1YiZA">
           <body>Tells whether the objects in the flow are gathered from respondents to multicasting.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g1WicdwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VbVVcRE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1WictwbEeCT5O2F6sGn5g" name="selection" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" association="_gy4dINwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1Wic9wbEeCT5O2F6sGn5g" annotatedElement="_g1WictwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VbVVchE9EeGOffqMW1YiZA" name="selection" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" association="_VUiJwBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VbVVcxE9EeGOffqMW1YiZA" annotatedElement="_VbVVchE9EeGOffqMW1YiZA">
           <body>Selects tokens from a source object node.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1WidNwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VbVVdBE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1WiddwbEeCT5O2F6sGn5g" name="transformation" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" association="_gy9VpNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1WidtwbEeCT5O2F6sGn5g" annotatedElement="_g1WiddwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VbVVdRE9EeGOffqMW1YiZA" name="transformation" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" association="_VUqsoBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VbV8YBE9EeGOffqMW1YiZA" annotatedElement="_VbVVdRE9EeGOffqMW1YiZA">
           <body>Changes or replaces data tokens flowing along edge.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1Wid9wbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VbV8YRE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g1XJYNwbEeCT5O2F6sGn5g" name="ObjectNode" isAbstract="true">
-      <ownedComment xmi:id="_g1XJYdwbEeCT5O2F6sGn5g" annotatedElement="_g1XJYNwbEeCT5O2F6sGn5g">
-        <body>Object nodes have support for token selection, limitation on the number of tokens, specifying the state required for tokens, and carrying control values.</body>
-      </ownedComment>
-      <ownedComment xmi:id="_g1XJYtwbEeCT5O2F6sGn5g" annotatedElement="_g1XJYNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VbcDABE9EeGOffqMW1YiZA" name="ObjectNode" isAbstract="true">
+      <ownedComment xmi:id="_VbcDARE9EeGOffqMW1YiZA" annotatedElement="_VbcDABE9EeGOffqMW1YiZA">
         <body>An object node is an abstract activity node that is part of defining object flow in an activity.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g1XJY9wbEeCT5O2F6sGn5g" name="input_output_parameter" constrainedElement="_g1XJYNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1XJZNwbEeCT5O2F6sGn5g" annotatedElement="_g1XJY9wbEeCT5O2F6sGn5g">
-          <body>A selection behavior has one input parameter and one output parameter. The input parameter must be a bag of elements of the same type as the object node or a supertype of the type of object node. The output parameter must be the same or a subtype of the type of object node. The behavior cannot have side effects.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1XJZdwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g1XJZtwbEeCT5O2F6sGn5g" name="selection_behavior" constrainedElement="_g1XJYNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1XJZ9wbEeCT5O2F6sGn5g" annotatedElement="_g1XJZtwbEeCT5O2F6sGn5g">
-          <body>If an object node has a selection behavior, then the ordering of the object node is ordered, and vice versa.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1XJaNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g1XJadwbEeCT5O2F6sGn5g" name="object_flow_edges" constrainedElement="_g1XJYNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1XJatwbEeCT5O2F6sGn5g" annotatedElement="_g1XJadwbEeCT5O2F6sGn5g">
+      <ownedComment xmi:id="_VbcDAhE9EeGOffqMW1YiZA" annotatedElement="_VbcDABE9EeGOffqMW1YiZA">
+        <body>Object nodes have support for token selection, limitation on the number of tokens, specifying the state required for tokens, and carrying control values.</body>
+      </ownedComment>
+      <ownedRule xmi:id="_VbcDAxE9EeGOffqMW1YiZA" name="object_flow_edges" constrainedElement="_VbcDABE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VbcDBBE9EeGOffqMW1YiZA" annotatedElement="_VbcDAxE9EeGOffqMW1YiZA">
           <body>All edges coming into or going out of object nodes must be object flow edges.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1XJa9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VbcDBRE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g1XJbNwbEeCT5O2F6sGn5g" general="_g2UysNwbEeCT5O2F6sGn5g"/>
-      <generalization xmi:id="_g1XJbdwbEeCT5O2F6sGn5g" general="_gzbPsNwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g1XJbtwbEeCT5O2F6sGn5g" name="inState" visibility="public" type="_g2Ce0NwbEeCT5O2F6sGn5g" association="_gyfbmtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1XJb9wbEeCT5O2F6sGn5g" annotatedElement="_g1XJbtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VbcDBhE9EeGOffqMW1YiZA" name="selection_behavior" constrainedElement="_VbcDABE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VbcDBxE9EeGOffqMW1YiZA" annotatedElement="_VbcDBhE9EeGOffqMW1YiZA">
+          <body>If an object node has a selection behavior, then the ordering of the object node is ordered, and vice versa.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VbcDCBE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VbcDCRE9EeGOffqMW1YiZA" name="input_output_parameter" constrainedElement="_VbcDABE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VbcDChE9EeGOffqMW1YiZA" annotatedElement="_VbcDCRE9EeGOffqMW1YiZA">
+          <body>A selection behavior has one input parameter and one output parameter. The input parameter must be a bag of elements of the same type as the object node or a supertype of the type of object node. The output parameter must be the same or a subtype of the type of object node. The behavior cannot have side effects.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VbcDCxE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VbcDDBE9EeGOffqMW1YiZA" general="_WpiyYAs-EeGcpbeCPJfCmw"/>
+      <generalization xmi:id="_VbcDDRE9EeGOffqMW1YiZA" general="_VfDXsBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VbcDDhE9EeGOffqMW1YiZA" name="inState" visibility="public" type="_VeRUkBE9EeGOffqMW1YiZA" association="_VToK0BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VbcDDxE9EeGOffqMW1YiZA" annotatedElement="_VbcDDhE9EeGOffqMW1YiZA">
           <body>The required states of the object available at this point in the activity.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1XJcNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1XJcdwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VbcDEBE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VbcDERE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1XJctwbEeCT5O2F6sGn5g" name="isControlType" visibility="public">
-        <ownedComment xmi:id="_g1XJc9wbEeCT5O2F6sGn5g" annotatedElement="_g1XJctwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VbcDEhE9EeGOffqMW1YiZA" name="isControlType" visibility="public">
+        <ownedComment xmi:id="_VbcDExE9EeGOffqMW1YiZA" annotatedElement="_VbcDEhE9EeGOffqMW1YiZA">
           <body>Tells whether the type of the object node is to be treated as control.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g1XJdNwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VbcDFBE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1XJddwbEeCT5O2F6sGn5g" name="ordering" visibility="public" type="_g2d8rtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1XJdtwbEeCT5O2F6sGn5g" annotatedElement="_g1XJddwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VbcDFRE9EeGOffqMW1YiZA" name="ordering" visibility="public" type="_VfPk8BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VbcDFhE9EeGOffqMW1YiZA" annotatedElement="_VbcDFRE9EeGOffqMW1YiZA">
           <body>Tells whether and how the tokens in the object node are ordered for selection to traverse edges outgoing from the object node.</body>
         </ownedComment>
-        <defaultValue xmi:type="uml:InstanceValue" xmi:id="_g1XJd9wbEeCT5O2F6sGn5g" type="_g2d8rtwbEeCT5O2F6sGn5g" instance="_g2d8ttwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:InstanceValue" xmi:id="_VbcDFxE9EeGOffqMW1YiZA" type="_VfPk8BE9EeGOffqMW1YiZA" instance="_VfPk-BE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1XJeNwbEeCT5O2F6sGn5g" name="selection" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" association="_gy4dJNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1XJedwbEeCT5O2F6sGn5g" annotatedElement="_g1XJeNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VbcDGBE9EeGOffqMW1YiZA" name="selection" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" association="_VUiJxBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VbcDGRE9EeGOffqMW1YiZA" annotatedElement="_VbcDGBE9EeGOffqMW1YiZA">
           <body>Selects tokens for outgoing edges.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1XJetwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VbcDGhE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1XJe9wbEeCT5O2F6sGn5g" name="upperBound" visibility="public" type="_g2YdENwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gy-jyNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1XJfNwbEeCT5O2F6sGn5g" annotatedElement="_g1XJe9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VbcDGxE9EeGOffqMW1YiZA" name="upperBound" visibility="public" type="_VfGbABE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VUtv-BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VbcDHBE9EeGOffqMW1YiZA" annotatedElement="_VbcDGxE9EeGOffqMW1YiZA">
           <body>The maximum number of tokens allowed in the node. Objects cannot flow into the node if the upper bound is reached.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g1XJfdwbEeCT5O2F6sGn5g" name="Observation" isAbstract="true">
-      <ownedComment xmi:id="_g1XJftwbEeCT5O2F6sGn5g" annotatedElement="_g1XJfdwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VbcqEBE9EeGOffqMW1YiZA" name="Observation" isAbstract="true">
+      <ownedComment xmi:id="_VbcqERE9EeGOffqMW1YiZA" annotatedElement="_VbcqEBE9EeGOffqMW1YiZA">
         <body>Observation is a superclass of TimeObservation and DurationObservation in order for TimeExpression and Duration to refer to either in a simple way.</body>
       </ownedComment>
-      <generalization xmi:id="_g1XJf9wbEeCT5O2F6sGn5g" general="_jKxnwGwLEdq7X4sGURiZYA"/>
+      <generalization xmi:id="_VbcqEhE9EeGOffqMW1YiZA" general="_jKxnwGwLEdq7X4sGURiZYA"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g1XwcNwbEeCT5O2F6sGn5g" name="OccurrenceSpecification">
-      <ownedComment xmi:id="_g1XwcdwbEeCT5O2F6sGn5g" annotatedElement="_g1XwcNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VbdRIBE9EeGOffqMW1YiZA" name="OccurrenceSpecification">
+      <ownedComment xmi:id="_VbdRIRE9EeGOffqMW1YiZA" annotatedElement="_VbdRIBE9EeGOffqMW1YiZA">
         <body>An occurrence specification is the basic semantic unit of interactions. The sequences of occurrences specified by them are the meanings of interactions.</body>
       </ownedComment>
-      <generalization xmi:id="_g1XwctwbEeCT5O2F6sGn5g" general="_g0cjYNwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g1Xwc9wbEeCT5O2F6sGn5g" name="covered" visibility="public" type="_g0hb4NwbEeCT5O2F6sGn5g" redefinedProperty="_g0cjY9wbEeCT5O2F6sGn5g" association="_gyXfwNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1XwdNwbEeCT5O2F6sGn5g" annotatedElement="_g1Xwc9wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VbdRIhE9EeGOffqMW1YiZA" general="_VZuLwBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VbdRIxE9EeGOffqMW1YiZA" name="covered" visibility="public" type="_VZ0SYBE9EeGOffqMW1YiZA" redefinedProperty="_VZuLwxE9EeGOffqMW1YiZA" association="_VTK30BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VbdRJBE9EeGOffqMW1YiZA" annotatedElement="_VbdRIxE9EeGOffqMW1YiZA">
           <body>References the Lifeline on which the OccurrenceSpecification appears.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1XwddwbEeCT5O2F6sGn5g" name="toAfter" visibility="public" type="_g0V1udwbEeCT5O2F6sGn5g" association="_gySnUtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1XwdtwbEeCT5O2F6sGn5g" annotatedElement="_g1XwddwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VbdRJRE9EeGOffqMW1YiZA" name="toAfter" visibility="public" type="_VZe7MBE9EeGOffqMW1YiZA" association="_VS_RoBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VbdRJhE9EeGOffqMW1YiZA" annotatedElement="_VbdRJRE9EeGOffqMW1YiZA">
           <body>References the GeneralOrderings that specify EventOcurrences that must occur after this OccurrenceSpecification</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1Xwd9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1XweNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VbdRJxE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VbdRKBE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1XwedwbEeCT5O2F6sGn5g" name="toBefore" visibility="public" type="_g0V1udwbEeCT5O2F6sGn5g" association="_gy9Vo9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1XwetwbEeCT5O2F6sGn5g" annotatedElement="_g1XwedwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VbdRKRE9EeGOffqMW1YiZA" name="toBefore" visibility="public" type="_VZe7MBE9EeGOffqMW1YiZA" association="_VUqFlxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VbdRKhE9EeGOffqMW1YiZA" annotatedElement="_VbdRKRE9EeGOffqMW1YiZA">
           <body>References the GeneralOrderings that specify EventOcurrences that must occur before this OccurrenceSpecification</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1Xwe9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1XwfNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VbdRKxE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VbdRLBE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="__pbPMLG4EeCDe8CO90iVKQ" name="OpaqueAction">
-      <ownedComment xmi:id="_g1XwfdwbEeCT5O2F6sGn5g" annotatedElement="__pbPMLG4EeCDe8CO90iVKQ">
+      <ownedComment xmi:id="_VbdRLRE9EeGOffqMW1YiZA" annotatedElement="__pbPMLG4EeCDe8CO90iVKQ">
         <body>An action with implementation-specific semantics.</body>
       </ownedComment>
-      <generalization xmi:id="_g1XwftwbEeCT5O2F6sGn5g" general="_6WKakLLQEeCsYvaJqFFivQ"/>
+      <generalization xmi:id="_VbdRLhE9EeGOffqMW1YiZA" general="_6WKakLLQEeCsYvaJqFFivQ"/>
       <ownedAttribute xmi:id="__pbPMbG4EeCDe8CO90iVKQ" name="body" visibility="public" isOrdered="true" isUnique="false">
-        <ownedComment xmi:id="_g1Xwf9wbEeCT5O2F6sGn5g" annotatedElement="__pbPMbG4EeCDe8CO90iVKQ">
+        <ownedComment xmi:id="_VbdRLxE9EeGOffqMW1YiZA" annotatedElement="__pbPMbG4EeCDe8CO90iVKQ">
           <body>Specifies the action in one or more languages.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1XwgNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1XwgdwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Vbd4MBE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Vbd4MRE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1YXgNwbEeCT5O2F6sGn5g" name="inputValue" visibility="public" type="_g0aHKdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzBnMNwbEeCT5O2F6sGn5g" association="_gygps9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1YXgdwbEeCT5O2F6sGn5g" annotatedElement="_g1YXgNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VbefQBE9EeGOffqMW1YiZA" name="inputValue" visibility="public" type="_VZp6WRE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4IABE9EeGOffqMW1YiZA" association="_VTqACBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VbefQRE9EeGOffqMW1YiZA" annotatedElement="_VbefQBE9EeGOffqMW1YiZA">
           <body>Provides input to the action.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1YXgtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1YXg9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VbefQhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VbefQxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
       <ownedAttribute xmi:id="__pbPNLG4EeCDe8CO90iVKQ" name="language" visibility="public" isOrdered="true">
-        <ownedComment xmi:id="_g1YXhNwbEeCT5O2F6sGn5g" annotatedElement="__pbPNLG4EeCDe8CO90iVKQ">
+        <ownedComment xmi:id="_VbefRBE9EeGOffqMW1YiZA" annotatedElement="__pbPNLG4EeCDe8CO90iVKQ">
           <body>Languages the body strings use, in the same order as the body strings</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1YXhdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1YXhtwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VbefRRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VbefRhE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1YXh9wbEeCT5O2F6sGn5g" name="outputValue" visibility="public" type="_g1fsRdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzCOK9wbEeCT5O2F6sGn5g" association="_gyn-cNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1YXiNwbEeCT5O2F6sGn5g" annotatedElement="_g1YXh9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VbfGUBE9EeGOffqMW1YiZA" name="outputValue" visibility="public" type="_VcHYcBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4vEBE9EeGOffqMW1YiZA" association="_VT-JEBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VbfGURE9EeGOffqMW1YiZA" annotatedElement="_VbfGUBE9EeGOffqMW1YiZA">
           <body>Takes output from the action.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1YXidwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1YXitwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VbfGUhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VbfGUxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_k9tagLG4EeCDe8CO90iVKQ" name="OpaqueBehavior">
-      <ownedComment xmi:id="_g1Y-kNwbEeCT5O2F6sGn5g" annotatedElement="_k9tagLG4EeCDe8CO90iVKQ">
+      <ownedComment xmi:id="_VbftYBE9EeGOffqMW1YiZA" annotatedElement="_k9tagLG4EeCDe8CO90iVKQ">
         <body>An behavior with implementation-specific semantics.</body>
       </ownedComment>
-      <generalization xmi:id="_g1Y-kdwbEeCT5O2F6sGn5g" general="_TUPtYGveEdq4DLWZOhbdEA"/>
+      <generalization xmi:id="_VbftYRE9EeGOffqMW1YiZA" general="_TUPtYGveEdq4DLWZOhbdEA"/>
       <ownedAttribute xmi:id="_k9tagbG4EeCDe8CO90iVKQ" name="body" visibility="public" isOrdered="true" isUnique="false">
-        <ownedComment xmi:id="_g1Y-ktwbEeCT5O2F6sGn5g" annotatedElement="_k9tagbG4EeCDe8CO90iVKQ">
+        <ownedComment xmi:id="_VbftYhE9EeGOffqMW1YiZA" annotatedElement="_k9tagbG4EeCDe8CO90iVKQ">
           <body>Specifies the behavior in one or more languages.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1Y-k9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1Y-lNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VbftYxE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VbgUcBE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
       <ownedAttribute xmi:id="_k9tahLG4EeCDe8CO90iVKQ" name="language" visibility="public" isOrdered="true">
-        <ownedComment xmi:id="_g1Y-ldwbEeCT5O2F6sGn5g" annotatedElement="_k9tahLG4EeCDe8CO90iVKQ">
+        <ownedComment xmi:id="_VbhikBE9EeGOffqMW1YiZA" annotatedElement="_k9tahLG4EeCDe8CO90iVKQ">
           <body>Languages the body strings use in the same order as the body strings.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1Y-ltwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1Y-l9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VbiJoBE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VbiJoRE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_ChRfcGveEdq4DLWZOhbdEA" name="OpaqueExpression">
-      <ownedComment xmi:id="_g1ZloNwbEeCT5O2F6sGn5g" annotatedElement="_ChRfcGveEdq4DLWZOhbdEA">
+      <ownedComment xmi:id="_Vbl0ABE9EeGOffqMW1YiZA" annotatedElement="_ChRfcGveEdq4DLWZOhbdEA">
         <body>An opaque expression is an uninterpreted textual statement that denotes a (possibly empty) set of values when evaluated in a context.</body>
       </ownedComment>
-      <ownedComment xmi:id="_g1ZlodwbEeCT5O2F6sGn5g" annotatedElement="_ChRfcGveEdq4DLWZOhbdEA">
+      <ownedComment xmi:id="_Vbl0ARE9EeGOffqMW1YiZA" annotatedElement="_ChRfcGveEdq4DLWZOhbdEA">
         <body>Provides a mechanism for precisely defining the behavior of an opaque expression. An opaque expression is defined by a behavior restricted to return one result.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g1ZlotwbEeCT5O2F6sGn5g" name="language_body_size" constrainedElement="_ChRfcGveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_g1Zlo9wbEeCT5O2F6sGn5g" annotatedElement="_g1ZlotwbEeCT5O2F6sGn5g">
-          <body>If the language attribute is not empty, then the size of the body and language arrays must be the same.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1ZlpNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>language->notEmpty() implies (body->size() = language->size())</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g1ZlpdwbEeCT5O2F6sGn5g" name="one_return_result_parameter" constrainedElement="_ChRfcGveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_g1ZlptwbEeCT5O2F6sGn5g" annotatedElement="_g1ZlpdwbEeCT5O2F6sGn5g">
-          <body>The behavior must have exactly one return result parameter.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1Zlp9wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>self.behavior.notEmpty() implies
-  self.behavior.ownedParameter->select(p | p.direction=#return)->size() = 1</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g1ZlqNwbEeCT5O2F6sGn5g" name="only_return_result_parameters" constrainedElement="_ChRfcGveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_g1ZlqdwbEeCT5O2F6sGn5g" annotatedElement="_g1ZlqNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VbmbEBE9EeGOffqMW1YiZA" name="only_return_result_parameters" constrainedElement="_ChRfcGveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VbmbERE9EeGOffqMW1YiZA" annotatedElement="_VbmbEBE9EeGOffqMW1YiZA">
           <body>The behavior may only have return result parameters.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1ZlqtwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VbmbEhE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.behavior.notEmpty() implies
   self.behavior.ownedParameters->select(p | p.direction&lt;>#return)->isEmpty()</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g1Zlq9wbEeCT5O2F6sGn5g" general="_g2YdENwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g1aMsNwbEeCT5O2F6sGn5g" name="behavior" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" association="_gyTOWNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1aMsdwbEeCT5O2F6sGn5g" annotatedElement="_g1aMsNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VbmbExE9EeGOffqMW1YiZA" name="one_return_result_parameter" constrainedElement="_ChRfcGveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VbmbFBE9EeGOffqMW1YiZA" annotatedElement="_VbmbExE9EeGOffqMW1YiZA">
+          <body>The behavior must have exactly one return result parameter.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VbmbFRE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>self.behavior.notEmpty() implies
+  self.behavior.ownedParameter->select(p | p.direction=#return)->size() = 1</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VbmbFhE9EeGOffqMW1YiZA" name="language_body_size" constrainedElement="_ChRfcGveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VbmbFxE9EeGOffqMW1YiZA" annotatedElement="_VbmbFhE9EeGOffqMW1YiZA">
+          <body>If the language attribute is not empty, then the size of the body and language arrays must be the same.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VbmbGBE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>language->notEmpty() implies (body->size() = language->size())</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VbmbGRE9EeGOffqMW1YiZA" general="_VfGbABE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VbmbGhE9EeGOffqMW1YiZA" name="behavior" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" association="_VS_4sBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VbmbGxE9EeGOffqMW1YiZA" annotatedElement="_VbmbGhE9EeGOffqMW1YiZA">
           <body>Specifies the behavior of the opaque expression.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1aMstwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VbmbHBE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
       <ownedAttribute xmi:id="_w__dcLG0EeCDe8CO90iVKQ" name="body" visibility="public" isOrdered="true" isUnique="false">
-        <ownedComment xmi:id="_g1aMs9wbEeCT5O2F6sGn5g" annotatedElement="_w__dcLG0EeCDe8CO90iVKQ">
+        <ownedComment xmi:id="_VbmbHRE9EeGOffqMW1YiZA" annotatedElement="_w__dcLG0EeCDe8CO90iVKQ">
           <body>The text of the expression, possibly in multiple languages.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1aMtNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1aMtdwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VbmbHhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VbmbHxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
       <ownedAttribute xmi:id="_D0kWwLG1EeCDe8CO90iVKQ" name="language" visibility="public" isOrdered="true">
-        <ownedComment xmi:id="_g1aMttwbEeCT5O2F6sGn5g" annotatedElement="_D0kWwLG1EeCDe8CO90iVKQ">
+        <ownedComment xmi:id="_VbnpMBE9EeGOffqMW1YiZA" annotatedElement="_D0kWwLG1EeCDe8CO90iVKQ">
           <body>Specifies the languages in which the expression is stated. The interpretation of the expression body depends on the languages. If the languages are unspecified, they might be implicit from the expression body or the context. Languages are matched to body strings by order.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1aMt9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1aMuNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VbnpMRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VbnpMhE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1azwNwbEeCT5O2F6sGn5g" name="result" visibility="public" type="_KyaPMGveEdq4DLWZOhbdEA" isReadOnly="true" isDerived="true" association="_gy0yzNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1azwdwbEeCT5O2F6sGn5g" annotatedElement="_g1azwNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VboQQBE9EeGOffqMW1YiZA" name="result" visibility="public" type="_KyaPMGveEdq4DLWZOhbdEA" isReadOnly="true" isDerived="true" association="_VUd4UBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VboQQRE9EeGOffqMW1YiZA" annotatedElement="_VboQQBE9EeGOffqMW1YiZA">
           <body>Restricts an opaque expression to return exactly one return result. When the invocation of the opaque expression completes, a single set of values is returned to its owner. This association is derived from the single return result parameter of the associated behavior.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1azwtwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VboQQhE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
       <ownedOperation xmi:id="_qQchgGWKEdq-f4093SZhVA" name="stringValue" visibility="protected" isQuery="true">
         <ownedParameter xmi:id="_sRo9MGWKEdq-f4093SZhVA" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1azw9wbEeCT5O2F6sGn5g" name="isIntegral" visibility="public" bodyCondition="_g1azxdwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1azxNwbEeCT5O2F6sGn5g" annotatedElement="_g1azw9wbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VboQQxE9EeGOffqMW1YiZA" name="isIntegral" visibility="public" bodyCondition="_VboQRRE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VboQRBE9EeGOffqMW1YiZA" annotatedElement="_VboQQxE9EeGOffqMW1YiZA">
           <body>The query isIntegral() tells whether an expression is intended to produce an integer.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1azxdwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1azw9wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1azxtwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VboQRRE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VboQQxE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VboQRhE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = false</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1azx9wbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VboQRxE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1azyNwbEeCT5O2F6sGn5g" name="isNonNegative" visibility="public" bodyCondition="_g1azzNwbEeCT5O2F6sGn5g" isQuery="true" precondition="_g1azytwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1azydwbEeCT5O2F6sGn5g" annotatedElement="_g1azyNwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_Vbo3UBE9EeGOffqMW1YiZA" name="isNonNegative" visibility="public" bodyCondition="_Vbo3UhE9EeGOffqMW1YiZA" isQuery="true" precondition="_Vbo3VBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vbo3URE9EeGOffqMW1YiZA" annotatedElement="_Vbo3UBE9EeGOffqMW1YiZA">
           <body>The query isNonNegative() tells whether an integer expression has a non-negative value.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1azytwbEeCT5O2F6sGn5g" name="pre" constrainedElement="_g1azyNwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1azy9wbEeCT5O2F6sGn5g">
-            <language>OCL</language>
-            <body>self.isIntegral()</body>
-          </specification>
-        </ownedRule>
-        <ownedRule xmi:id="_g1azzNwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1azyNwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1azzdwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_Vbo3UhE9EeGOffqMW1YiZA" name="spec" constrainedElement="_Vbo3UBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vbo3UxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = false</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1azztwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedRule xmi:id="_Vbo3VBE9EeGOffqMW1YiZA" name="pre" constrainedElement="_Vbo3UBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vbo3VRE9EeGOffqMW1YiZA">
+            <language>OCL</language>
+            <body>self.isIntegral()</body>
+          </specification>
+        </ownedRule>
+        <ownedParameter xmi:id="_Vbo3VhE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1azz9wbEeCT5O2F6sGn5g" name="isPositive" visibility="public" bodyCondition="_g1az0dwbEeCT5O2F6sGn5g" isQuery="true" precondition="_g1az09wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1az0NwbEeCT5O2F6sGn5g" annotatedElement="_g1azz9wbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_Vbo3VxE9EeGOffqMW1YiZA" name="isPositive" visibility="public" bodyCondition="_Vbo3WRE9EeGOffqMW1YiZA" isQuery="true" precondition="_Vbo3WxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vbo3WBE9EeGOffqMW1YiZA" annotatedElement="_Vbo3VxE9EeGOffqMW1YiZA">
           <body>The query isPositive() tells whether an integer expression has a positive value.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1az0dwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1azz9wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1az0twbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_Vbo3WRE9EeGOffqMW1YiZA" name="spec" constrainedElement="_Vbo3VxE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vbo3WhE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = false</body>
           </specification>
         </ownedRule>
-        <ownedRule xmi:id="_g1az09wbEeCT5O2F6sGn5g" name="pre" constrainedElement="_g1azz9wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1az1NwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_Vbo3WxE9EeGOffqMW1YiZA" name="pre" constrainedElement="_Vbo3VxE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vbo3XBE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>self.isIntegral()</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1az1dwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_Vbo3XRE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_mv9LcFYiEdqB6vblk3tuMA" name="result" visibility="public" bodyCondition="_g1ba0dwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1ba0NwbEeCT5O2F6sGn5g" annotatedElement="_mv9LcFYiEdqB6vblk3tuMA">
+      <ownedOperation xmi:id="_mv9LcFYiEdqB6vblk3tuMA" name="result" visibility="public" bodyCondition="_Vb1roBE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_Vbo3XhE9EeGOffqMW1YiZA" annotatedElement="_mv9LcFYiEdqB6vblk3tuMA">
           <body>Missing derivation for OpaqueExpression::/result : Parameter</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1ba0dwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_mv9LcFYiEdqB6vblk3tuMA _g1azwNwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1ba0twbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_Vb1roBE9EeGOffqMW1YiZA" name="spec" constrainedElement="_mv9LcFYiEdqB6vblk3tuMA _VboQQBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vb1roRE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>true</body>
           </specification>
         </ownedRule>
         <ownedParameter xmi:id="_vXTbwFYiEdqB6vblk3tuMA" name="result" visibility="public" type="_KyaPMGveEdq4DLWZOhbdEA" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1ba09wbEeCT5O2F6sGn5g"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Vb1rohE9EeGOffqMW1YiZA"/>
           <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0JhNkVYiEdqB6vblk3tuMA" value="1"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1ba1NwbEeCT5O2F6sGn5g" name="value" visibility="public" bodyCondition="_g1ba2NwbEeCT5O2F6sGn5g" isQuery="true" precondition="_g1ba1twbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1ba1dwbEeCT5O2F6sGn5g" annotatedElement="_g1ba1NwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_Vb9ncBE9EeGOffqMW1YiZA" name="value" visibility="public" bodyCondition="_Vb9ndBE9EeGOffqMW1YiZA" isQuery="true" precondition="_Vb9nchE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vb9ncRE9EeGOffqMW1YiZA" annotatedElement="_Vb9ncBE9EeGOffqMW1YiZA">
           <body>The query value() gives an integer value for an expression intended to produce one.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1ba1twbEeCT5O2F6sGn5g" name="pre" constrainedElement="_g1ba1NwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1ba19wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_Vb9nchE9EeGOffqMW1YiZA" name="pre" constrainedElement="_Vb9ncBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vb9ncxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>self.isIntegral()</body>
           </specification>
         </ownedRule>
-        <ownedRule xmi:id="_g1ba2NwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1ba1NwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1ba2dwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_Vb9ndBE9EeGOffqMW1YiZA" name="spec" constrainedElement="_Vb9ncBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vb9ndRE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>true</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1ba2twbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_Vb9ndhE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_M4X2IGveEdq4DLWZOhbdEA" name="Operation">
-      <ownedComment xmi:id="_g1cB4NwbEeCT5O2F6sGn5g" annotatedElement="_M4X2IGveEdq4DLWZOhbdEA">
-        <body>Operation specializes TemplateableElement in order to support specification of template operations and bound operations. Operation specializes ParameterableElement to specify that an operation can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template.</body>
-      </ownedComment>
-      <ownedComment xmi:id="_g1cB4dwbEeCT5O2F6sGn5g" annotatedElement="_M4X2IGveEdq4DLWZOhbdEA">
-        <body>An operation may invoke both the execution of method behaviors as well as other behavioral responses.</body>
-      </ownedComment>
-      <ownedComment xmi:id="_g1cB4twbEeCT5O2F6sGn5g" annotatedElement="_M4X2IGveEdq4DLWZOhbdEA">
+      <ownedComment xmi:id="_Vb-OgBE9EeGOffqMW1YiZA" annotatedElement="_M4X2IGveEdq4DLWZOhbdEA">
         <body>An operation is a behavioral feature of a classifier that specifies the name, type, parameters, and constraints for invoking an associated behavior.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g1cB49wbEeCT5O2F6sGn5g" name="at_most_one_return" constrainedElement="_M4X2IGveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_g1cB5NwbEeCT5O2F6sGn5g" annotatedElement="_g1cB49wbEeCT5O2F6sGn5g">
+      <ownedComment xmi:id="_Vb-OgRE9EeGOffqMW1YiZA" annotatedElement="_M4X2IGveEdq4DLWZOhbdEA">
+        <body>An operation may invoke both the execution of method behaviors as well as other behavioral responses.</body>
+      </ownedComment>
+      <ownedComment xmi:id="_Vb-OghE9EeGOffqMW1YiZA" annotatedElement="_M4X2IGveEdq4DLWZOhbdEA">
+        <body>Operation specializes TemplateableElement in order to support specification of template operations and bound operations. Operation specializes ParameterableElement to specify that an operation can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template.</body>
+      </ownedComment>
+      <ownedRule xmi:id="_Vb-1kBE9EeGOffqMW1YiZA" name="at_most_one_return" constrainedElement="_M4X2IGveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_Vb-1kRE9EeGOffqMW1YiZA" annotatedElement="_Vb-1kBE9EeGOffqMW1YiZA">
           <body>An operation can have at most one return parameter; i.e., an owned parameter with the direction set to 'return'</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1cB5dwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vb-1khE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.ownedParameter->select(par | par.direction = #return)->size() &lt;= 1</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g1cB5twbEeCT5O2F6sGn5g" name="only_body_for_query" constrainedElement="_M4X2IGveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_g1cB59wbEeCT5O2F6sGn5g" annotatedElement="_g1cB5twbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_Vb-1kxE9EeGOffqMW1YiZA" name="only_body_for_query" constrainedElement="_M4X2IGveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_Vb-1lBE9EeGOffqMW1YiZA" annotatedElement="_Vb-1kxE9EeGOffqMW1YiZA">
           <body>A bodyCondition can only be specified for a query operation.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1cB6NwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vb-1lRE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>bodyCondition->notEmpty() implies isQuery</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g1cB6dwbEeCT5O2F6sGn5g" general="_g2PTINwbEeCT5O2F6sGn5g"/>
-      <generalization xmi:id="_g1cB6twbEeCT5O2F6sGn5g" general="_g1noENwbEeCT5O2F6sGn5g"/>
-      <generalization xmi:id="_g1cB69wbEeCT5O2F6sGn5g" general="_rHT3YKOsEdqi_5gqUMOQtA"/>
-      <ownedAttribute xmi:id="_g1co8NwbEeCT5O2F6sGn5g" name="bodyCondition" visibility="public" type="_g0AegNwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g1TfANwbEeCT5O2F6sGn5g" association="_gyTOXNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1co8dwbEeCT5O2F6sGn5g" annotatedElement="_g1co8NwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_Vb-1lhE9EeGOffqMW1YiZA" general="_VeuAgBE9EeGOffqMW1YiZA"/>
+      <generalization xmi:id="_Vb-1lxE9EeGOffqMW1YiZA" general="_rHT3YKOsEdqi_5gqUMOQtA"/>
+      <generalization xmi:id="_Vb-1mBE9EeGOffqMW1YiZA" general="_Vc730BE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_Vb-1mRE9EeGOffqMW1YiZA" name="bodyCondition" visibility="public" type="_VYbLQBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_Var1FBE9EeGOffqMW1YiZA" association="_VS_4tBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vb-1mhE9EeGOffqMW1YiZA" annotatedElement="_Vb-1mRE9EeGOffqMW1YiZA">
           <body>An optional Constraint on the result values of an invocation of this Operation.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1co8twbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Vb-1mxE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1co89wbEeCT5O2F6sGn5g" name="class" visibility="public" type="_00owUGvdEdq4DLWZOhbdEA" subsettedProperty="_YUdlwLbAEeCRxrN1JUGuxA _1vzv0LbIEeCRxrN1JUGuxA _zYrE4La-EeCRxrN1JUGuxA" association="_gypzoNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1co9NwbEeCT5O2F6sGn5g" annotatedElement="_g1co89wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_Vb-1nBE9EeGOffqMW1YiZA" name="class" visibility="public" type="_00owUGvdEdq4DLWZOhbdEA" subsettedProperty="_YUdlwLbAEeCRxrN1JUGuxA _zYrE4La-EeCRxrN1JUGuxA _1vzv0LbIEeCRxrN1JUGuxA" association="_VUBzcBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vb-1nRE9EeGOffqMW1YiZA" annotatedElement="_Vb-1nBE9EeGOffqMW1YiZA">
           <body>The class that owns the operation.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1co9dwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Vb-1nhE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1co9twbEeCT5O2F6sGn5g" name="datatype" visibility="public" type="__1ap4HLzEdqziYxiZo0YtA" subsettedProperty="_YUdlwLbAEeCRxrN1JUGuxA _1vzv0LbIEeCRxrN1JUGuxA _zYrE4La-EeCRxrN1JUGuxA" association="_gypzodwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1co99wbEeCT5O2F6sGn5g" annotatedElement="_g1co9twbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_Vb_coBE9EeGOffqMW1YiZA" name="datatype" visibility="public" type="__1ap4HLzEdqziYxiZo0YtA" subsettedProperty="_YUdlwLbAEeCRxrN1JUGuxA _zYrE4La-EeCRxrN1JUGuxA _1vzv0LbIEeCRxrN1JUGuxA" association="_VUBzcRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vb_coRE9EeGOffqMW1YiZA" annotatedElement="_Vb_coBE9EeGOffqMW1YiZA">
           <body>The DataType that owns this Operation.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1co-NwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Vb_cohE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1co-dwbEeCT5O2F6sGn5g" name="interface" visibility="public" type="_8Ugn8GvtEdqG6fBIPwe-mw" subsettedProperty="_YUdlwLbAEeCRxrN1JUGuxA _1vzv0LbIEeCRxrN1JUGuxA _zYrE4La-EeCRxrN1JUGuxA" association="_gypzotwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1co-twbEeCT5O2F6sGn5g" annotatedElement="_g1co-dwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_Vb_coxE9EeGOffqMW1YiZA" name="interface" visibility="public" type="_8Ugn8GvtEdqG6fBIPwe-mw" subsettedProperty="_YUdlwLbAEeCRxrN1JUGuxA _zYrE4La-EeCRxrN1JUGuxA _1vzv0LbIEeCRxrN1JUGuxA" association="_VUBzchE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vb_cpBE9EeGOffqMW1YiZA" annotatedElement="_Vb_coxE9EeGOffqMW1YiZA">
           <body>The Interface that owns this Operation.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1co-9wbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Vb_cpRE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1co_NwbEeCT5O2F6sGn5g" name="isOrdered" visibility="public" isReadOnly="true" isDerived="true">
-        <ownedComment xmi:id="_g1co_dwbEeCT5O2F6sGn5g" annotatedElement="_g1co_NwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_Vb_cphE9EeGOffqMW1YiZA" name="isOrdered" visibility="public" isReadOnly="true" isDerived="true">
+        <ownedComment xmi:id="_Vb_cpxE9EeGOffqMW1YiZA" annotatedElement="_Vb_cphE9EeGOffqMW1YiZA">
           <body>This information is derived from the return result for this Operation.</body>
         </ownedComment>
-        <ownedComment xmi:id="_g1co_twbEeCT5O2F6sGn5g" annotatedElement="_g1co_NwbEeCT5O2F6sGn5g">
+        <ownedComment xmi:id="_Vb_cqBE9EeGOffqMW1YiZA" annotatedElement="_Vb_cphE9EeGOffqMW1YiZA">
           <body>Specifies whether the return parameter is ordered or not, if present.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g1co_9wbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_Vb_cqRE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1cpANwbEeCT5O2F6sGn5g" name="isQuery" visibility="public">
-        <ownedComment xmi:id="_g1cpAdwbEeCT5O2F6sGn5g" annotatedElement="_g1cpANwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_Vb_cqhE9EeGOffqMW1YiZA" name="isQuery" visibility="public">
+        <ownedComment xmi:id="_Vb_cqxE9EeGOffqMW1YiZA" annotatedElement="_Vb_cqhE9EeGOffqMW1YiZA">
           <body>Specifies whether an execution of the BehavioralFeature leaves the state of the system unchanged (isQuery=true) or whether side effects may occur (isQuery=false).</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g1cpAtwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_Vb_crBE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1cpA9wbEeCT5O2F6sGn5g" name="isUnique" visibility="public" isReadOnly="true" isDerived="true">
-        <ownedComment xmi:id="_g1cpBNwbEeCT5O2F6sGn5g" annotatedElement="_g1cpA9wbEeCT5O2F6sGn5g">
-          <body>This information is derived from the return result for this Operation.</body>
-        </ownedComment>
-        <ownedComment xmi:id="_g1cpBdwbEeCT5O2F6sGn5g" annotatedElement="_g1cpA9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VcADsBE9EeGOffqMW1YiZA" name="isUnique" visibility="public" isReadOnly="true" isDerived="true">
+        <ownedComment xmi:id="_VcADsRE9EeGOffqMW1YiZA" annotatedElement="_VcADsBE9EeGOffqMW1YiZA">
           <body>Specifies whether the return parameter is unique or not, if present.</body>
         </ownedComment>
+        <ownedComment xmi:id="_VcADshE9EeGOffqMW1YiZA" annotatedElement="_VcADsBE9EeGOffqMW1YiZA">
+          <body>This information is derived from the return result for this Operation.</body>
+        </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g1cpBtwbEeCT5O2F6sGn5g" value="true"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VcADsxE9EeGOffqMW1YiZA" value="true"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1cpB9wbEeCT5O2F6sGn5g" name="lower" visibility="public" isReadOnly="true" isDerived="true">
-        <ownedComment xmi:id="_g1cpCNwbEeCT5O2F6sGn5g" annotatedElement="_g1cpB9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VcADtBE9EeGOffqMW1YiZA" name="lower" visibility="public" isReadOnly="true" isDerived="true">
+        <ownedComment xmi:id="_VcADtRE9EeGOffqMW1YiZA" annotatedElement="_VcADtBE9EeGOffqMW1YiZA">
+          <body>This information is derived from the return result for this Operation.</body>
+        </ownedComment>
+        <ownedComment xmi:id="_VcADthE9EeGOffqMW1YiZA" annotatedElement="_VcADtBE9EeGOffqMW1YiZA">
           <body>Specifies the lower multiplicity of the return parameter, if present.</body>
         </ownedComment>
-        <ownedComment xmi:id="_g1cpCdwbEeCT5O2F6sGn5g" annotatedElement="_g1cpB9wbEeCT5O2F6sGn5g">
-          <body>This information is derived from the return result for this Operation.</body>
-        </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1cpCtwbEeCT5O2F6sGn5g"/>
-        <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_g1cpC9wbEeCT5O2F6sGn5g" value="1"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VcADtxE9EeGOffqMW1YiZA"/>
+        <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_VcADuBE9EeGOffqMW1YiZA" value="1"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1dQANwbEeCT5O2F6sGn5g" name="ownedParameter" visibility="public" type="_KyaPMGveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" redefinedProperty="_gzkZoNwbEeCT5O2F6sGn5g" association="_gypzrNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1dQAdwbEeCT5O2F6sGn5g" annotatedElement="_g1dQANwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VcADuRE9EeGOffqMW1YiZA" name="ownedParameter" visibility="public" type="_KyaPMGveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" redefinedProperty="_VWJ6YBE9EeGOffqMW1YiZA" association="_VUCahhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VcADuhE9EeGOffqMW1YiZA" annotatedElement="_VcADuRE9EeGOffqMW1YiZA">
           <body>Specifies the ordered set of formal parameters of this BehavioralFeature.</body>
         </ownedComment>
-        <ownedComment xmi:id="_g1dQAtwbEeCT5O2F6sGn5g" annotatedElement="_g1dQANwbEeCT5O2F6sGn5g">
+        <ownedComment xmi:id="_VcADuxE9EeGOffqMW1YiZA" annotatedElement="_VcADuRE9EeGOffqMW1YiZA">
           <body>Specifies the parameters owned by this Operation.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1dQA9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1dQBNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VcADvBE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VcADvRE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1dQBdwbEeCT5O2F6sGn5g" name="postcondition" visibility="public" type="_g0AegNwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g1TfANwbEeCT5O2F6sGn5g" association="_gys289wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1dQBtwbEeCT5O2F6sGn5g" annotatedElement="_g1dQBdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VcADvhE9EeGOffqMW1YiZA" name="postcondition" visibility="public" type="_VYbLQBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_Var1FBE9EeGOffqMW1YiZA" association="_VUJvQxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VcADvxE9EeGOffqMW1YiZA" annotatedElement="_VcADvhE9EeGOffqMW1YiZA">
           <body>An optional set of Constraints specifying the state of the system when the Operation is completed.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1dQB9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1dQCNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VcADwBE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VcADwRE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1dQCdwbEeCT5O2F6sGn5g" name="precondition" visibility="public" type="_g0AegNwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g1TfANwbEeCT5O2F6sGn5g" association="_gys2_twbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1dQCtwbEeCT5O2F6sGn5g" annotatedElement="_g1dQCdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VcAqwBE9EeGOffqMW1YiZA" name="precondition" visibility="public" type="_VYbLQBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_Var1FBE9EeGOffqMW1YiZA" association="_VUKWVxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VcAqwRE9EeGOffqMW1YiZA" annotatedElement="_VcAqwBE9EeGOffqMW1YiZA">
           <body>An optional set of Constraints on the state of the system when the Operation is invoked.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1dQC9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1dQDNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VcAqwhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VcAqwxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1dQDdwbEeCT5O2F6sGn5g" name="raisedException" visibility="public" type="_ynRtoGvtEdqG6fBIPwe-mw" redefinedProperty="_gzkZqNwbEeCT5O2F6sGn5g" association="_gyusJ9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1dQDtwbEeCT5O2F6sGn5g" annotatedElement="_g1dQDdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VcAqxBE9EeGOffqMW1YiZA" name="raisedException" visibility="public" type="_ynRtoGvtEdqG6fBIPwe-mw" redefinedProperty="_VWJ6aBE9EeGOffqMW1YiZA" association="_VUNZoBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VcAqxRE9EeGOffqMW1YiZA" annotatedElement="_VcAqxBE9EeGOffqMW1YiZA">
           <body>References the Types representing exceptions that may be raised during an invocation of this operation.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1dQD9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1dQENwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VcAqxhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VcAqxxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1dQEdwbEeCT5O2F6sGn5g" name="redefinedOperation" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" subsettedProperty="_g15U7twbEeCT5O2F6sGn5g" association="_gywhXNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1dQEtwbEeCT5O2F6sGn5g" annotatedElement="_g1dQEdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VcBR0BE9EeGOffqMW1YiZA" name="redefinedOperation" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" subsettedProperty="_VdtT4BE9EeGOffqMW1YiZA" association="_VUSSJBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VcBR0RE9EeGOffqMW1YiZA" annotatedElement="_VcBR0BE9EeGOffqMW1YiZA">
           <body>References the Operations that are redefined by this Operation.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1dQE9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1dQFNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VcBR0hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VcBR0xE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1dQFdwbEeCT5O2F6sGn5g" name="templateParameter" visibility="public" type="_g1fsQNwbEeCT5O2F6sGn5g" redefinedProperty="_g1noFtwbEeCT5O2F6sGn5g" association="_gynXaNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1dQFtwbEeCT5O2F6sGn5g" annotatedElement="_g1dQFdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VcBR1BE9EeGOffqMW1YiZA" name="templateParameter" visibility="public" type="_VcGxYBE9EeGOffqMW1YiZA" redefinedProperty="_Vc731hE9EeGOffqMW1YiZA" association="_VT86-BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VcBR1RE9EeGOffqMW1YiZA" annotatedElement="_VcBR1BE9EeGOffqMW1YiZA">
           <body>The template parameter that exposes this element as a formal parameter.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1dQF9wbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VcBR1hE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1dQGNwbEeCT5O2F6sGn5g" name="type" visibility="public" type="_ynRtoGvtEdqG6fBIPwe-mw" isReadOnly="true" isDerived="true" association="_gy98vNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1dQGdwbEeCT5O2F6sGn5g" annotatedElement="_g1dQGNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VcBR1xE9EeGOffqMW1YiZA" name="type" visibility="public" type="_ynRtoGvtEdqG6fBIPwe-mw" isReadOnly="true" isDerived="true" association="_VUtI4BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VcBR2BE9EeGOffqMW1YiZA" annotatedElement="_VcBR1xE9EeGOffqMW1YiZA">
           <body>This information is derived from the return result for this Operation.</body>
         </ownedComment>
-        <ownedComment xmi:id="_g1dQGtwbEeCT5O2F6sGn5g" annotatedElement="_g1dQGNwbEeCT5O2F6sGn5g">
+        <ownedComment xmi:id="_VcBR2RE9EeGOffqMW1YiZA" annotatedElement="_VcBR1xE9EeGOffqMW1YiZA">
           <body>Specifies the return result of the operation, if present.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1dQG9wbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VcBR2hE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1d3ENwbEeCT5O2F6sGn5g" name="upper" visibility="public" isReadOnly="true" isDerived="true">
-        <ownedComment xmi:id="_g1d3EdwbEeCT5O2F6sGn5g" annotatedElement="_g1d3ENwbEeCT5O2F6sGn5g">
-          <body>Specifies the upper multiplicity of the return parameter, if present.</body>
-        </ownedComment>
-        <ownedComment xmi:id="_g1d3EtwbEeCT5O2F6sGn5g" annotatedElement="_g1d3ENwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VcBR2xE9EeGOffqMW1YiZA" name="upper" visibility="public" isReadOnly="true" isDerived="true">
+        <ownedComment xmi:id="_VcBR3BE9EeGOffqMW1YiZA" annotatedElement="_VcBR2xE9EeGOffqMW1YiZA">
           <body>This information is derived from the return result for this Operation.</body>
         </ownedComment>
+        <ownedComment xmi:id="_VcBR3RE9EeGOffqMW1YiZA" annotatedElement="_VcBR2xE9EeGOffqMW1YiZA">
+          <body>Specifies the upper multiplicity of the return parameter, if present.</body>
+        </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#UnlimitedNatural"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1d3E9wbEeCT5O2F6sGn5g"/>
-        <defaultValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1d3FNwbEeCT5O2F6sGn5g" value="1"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VcBR3hE9EeGOffqMW1YiZA"/>
+        <defaultValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VcBR3xE9EeGOffqMW1YiZA" value="1"/>
       </ownedAttribute>
       <ownedOperation xmi:id="_HxDswKOyEdqi_5gqUMOQtA" name="getReturnResult">
         <ownedComment xmi:id="_tVUrUOwfEdqYHf-imTcTdw" annotatedElement="_HxDswKOyEdqi_5gqUMOQtA">
@@ -10330,15 +10333,21 @@
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#UnlimitedNatural"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1d3FdwbEeCT5O2F6sGn5g" name="isConsistentWith" visibility="public" bodyCondition="_g1d3GNwbEeCT5O2F6sGn5g" isQuery="true" precondition="_g1d3GtwbEeCT5O2F6sGn5g" redefinedOperation="_g1578NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1d3FtwbEeCT5O2F6sGn5g" annotatedElement="_g1d3FdwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VcB44BE9EeGOffqMW1YiZA" name="isConsistentWith" visibility="public" bodyCondition="_VcB45RE9EeGOffqMW1YiZA" isQuery="true" precondition="_VcB44xE9EeGOffqMW1YiZA" redefinedOperation="_Vd1PsBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VcB44RE9EeGOffqMW1YiZA" annotatedElement="_VcB44BE9EeGOffqMW1YiZA">
           <body>A redefining operation is consistent with a redefined operation if it has the same number of owned parameters, and the type of each owned parameter conforms to the type of the corresponding redefined parameter.</body>
         </ownedComment>
-        <ownedComment xmi:id="_g1d3F9wbEeCT5O2F6sGn5g" annotatedElement="_g1d3FdwbEeCT5O2F6sGn5g">
+        <ownedComment xmi:id="_VcB44hE9EeGOffqMW1YiZA" annotatedElement="_VcB44BE9EeGOffqMW1YiZA">
           <body>The query isConsistentWith() specifies, for any two Operations in a context in which redefinition is possible, whether redefinition would be consistent in the sense of maintaining type covariance. Other senses of consistency may be required, for example to determine consistency in the sense of contravariance. Users may define alternative queries under names different from 'isConsistentWith()', as for example, users may define a query named 'isContravariantWith()'.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1d3GNwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1d3FdwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1d3GdwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VcB44xE9EeGOffqMW1YiZA" name="pre" constrainedElement="_VcB44BE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VcB45BE9EeGOffqMW1YiZA">
+            <language>OCL</language>
+            <body>redefinee.isRedefinitionContextValid(self)</body>
+          </specification>
+        </ownedRule>
+        <ownedRule xmi:id="_VcB45RE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VcB44BE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VcB45hE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = redefinee.oclIsKindOf(Operation) and
 let op : Operation = redefinee.oclAsType(Operation) in
@@ -10347,51 +10356,45 @@
 		forAll(i |op.ownedParameter->at(1).type.conformsTo(self.ownedParameter->at(i).type))</body>
           </specification>
         </ownedRule>
-        <ownedRule xmi:id="_g1d3GtwbEeCT5O2F6sGn5g" name="pre" constrainedElement="_g1d3FdwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1d3G9wbEeCT5O2F6sGn5g">
-            <language>OCL</language>
-            <body>redefinee.isRedefinitionContextValid(self)</body>
-          </specification>
-        </ownedRule>
-        <ownedParameter xmi:id="_g1d3HNwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VcB45xE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
-        <ownedParameter xmi:id="_g1d3HdwbEeCT5O2F6sGn5g" name="redefinee" visibility="public" type="_uCRA4La-EeCRxrN1JUGuxA"/>
+        <ownedParameter xmi:id="_VcB46BE9EeGOffqMW1YiZA" name="redefinee" visibility="public" type="_uCRA4La-EeCRxrN1JUGuxA"/>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1d3HtwbEeCT5O2F6sGn5g" name="isOrdered" visibility="public" bodyCondition="_g1d3INwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1d3H9wbEeCT5O2F6sGn5g" annotatedElement="_g1d3HtwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VcB46RE9EeGOffqMW1YiZA" name="isOrdered" visibility="public" bodyCondition="_VcB46xE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VcB46hE9EeGOffqMW1YiZA" annotatedElement="_VcB46RE9EeGOffqMW1YiZA">
           <body>If this operation has a return parameter, isOrdered equals the value of isOrdered for that parameter. Otherwise isOrdered is false.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1d3INwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1d3HtwbEeCT5O2F6sGn5g _g1co_NwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1d3IdwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VcB46xE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VcB46RE9EeGOffqMW1YiZA _Vb_cphE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VcB47BE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = if returnResult()->notEmpty() then returnResult()->any().isOrdered else false endif</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1d3ItwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VcB47RE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1d3I9wbEeCT5O2F6sGn5g" name="isUnique" visibility="public" bodyCondition="_g1d3JdwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1d3JNwbEeCT5O2F6sGn5g" annotatedElement="_g1d3I9wbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VcB47hE9EeGOffqMW1YiZA" name="isUnique" visibility="public" bodyCondition="_VcB48BE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VcB47xE9EeGOffqMW1YiZA" annotatedElement="_VcB47hE9EeGOffqMW1YiZA">
           <body>If this operation has a return parameter, isUnique equals the value of isUnique for that parameter. Otherwise isUnique is true.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1d3JdwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1d3I9wbEeCT5O2F6sGn5g _g1cpA9wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1d3JtwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VcB48BE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VcB47hE9EeGOffqMW1YiZA _VcADsBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VcB48RE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = if returnResult()->notEmpty() then returnResult()->any().isUnique else true endif</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1d3J9wbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VcB48hE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_ho5pgFYLEdqrn7iZ0eqieg" name="lower" visibility="public" bodyCondition="_g1eeINwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1d3KNwbEeCT5O2F6sGn5g" annotatedElement="_ho5pgFYLEdqrn7iZ0eqieg">
+      <ownedOperation xmi:id="_ho5pgFYLEdqrn7iZ0eqieg" name="lower" visibility="public" bodyCondition="_VcCf8RE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VcCf8BE9EeGOffqMW1YiZA" annotatedElement="_ho5pgFYLEdqrn7iZ0eqieg">
           <body>If this operation has a return parameter, lower equals the value of lower for that parameter. Otherwise lower is not defined.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1eeINwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_ho5pgFYLEdqrn7iZ0eqieg _g1cpB9wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1eeIdwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VcCf8RE9EeGOffqMW1YiZA" name="spec" constrainedElement="_ho5pgFYLEdqrn7iZ0eqieg _VcADtBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VcCf8hE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = if returnResult()->notEmpty() then returnResult()->any().lower else Set{} endif</body>
           </specification>
@@ -10400,39 +10403,39 @@
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1eeItwbEeCT5O2F6sGn5g" name="returnResult" visibility="public" bodyCondition="_g1eeJNwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1eeI9wbEeCT5O2F6sGn5g" annotatedElement="_g1eeItwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VcDHABE9EeGOffqMW1YiZA" name="returnResult" visibility="public" bodyCondition="_VcDHAhE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VcDHARE9EeGOffqMW1YiZA" annotatedElement="_VcDHABE9EeGOffqMW1YiZA">
           <body>The query returnResult() returns the set containing the return parameter of the Operation if one exists, otherwise, it returns an empty set</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1eeJNwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1eeItwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1eeJdwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VcDHAhE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VcDHABE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VcDHAxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = ownedParameter->select (par | par.direction = #return)</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1eeJtwbEeCT5O2F6sGn5g" name="result" visibility="public" type="_KyaPMGveEdq4DLWZOhbdEA" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1eeJ9wbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1eeKNwbEeCT5O2F6sGn5g" value="*"/>
+        <ownedParameter xmi:id="_VcDHBBE9EeGOffqMW1YiZA" name="result" visibility="public" type="_KyaPMGveEdq4DLWZOhbdEA" direction="return">
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VcDHBRE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VcDHBhE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_CytvwLKHEeCwDd6B2NQzWA" name="type" visibility="public" bodyCondition="_g1eeKtwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1eeKdwbEeCT5O2F6sGn5g" annotatedElement="_CytvwLKHEeCwDd6B2NQzWA">
+      <ownedOperation xmi:id="_CytvwLKHEeCwDd6B2NQzWA" name="type" visibility="public" bodyCondition="_VcDHCBE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VcDHBxE9EeGOffqMW1YiZA" annotatedElement="_CytvwLKHEeCwDd6B2NQzWA">
           <body>If this operation has a return parameter, type equals the value of type for that parameter. Otherwise type is not defined.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1eeKtwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_CytvwLKHEeCwDd6B2NQzWA _g1dQGNwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1eeK9wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VcDHCBE9EeGOffqMW1YiZA" name="spec" constrainedElement="_CytvwLKHEeCwDd6B2NQzWA _VcBR1xE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VcDHCRE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = if returnResult()->notEmpty() then returnResult()->any().type else Set{} endif</body>
           </specification>
         </ownedRule>
         <ownedParameter xmi:id="_QkL7kLKHEeCwDd6B2NQzWA" name="result" visibility="public" type="_ynRtoGvtEdqG6fBIPwe-mw" direction="return"/>
       </ownedOperation>
-      <ownedOperation xmi:id="_ljsEEFYLEdqrn7iZ0eqieg" name="upper" visibility="public" bodyCondition="_g1fFMdwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1fFMNwbEeCT5O2F6sGn5g" annotatedElement="_ljsEEFYLEdqrn7iZ0eqieg">
+      <ownedOperation xmi:id="_ljsEEFYLEdqrn7iZ0eqieg" name="upper" visibility="public" bodyCondition="_VcE8MRE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VcE8MBE9EeGOffqMW1YiZA" annotatedElement="_ljsEEFYLEdqrn7iZ0eqieg">
           <body>If this operation has a return parameter, upper equals the value of upper for that parameter. Otherwise upper is not defined.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1fFMdwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_ljsEEFYLEdqrn7iZ0eqieg _g1d3ENwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1fFMtwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VcE8MRE9EeGOffqMW1YiZA" name="spec" constrainedElement="_ljsEEFYLEdqrn7iZ0eqieg _VcBR2xE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VcE8MhE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = if returnResult()->notEmpty() then returnResult()->any().upper else Set{} endif</body>
           </specification>
@@ -10442,108 +10445,108 @@
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g1fsQNwbEeCT5O2F6sGn5g" name="OperationTemplateParameter">
-      <ownedComment xmi:id="_g1fsQdwbEeCT5O2F6sGn5g" annotatedElement="_g1fsQNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VcGxYBE9EeGOffqMW1YiZA" name="OperationTemplateParameter">
+      <ownedComment xmi:id="_VcGxYRE9EeGOffqMW1YiZA" annotatedElement="_VcGxYBE9EeGOffqMW1YiZA">
         <body>An operation template parameter exposes an operation as a formal parameter for a template.</body>
       </ownedComment>
-      <generalization xmi:id="_g1fsQtwbEeCT5O2F6sGn5g" general="_KxRzgGvuEdqG6fBIPwe-mw"/>
-      <ownedAttribute xmi:id="_g1fsQ9wbEeCT5O2F6sGn5g" name="parameteredElement" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" redefinedProperty="_g2M25twbEeCT5O2F6sGn5g" association="_gynXaNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1fsRNwbEeCT5O2F6sGn5g" annotatedElement="_g1fsQ9wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VcGxYhE9EeGOffqMW1YiZA" general="_KxRzgGvuEdqG6fBIPwe-mw"/>
+      <ownedAttribute xmi:id="_VcGxYxE9EeGOffqMW1YiZA" name="parameteredElement" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" redefinedProperty="_Veq9MxE9EeGOffqMW1YiZA" association="_VT86-BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VcGxZBE9EeGOffqMW1YiZA" annotatedElement="_VcGxYxE9EeGOffqMW1YiZA">
           <body>The operation for this template parameter.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g1fsRdwbEeCT5O2F6sGn5g" name="OutputPin">
-      <ownedComment xmi:id="_g1fsRtwbEeCT5O2F6sGn5g" annotatedElement="_g1fsRdwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VcHYcBE9EeGOffqMW1YiZA" name="OutputPin">
+      <ownedComment xmi:id="_VcHYcRE9EeGOffqMW1YiZA" annotatedElement="_VcHYcBE9EeGOffqMW1YiZA">
         <body>An output pin is a pin that holds output values produced by an action.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g1fsR9wbEeCT5O2F6sGn5g" name="incoming_edges_structured_only" constrainedElement="_g1fsRdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1fsSNwbEeCT5O2F6sGn5g" annotatedElement="_g1fsR9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VcHYchE9EeGOffqMW1YiZA" name="incoming_edges_structured_only" constrainedElement="_VcHYcBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VcHYcxE9EeGOffqMW1YiZA" annotatedElement="_VcHYchE9EeGOffqMW1YiZA">
           <body>Output pins may have incoming edges only when they are on actions that are structured nodes, and these edges may not target a node contained by the structured node.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1fsSdwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VcHYdBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g1fsStwbEeCT5O2F6sGn5g" general="_g1oPLNwbEeCT5O2F6sGn5g"/>
+      <generalization xmi:id="_VcHYdRE9EeGOffqMW1YiZA" general="_Vc9F8BE9EeGOffqMW1YiZA"/>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_-cvRAGvzEdq7X4sGURiZYA" name="Package">
-      <ownedComment xmi:id="_g1fsS9wbEeCT5O2F6sGn5g" annotatedElement="_-cvRAGvzEdq7X4sGURiZYA">
+      <ownedComment xmi:id="_VcHYdhE9EeGOffqMW1YiZA" annotatedElement="_-cvRAGvzEdq7X4sGURiZYA">
         <body>A package can have one or more profile applications to indicate which profiles have been applied. Because a profile is a package, it is possible to apply a profile not only to packages, but also to profiles.</body>
       </ownedComment>
-      <ownedComment xmi:id="_g1fsTNwbEeCT5O2F6sGn5g" annotatedElement="_-cvRAGvzEdq7X4sGURiZYA">
+      <ownedComment xmi:id="_VcHYdxE9EeGOffqMW1YiZA" annotatedElement="_-cvRAGvzEdq7X4sGURiZYA">
         <body>Package specializes TemplateableElement and PackageableElement specializes ParameterableElement to specify that a package can be used as a template and a PackageableElement as a template parameter.</body>
       </ownedComment>
-      <ownedComment xmi:id="_g1fsTdwbEeCT5O2F6sGn5g" annotatedElement="_-cvRAGvzEdq7X4sGURiZYA">
+      <ownedComment xmi:id="_VcHYeBE9EeGOffqMW1YiZA" annotatedElement="_-cvRAGvzEdq7X4sGURiZYA">
         <body>A package is used to group elements, and provides a namespace for the grouped elements.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g1fsTtwbEeCT5O2F6sGn5g" name="elements_public_or_private" constrainedElement="_-cvRAGvzEdq7X4sGURiZYA">
-        <ownedComment xmi:id="_g1fsT9wbEeCT5O2F6sGn5g" annotatedElement="_g1fsTtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VcHYeRE9EeGOffqMW1YiZA" name="elements_public_or_private" constrainedElement="_-cvRAGvzEdq7X4sGURiZYA">
+        <ownedComment xmi:id="_VcHYehE9EeGOffqMW1YiZA" annotatedElement="_VcHYeRE9EeGOffqMW1YiZA">
           <body>If an element that is owned by a package has visibility, it is public or private.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1fsUNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VcHYexE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.ownedElements->forAll(e | e.visibility->notEmpty() implies e.visbility = #public or e.visibility = #private)</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g1gTUNwbEeCT5O2F6sGn5g" general="_jKxnwGwLEdq7X4sGURiZYA"/>
-      <generalization xmi:id="_g1gTUdwbEeCT5O2F6sGn5g" general="_g2PTINwbEeCT5O2F6sGn5g"/>
-      <generalization xmi:id="_g1gTUtwbEeCT5O2F6sGn5g" general="_ZiwkoGwLEdq7X4sGURiZYA"/>
-      <ownedAttribute xmi:id="_g1gTU9wbEeCT5O2F6sGn5g" name="URI" visibility="public">
-        <ownedComment xmi:id="_g1gTVNwbEeCT5O2F6sGn5g" annotatedElement="_g1gTU9wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VcHYfBE9EeGOffqMW1YiZA" general="_ZiwkoGwLEdq7X4sGURiZYA"/>
+      <generalization xmi:id="_VcHYfRE9EeGOffqMW1YiZA" general="_jKxnwGwLEdq7X4sGURiZYA"/>
+      <generalization xmi:id="_VcH_gBE9EeGOffqMW1YiZA" general="_VeuAgBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VcH_gRE9EeGOffqMW1YiZA" name="URI" visibility="public">
+        <ownedComment xmi:id="_VcH_ghE9EeGOffqMW1YiZA" annotatedElement="_VcH_gRE9EeGOffqMW1YiZA">
           <body>Provides an identifier for the package that can be used for many purposes. A URI is the universally unique identification of the package following the IETF URI specification, RFC 2396 http://www.ietf.org/rfc/rfc2396.txt and it must comply with those syntax rules.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1gTVdwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VcH_gxE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1gTVtwbEeCT5O2F6sGn5g" name="nestedPackage" visibility="public" type="_-cvRAGvzEdq7X4sGURiZYA" aggregation="composite" isDerived="true" subsettedProperty="_g1g6ZNwbEeCT5O2F6sGn5g" association="_gyk7K9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1gTV9wbEeCT5O2F6sGn5g" annotatedElement="_g1gTVtwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VcKbwBE9EeGOffqMW1YiZA" name="nestedPackage" visibility="public" type="_-cvRAGvzEdq7X4sGURiZYA" aggregation="composite" isDerived="true" subsettedProperty="_VcP7VBE9EeGOffqMW1YiZA" association="_VT0_JhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VcKbwRE9EeGOffqMW1YiZA" annotatedElement="_VcKbwBE9EeGOffqMW1YiZA">
           <body>References the packaged elements that are Packages.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1gTWNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1gTWdwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VcKbwhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VcKbwxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_XSjCgLbQEeCRxrN1JUGuxA" name="nestingPackage" visibility="public" type="_-cvRAGvzEdq7X4sGURiZYA" subsettedProperty="_gyro0dwbEeCT5O2F6sGn5g _1vzv0LbIEeCRxrN1JUGuxA" association="_gyk7K9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1gTWtwbEeCT5O2F6sGn5g" annotatedElement="_XSjCgLbQEeCRxrN1JUGuxA">
+      <ownedAttribute xmi:id="_XSjCgLbQEeCRxrN1JUGuxA" name="nestingPackage" visibility="public" type="_-cvRAGvzEdq7X4sGURiZYA" subsettedProperty="_VUHTARE9EeGOffqMW1YiZA _1vzv0LbIEeCRxrN1JUGuxA" association="_VT0_JhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VcKbxBE9EeGOffqMW1YiZA" annotatedElement="_XSjCgLbQEeCRxrN1JUGuxA">
           <body>References the Package that owns this Package.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1gTW9wbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VcKbxRE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1gTXNwbEeCT5O2F6sGn5g" name="ownedStereotype" visibility="public" type="_A7vDAGv0Edq7X4sGURiZYA" isReadOnly="true" aggregation="composite" isDerived="true" subsettedProperty="_g1g6ZNwbEeCT5O2F6sGn5g" association="_gyrBwNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1gTXdwbEeCT5O2F6sGn5g" annotatedElement="_g1gTXNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VcLC0BE9EeGOffqMW1YiZA" name="ownedStereotype" visibility="public" type="_A7vDAGv0Edq7X4sGURiZYA" isReadOnly="true" aggregation="composite" isDerived="true" subsettedProperty="_VcP7VBE9EeGOffqMW1YiZA" association="_VUEPsBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VcLC0RE9EeGOffqMW1YiZA" annotatedElement="_VcLC0BE9EeGOffqMW1YiZA">
           <body>References the Stereotypes that are owned by the Package</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1gTXtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1gTX9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VcLC0hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VcLC0xE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1gTYNwbEeCT5O2F6sGn5g" name="ownedType" visibility="public" type="_ynRtoGvtEdqG6fBIPwe-mw" aggregation="composite" isDerived="true" subsettedProperty="_g1g6ZNwbEeCT5O2F6sGn5g" association="_gyrBxdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1gTYdwbEeCT5O2F6sGn5g" annotatedElement="_g1gTYNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VcLC1BE9EeGOffqMW1YiZA" name="ownedType" visibility="public" type="_ynRtoGvtEdqG6fBIPwe-mw" aggregation="composite" isDerived="true" subsettedProperty="_VcP7VBE9EeGOffqMW1YiZA" association="_VUEPtRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VcLC1RE9EeGOffqMW1YiZA" annotatedElement="_VcLC1BE9EeGOffqMW1YiZA">
           <body>References the packaged elements that are Types.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1gTYtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1gTY9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VcLC1hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VcLC1xE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1g6YNwbEeCT5O2F6sGn5g" name="packageMerge" visibility="public" type="_g1j9sNwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g _gy5rStwbEeCT5O2F6sGn5g" association="_gyrBytwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1g6YdwbEeCT5O2F6sGn5g" annotatedElement="_g1g6YNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VcP7UBE9EeGOffqMW1YiZA" name="packageMerge" visibility="public" type="_VcsAMBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VUkmBhE9EeGOffqMW1YiZA _GDD2YAtAEeGcpbeCPJfCmw" association="_VUGE4BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VcP7URE9EeGOffqMW1YiZA" annotatedElement="_VcP7UBE9EeGOffqMW1YiZA">
           <body>References the PackageMerges that are owned by this Package.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1g6YtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1g6Y9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VcP7UhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VcP7UxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1g6ZNwbEeCT5O2F6sGn5g" name="packagedElement" visibility="public" type="_jKxnwGwLEdq7X4sGURiZYA" aggregation="composite" subsettedProperty="_g1S4AdwbEeCT5O2F6sGn5g" association="_gyro0NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1g6ZdwbEeCT5O2F6sGn5g" annotatedElement="_g1g6ZNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VcP7VBE9EeGOffqMW1YiZA" name="packagedElement" visibility="public" type="_jKxnwGwLEdq7X4sGURiZYA" aggregation="composite" subsettedProperty="_Var1EBE9EeGOffqMW1YiZA" association="_VUHTABE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VcP7VRE9EeGOffqMW1YiZA" annotatedElement="_VcP7VBE9EeGOffqMW1YiZA">
           <body>Specifies the packageable elements that are owned by this Package.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1g6ZtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1g6Z9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VcP7VhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VcP7VxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1g6aNwbEeCT5O2F6sGn5g" name="profileApplication" visibility="public" type="_uY5yQGv5Edq7X4sGURiZYA" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g _gy5rStwbEeCT5O2F6sGn5g" association="_gyteAdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1g6adwbEeCT5O2F6sGn5g" annotatedElement="_g1g6aNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VcQiYBE9EeGOffqMW1YiZA" name="profileApplication" visibility="public" type="_uY5yQGv5Edq7X4sGURiZYA" aggregation="composite" subsettedProperty="_VUkmBhE9EeGOffqMW1YiZA _GDD2YAtAEeGcpbeCPJfCmw" association="_VUK9YBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VcQiYRE9EeGOffqMW1YiZA" annotatedElement="_VcQiYBE9EeGOffqMW1YiZA">
           <body>References the ProfileApplications that indicate which profiles have been applied to the Package.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1g6atwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1g6a9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VcQiYhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VcQiYxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
       <ownedOperation xmi:id="_r--GcGv5Edq7X4sGURiZYA" name="applyProfile">
         <ownedComment xmi:id="_pfXbgOwhEdqYHf-imTcTdw" annotatedElement="_r--GcGv5Edq7X4sGURiZYA">
@@ -10765,29 +10768,29 @@
           </ownedComment>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1g6bNwbEeCT5O2F6sGn5g" name="allApplicableStereotypes" visibility="public" bodyCondition="_g1g6btwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1g6bdwbEeCT5O2F6sGn5g" annotatedElement="_g1g6bNwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VcQiZBE9EeGOffqMW1YiZA" name="allApplicableStereotypes" visibility="public" bodyCondition="_VcQiZhE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VcQiZRE9EeGOffqMW1YiZA" annotatedElement="_VcQiZBE9EeGOffqMW1YiZA">
           <body>The query allApplicableStereotypes() returns all the directly or indirectly owned stereotypes, including stereotypes contained in sub-profiles.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1g6btwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1g6bNwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1g6b9wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VcQiZhE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VcQiZBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VcQiZxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = 
 self.ownedStereotype->union(self.ownedMember->
 	select(oclIsKindOf(Package)).oclAsType(Package).allApplicableStereotypes()->flatten())->asSet()</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1g6cNwbEeCT5O2F6sGn5g" name="result" visibility="public" type="_A7vDAGv0Edq7X4sGURiZYA" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1g6cdwbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1g6ctwbEeCT5O2F6sGn5g" value="*"/>
+        <ownedParameter xmi:id="_VcQiaBE9EeGOffqMW1YiZA" name="result" visibility="public" type="_A7vDAGv0Edq7X4sGURiZYA" direction="return">
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VcQiaRE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VcQiahE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1g6c9wbEeCT5O2F6sGn5g" name="containingProfile" visibility="public" bodyCondition="_g1g6ddwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1g6dNwbEeCT5O2F6sGn5g" annotatedElement="_g1g6c9wbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VcQiaxE9EeGOffqMW1YiZA" name="containingProfile" visibility="public" bodyCondition="_VcQibRE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VcQibBE9EeGOffqMW1YiZA" annotatedElement="_VcQiaxE9EeGOffqMW1YiZA">
           <body>The query containingProfile() returns the closest profile directly or indirectly containing this package (or this package itself, if it is a profile).</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1g6ddwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1g6c9wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1g6dtwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VcQibRE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VcQiaxE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VcQibhE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result =
 if self.oclIsKindOf(Profile) then 
@@ -10797,279 +10800,279 @@
 endif</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1g6d9wbEeCT5O2F6sGn5g" name="result" visibility="public" type="__pew8GvzEdq7X4sGURiZYA" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1g6eNwbEeCT5O2F6sGn5g"/>
+        <ownedParameter xmi:id="_VcQibxE9EeGOffqMW1YiZA" name="result" visibility="public" type="__pew8GvzEdq7X4sGURiZYA" direction="return">
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VcQicBE9EeGOffqMW1YiZA"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1hhcNwbEeCT5O2F6sGn5g" name="makesVisible" visibility="public" bodyCondition="_g1hhdNwbEeCT5O2F6sGn5g" isQuery="true" precondition="_g1hhctwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1hhcdwbEeCT5O2F6sGn5g" annotatedElement="_g1hhcNwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VcRJcBE9EeGOffqMW1YiZA" name="makesVisible" visibility="public" bodyCondition="_VcRJchE9EeGOffqMW1YiZA" isQuery="true" precondition="_VcRJdBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VcRJcRE9EeGOffqMW1YiZA" annotatedElement="_VcRJcBE9EeGOffqMW1YiZA">
           <body>The query makesVisible() defines whether a Package makes an element visible outside itself. Elements with no visibility and elements with public visibility are made visible.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1hhctwbEeCT5O2F6sGn5g" name="pre" constrainedElement="_g1hhcNwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1hhc9wbEeCT5O2F6sGn5g">
-            <language>OCL</language>
-            <body>self.member->includes(el)</body>
-          </specification>
-        </ownedRule>
-        <ownedRule xmi:id="_g1hhdNwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1hhcNwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1hhddwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VcRJchE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VcRJcBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VcRJcxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = (ownedMember->includes(el)) or
 (elementImport->select(ei|ei.importedElement = #public)->collect(ei|ei.importedElement)->includes(el)) or
 (packageImport->select(pi|pi.visibility = #public)->collect(pi|pi.importedPackage.member->includes(el))->notEmpty())</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1hhdtwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedRule xmi:id="_VcRJdBE9EeGOffqMW1YiZA" name="pre" constrainedElement="_VcRJcBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VcRJdRE9EeGOffqMW1YiZA">
+            <language>OCL</language>
+            <body>self.member->includes(el)</body>
+          </specification>
+        </ownedRule>
+        <ownedParameter xmi:id="_VcRJdhE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
-        <ownedParameter xmi:id="_g1hhd9wbEeCT5O2F6sGn5g" name="el" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw"/>
+        <ownedParameter xmi:id="_VcRJdxE9EeGOffqMW1YiZA" name="el" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw"/>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1hheNwbEeCT5O2F6sGn5g" name="mustBeOwned" visibility="public" bodyCondition="_g1hhetwbEeCT5O2F6sGn5g" isQuery="true" redefinedOperation="_g0JoftwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1hhedwbEeCT5O2F6sGn5g" annotatedElement="_g1hheNwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VcRJeBE9EeGOffqMW1YiZA" name="mustBeOwned" visibility="public" bodyCondition="_VcRJehE9EeGOffqMW1YiZA" isQuery="true" redefinedOperation="_VZHu0BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VcRJeRE9EeGOffqMW1YiZA" annotatedElement="_VcRJeBE9EeGOffqMW1YiZA">
           <body>The query mustBeOwned() indicates whether elements of this type must have an owner.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1hhetwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1hheNwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1hhe9wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VcRJehE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VcRJeBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VcRJexE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = false</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1hhfNwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VcRJfBE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="__wMTILL4EeCBifIhhuFqZA" name="nestedPackage" visibility="public" bodyCondition="_g1hhftwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1hhfdwbEeCT5O2F6sGn5g" annotatedElement="__wMTILL4EeCBifIhhuFqZA">
+      <ownedOperation xmi:id="__wMTILL4EeCBifIhhuFqZA" name="nestedPackage" visibility="public" bodyCondition="_VcRwgBE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VcRJfRE9EeGOffqMW1YiZA" annotatedElement="__wMTILL4EeCBifIhhuFqZA">
           <body>Missing derivation for Package::/nestedPackage : Package</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1hhftwbEeCT5O2F6sGn5g" name="spec" constrainedElement="__wMTILL4EeCBifIhhuFqZA _g1gTVtwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1hhf9wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VcRwgBE9EeGOffqMW1YiZA" name="spec" constrainedElement="__wMTILL4EeCBifIhhuFqZA _VcKbwBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VcRwgRE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>true</body>
           </specification>
         </ownedRule>
         <ownedParameter xmi:id="_EbpVoLL5EeCBifIhhuFqZA" name="result" visibility="public" type="_-cvRAGvzEdq7X4sGURiZYA" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1hhgNwbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1hhgdwbEeCT5O2F6sGn5g" value="*"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VcRwghE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VcRwgxE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_kWuyMLL5EeCBifIhhuFqZA" name="ownedStereotype" visibility="public" bodyCondition="_g1iIgdwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1iIgNwbEeCT5O2F6sGn5g" annotatedElement="_kWuyMLL5EeCBifIhhuFqZA">
+      <ownedOperation xmi:id="_kWuyMLL5EeCBifIhhuFqZA" name="ownedStereotype" visibility="public" bodyCondition="_VcSXkRE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VcSXkBE9EeGOffqMW1YiZA" annotatedElement="_kWuyMLL5EeCBifIhhuFqZA">
           <body>Missing derivation for Package::/ownedStereotype : Stereotype</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1iIgdwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_kWuyMLL5EeCBifIhhuFqZA _g1gTXNwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1iIgtwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VcSXkRE9EeGOffqMW1YiZA" name="spec" constrainedElement="_kWuyMLL5EeCBifIhhuFqZA _VcLC0BE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VcSXkhE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>true</body>
           </specification>
         </ownedRule>
         <ownedParameter xmi:id="_mRoYoLL5EeCBifIhhuFqZA" name="result" visibility="public" type="_A7vDAGv0Edq7X4sGURiZYA" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1iIg9wbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1iIhNwbEeCT5O2F6sGn5g" value="*"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VcSXkxE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VcSXlBE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_yfRaMLL5EeCBifIhhuFqZA" name="ownedType" visibility="public" bodyCondition="_g1iIhtwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1iIhdwbEeCT5O2F6sGn5g" annotatedElement="_yfRaMLL5EeCBifIhhuFqZA">
+      <ownedOperation xmi:id="_yfRaMLL5EeCBifIhhuFqZA" name="ownedType" visibility="public" bodyCondition="_VcS-oRE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VcS-oBE9EeGOffqMW1YiZA" annotatedElement="_yfRaMLL5EeCBifIhhuFqZA">
           <body>Missing derivation for Package::/ownedType : Type</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1iIhtwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_yfRaMLL5EeCBifIhhuFqZA _g1gTYNwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1iIh9wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VcS-oRE9EeGOffqMW1YiZA" name="spec" constrainedElement="_yfRaMLL5EeCBifIhhuFqZA _VcLC1BE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VcS-ohE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>true</body>
           </specification>
         </ownedRule>
         <ownedParameter xmi:id="_0NLGcLL5EeCBifIhhuFqZA" name="result" visibility="public" type="_ynRtoGvtEdqG6fBIPwe-mw" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1iIiNwbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1iIidwbEeCT5O2F6sGn5g" value="*"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VcS-oxE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VcS-pBE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1ivkNwbEeCT5O2F6sGn5g" name="visibleMembers" visibility="public" bodyCondition="_g1ivktwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1ivkdwbEeCT5O2F6sGn5g" annotatedElement="_g1ivkNwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VcTlsBE9EeGOffqMW1YiZA" name="visibleMembers" visibility="public" bodyCondition="_VcTlshE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VcTlsRE9EeGOffqMW1YiZA" annotatedElement="_VcTlsBE9EeGOffqMW1YiZA">
           <body>The query visibleMembers() defines which members of a Package can be accessed outside it.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1ivktwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1ivkNwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1ivk9wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VcTlshE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VcTlsBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VcTlsxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = member->select( m | self.makesVisible(m))</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1ivlNwbEeCT5O2F6sGn5g" name="result" visibility="public" type="_jKxnwGwLEdq7X4sGURiZYA" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1ivldwbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1ivltwbEeCT5O2F6sGn5g" value="*"/>
+        <ownedParameter xmi:id="_VcTltBE9EeGOffqMW1YiZA" name="result" visibility="public" type="_jKxnwGwLEdq7X4sGURiZYA" direction="return">
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VcTltRE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VcTlthE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_SnNPIGwIEdq7X4sGURiZYA" name="PackageImport">
-      <ownedComment xmi:id="_g1jWoNwbEeCT5O2F6sGn5g" annotatedElement="_SnNPIGwIEdq7X4sGURiZYA">
+      <ownedComment xmi:id="_VcVa4BE9EeGOffqMW1YiZA" annotatedElement="_SnNPIGwIEdq7X4sGURiZYA">
         <body>A package import is a relationship that allows the use of unqualified names to refer to package members from other namespaces.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g1jWodwbEeCT5O2F6sGn5g" name="public_or_private" constrainedElement="_SnNPIGwIEdq7X4sGURiZYA">
-        <ownedComment xmi:id="_g1jWotwbEeCT5O2F6sGn5g" annotatedElement="_g1jWodwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VcVa4RE9EeGOffqMW1YiZA" name="public_or_private" constrainedElement="_SnNPIGwIEdq7X4sGURiZYA">
+        <ownedComment xmi:id="_VcVa4hE9EeGOffqMW1YiZA" annotatedElement="_VcVa4RE9EeGOffqMW1YiZA">
           <body>The visibility of a PackageImport is either public or private.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1jWo9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VcVa4xE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.visibility = #public or self.visibility = #private</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g1jWpNwbEeCT5O2F6sGn5g" general="_JBgfoKPAEdqi_5gqUMOQtA"/>
-      <ownedAttribute xmi:id="_g1jWpdwbEeCT5O2F6sGn5g" name="importedPackage" visibility="public" type="_-cvRAGvzEdq7X4sGURiZYA" subsettedProperty="_g0HzRNwbEeCT5O2F6sGn5g" association="_gyfblNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1jWptwbEeCT5O2F6sGn5g" annotatedElement="_g1jWpdwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VcVa5BE9EeGOffqMW1YiZA" general="_JBgfoKPAEdqi_5gqUMOQtA"/>
+      <ownedAttribute xmi:id="_VcZsUBE9EeGOffqMW1YiZA" name="importedPackage" visibility="public" type="_-cvRAGvzEdq7X4sGURiZYA" subsettedProperty="_VY66iBE9EeGOffqMW1YiZA" association="_VTnjxBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VcZsURE9EeGOffqMW1YiZA" annotatedElement="_VcZsUBE9EeGOffqMW1YiZA">
           <body>Specifies the Package whose members are imported into a Namespace.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1jWp9wbEeCT5O2F6sGn5g" name="importingNamespace" visibility="public" type="_ZiwkoGwLEdq7X4sGURiZYA" subsettedProperty="_g0HzQdwbEeCT5O2F6sGn5g _g0JodNwbEeCT5O2F6sGn5g" association="_gyrBydwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1jWqNwbEeCT5O2F6sGn5g" annotatedElement="_g1jWp9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VcZsUhE9EeGOffqMW1YiZA" name="importingNamespace" visibility="public" type="_ZiwkoGwLEdq7X4sGURiZYA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw _VY66hRE9EeGOffqMW1YiZA" association="_VUFd0BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VcZsUxE9EeGOffqMW1YiZA" annotatedElement="_VcZsUhE9EeGOffqMW1YiZA">
           <body>Specifies the Namespace that imports the members from a Package.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1jWqdwbEeCT5O2F6sGn5g" name="visibility" visibility="public" type="_AyM_oGwMEdq7X4sGURiZYA">
-        <ownedComment xmi:id="_g1jWqtwbEeCT5O2F6sGn5g" annotatedElement="_g1jWqdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VcZsVBE9EeGOffqMW1YiZA" name="visibility" visibility="public" type="_AyM_oGwMEdq7X4sGURiZYA">
+        <ownedComment xmi:id="_VcZsVRE9EeGOffqMW1YiZA" annotatedElement="_VcZsVBE9EeGOffqMW1YiZA">
           <body>Specifies the visibility of the imported PackageableElements within the importing Namespace, i.e., whether imported elements will in turn be visible to other packages that use that importingPackage as an importedPackage. If the PackageImport is public, the imported elements will be visible outside the package, while if it is private they will not.</body>
         </ownedComment>
-        <defaultValue xmi:type="uml:InstanceValue" xmi:id="_g1jWq9wbEeCT5O2F6sGn5g" type="_AyM_oGwMEdq7X4sGURiZYA" instance="_g2fK39wbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:InstanceValue" xmi:id="_VcZsVhE9EeGOffqMW1YiZA" type="_AyM_oGwMEdq7X4sGURiZYA" instance="_VfSBMBE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g1j9sNwbEeCT5O2F6sGn5g" name="PackageMerge">
-      <ownedComment xmi:id="_g1j9sdwbEeCT5O2F6sGn5g" annotatedElement="_g1j9sNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VcsAMBE9EeGOffqMW1YiZA" name="PackageMerge">
+      <ownedComment xmi:id="_VcsAMRE9EeGOffqMW1YiZA" annotatedElement="_VcsAMBE9EeGOffqMW1YiZA">
         <body>A package merge defines how the contents of one package are extended by the contents of another package.</body>
       </ownedComment>
-      <generalization xmi:id="_g1j9stwbEeCT5O2F6sGn5g" general="_JBgfoKPAEdqi_5gqUMOQtA"/>
-      <ownedAttribute xmi:id="_g1j9s9wbEeCT5O2F6sGn5g" name="mergedPackage" visibility="public" type="_-cvRAGvzEdq7X4sGURiZYA" subsettedProperty="_g0HzRNwbEeCT5O2F6sGn5g" association="_gyjF99wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1j9tNwbEeCT5O2F6sGn5g" annotatedElement="_g1j9s9wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VcsAMhE9EeGOffqMW1YiZA" general="_JBgfoKPAEdqi_5gqUMOQtA"/>
+      <ownedAttribute xmi:id="_VcsAMxE9EeGOffqMW1YiZA" name="mergedPackage" visibility="public" type="_-cvRAGvzEdq7X4sGURiZYA" subsettedProperty="_VY66iBE9EeGOffqMW1YiZA" association="_VTxUwBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VcsANBE9EeGOffqMW1YiZA" annotatedElement="_VcsAMxE9EeGOffqMW1YiZA">
           <body>References the Package that is to be merged with the receiving package of the PackageMerge.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1j9tdwbEeCT5O2F6sGn5g" name="receivingPackage" visibility="public" type="_-cvRAGvzEdq7X4sGURiZYA" subsettedProperty="_g0HzQdwbEeCT5O2F6sGn5g _g0JodNwbEeCT5O2F6sGn5g" association="_gyrBytwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1j9ttwbEeCT5O2F6sGn5g" annotatedElement="_g1j9tdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VcsANRE9EeGOffqMW1YiZA" name="receivingPackage" visibility="public" type="_-cvRAGvzEdq7X4sGURiZYA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw _VY66hRE9EeGOffqMW1YiZA" association="_VUGE4BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VcsANhE9EeGOffqMW1YiZA" annotatedElement="_VcsANRE9EeGOffqMW1YiZA">
           <body>References the Package that is being extended with the contents of the merged package of the PackageMerge.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_jKxnwGwLEdq7X4sGURiZYA" name="PackageableElement" isAbstract="true">
-      <ownedComment xmi:id="_g1j9t9wbEeCT5O2F6sGn5g" annotatedElement="_jKxnwGwLEdq7X4sGURiZYA">
-        <body>A packageable element indicates a named element that may be owned directly by a package.</body>
-      </ownedComment>
-      <ownedComment xmi:id="_g1j9uNwbEeCT5O2F6sGn5g" annotatedElement="_jKxnwGwLEdq7X4sGURiZYA">
+      <ownedComment xmi:id="_VcsANxE9EeGOffqMW1YiZA" annotatedElement="_jKxnwGwLEdq7X4sGURiZYA">
         <body>Packageable elements are able to serve as a template parameter.</body>
       </ownedComment>
-      <generalization xmi:id="_g1j9udwbEeCT5O2F6sGn5g" general="_g1noENwbEeCT5O2F6sGn5g"/>
-      <generalization xmi:id="_g1j9utwbEeCT5O2F6sGn5g" general="_csVgUGvtEdqG6fBIPwe-mw"/>
-      <ownedAttribute xmi:id="_g1j9u9wbEeCT5O2F6sGn5g" name="visibility" visibility="public" type="_AyM_oGwMEdq7X4sGURiZYA" redefinedProperty="_PfdtELG0EeCDe8CO90iVKQ">
-        <ownedComment xmi:id="_g1j9vNwbEeCT5O2F6sGn5g" annotatedElement="_g1j9u9wbEeCT5O2F6sGn5g">
+      <ownedComment xmi:id="_VcvqkBE9EeGOffqMW1YiZA" annotatedElement="_jKxnwGwLEdq7X4sGURiZYA">
+        <body>A packageable element indicates a named element that may be owned directly by a package.</body>
+      </ownedComment>
+      <generalization xmi:id="_VcvqkRE9EeGOffqMW1YiZA" general="_Vc730BE9EeGOffqMW1YiZA"/>
+      <generalization xmi:id="_VcvqkhE9EeGOffqMW1YiZA" general="_csVgUGvtEdqG6fBIPwe-mw"/>
+      <ownedAttribute xmi:id="_VcvqkxE9EeGOffqMW1YiZA" name="visibility" visibility="public" type="_AyM_oGwMEdq7X4sGURiZYA" redefinedProperty="_PfdtELG0EeCDe8CO90iVKQ">
+        <ownedComment xmi:id="_VcvqlBE9EeGOffqMW1YiZA" annotatedElement="_VcvqkxE9EeGOffqMW1YiZA">
           <body>Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.</body>
         </ownedComment>
-        <defaultValue xmi:type="uml:InstanceValue" xmi:id="_g1j9vdwbEeCT5O2F6sGn5g" type="_AyM_oGwMEdq7X4sGURiZYA" instance="_g2fK39wbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:InstanceValue" xmi:id="_VcvqlRE9EeGOffqMW1YiZA" type="_AyM_oGwMEdq7X4sGURiZYA" instance="_VfSBMBE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_KyaPMGveEdq4DLWZOhbdEA" name="Parameter">
-      <ownedComment xmi:id="_g1j9vtwbEeCT5O2F6sGn5g" annotatedElement="_KyaPMGveEdq4DLWZOhbdEA">
-        <body>A parameter is a specification of an argument used to pass information into or out of an invocation of a behavioral feature.</body>
-      </ownedComment>
-      <ownedComment xmi:id="_g1j9v9wbEeCT5O2F6sGn5g" annotatedElement="_KyaPMGveEdq4DLWZOhbdEA">
-        <body>Parameters have support for streaming, exceptions, and parameter sets.</body>
-      </ownedComment>
-      <ownedComment xmi:id="_g1j9wNwbEeCT5O2F6sGn5g" annotatedElement="_KyaPMGveEdq4DLWZOhbdEA">
+      <ownedComment xmi:id="_VcwRoBE9EeGOffqMW1YiZA" annotatedElement="_KyaPMGveEdq4DLWZOhbdEA">
         <body>Parameters are allowed to be treated as connectable elements.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g1j9wdwbEeCT5O2F6sGn5g" name="in_and_out" constrainedElement="_KyaPMGveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_g1j9wtwbEeCT5O2F6sGn5g" annotatedElement="_g1j9wdwbEeCT5O2F6sGn5g">
-          <body>Only in and inout parameters may have a delete effect. Only out, inout, and return parameters may have a create effect.</body>
+      <ownedComment xmi:id="_VcwRoRE9EeGOffqMW1YiZA" annotatedElement="_KyaPMGveEdq4DLWZOhbdEA">
+        <body>A parameter is a specification of an argument used to pass information into or out of an invocation of a behavioral feature.</body>
+      </ownedComment>
+      <ownedComment xmi:id="_VcwRohE9EeGOffqMW1YiZA" annotatedElement="_KyaPMGveEdq4DLWZOhbdEA">
+        <body>Parameters have support for streaming, exceptions, and parameter sets.</body>
+      </ownedComment>
+      <ownedRule xmi:id="_VcwRoxE9EeGOffqMW1YiZA" name="reentrant_behaviors" constrainedElement="_KyaPMGveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VcwRpBE9EeGOffqMW1YiZA" annotatedElement="_VcwRoxE9EeGOffqMW1YiZA">
+          <body>Reentrant behaviors cannot have stream parameters.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1j9w9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VcwRpRE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g1j9xNwbEeCT5O2F6sGn5g" name="not_exception" constrainedElement="_KyaPMGveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_g1j9xdwbEeCT5O2F6sGn5g" annotatedElement="_g1j9xNwbEeCT5O2F6sGn5g">
-          <body>An input parameter cannot be an exception.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1j9xtwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g1kkwNwbEeCT5O2F6sGn5g" name="connector_end" constrainedElement="_KyaPMGveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_g1kkwdwbEeCT5O2F6sGn5g" annotatedElement="_g1kkwNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VcwRphE9EeGOffqMW1YiZA" name="connector_end" constrainedElement="_KyaPMGveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VcwRpxE9EeGOffqMW1YiZA" annotatedElement="_VcwRphE9EeGOffqMW1YiZA">
           <body>A parameter may only be associated with a connector end within the context of a collaboration.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1kkwtwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VcwRqBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.end.notEmpty() implies self.collaboration.notEmpty()</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g1kkw9wbEeCT5O2F6sGn5g" name="reentrant_behaviors" constrainedElement="_KyaPMGveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_g1kkxNwbEeCT5O2F6sGn5g" annotatedElement="_g1kkw9wbEeCT5O2F6sGn5g">
-          <body>Reentrant behaviors cannot have stream parameters.</body>
+      <ownedRule xmi:id="_VcwRqRE9EeGOffqMW1YiZA" name="not_exception" constrainedElement="_KyaPMGveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VcwRqhE9EeGOffqMW1YiZA" annotatedElement="_VcwRqRE9EeGOffqMW1YiZA">
+          <body>An input parameter cannot be an exception.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1kkxdwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VcwRqxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g1kkxtwbEeCT5O2F6sGn5g" name="stream_and_exception" constrainedElement="_KyaPMGveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_g1kkx9wbEeCT5O2F6sGn5g" annotatedElement="_g1kkxtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VcwRrBE9EeGOffqMW1YiZA" name="in_and_out" constrainedElement="_KyaPMGveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VcwRrRE9EeGOffqMW1YiZA" annotatedElement="_VcwRrBE9EeGOffqMW1YiZA">
+          <body>Only in and inout parameters may have a delete effect. Only out, inout, and return parameters may have a create effect.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vcw4sBE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_Vcw4sRE9EeGOffqMW1YiZA" name="stream_and_exception" constrainedElement="_KyaPMGveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_Vcw4shE9EeGOffqMW1YiZA" annotatedElement="_Vcw4sRE9EeGOffqMW1YiZA">
           <body>A parameter cannot be a stream and exception at the same time.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1kkyNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vcw4sxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g1kkydwbEeCT5O2F6sGn5g" general="_Gjgl0GveEdq4DLWZOhbdEA"/>
-      <generalization xmi:id="_g1kkytwbEeCT5O2F6sGn5g" general="_0dB44PnhEdunWsS3se92JQ"/>
+      <generalization xmi:id="_Vcw4tBE9EeGOffqMW1YiZA" general="_Gjgl0GveEdq4DLWZOhbdEA"/>
+      <generalization xmi:id="_Vcw4tRE9EeGOffqMW1YiZA" general="_0dB44PnhEdunWsS3se92JQ"/>
       <ownedAttribute xmi:id="_ZSw9sLG1EeCDe8CO90iVKQ" name="default" visibility="public" isDerived="true">
-        <ownedComment xmi:id="_g1kky9wbEeCT5O2F6sGn5g" annotatedElement="_ZSw9sLG1EeCDe8CO90iVKQ">
+        <ownedComment xmi:id="_Vcw4thE9EeGOffqMW1YiZA" annotatedElement="_ZSw9sLG1EeCDe8CO90iVKQ">
           <body>Specifies a String that represents a value to be used when no argument is supplied for the Parameter.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1kkzNwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Vcw4txE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1kkzdwbEeCT5O2F6sGn5g" name="defaultValue" visibility="public" type="_g2YdENwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gyYG1NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1kkztwbEeCT5O2F6sGn5g" annotatedElement="_g1kkzdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_Vcyt4BE9EeGOffqMW1YiZA" name="defaultValue" visibility="public" type="_VfGbABE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VTMtAhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vcyt4RE9EeGOffqMW1YiZA" annotatedElement="_Vcyt4BE9EeGOffqMW1YiZA">
           <body>Specifies a ValueSpecification that represents a value to be used when no argument is supplied for the Parameter.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1kkz9wbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Vcyt4hE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1lL0NwbEeCT5O2F6sGn5g" name="direction" visibility="public" type="_g2ejsNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1lL0dwbEeCT5O2F6sGn5g" annotatedElement="_g1lL0NwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VczU8BE9EeGOffqMW1YiZA" name="direction" visibility="public" type="_VfQMABE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VczU8RE9EeGOffqMW1YiZA" annotatedElement="_VczU8BE9EeGOffqMW1YiZA">
           <body>Indicates whether a parameter is being sent into or out of a behavioral element.</body>
         </ownedComment>
-        <defaultValue xmi:type="uml:InstanceValue" xmi:id="_g1lL0twbEeCT5O2F6sGn5g" type="_g2ejsNwbEeCT5O2F6sGn5g" instance="_g2ejstwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:InstanceValue" xmi:id="_VczU8hE9EeGOffqMW1YiZA" type="_VfQMABE9EeGOffqMW1YiZA" instance="_VfQMAhE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
       <ownedAttribute xmi:id="_rkJDULG1EeCDe8CO90iVKQ" name="effect" visibility="public" type="_oNLHgLG1EeCDe8CO90iVKQ">
-        <ownedComment xmi:id="_g1lL09wbEeCT5O2F6sGn5g" annotatedElement="_rkJDULG1EeCDe8CO90iVKQ">
+        <ownedComment xmi:id="_VczU8xE9EeGOffqMW1YiZA" annotatedElement="_rkJDULG1EeCDe8CO90iVKQ">
           <body>Specifies the effect that the owner of the parameter has on values passed in or out of the parameter.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1lL1NwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VczU9BE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1lL1dwbEeCT5O2F6sGn5g" name="isException" visibility="public">
-        <ownedComment xmi:id="_g1lL1twbEeCT5O2F6sGn5g" annotatedElement="_g1lL1dwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VczU9RE9EeGOffqMW1YiZA" name="isException" visibility="public">
+        <ownedComment xmi:id="_VczU9hE9EeGOffqMW1YiZA" annotatedElement="_VczU9RE9EeGOffqMW1YiZA">
           <body>Tells whether an output parameter may emit a value to the exclusion of the other outputs.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g1lL19wbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VczU9xE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1lL2NwbEeCT5O2F6sGn5g" name="isStream" visibility="public">
-        <ownedComment xmi:id="_g1lL2dwbEeCT5O2F6sGn5g" annotatedElement="_g1lL2NwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_Vcz8ABE9EeGOffqMW1YiZA" name="isStream" visibility="public">
+        <ownedComment xmi:id="_Vcz8ARE9EeGOffqMW1YiZA" annotatedElement="_Vcz8ABE9EeGOffqMW1YiZA">
           <body>Tells whether an input parameter may accept values while its behavior is executing, or whether an output parameter post values while the behavior is executing.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g1lL2twbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_Vcz8AhE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_lHJ7gLbIEeCRxrN1JUGuxA" name="operation" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" subsettedProperty="_gyqasdwbEeCT5O2F6sGn5g _1vzv0LbIEeCRxrN1JUGuxA" association="_gypzrNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1lL29wbEeCT5O2F6sGn5g" annotatedElement="_lHJ7gLbIEeCRxrN1JUGuxA">
+      <ownedAttribute xmi:id="_lHJ7gLbIEeCRxrN1JUGuxA" name="operation" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" subsettedProperty="_VUDBkRE9EeGOffqMW1YiZA _1vzv0LbIEeCRxrN1JUGuxA" association="_VUCahhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vcz8AxE9EeGOffqMW1YiZA" annotatedElement="_lHJ7gLbIEeCRxrN1JUGuxA">
           <body>References the Operation owning this parameter.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1lL3NwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Vcz8BBE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1ly4NwbEeCT5O2F6sGn5g" name="parameterSet" visibility="public" type="_g1mZ8NwbEeCT5O2F6sGn5g" association="_gyro09wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1ly4dwbEeCT5O2F6sGn5g" annotatedElement="_g1ly4NwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_Vcz8BRE9EeGOffqMW1YiZA" name="parameterSet" visibility="public" type="_Vc7QwBE9EeGOffqMW1YiZA" association="_VUHTAxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vcz8BhE9EeGOffqMW1YiZA" annotatedElement="_Vcz8BRE9EeGOffqMW1YiZA">
           <body>The parameter sets containing the parameter. See ParameterSet.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1ly4twbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1ly49wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Vcz8BxE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Vcz8CBE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
       <ownedOperation xmi:id="_QKbgcWXCEdqEJs8umHJc9g" name="isSetDefault" visibility="protected" isQuery="true">
         <ownedParameter xmi:id="_TKzhMGXCEdqEJs8umHJc9g" direction="return">
@@ -11142,334 +11145,334 @@
         </ownedParameter>
       </ownedOperation>
       <ownedOperation xmi:id="_VQnXIGXCEdqEJs8umHJc9g" name="unsetDefault" visibility="protected"/>
-      <ownedOperation xmi:id="_7UJKkFYJEdqrn7iZ0eqieg" name="default" visibility="public" bodyCondition="_g1ly5dwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1ly5NwbEeCT5O2F6sGn5g" annotatedElement="_7UJKkFYJEdqrn7iZ0eqieg">
+      <ownedOperation xmi:id="_7UJKkFYJEdqrn7iZ0eqieg" name="default" visibility="public" bodyCondition="_Vc0jEBE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_Vcz8CRE9EeGOffqMW1YiZA" annotatedElement="_7UJKkFYJEdqrn7iZ0eqieg">
           <body>Missing derivation for Parameter::/default : String</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1ly5dwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_7UJKkFYJEdqrn7iZ0eqieg _ZSw9sLG1EeCDe8CO90iVKQ">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1ly5twbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_Vc0jEBE9EeGOffqMW1YiZA" name="spec" constrainedElement="_7UJKkFYJEdqrn7iZ0eqieg _ZSw9sLG1EeCDe8CO90iVKQ">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vc0jERE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>true</body>
           </specification>
         </ownedRule>
         <ownedParameter xmi:id="_-PwAEFYJEdqrn7iZ0eqieg" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1ly59wbEeCT5O2F6sGn5g"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Vc0jEhE9EeGOffqMW1YiZA"/>
           <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_4VLgQVYjEdqB6vblk3tuMA" value="1"/>
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g1mZ8NwbEeCT5O2F6sGn5g" name="ParameterSet">
-      <ownedComment xmi:id="_g1nBANwbEeCT5O2F6sGn5g" annotatedElement="_g1mZ8NwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_Vc7QwBE9EeGOffqMW1YiZA" name="ParameterSet">
+      <ownedComment xmi:id="_Vc7QwRE9EeGOffqMW1YiZA" annotatedElement="_Vc7QwBE9EeGOffqMW1YiZA">
         <body>A parameter set is an element that provides alternative sets of inputs or outputs that a behavior may use.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g1nBAdwbEeCT5O2F6sGn5g" name="same_parameterized_entity" constrainedElement="_g1mZ8NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1nBAtwbEeCT5O2F6sGn5g" annotatedElement="_g1nBAdwbEeCT5O2F6sGn5g">
-          <body>The parameters in a parameter set must all be inputs or all be outputs of the same parameterized entity, and the parameter set is owned by that entity.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1nBA9wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g1nBBNwbEeCT5O2F6sGn5g" name="input" constrainedElement="_g1mZ8NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1nBBdwbEeCT5O2F6sGn5g" annotatedElement="_g1nBBNwbEeCT5O2F6sGn5g">
-          <body>If a behavior has input parameters that are in a parameter set, then any inputs that are not in a parameter set must be streaming. Same for output parameters.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1nBBtwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g1nBB9wbEeCT5O2F6sGn5g" name="two_parameter_sets" constrainedElement="_g1mZ8NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1nBCNwbEeCT5O2F6sGn5g" annotatedElement="_g1nBB9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_Vc7QwhE9EeGOffqMW1YiZA" name="two_parameter_sets" constrainedElement="_Vc7QwBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vc7QwxE9EeGOffqMW1YiZA" annotatedElement="_Vc7QwhE9EeGOffqMW1YiZA">
           <body>Two parameter sets cannot have exactly the same set of parameters.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1nBCdwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vc7QxBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g1nBCtwbEeCT5O2F6sGn5g" general="_csVgUGvtEdqG6fBIPwe-mw"/>
-      <ownedAttribute xmi:id="_g1nBC9wbEeCT5O2F6sGn5g" name="condition" visibility="public" type="_g0AegNwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gyVqk9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1nBDNwbEeCT5O2F6sGn5g" annotatedElement="_g1nBC9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_Vc7QxRE9EeGOffqMW1YiZA" name="input" constrainedElement="_Vc7QwBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vc7QxhE9EeGOffqMW1YiZA" annotatedElement="_Vc7QxRE9EeGOffqMW1YiZA">
+          <body>If a behavior has input parameters that are in a parameter set, then any inputs that are not in a parameter set must be streaming. Same for output parameters.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vc7QxxE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_Vc7QyBE9EeGOffqMW1YiZA" name="same_parameterized_entity" constrainedElement="_Vc7QwBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vc7QyRE9EeGOffqMW1YiZA" annotatedElement="_Vc7QyBE9EeGOffqMW1YiZA">
+          <body>The parameters in a parameter set must all be inputs or all be outputs of the same parameterized entity, and the parameter set is owned by that entity.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vc7QyhE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_Vc7QyxE9EeGOffqMW1YiZA" general="_csVgUGvtEdqG6fBIPwe-mw"/>
+      <ownedAttribute xmi:id="_Vc7QzBE9EeGOffqMW1YiZA" name="condition" visibility="public" type="_VYbLQBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VTF_UBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vc7QzRE9EeGOffqMW1YiZA" annotatedElement="_Vc7QzBE9EeGOffqMW1YiZA">
           <body>Constraint that should be satisfied for the owner of the parameters in an input parameter set to start execution using the values provided for those parameters, or the owner of the parameters in an output parameter set to end execution providing the values for those parameters, if all preconditions and conditions on input parameter sets were satisfied.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1nBDdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1nBDtwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Vc7QzhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Vc7QzxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1nBD9wbEeCT5O2F6sGn5g" name="parameter" visibility="public" type="_KyaPMGveEdq4DLWZOhbdEA" association="_gyro09wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1nBENwbEeCT5O2F6sGn5g" annotatedElement="_g1nBD9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_Vc7Q0BE9EeGOffqMW1YiZA" name="parameter" visibility="public" type="_KyaPMGveEdq4DLWZOhbdEA" association="_VUHTAxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vc7Q0RE9EeGOffqMW1YiZA" annotatedElement="_Vc7Q0BE9EeGOffqMW1YiZA">
           <body>Parameters in the parameter set.</body>
         </ownedComment>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1nBEdwbEeCT5O2F6sGn5g" value="*"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Vc7Q0hE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g1noENwbEeCT5O2F6sGn5g" name="ParameterableElement" isAbstract="true">
-      <ownedComment xmi:id="_g1noEdwbEeCT5O2F6sGn5g" annotatedElement="_g1noENwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_Vc730BE9EeGOffqMW1YiZA" name="ParameterableElement" isAbstract="true">
+      <ownedComment xmi:id="_Vc730RE9EeGOffqMW1YiZA" annotatedElement="_Vc730BE9EeGOffqMW1YiZA">
         <body>A parameterable element is an element that can be exposed as a formal template parameter for a template, or specified as an actual parameter in a binding of a template.</body>
       </ownedComment>
-      <generalization xmi:id="_g1noEtwbEeCT5O2F6sGn5g" general="_kl90MGvbEdq4DLWZOhbdEA"/>
-      <ownedAttribute xmi:id="_g1noE9wbEeCT5O2F6sGn5g" name="owningTemplateParameter" visibility="public" type="_KxRzgGvuEdqG6fBIPwe-mw" subsettedProperty="_g1noFtwbEeCT5O2F6sGn5g _g0JodNwbEeCT5O2F6sGn5g" association="_gyqatNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1noFNwbEeCT5O2F6sGn5g" annotatedElement="_g1noE9wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_Vc730hE9EeGOffqMW1YiZA" general="_kl90MGvbEdq4DLWZOhbdEA"/>
+      <ownedAttribute xmi:id="_Vc730xE9EeGOffqMW1YiZA" name="owningTemplateParameter" visibility="public" type="_KxRzgGvuEdqG6fBIPwe-mw" subsettedProperty="_Vc731hE9EeGOffqMW1YiZA _N3hRMAtAEeGcpbeCPJfCmw" association="_VUDBlBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vc731BE9EeGOffqMW1YiZA" annotatedElement="_Vc730xE9EeGOffqMW1YiZA">
           <body>The formal template parameter that owns this element.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1noFdwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Vc731RE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1noFtwbEeCT5O2F6sGn5g" name="templateParameter" visibility="public" type="_KxRzgGvuEdqG6fBIPwe-mw" association="_gyro3dwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1noF9wbEeCT5O2F6sGn5g" annotatedElement="_g1noFtwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_Vc731hE9EeGOffqMW1YiZA" name="templateParameter" visibility="public" type="_KxRzgGvuEdqG6fBIPwe-mw" association="_VUH6FBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vc731xE9EeGOffqMW1YiZA" annotatedElement="_Vc731hE9EeGOffqMW1YiZA">
           <body>The template parameter that exposes this element as a formal parameter.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1noGNwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Vc732BE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedOperation xmi:id="_g1noGdwbEeCT5O2F6sGn5g" name="isCompatibleWith" visibility="public" bodyCondition="_g1noG9wbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1noGtwbEeCT5O2F6sGn5g" annotatedElement="_g1noGdwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_Vc732RE9EeGOffqMW1YiZA" name="isCompatibleWith" visibility="public" bodyCondition="_Vc732xE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_Vc732hE9EeGOffqMW1YiZA" annotatedElement="_Vc732RE9EeGOffqMW1YiZA">
           <body>The query isCompatibleWith() determines if this parameterable element is compatible with the specified parameterable element. By default parameterable element P is compatible with parameterable element Q if the kind of P is the same or a subtype as the kind of Q. Subclasses should override this operation to specify different compatibility constraints.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1noG9wbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1noGdwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1noHNwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_Vc732xE9EeGOffqMW1YiZA" name="spec" constrainedElement="_Vc732RE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vc733BE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = p->oclIsKindOf(self.oclType)</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1noHdwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_Vc733RE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
-        <ownedParameter xmi:id="_g1noHtwbEeCT5O2F6sGn5g" name="p" visibility="public" type="_g1noENwbEeCT5O2F6sGn5g"/>
+        <ownedParameter xmi:id="_Vc733hE9EeGOffqMW1YiZA" name="p" visibility="public" type="_Vc730BE9EeGOffqMW1YiZA"/>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1noH9wbEeCT5O2F6sGn5g" name="isTemplateParameter" visibility="public" bodyCondition="_g1noIdwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1noINwbEeCT5O2F6sGn5g" annotatedElement="_g1noH9wbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_Vc733xE9EeGOffqMW1YiZA" name="isTemplateParameter" visibility="public" bodyCondition="_Vc734RE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_Vc734BE9EeGOffqMW1YiZA" annotatedElement="_Vc733xE9EeGOffqMW1YiZA">
           <body>The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1noIdwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1noH9wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1noItwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_Vc734RE9EeGOffqMW1YiZA" name="spec" constrainedElement="_Vc733xE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vc734hE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = templateParameter->notEmpty()</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1noI9wbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_Vc734xE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g1oPINwbEeCT5O2F6sGn5g" name="PartDecomposition">
-      <ownedComment xmi:id="_g1oPIdwbEeCT5O2F6sGn5g" annotatedElement="_g1oPINwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_Vc8e4BE9EeGOffqMW1YiZA" name="PartDecomposition">
+      <ownedComment xmi:id="_Vc8e4RE9EeGOffqMW1YiZA" annotatedElement="_Vc8e4BE9EeGOffqMW1YiZA">
         <body>A part decomposition is a description of the internal interactions of one lifeline relative to an interaction.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g1oPItwbEeCT5O2F6sGn5g" name="commutativity_of_decomposition" constrainedElement="_g1oPINwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1oPI9wbEeCT5O2F6sGn5g" annotatedElement="_g1oPItwbEeCT5O2F6sGn5g">
-          <body>Assume that within Interaction X, Lifeline L is of class C and decomposed to D. Assume also that there is within X an InteractionUse (say) U that covers L. According to the constraint above U will have a counterpart CU within D. Within the Interaction referenced by U, L should also be decomposed, and the decomposition should reference CU. (This rule is called commutativity of decomposition)</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1oPJNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g1oPJdwbEeCT5O2F6sGn5g" name="assume" constrainedElement="_g1oPINwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1oPJtwbEeCT5O2F6sGn5g" annotatedElement="_g1oPJdwbEeCT5O2F6sGn5g">
-          <body>Assume that within Interaction X, Lifeline L is of class C and decomposed to D. Within X there is a sequence of constructs along L (such constructs are CombinedFragments, InteractionUse and (plain) OccurrenceSpecifications). Then a corresponding sequence of constructs must appear within D, matched one-to-one in the same order. i) CombinedFragment covering L are matched with an extra-global CombinedFragment in D ii) An InteractionUse covering L are matched with a global (i.e. covering all Lifelines) InteractionUse in D. iii) A plain OccurrenceSpecification on L is considered an actualGate that must be matched by a formalGate of D</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1oPJ9wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g1oPKNwbEeCT5O2F6sGn5g" name="parts_of_internal_structures" constrainedElement="_g1oPINwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1oPKdwbEeCT5O2F6sGn5g" annotatedElement="_g1oPKNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_Vc8e4hE9EeGOffqMW1YiZA" name="parts_of_internal_structures" constrainedElement="_Vc8e4BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vc8e4xE9EeGOffqMW1YiZA" annotatedElement="_Vc8e4hE9EeGOffqMW1YiZA">
           <body>PartDecompositions apply only to Parts that are Parts of Internal Structures not to Parts of Collaborations.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1oPKtwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vc8e5BE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g1oPK9wbEeCT5O2F6sGn5g" general="_g0dxgNwbEeCT5O2F6sGn5g"/>
+      <ownedRule xmi:id="_Vc8e5RE9EeGOffqMW1YiZA" name="assume" constrainedElement="_Vc8e4BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vc8e5hE9EeGOffqMW1YiZA" annotatedElement="_Vc8e5RE9EeGOffqMW1YiZA">
+          <body>Assume that within Interaction X, Lifeline L is of class C and decomposed to D. Within X there is a sequence of constructs along L (such constructs are CombinedFragments, InteractionUse and (plain) OccurrenceSpecifications). Then a corresponding sequence of constructs must appear within D, matched one-to-one in the same order. i) CombinedFragment covering L are matched with an extra-global CombinedFragment in D ii) An InteractionUse covering L are matched with a global (i.e. covering all Lifelines) InteractionUse in D. iii) A plain OccurrenceSpecification on L is considered an actualGate that must be matched by a formalGate of D</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vc8e5xE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_Vc8e6BE9EeGOffqMW1YiZA" name="commutativity_of_decomposition" constrainedElement="_Vc8e4BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vc8e6RE9EeGOffqMW1YiZA" annotatedElement="_Vc8e6BE9EeGOffqMW1YiZA">
+          <body>Assume that within Interaction X, Lifeline L is of class C and decomposed to D. Assume also that there is within X an InteractionUse (say) U that covers L. According to the constraint above U will have a counterpart CU within D. Within the Interaction referenced by U, L should also be decomposed, and the decomposition should reference CU. (This rule is called commutativity of decomposition)</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vc8e6hE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_Vc8e6xE9EeGOffqMW1YiZA" general="_VZvZ4BE9EeGOffqMW1YiZA"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g1oPLNwbEeCT5O2F6sGn5g" name="Pin" isAbstract="true">
-      <ownedComment xmi:id="_g1oPLdwbEeCT5O2F6sGn5g" annotatedElement="_g1oPLNwbEeCT5O2F6sGn5g">
-        <body>A pin is an object node for inputs and outputs to actions.</body>
-      </ownedComment>
-      <ownedComment xmi:id="_g1oPLtwbEeCT5O2F6sGn5g" annotatedElement="_g1oPLNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_Vc9F8BE9EeGOffqMW1YiZA" name="Pin" isAbstract="true">
+      <ownedComment xmi:id="_Vc9F8RE9EeGOffqMW1YiZA" annotatedElement="_Vc9F8BE9EeGOffqMW1YiZA">
         <body>A pin is a typed element and multiplicity element that provides values to actions and accept result values from them.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g1oPL9wbEeCT5O2F6sGn5g" name="control_pins" constrainedElement="_g1oPLNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1oPMNwbEeCT5O2F6sGn5g" annotatedElement="_g1oPL9wbEeCT5O2F6sGn5g">
+      <ownedComment xmi:id="_Vc9F8hE9EeGOffqMW1YiZA" annotatedElement="_Vc9F8BE9EeGOffqMW1YiZA">
+        <body>A pin is an object node for inputs and outputs to actions.</body>
+      </ownedComment>
+      <ownedRule xmi:id="_Vc9F8xE9EeGOffqMW1YiZA" name="control_pins" constrainedElement="_Vc9F8BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vc9F9BE9EeGOffqMW1YiZA" annotatedElement="_Vc9F8xE9EeGOffqMW1YiZA">
           <body>Control pins have a control type</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1oPMdwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vc9F9RE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>isControl implies isControlType</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g1oPMtwbEeCT5O2F6sGn5g" general="_g1XJYNwbEeCT5O2F6sGn5g"/>
-      <generalization xmi:id="_g1oPM9wbEeCT5O2F6sGn5g" general="_Gjgl0GveEdq4DLWZOhbdEA"/>
-      <ownedAttribute xmi:id="_g1oPNNwbEeCT5O2F6sGn5g" name="isControl" visibility="public">
-        <ownedComment xmi:id="_g1oPNdwbEeCT5O2F6sGn5g" annotatedElement="_g1oPNNwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_Vc9F9hE9EeGOffqMW1YiZA" general="_Gjgl0GveEdq4DLWZOhbdEA"/>
+      <generalization xmi:id="_Vc9F9xE9EeGOffqMW1YiZA" general="_VbcDABE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_Vc9F-BE9EeGOffqMW1YiZA" name="isControl" visibility="public">
+        <ownedComment xmi:id="_Vc9F-RE9EeGOffqMW1YiZA" annotatedElement="_Vc9F-BE9EeGOffqMW1YiZA">
           <body>Tells whether the pins provide data to the actions, or just controls when it executes it.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g1oPNtwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_Vc9F-hE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_ZAuvEGveEdq4DLWZOhbdEA" name="Port">
-      <ownedComment xmi:id="_g1oPN9wbEeCT5O2F6sGn5g" annotatedElement="_ZAuvEGveEdq4DLWZOhbdEA">
-        <body>A port is a property of a classifier that specifies a distinct interaction point between that classifier and its environment or between the (behavior of the) classifier and its internal parts. Ports are connected to properties of the classifier by connectors through which requests can be made to invoke the behavioral features of a classifier. A Port may specify the services a classifier provides (offers) to its environment as well as the services that a classifier expects (requires) of its environment.</body>
-      </ownedComment>
-      <ownedComment xmi:id="_g1o2MNwbEeCT5O2F6sGn5g" annotatedElement="_ZAuvEGveEdq4DLWZOhbdEA">
+      <ownedComment xmi:id="_Vc9F-xE9EeGOffqMW1YiZA" annotatedElement="_ZAuvEGveEdq4DLWZOhbdEA">
         <body>A port has an associated protocol state machine.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g1o2MdwbEeCT5O2F6sGn5g" name="port_destroyed" constrainedElement="_ZAuvEGveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_g1o2MtwbEeCT5O2F6sGn5g" annotatedElement="_g1o2MdwbEeCT5O2F6sGn5g">
-          <body>When a port is destroyed, all connectors attached to this port will be destroyed also.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1o2M9wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g1o2NNwbEeCT5O2F6sGn5g" name="port_aggregation" constrainedElement="_ZAuvEGveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_g1o2NdwbEeCT5O2F6sGn5g" annotatedElement="_g1o2NNwbEeCT5O2F6sGn5g">
-          <body>Port.aggregation must be composite.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1o2NtwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g1o2N9wbEeCT5O2F6sGn5g" name="default_value" constrainedElement="_ZAuvEGveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_g1o2ONwbEeCT5O2F6sGn5g" annotatedElement="_g1o2N9wbEeCT5O2F6sGn5g">
+      <ownedComment xmi:id="_Vc9tABE9EeGOffqMW1YiZA" annotatedElement="_ZAuvEGveEdq4DLWZOhbdEA">
+        <body>A port is a property of a classifier that specifies a distinct interaction point between that classifier and its environment or between the (behavior of the) classifier and its internal parts. Ports are connected to properties of the classifier by connectors through which requests can be made to invoke the behavioral features of a classifier. A Port may specify the services a classifier provides (offers) to its environment as well as the services that a classifier expects (requires) of its environment.</body>
+      </ownedComment>
+      <ownedRule xmi:id="_Vc9tARE9EeGOffqMW1YiZA" name="default_value" constrainedElement="_ZAuvEGveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_Vc9tAhE9EeGOffqMW1YiZA" annotatedElement="_Vc9tARE9EeGOffqMW1YiZA">
           <body>A defaultValue for port cannot be specified when the type of the Port is an Interface</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1o2OdwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vc9tAxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g1o2OtwbEeCT5O2F6sGn5g" general="_Jp_1oGveEdq4DLWZOhbdEA"/>
-      <ownedAttribute xmi:id="_g1o2O9wbEeCT5O2F6sGn5g" name="isBehavior" visibility="public">
-        <ownedComment xmi:id="_g1o2PNwbEeCT5O2F6sGn5g" annotatedElement="_g1o2O9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_Vc9tBBE9EeGOffqMW1YiZA" name="port_aggregation" constrainedElement="_ZAuvEGveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_Vc9tBRE9EeGOffqMW1YiZA" annotatedElement="_Vc9tBBE9EeGOffqMW1YiZA">
+          <body>Port.aggregation must be composite.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vc9tBhE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_Vc9tBxE9EeGOffqMW1YiZA" name="port_destroyed" constrainedElement="_ZAuvEGveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_Vc9tCBE9EeGOffqMW1YiZA" annotatedElement="_Vc9tBxE9EeGOffqMW1YiZA">
+          <body>When a port is destroyed, all connectors attached to this port will be destroyed also.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vc9tCRE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_Vc9tChE9EeGOffqMW1YiZA" general="_Jp_1oGveEdq4DLWZOhbdEA"/>
+      <ownedAttribute xmi:id="_Vc9tCxE9EeGOffqMW1YiZA" name="isBehavior" visibility="public">
+        <ownedComment xmi:id="_Vc9tDBE9EeGOffqMW1YiZA" annotatedElement="_Vc9tCxE9EeGOffqMW1YiZA">
           <body>Specifies whether requests arriving at this port are sent to the classifier behavior of this classifier. Such ports are referred to as behavior port. Any invocation of a behavioral feature targeted at a behavior port will be handled by the instance of the owning classifier itself, rather than by any instances that this classifier may contain.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g1o2PdwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_Vc9tDRE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1o2PtwbEeCT5O2F6sGn5g" name="isConjugated" visibility="public">
-        <ownedComment xmi:id="_g1o2P9wbEeCT5O2F6sGn5g" annotatedElement="_g1o2PtwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_Vc-UEBE9EeGOffqMW1YiZA" name="isConjugated" visibility="public">
+        <ownedComment xmi:id="_Vc-UERE9EeGOffqMW1YiZA" annotatedElement="_Vc-UEBE9EeGOffqMW1YiZA">
           <body>Specifies the way that the provided and required interfaces are derived from the Port’s Type. The default value is false.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g1o2QNwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_Vc-UEhE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1o2QdwbEeCT5O2F6sGn5g" name="isService" visibility="public">
-        <ownedComment xmi:id="_g1o2QtwbEeCT5O2F6sGn5g" annotatedElement="_g1o2QdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_Vc-UExE9EeGOffqMW1YiZA" name="isService" visibility="public">
+        <ownedComment xmi:id="_Vc-UFBE9EeGOffqMW1YiZA" annotatedElement="_Vc-UExE9EeGOffqMW1YiZA">
           <body>If true indicates that this port is used to provide the published functionality of a classifier; if false, this port is used to implement the classifier but is not part of the essential externally-visible functionality of the classifier and can, therefore, be altered or deleted along with the internal implementation of the classifier and other properties that are considered part of its implementation.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g1o2Q9wbEeCT5O2F6sGn5g" value="true"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_Vc-UFRE9EeGOffqMW1YiZA" value="true"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1o2RNwbEeCT5O2F6sGn5g" name="protocol" visibility="public" type="_g1xZENwbEeCT5O2F6sGn5g" association="_gyteCtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1o2RdwbEeCT5O2F6sGn5g" annotatedElement="_g1o2RNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_Vc-UFhE9EeGOffqMW1YiZA" name="protocol" visibility="public" type="_VdXVoBE9EeGOffqMW1YiZA" association="_VULkcBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vc-UFxE9EeGOffqMW1YiZA" annotatedElement="_Vc-UFhE9EeGOffqMW1YiZA">
           <body>References an optional protocol state machine which describes valid interactions at this interaction point.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1o2RtwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Vc-UGBE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1pdQNwbEeCT5O2F6sGn5g" name="provided" visibility="public" type="_8Ugn8GvtEdqG6fBIPwe-mw" isReadOnly="true" isDerived="true" association="_gyuFFNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1pdQdwbEeCT5O2F6sGn5g" annotatedElement="_g1pdQNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_Vc-UGRE9EeGOffqMW1YiZA" name="provided" visibility="public" type="_8Ugn8GvtEdqG6fBIPwe-mw" isReadOnly="true" isDerived="true" association="_VUMLgBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vc-UGhE9EeGOffqMW1YiZA" annotatedElement="_Vc-UGRE9EeGOffqMW1YiZA">
           <body>References the interfaces specifying the set of operations and receptions that the classifier offers to its environment via this port, and which it will handle either directly or by forwarding it to a part of its internal structure. This association is derived according to the value of isConjugated. If isConjugated is false, provided is derived as the union of the sets of interfaces realized by the type of the port and its supertypes, or directly from the type of the port if the port is typed by an interface. If isConjugated is true, it is derived as the union of the sets of interfaces used by the type of the port and its supertypes.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1pdQtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1pdQ9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Vc-UGxE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Vc-UHBE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1pdRNwbEeCT5O2F6sGn5g" name="redefinedPort" visibility="public" type="_ZAuvEGveEdq4DLWZOhbdEA" subsettedProperty="_g1uVwNwbEeCT5O2F6sGn5g" association="_gyxIYNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1pdRdwbEeCT5O2F6sGn5g" annotatedElement="_g1pdRNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_Vc-UHRE9EeGOffqMW1YiZA" name="redefinedPort" visibility="public" type="_ZAuvEGveEdq4DLWZOhbdEA" subsettedProperty="_VdIFEBE9EeGOffqMW1YiZA" association="_VUS5MBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vc-UHhE9EeGOffqMW1YiZA" annotatedElement="_Vc-UHRE9EeGOffqMW1YiZA">
           <body>A port may be redefined when its containing classifier is specialized. The redefining port may have additional interfaces to those that are associated with the redefined port or it may replace an interface by one of its subtypes.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1pdRtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1pdR9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Vc-UHxE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Vc-UIBE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1pdSNwbEeCT5O2F6sGn5g" name="required" visibility="public" type="_8Ugn8GvtEdqG6fBIPwe-mw" isReadOnly="true" isDerived="true" association="_gy0LtNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1pdSdwbEeCT5O2F6sGn5g" annotatedElement="_g1pdSNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_Vc-7IBE9EeGOffqMW1YiZA" name="required" visibility="public" type="_8Ugn8GvtEdqG6fBIPwe-mw" isReadOnly="true" isDerived="true" association="_VUcDJBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vc-7IRE9EeGOffqMW1YiZA" annotatedElement="_Vc-7IBE9EeGOffqMW1YiZA">
           <body>References the interfaces specifying the set of operations and receptions that the classifier expects its environment to handle via this port. This association is derived according to the value of isConjugated. If isConjugated is false, required is derived as the union of the sets of interfaces used by the type of the port and its supertypes. If isConjugated is true, it is derived as the union of the sets of interfaces realized by the type of the port and its supertypes, or directly from the type of the port if the port is typed by an interface.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1pdStwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1pdS9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Vc-7IhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Vc-7IxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedOperation xmi:id="_gtr8cFYhEdqB6vblk3tuMA" name="provided" visibility="public" bodyCondition="_g1pdTdwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1pdTNwbEeCT5O2F6sGn5g" annotatedElement="_gtr8cFYhEdqB6vblk3tuMA">
+      <ownedOperation xmi:id="_gtr8cFYhEdqB6vblk3tuMA" name="provided" visibility="public" bodyCondition="_Vc-7JRE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_Vc-7JBE9EeGOffqMW1YiZA" annotatedElement="_gtr8cFYhEdqB6vblk3tuMA">
           <body>Missing derivation for Port::/provided : Interface</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1pdTdwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_gtr8cFYhEdqB6vblk3tuMA _g1pdQNwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1pdTtwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_Vc-7JRE9EeGOffqMW1YiZA" name="spec" constrainedElement="_gtr8cFYhEdqB6vblk3tuMA _Vc-UGRE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vc-7JhE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>true</body>
           </specification>
         </ownedRule>
         <ownedParameter xmi:id="_jIqKEFYhEdqB6vblk3tuMA" name="result" visibility="public" type="_8Ugn8GvtEdqG6fBIPwe-mw" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1pdT9wbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1pdUNwbEeCT5O2F6sGn5g" value="*"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Vc-7JxE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Vc-7KBE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_mxt7cFYhEdqB6vblk3tuMA" name="required" visibility="public" bodyCondition="_g1qEUdwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1qEUNwbEeCT5O2F6sGn5g" annotatedElement="_mxt7cFYhEdqB6vblk3tuMA">
+      <ownedOperation xmi:id="_mxt7cFYhEdqB6vblk3tuMA" name="required" visibility="public" bodyCondition="_Vc_iMRE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_Vc_iMBE9EeGOffqMW1YiZA" annotatedElement="_mxt7cFYhEdqB6vblk3tuMA">
           <body>Missing derivation for Port::/required : Interface</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1qEUdwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_mxt7cFYhEdqB6vblk3tuMA _g1pdSNwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1qEUtwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_Vc_iMRE9EeGOffqMW1YiZA" name="spec" constrainedElement="_mxt7cFYhEdqB6vblk3tuMA _Vc-7IBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vc_iMhE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>true</body>
           </specification>
         </ownedRule>
         <ownedParameter xmi:id="_osMrIFYhEdqB6vblk3tuMA" name="result" visibility="public" type="_8Ugn8GvtEdqG6fBIPwe-mw" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1qEU9wbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1qEVNwbEeCT5O2F6sGn5g" value="*"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Vc_iMxE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Vc_iNBE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_V6vuYGwGEdq7X4sGURiZYA" name="PrimitiveType">
-      <ownedComment xmi:id="_g1qEVdwbEeCT5O2F6sGn5g" annotatedElement="_V6vuYGwGEdq7X4sGURiZYA">
+      <ownedComment xmi:id="_VdBXYBE9EeGOffqMW1YiZA" annotatedElement="_V6vuYGwGEdq7X4sGURiZYA">
         <body>A primitive type defines a predefined data type, without any relevant substructure (i.e., it has no parts in the context of UML). A primitive datatype may have an algebra and operations defined outside of UML, for example, mathematically.</body>
       </ownedComment>
-      <generalization xmi:id="_g1qrYNwbEeCT5O2F6sGn5g" general="__1ap4HLzEdqziYxiZo0YtA"/>
+      <generalization xmi:id="_VdBXYRE9EeGOffqMW1YiZA" general="__1ap4HLzEdqziYxiZo0YtA"/>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="__pew8GvzEdq7X4sGURiZYA" name="Profile">
-      <ownedComment xmi:id="_g1qrYdwbEeCT5O2F6sGn5g" annotatedElement="__pew8GvzEdq7X4sGURiZYA">
+      <ownedComment xmi:id="_VdB-cBE9EeGOffqMW1YiZA" annotatedElement="__pew8GvzEdq7X4sGURiZYA">
         <body>A profile defines limited extensions to a reference metamodel with the purpose of adapting the metamodel to a specific platform or domain.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g1qrYtwbEeCT5O2F6sGn5g" name="metaclass_reference_not_specialized" constrainedElement="__pew8GvzEdq7X4sGURiZYA">
-        <ownedComment xmi:id="_g1qrY9wbEeCT5O2F6sGn5g" annotatedElement="_g1qrYtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VdB-cRE9EeGOffqMW1YiZA" name="metaclass_reference_not_specialized" constrainedElement="__pew8GvzEdq7X4sGURiZYA">
+        <ownedComment xmi:id="_VdB-chE9EeGOffqMW1YiZA" annotatedElement="_VdB-cRE9EeGOffqMW1YiZA">
           <body>An element imported as a metaclassReference is not specialized or generalized in a Profile.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1qrZNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdB-cxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.metaclassReference.importedElement->
 	select(c | c.oclIsKindOf(Classifier) and
 		(c.generalization.namespace = self or	c.specialization.namespace = self))->isEmpty()</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g1qrZdwbEeCT5O2F6sGn5g" name="references_same_metamodel" constrainedElement="__pew8GvzEdq7X4sGURiZYA">
-        <ownedComment xmi:id="_g1qrZtwbEeCT5O2F6sGn5g" annotatedElement="_g1qrZdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VdB-dBE9EeGOffqMW1YiZA" name="references_same_metamodel" constrainedElement="__pew8GvzEdq7X4sGURiZYA">
+        <ownedComment xmi:id="_VdB-dRE9EeGOffqMW1YiZA" annotatedElement="_VdB-dBE9EeGOffqMW1YiZA">
           <body>All elements imported either as metaclassReferences or through metamodelReferences are members of the same base reference metamodel.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1qrZ9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdB-dhE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.metamodelReference.importedPackage.elementImport.importedElement.allOwningPackages()->
   union(self.metaclassReference.importedElement.allOwningPackages() )->notEmpty()</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g1qraNwbEeCT5O2F6sGn5g" general="_-cvRAGvzEdq7X4sGURiZYA"/>
-      <ownedAttribute xmi:id="_g1qradwbEeCT5O2F6sGn5g" name="metaclassReference" visibility="public" type="_RPl78GwIEdq7X4sGURiZYA" aggregation="composite" subsettedProperty="_g1S39dwbEeCT5O2F6sGn5g" association="_gyjtBNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1qratwbEeCT5O2F6sGn5g" annotatedElement="_g1qradwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VdB-dxE9EeGOffqMW1YiZA" general="_-cvRAGvzEdq7X4sGURiZYA"/>
+      <ownedAttribute xmi:id="_VdB-eBE9EeGOffqMW1YiZA" name="metaclassReference" visibility="public" type="_RPl78GwIEdq7X4sGURiZYA" aggregation="composite" subsettedProperty="_VarOABE9EeGOffqMW1YiZA" association="_VTx71BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdB-eRE9EeGOffqMW1YiZA" annotatedElement="_VdB-eBE9EeGOffqMW1YiZA">
           <body>References a metaclass that may be extended.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1qra9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1qrbNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VdB-ehE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VdB-exE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1qrbdwbEeCT5O2F6sGn5g" name="metamodelReference" visibility="public" type="_SnNPIGwIEdq7X4sGURiZYA" aggregation="composite" subsettedProperty="_g1TfBNwbEeCT5O2F6sGn5g" association="_gyjtB9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1qrbtwbEeCT5O2F6sGn5g" annotatedElement="_g1qrbdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VdClgBE9EeGOffqMW1YiZA" name="metamodelReference" visibility="public" type="_SnNPIGwIEdq7X4sGURiZYA" aggregation="composite" subsettedProperty="_Var1GBE9EeGOffqMW1YiZA" association="_VTyi4BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdClgRE9EeGOffqMW1YiZA" annotatedElement="_VdClgBE9EeGOffqMW1YiZA">
           <body>References a package containing (directly or indirectly) metaclasses that may be extended.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1qrb9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1qrcNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VdClghE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VdClgxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
       <ownedOperation xmi:id="_2QKPIGwJEdq7X4sGURiZYA" name="create">
         <ownedComment xmi:id="_QbUdUOwjEdqYHf-imTcTdw" annotatedElement="_2QKPIGwJEdq7X4sGURiZYA">
@@ -11612,26 +11615,26 @@
       </nestedClassifier>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_uY5yQGv5Edq7X4sGURiZYA" name="ProfileApplication">
-      <ownedComment xmi:id="_g1rScNwbEeCT5O2F6sGn5g" annotatedElement="_uY5yQGv5Edq7X4sGURiZYA">
+      <ownedComment xmi:id="_VdDMkBE9EeGOffqMW1YiZA" annotatedElement="_uY5yQGv5Edq7X4sGURiZYA">
         <body>A profile application is used to show which profiles have been applied to a package.</body>
       </ownedComment>
-      <generalization xmi:id="_g1rScdwbEeCT5O2F6sGn5g" general="_JBgfoKPAEdqi_5gqUMOQtA"/>
-      <ownedAttribute xmi:id="_g1rSctwbEeCT5O2F6sGn5g" name="appliedProfile" visibility="public" type="__pew8GvzEdq7X4sGURiZYA" subsettedProperty="_g0HzRNwbEeCT5O2F6sGn5g" association="_gySAQtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1rSc9wbEeCT5O2F6sGn5g" annotatedElement="_g1rSctwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VdDMkRE9EeGOffqMW1YiZA" general="_JBgfoKPAEdqi_5gqUMOQtA"/>
+      <ownedAttribute xmi:id="_VdDzoBE9EeGOffqMW1YiZA" name="appliedProfile" visibility="public" type="__pew8GvzEdq7X4sGURiZYA" subsettedProperty="_VY66iBE9EeGOffqMW1YiZA" association="_VS9cdBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdDzoRE9EeGOffqMW1YiZA" annotatedElement="_VdDzoBE9EeGOffqMW1YiZA">
           <body>References the Profiles that are applied to a Package through this ProfileApplication.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1rSdNwbEeCT5O2F6sGn5g" name="applyingPackage" visibility="public" type="_-cvRAGvzEdq7X4sGURiZYA" subsettedProperty="_g0HzQdwbEeCT5O2F6sGn5g _g0JodNwbEeCT5O2F6sGn5g" association="_gyteAdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1rSddwbEeCT5O2F6sGn5g" annotatedElement="_g1rSdNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VdDzohE9EeGOffqMW1YiZA" name="applyingPackage" visibility="public" type="_-cvRAGvzEdq7X4sGURiZYA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw _VY66hRE9EeGOffqMW1YiZA" association="_VUK9YBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdDzoxE9EeGOffqMW1YiZA" annotatedElement="_VdDzohE9EeGOffqMW1YiZA">
           <body>The package that owns the profile application.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1rSdtwbEeCT5O2F6sGn5g" name="isStrict" visibility="public">
-        <ownedComment xmi:id="_g1rSd9wbEeCT5O2F6sGn5g" annotatedElement="_g1rSdtwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VdDzpBE9EeGOffqMW1YiZA" name="isStrict" visibility="public">
+        <ownedComment xmi:id="_VdDzpRE9EeGOffqMW1YiZA" annotatedElement="_VdDzpBE9EeGOffqMW1YiZA">
           <body>Specifies that the Profile filtering rules for the metaclasses of the referenced metamodel shall be strictly applied.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g1rSeNwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VdDzphE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
       <ownedOperation xmi:id="_GXI1QW10EdqniMBnIUw7ig" name="getAppliedDefinition" isQuery="true">
         <ownedComment xmi:id="_ifO5QOwkEdqYHf-imTcTdw" annotatedElement="_GXI1QW10EdqniMBnIUw7ig">
@@ -11660,59 +11663,69 @@
       </ownedOperation>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_Jp_1oGveEdq4DLWZOhbdEA" name="Property">
-      <ownedComment xmi:id="_g1rSedwbEeCT5O2F6sGn5g" annotatedElement="_Jp_1oGveEdq4DLWZOhbdEA">
+      <ownedComment xmi:id="_VdDzpxE9EeGOffqMW1YiZA" annotatedElement="_Jp_1oGveEdq4DLWZOhbdEA">
         <body>Property represents a declared state of one or more instances in terms of a named relationship to a value or values. When a property is an attribute of a classifier, the value or values are related to the instance of the classifier by being held in slots of the instance. When a property is an association end, the value or values are related to the instance or instances at the other end(s) of the association. The range of valid values represented by the property can be controlled by setting the property's type.</body>
       </ownedComment>
-      <ownedComment xmi:id="_g1rSetwbEeCT5O2F6sGn5g" annotatedElement="_Jp_1oGveEdq4DLWZOhbdEA">
-        <body>A property has the capability of being a deployment target in a deployment relationship. This enables modeling the deployment to hierarchical nodes that have properties functioning as internal parts.</body>
-      </ownedComment>
-      <ownedComment xmi:id="_g1r5gNwbEeCT5O2F6sGn5g" annotatedElement="_Jp_1oGveEdq4DLWZOhbdEA">
-        <body>Property specializes ParameterableElement to specify that a property can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template.</body>
-      </ownedComment>
-      <ownedComment xmi:id="_g1r5gdwbEeCT5O2F6sGn5g" annotatedElement="_Jp_1oGveEdq4DLWZOhbdEA">
-        <body>A property represents a set of instances that are owned by a containing classifier instance.</body>
-      </ownedComment>
-      <ownedComment xmi:id="_g1r5gtwbEeCT5O2F6sGn5g" annotatedElement="_Jp_1oGveEdq4DLWZOhbdEA">
+      <ownedComment xmi:id="_VdEasBE9EeGOffqMW1YiZA" annotatedElement="_Jp_1oGveEdq4DLWZOhbdEA">
         <body>A property is a structural feature of a classifier that characterizes instances of the classifier. A property related by ownedAttribute to a classifier (other than an association) represents an attribute and might also represent an association end. It relates an instance of the class to a value or set of values of the type of the attribute. A property related by memberEnd or its specializations to an association represents an end of the association. The type of the property is the type of the end of the association.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g1r5g9wbEeCT5O2F6sGn5g" name="subsetting_context_conforms" constrainedElement="_Jp_1oGveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_g1r5hNwbEeCT5O2F6sGn5g" annotatedElement="_g1r5g9wbEeCT5O2F6sGn5g">
-          <body>Subsetting may only occur when the context of the subsetting property conforms to the context of the subsetted property.</body>
+      <ownedComment xmi:id="_VdEasRE9EeGOffqMW1YiZA" annotatedElement="_Jp_1oGveEdq4DLWZOhbdEA">
+        <body>A property has the capability of being a deployment target in a deployment relationship. This enables modeling the deployment to hierarchical nodes that have properties functioning as internal parts.</body>
+      </ownedComment>
+      <ownedComment xmi:id="_VdEashE9EeGOffqMW1YiZA" annotatedElement="_Jp_1oGveEdq4DLWZOhbdEA">
+        <body>Property specializes ParameterableElement to specify that a property can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template.</body>
+      </ownedComment>
+      <ownedComment xmi:id="_VdEasxE9EeGOffqMW1YiZA" annotatedElement="_Jp_1oGveEdq4DLWZOhbdEA">
+        <body>A property represents a set of instances that are owned by a containing classifier instance.</body>
+      </ownedComment>
+      <ownedRule xmi:id="_VdEatBE9EeGOffqMW1YiZA" name="subsetted_property_names" constrainedElement="_Jp_1oGveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VdEatRE9EeGOffqMW1YiZA" annotatedElement="_VdEatBE9EeGOffqMW1YiZA">
+          <body>A property may not subset a property with the same name.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1r5hdwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdEathE9EeGOffqMW1YiZA">
           <language>OCL</language>
-          <body>self.subsettedProperty->notEmpty() implies
-  (self.subsettingContext()->notEmpty() and self.subsettingContext()->forAll (sc |
-    self.subsettedProperty->forAll(sp |
-      sp.subsettingContext()->exists(c | sc.conformsTo(c)))))</body>
+          <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g1r5htwbEeCT5O2F6sGn5g" name="derived_union_is_read_only" constrainedElement="_Jp_1oGveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_g1r5h9wbEeCT5O2F6sGn5g" annotatedElement="_g1r5htwbEeCT5O2F6sGn5g">
-          <body>A derived union is read only.</body>
+      <ownedRule xmi:id="_VdEatxE9EeGOffqMW1YiZA" name="subsetting_rules" constrainedElement="_Jp_1oGveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VdEauBE9EeGOffqMW1YiZA" annotatedElement="_VdEatxE9EeGOffqMW1YiZA">
+          <body>A subsetting property may strengthen the type of the subsetted property, and its upper bound may be less.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1r5iNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdEauRE9EeGOffqMW1YiZA">
           <language>OCL</language>
-          <body>isDerivedUnion implies isReadOnly</body>
+          <body>self.subsettedProperty->forAll(sp |
+  self.type.conformsTo(sp.type) and
+    ((self.upperBound()->notEmpty() and sp.upperBound()->notEmpty()) implies
+      self.upperBound()&lt;=sp.upperBound() ))</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g1r5idwbEeCT5O2F6sGn5g" name="multiplicity_of_composite" constrainedElement="_Jp_1oGveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_g1r5itwbEeCT5O2F6sGn5g" annotatedElement="_g1r5idwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VdEauhE9EeGOffqMW1YiZA" name="multiplicity_of_composite" constrainedElement="_Jp_1oGveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VdEauxE9EeGOffqMW1YiZA" annotatedElement="_VdEauhE9EeGOffqMW1YiZA">
           <body>A multiplicity on an aggregate end of a composite aggregation must not have an upper bound greater than 1.</body>
         </ownedComment>
-        <ownedComment xmi:id="_g1r5i9wbEeCT5O2F6sGn5g" annotatedElement="_g1r5idwbEeCT5O2F6sGn5g">
+        <ownedComment xmi:id="_VdEavBE9EeGOffqMW1YiZA" annotatedElement="_VdEauhE9EeGOffqMW1YiZA">
           <body>A multiplicity of a composite aggregation must not have an upper bound greater than 1.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1r5jNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdEavRE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>isComposite implies (upperBound()->isEmpty() or upperBound() &lt;= 1)</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g1r5jdwbEeCT5O2F6sGn5g" name="redefined_property_inherited" constrainedElement="_Jp_1oGveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_g1r5jtwbEeCT5O2F6sGn5g" annotatedElement="_g1r5jdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VdEavhE9EeGOffqMW1YiZA" name="binding_to_attribute" constrainedElement="_Jp_1oGveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VdEavxE9EeGOffqMW1YiZA" annotatedElement="_VdEavhE9EeGOffqMW1YiZA">
+          <body>A binding of a property template parameter representing an attribute must be to an attribute.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdEawBE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>(isAttribute(self) and (templateParameterSubstitution->notEmpty())
+  implies (templateParameterSubstitution->forAll(ts | isAttribute(ts.formal)))</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VdFBwBE9EeGOffqMW1YiZA" name="redefined_property_inherited" constrainedElement="_Jp_1oGveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VdFBwRE9EeGOffqMW1YiZA" annotatedElement="_VdFBwBE9EeGOffqMW1YiZA">
           <body>A redefined property must be inherited from a more general classifier containing the redefining property.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1r5j9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdFBwhE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>if (redefinedProperty->notEmpty()) then
   (redefinitionContext->notEmpty() and
@@ -11721,186 +11734,179 @@
           fc.allParents()))->asSet())->collect(c| c.allFeatures())->asSet()->includes(rp))</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g1r5kNwbEeCT5O2F6sGn5g" name="subsetting_rules" constrainedElement="_Jp_1oGveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_g1r5kdwbEeCT5O2F6sGn5g" annotatedElement="_g1r5kNwbEeCT5O2F6sGn5g">
-          <body>A subsetting property may strengthen the type of the subsetted property, and its upper bound may be less.</body>
+      <ownedRule xmi:id="_VdFBwxE9EeGOffqMW1YiZA" name="subsetting_context_conforms" constrainedElement="_Jp_1oGveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VdFBxBE9EeGOffqMW1YiZA" annotatedElement="_VdFBwxE9EeGOffqMW1YiZA">
+          <body>Subsetting may only occur when the context of the subsetting property conforms to the context of the subsetted property.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1r5ktwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdFBxRE9EeGOffqMW1YiZA">
           <language>OCL</language>
-          <body>self.subsettedProperty->forAll(sp |
-  self.type.conformsTo(sp.type) and
-    ((self.upperBound()->notEmpty() and sp.upperBound()->notEmpty()) implies
-      self.upperBound()&lt;=sp.upperBound() ))</body>
+          <body>self.subsettedProperty->notEmpty() implies
+  (self.subsettingContext()->notEmpty() and self.subsettingContext()->forAll (sc |
+    self.subsettedProperty->forAll(sp |
+      sp.subsettingContext()->exists(c | sc.conformsTo(c)))))</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g1r5k9wbEeCT5O2F6sGn5g" name="binding_to_attribute" constrainedElement="_Jp_1oGveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_g1r5lNwbEeCT5O2F6sGn5g" annotatedElement="_g1r5k9wbEeCT5O2F6sGn5g">
-          <body>A binding of a property template parameter representing an attribute must be to an attribute.</body>
+      <ownedRule xmi:id="_VdFBxhE9EeGOffqMW1YiZA" name="deployment_target" constrainedElement="_Jp_1oGveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VdFBxxE9EeGOffqMW1YiZA" annotatedElement="_VdFBxhE9EeGOffqMW1YiZA">
+          <body>A Property can be a DeploymentTarget if it is a kind of Node and functions as a part in the internal structure of an encompassing Node.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1r5ldwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdFByBE9EeGOffqMW1YiZA">
           <language>OCL</language>
-          <body>(isAttribute(self) and (templateParameterSubstitution->notEmpty())
-  implies (templateParameterSubstitution->forAll(ts | isAttribute(ts.formal)))</body>
+          <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g1r5ltwbEeCT5O2F6sGn5g" name="derived_union_is_derived" constrainedElement="_Jp_1oGveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_g1r5l9wbEeCT5O2F6sGn5g" annotatedElement="_g1r5ltwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VdFByRE9EeGOffqMW1YiZA" name="derived_union_is_derived" constrainedElement="_Jp_1oGveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VdFByhE9EeGOffqMW1YiZA" annotatedElement="_VdFByRE9EeGOffqMW1YiZA">
           <body>A derived union is derived.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1r5mNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdFByxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>isDerivedUnion implies isDerived</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g1sgkNwbEeCT5O2F6sGn5g" name="deployment_target" constrainedElement="_Jp_1oGveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_g1sgkdwbEeCT5O2F6sGn5g" annotatedElement="_g1sgkNwbEeCT5O2F6sGn5g">
-          <body>A Property can be a DeploymentTarget if it is a kind of Node and functions as a part in the internal structure of an encompassing Node.</body>
+      <ownedRule xmi:id="_VdFBzBE9EeGOffqMW1YiZA" name="derived_union_is_read_only" constrainedElement="_Jp_1oGveEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_VdFBzRE9EeGOffqMW1YiZA" annotatedElement="_VdFBzBE9EeGOffqMW1YiZA">
+          <body>A derived union is read only.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1sgktwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdFBzhE9EeGOffqMW1YiZA">
           <language>OCL</language>
-          <body>true</body>
+          <body>isDerivedUnion implies isReadOnly</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g1sgk9wbEeCT5O2F6sGn5g" name="subsetted_property_names" constrainedElement="_Jp_1oGveEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_g1sglNwbEeCT5O2F6sGn5g" annotatedElement="_g1sgk9wbEeCT5O2F6sGn5g">
-          <body>A property may not subset a property with the same name.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1sgldwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <generalization xmi:id="_g1sgltwbEeCT5O2F6sGn5g" general="_0dB44PnhEdunWsS3se92JQ"/>
-      <generalization xmi:id="_g1sgl9wbEeCT5O2F6sGn5g" general="_PkmfgLLXEeCsYvaJqFFivQ"/>
-      <generalization xmi:id="_g1sgmNwbEeCT5O2F6sGn5g" general="_g2HXUNwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g1sgmdwbEeCT5O2F6sGn5g" name="aggregation" visibility="public" type="_B3q9cGwNEdq7X4sGURiZYA">
-        <ownedComment xmi:id="_g1sgmtwbEeCT5O2F6sGn5g" annotatedElement="_g1sgmdwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VdFBzxE9EeGOffqMW1YiZA" general="_Vef-EBE9EeGOffqMW1YiZA"/>
+      <generalization xmi:id="_VdFB0BE9EeGOffqMW1YiZA" general="_0dB44PnhEdunWsS3se92JQ"/>
+      <generalization xmi:id="_VdFo0BE9EeGOffqMW1YiZA" general="_PkmfgLLXEeCsYvaJqFFivQ"/>
+      <ownedAttribute xmi:id="_VdFo0RE9EeGOffqMW1YiZA" name="aggregation" visibility="public" type="_B3q9cGwNEdq7X4sGURiZYA">
+        <ownedComment xmi:id="_VdFo0hE9EeGOffqMW1YiZA" annotatedElement="_VdFo0RE9EeGOffqMW1YiZA">
           <body>Specifies the kind of aggregation that applies to the Property.</body>
         </ownedComment>
-        <defaultValue xmi:type="uml:InstanceValue" xmi:id="_g1sgm9wbEeCT5O2F6sGn5g" type="_B3q9cGwNEdq7X4sGURiZYA" instance="_g2cHcdwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:InstanceValue" xmi:id="_VdFo0xE9EeGOffqMW1YiZA" type="_B3q9cGwNEdq7X4sGURiZYA" instance="_VfL6kBE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1sgnNwbEeCT5O2F6sGn5g" name="association" visibility="public" type="_AwvxoGwNEdq7X4sGURiZYA" subsettedProperty="_gyjF9NwbEeCT5O2F6sGn5g" association="_gyjF8twbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1sgndwbEeCT5O2F6sGn5g" annotatedElement="_g1sgnNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VdFo1BE9EeGOffqMW1YiZA" name="association" visibility="public" type="_AwvxoGwNEdq7X4sGURiZYA" subsettedProperty="_VTwttRE9EeGOffqMW1YiZA" association="_VTwtsxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdFo1RE9EeGOffqMW1YiZA" annotatedElement="_VdFo1BE9EeGOffqMW1YiZA">
           <body>References the association of which this property is a member, if any.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1sgntwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VdFo1hE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1sgn9wbEeCT5O2F6sGn5g" name="associationEnd" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gyuFGNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1sgoNwbEeCT5O2F6sGn5g" annotatedElement="_g1sgn9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VdFo1xE9EeGOffqMW1YiZA" name="associationEnd" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VUMLhBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdFo2BE9EeGOffqMW1YiZA" annotatedElement="_VdFo1xE9EeGOffqMW1YiZA">
           <body>Designates the optional association end that owns a qualifier attribute.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1sgodwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VdFo2RE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_Ef_yMLa_EeCRxrN1JUGuxA" name="class" visibility="public" type="_00owUGvdEdq4DLWZOhbdEA" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA _gyolhdwbEeCT5O2F6sGn5g _gySnUNwbEeCT5O2F6sGn5g _YUdlwLbAEeCRxrN1JUGuxA _zYrE4La-EeCRxrN1JUGuxA" association="_gyn-fdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1sgo9wbEeCT5O2F6sGn5g" annotatedElement="_Ef_yMLa_EeCRxrN1JUGuxA">
+      <ownedAttribute xmi:id="_Ef_yMLa_EeCRxrN1JUGuxA" name="class" visibility="public" type="_00owUGvdEdq4DLWZOhbdEA" subsettedProperty="_VS-qlBE9EeGOffqMW1YiZA _VT_XNRE9EeGOffqMW1YiZA _1vzv0LbIEeCRxrN1JUGuxA _YUdlwLbAEeCRxrN1JUGuxA _zYrE4La-EeCRxrN1JUGuxA" association="_VT-wIxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdFo2hE9EeGOffqMW1YiZA" annotatedElement="_Ef_yMLa_EeCRxrN1JUGuxA">
           <body>References the Class that owns the Property.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1sgpNwbEeCT5O2F6sGn5g"/>
+        <ownedComment xmi:id="_VdFo2xE9EeGOffqMW1YiZA" annotatedElement="_Ef_yMLa_EeCRxrN1JUGuxA">
+          <body>References the Class that owns the Property.</body>
+        </ownedComment>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VdFo3BE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_06bWELa_EeCRxrN1JUGuxA" name="datatype" visibility="public" type="__1ap4HLzEdqziYxiZo0YtA" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA _gySnUNwbEeCT5O2F6sGn5g _YUdlwLbAEeCRxrN1JUGuxA _zYrE4La-EeCRxrN1JUGuxA" association="_gyn-ftwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1tHoNwbEeCT5O2F6sGn5g" annotatedElement="_06bWELa_EeCRxrN1JUGuxA">
+      <ownedAttribute xmi:id="_06bWELa_EeCRxrN1JUGuxA" name="datatype" visibility="public" type="__1ap4HLzEdqziYxiZo0YtA" subsettedProperty="_VS-qlBE9EeGOffqMW1YiZA _1vzv0LbIEeCRxrN1JUGuxA _YUdlwLbAEeCRxrN1JUGuxA _zYrE4La-EeCRxrN1JUGuxA" association="_VT-wJBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdGP4BE9EeGOffqMW1YiZA" annotatedElement="_06bWELa_EeCRxrN1JUGuxA">
           <body>The DataType that owns this Property.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1tHodwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VdGP4RE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
       <ownedAttribute xmi:id="_L_JWELG2EeCDe8CO90iVKQ" name="default" visibility="public" isDerived="true">
-        <ownedComment xmi:id="_g1tHotwbEeCT5O2F6sGn5g" annotatedElement="_L_JWELG2EeCDe8CO90iVKQ">
-          <body>A String that is evaluated to give a default value for the Property when an object of the owning Classifier is instantiated.</body>
-        </ownedComment>
-        <ownedComment xmi:id="_g1tHo9wbEeCT5O2F6sGn5g" annotatedElement="_L_JWELG2EeCDe8CO90iVKQ">
+        <ownedComment xmi:id="_VdGP4hE9EeGOffqMW1YiZA" annotatedElement="_L_JWELG2EeCDe8CO90iVKQ">
           <body>Specifies a String that represents a value to be used when no argument is supplied for the Property.</body>
         </ownedComment>
+        <ownedComment xmi:id="_VdGP4xE9EeGOffqMW1YiZA" annotatedElement="_L_JWELG2EeCDe8CO90iVKQ">
+          <body>A String that is evaluated to give a default value for the Property when an object of the owning Classifier is instantiated.</body>
+        </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1tHpNwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VdGP5BE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1tHpdwbEeCT5O2F6sGn5g" name="defaultValue" visibility="public" type="_g2YdENwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gyYG19wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1tHptwbEeCT5O2F6sGn5g" annotatedElement="_g1tHpdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VdG28BE9EeGOffqMW1YiZA" name="defaultValue" visibility="public" type="_VfGbABE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VTNUEBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdG28RE9EeGOffqMW1YiZA" annotatedElement="_VdG28BE9EeGOffqMW1YiZA">
           <body>A ValueSpecification that is evaluated to give a default value for the Property when an object of the owning Classifier is instantiated.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1tHp9wbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VdG28hE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_68HLsLa_EeCRxrN1JUGuxA" name="interface" visibility="public" type="_8Ugn8GvtEdqG6fBIPwe-mw" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA _gySnUNwbEeCT5O2F6sGn5g _YUdlwLbAEeCRxrN1JUGuxA _zYrE4La-EeCRxrN1JUGuxA" association="_gyn-f9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1tHqNwbEeCT5O2F6sGn5g" annotatedElement="_68HLsLa_EeCRxrN1JUGuxA">
+      <ownedAttribute xmi:id="_68HLsLa_EeCRxrN1JUGuxA" name="interface" visibility="public" type="_8Ugn8GvtEdqG6fBIPwe-mw" subsettedProperty="_VS-qlBE9EeGOffqMW1YiZA _1vzv0LbIEeCRxrN1JUGuxA _YUdlwLbAEeCRxrN1JUGuxA _zYrE4La-EeCRxrN1JUGuxA" association="_VT-wJRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdG28xE9EeGOffqMW1YiZA" annotatedElement="_68HLsLa_EeCRxrN1JUGuxA">
           <body>References the Interface that owns the Property</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1tHqdwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VdG29BE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1tusNwbEeCT5O2F6sGn5g" name="isComposite" visibility="public" isDerived="true">
-        <ownedComment xmi:id="_g1tusdwbEeCT5O2F6sGn5g" annotatedElement="_g1tusNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VdG29RE9EeGOffqMW1YiZA" name="isComposite" visibility="public" isDerived="true">
+        <ownedComment xmi:id="_VdG29hE9EeGOffqMW1YiZA" annotatedElement="_VdG29RE9EeGOffqMW1YiZA">
           <body>If isComposite is true, the object containing the attribute is a container for the object or value contained in the attribute.</body>
         </ownedComment>
-        <ownedComment xmi:id="_g1tustwbEeCT5O2F6sGn5g" annotatedElement="_g1tusNwbEeCT5O2F6sGn5g">
+        <ownedComment xmi:id="_VdG29xE9EeGOffqMW1YiZA" annotatedElement="_VdG29RE9EeGOffqMW1YiZA">
           <body>This is a derived value, indicating whether the aggregation of the Property is composite or not.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g1tus9wbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VdG2-BE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1tutNwbEeCT5O2F6sGn5g" name="isDerived" visibility="public">
-        <ownedComment xmi:id="_g1tutdwbEeCT5O2F6sGn5g" annotatedElement="_g1tutNwbEeCT5O2F6sGn5g">
-          <body>Specifies whether the Property is derived, i.e., whether its value or values can be computed from other information.</body>
-        </ownedComment>
-        <ownedComment xmi:id="_g1tuttwbEeCT5O2F6sGn5g" annotatedElement="_g1tutNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VdG2-RE9EeGOffqMW1YiZA" name="isDerived" visibility="public">
+        <ownedComment xmi:id="_VdG2-hE9EeGOffqMW1YiZA" annotatedElement="_VdG2-RE9EeGOffqMW1YiZA">
           <body>If isDerived is true, the value of the attribute is derived from information elsewhere.</body>
         </ownedComment>
+        <ownedComment xmi:id="_VdG2-xE9EeGOffqMW1YiZA" annotatedElement="_VdG2-RE9EeGOffqMW1YiZA">
+          <body>Specifies whether the Property is derived, i.e., whether its value or values can be computed from other information.</body>
+        </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g1tut9wbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VdG2_BE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1tuuNwbEeCT5O2F6sGn5g" name="isDerivedUnion" visibility="public">
-        <ownedComment xmi:id="_g1tuudwbEeCT5O2F6sGn5g" annotatedElement="_g1tuuNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VdHeABE9EeGOffqMW1YiZA" name="isDerivedUnion" visibility="public">
+        <ownedComment xmi:id="_VdHeARE9EeGOffqMW1YiZA" annotatedElement="_VdHeABE9EeGOffqMW1YiZA">
           <body>Specifies whether the property is derived as the union of all of the properties that are constrained to subset it.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g1tuutwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VdHeAhE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1tuu9wbEeCT5O2F6sGn5g" name="isID" visibility="public">
-        <ownedComment xmi:id="_g1tuvNwbEeCT5O2F6sGn5g" annotatedElement="_g1tuu9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VdHeAxE9EeGOffqMW1YiZA" name="isID" visibility="public">
+        <ownedComment xmi:id="_VdHeBBE9EeGOffqMW1YiZA" annotatedElement="_VdHeAxE9EeGOffqMW1YiZA">
           <body>True indicates this property can be used to uniquely identify an instance of the containing Class.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g1tuvdwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VdHeBRE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1tuvtwbEeCT5O2F6sGn5g" name="isReadOnly" visibility="public" redefinedProperty="_g2HXVtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1tuv9wbEeCT5O2F6sGn5g" annotatedElement="_g1tuvtwbEeCT5O2F6sGn5g">
-          <body>If isReadOnly is true, the attribute may not be written to after initialization.</body>
-        </ownedComment>
-        <ownedComment xmi:id="_g1tuwNwbEeCT5O2F6sGn5g" annotatedElement="_g1tuvtwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VdHeBhE9EeGOffqMW1YiZA" name="isReadOnly" visibility="public" redefinedProperty="_Vef-FhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdHeBxE9EeGOffqMW1YiZA" annotatedElement="_VdHeBhE9EeGOffqMW1YiZA">
           <body>If true, the attribute may only be read, and not written.</body>
         </ownedComment>
+        <ownedComment xmi:id="_VdHeCBE9EeGOffqMW1YiZA" annotatedElement="_VdHeBhE9EeGOffqMW1YiZA">
+          <body>If isReadOnly is true, the attribute may not be written to after initialization.</body>
+        </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g1tuwdwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VdHeCRE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1tuwtwbEeCT5O2F6sGn5g" name="opposite" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" isDerived="true" association="_gynXadwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1tuw9wbEeCT5O2F6sGn5g" annotatedElement="_g1tuwtwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VdHeChE9EeGOffqMW1YiZA" name="opposite" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" isDerived="true" association="_VT9iABE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdHeCxE9EeGOffqMW1YiZA" annotatedElement="_VdHeChE9EeGOffqMW1YiZA">
           <body>In the case where the property is one navigable end of a binary association with both ends navigable, this gives the other end.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1tuxNwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VdHeDBE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1tuxdwbEeCT5O2F6sGn5g" name="owningAssociation" visibility="public" type="_AwvxoGwNEdq7X4sGURiZYA" subsettedProperty="_YUdlwLbAEeCRxrN1JUGuxA _1vzv0LbIEeCRxrN1JUGuxA _g1sgnNwbEeCT5O2F6sGn5g _zYrE4La-EeCRxrN1JUGuxA" association="_gypMl9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1tuxtwbEeCT5O2F6sGn5g" annotatedElement="_g1tuxdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VdHeDRE9EeGOffqMW1YiZA" name="owningAssociation" visibility="public" type="_AwvxoGwNEdq7X4sGURiZYA" subsettedProperty="_YUdlwLbAEeCRxrN1JUGuxA _zYrE4La-EeCRxrN1JUGuxA _1vzv0LbIEeCRxrN1JUGuxA _VdFo1BE9EeGOffqMW1YiZA" association="_VUAlVhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdHeDhE9EeGOffqMW1YiZA" annotatedElement="_VdHeDRE9EeGOffqMW1YiZA">
           <body>References the owning association of this property, if any.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1tux9wbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VdHeDxE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1tuyNwbEeCT5O2F6sGn5g" name="qualifier" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gyuFGNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1tuydwbEeCT5O2F6sGn5g" annotatedElement="_g1tuyNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VdHeEBE9EeGOffqMW1YiZA" name="qualifier" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VUMLhBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdHeERE9EeGOffqMW1YiZA" annotatedElement="_VdHeEBE9EeGOffqMW1YiZA">
           <body>An optional list of ordered qualifier attributes for the end. If the list is empty, then the Association is not qualified.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1tuytwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1tuy9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VdHeEhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VdHeExE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1uVwNwbEeCT5O2F6sGn5g" name="redefinedProperty" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" subsettedProperty="_g15U7twbEeCT5O2F6sGn5g" association="_gyxIZNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1uVwdwbEeCT5O2F6sGn5g" annotatedElement="_g1uVwNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VdIFEBE9EeGOffqMW1YiZA" name="redefinedProperty" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" subsettedProperty="_VdtT4BE9EeGOffqMW1YiZA" association="_VUV8gBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdIFERE9EeGOffqMW1YiZA" annotatedElement="_VdIFEBE9EeGOffqMW1YiZA">
           <body>References the properties that are redefined by this property.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1uVwtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1uVw9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VdIFEhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VdIFExE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1uVxNwbEeCT5O2F6sGn5g" name="subsettedProperty" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" association="_gy7gddwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1uVxdwbEeCT5O2F6sGn5g" annotatedElement="_g1uVxNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VdIFFBE9EeGOffqMW1YiZA" name="subsettedProperty" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" association="_VUnpVBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdIFFRE9EeGOffqMW1YiZA" annotatedElement="_VdIFFBE9EeGOffqMW1YiZA">
           <body>References the properties of which this property is constrained to be a subset.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1uVxtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1uVx9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VdIFFhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VdIFFxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
       <ownedOperation xmi:id="_bAUx8K6-EdqjppZik4kD8A" name="getOtherEnd">
         <ownedComment xmi:id="__u7VUOweEdqYHf-imTcTdw" annotatedElement="_bAUx8K6-EdqjppZik4kD8A">
@@ -12001,78 +12007,81 @@
         </ownedParameter>
       </ownedOperation>
       <ownedOperation xmi:id="_kGtosGXCEdqEJs8umHJc9g" name="unsetDefault" visibility="protected"/>
-      <ownedOperation xmi:id="_oLamMFYJEdqrn7iZ0eqieg" name="default" visibility="public" bodyCondition="_g1uVydwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1uVyNwbEeCT5O2F6sGn5g" annotatedElement="_oLamMFYJEdqrn7iZ0eqieg">
+      <ownedOperation xmi:id="_oLamMFYJEdqrn7iZ0eqieg" name="default" visibility="public" bodyCondition="_VdIFGRE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VdIFGBE9EeGOffqMW1YiZA" annotatedElement="_oLamMFYJEdqrn7iZ0eqieg">
           <body>Missing derivation for Property::/default : String</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1uVydwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_oLamMFYJEdqrn7iZ0eqieg _L_JWELG2EeCDe8CO90iVKQ">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1uVytwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VdIFGRE9EeGOffqMW1YiZA" name="spec" constrainedElement="_oLamMFYJEdqrn7iZ0eqieg _L_JWELG2EeCDe8CO90iVKQ">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdIFGhE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>true</body>
           </specification>
         </ownedRule>
         <ownedParameter xmi:id="_vkrSwFYJEdqrn7iZ0eqieg" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1uVy9wbEeCT5O2F6sGn5g"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VdIFGxE9EeGOffqMW1YiZA"/>
           <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_uJsjsVYjEdqB6vblk3tuMA" value="1"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1u80NwbEeCT5O2F6sGn5g" name="isAttribute" visibility="public" bodyCondition="_g1u80twbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1u80dwbEeCT5O2F6sGn5g" annotatedElement="_g1u80NwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VdIsIBE9EeGOffqMW1YiZA" name="isAttribute" visibility="public" bodyCondition="_VdIsIhE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VdIsIRE9EeGOffqMW1YiZA" annotatedElement="_VdIsIBE9EeGOffqMW1YiZA">
           <body>The query isAttribute() is true if the Property is defined as an attribute of some classifier.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1u80twbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1u80NwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1u809wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VdIsIhE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VdIsIBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdIsIxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = Classifier.allInstances->exists(c | c.attribute->includes(p))</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1u81NwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VdIsJBE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
-        <ownedParameter xmi:id="_g1u81dwbEeCT5O2F6sGn5g" name="p" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA"/>
+        <ownedParameter xmi:id="_VdIsJRE9EeGOffqMW1YiZA" name="p" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA"/>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1u81twbEeCT5O2F6sGn5g" name="isCompatibleWith" visibility="public" bodyCondition="_g1u82NwbEeCT5O2F6sGn5g" isQuery="true" redefinedOperation="_g1noGdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1u819wbEeCT5O2F6sGn5g" annotatedElement="_g1u81twbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VdJTMBE9EeGOffqMW1YiZA" name="isCompatibleWith" visibility="public" bodyCondition="_VdJTMhE9EeGOffqMW1YiZA" isQuery="true" redefinedOperation="_Vc732RE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdJTMRE9EeGOffqMW1YiZA" annotatedElement="_VdJTMBE9EeGOffqMW1YiZA">
           <body>The query isCompatibleWith() determines if this parameterable element is compatible with the specified parameterable element. By default parameterable element P is compatible with parameterable element Q if the kind of P is the same or a subtype as the kind of Q. In addition, for properties, the type must be conformant with the type of the specified parameterable element.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1u82NwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1u81twbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1u82dwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VdJTMhE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VdJTMBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdJTMxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = p->oclIsKindOf(self.oclType) and self.type.conformsTo(p.oclAsType(TypedElement).type)</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1u82twbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VdJTNBE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
-        <ownedParameter xmi:id="_g1u829wbEeCT5O2F6sGn5g" name="p" visibility="public" type="_g1noENwbEeCT5O2F6sGn5g"/>
+        <ownedParameter xmi:id="_VdJTNRE9EeGOffqMW1YiZA" name="p" visibility="public" type="_Vc730BE9EeGOffqMW1YiZA"/>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1u83NwbEeCT5O2F6sGn5g" name="isComposite" visibility="public" bodyCondition="_g1u83twbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1u83dwbEeCT5O2F6sGn5g" annotatedElement="_g1u83NwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VdJTNhE9EeGOffqMW1YiZA" name="isComposite" visibility="public" bodyCondition="_VdJTOBE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VdJTNxE9EeGOffqMW1YiZA" annotatedElement="_VdJTNhE9EeGOffqMW1YiZA">
           <body>The value of isComposite is true only if aggregation is composite.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1u83twbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1u83NwbEeCT5O2F6sGn5g _g1tusNwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1u839wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VdJTOBE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VdJTNhE9EeGOffqMW1YiZA _VdG29RE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdJTORE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = (self.aggregation = #composite)</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1u84NwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VdJTOhE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1u84dwbEeCT5O2F6sGn5g" name="isConsistentWith" visibility="public" bodyCondition="_g1u85twbEeCT5O2F6sGn5g" isQuery="true" precondition="_g1u85NwbEeCT5O2F6sGn5g" redefinedOperation="_g1578NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1u849wbEeCT5O2F6sGn5g" annotatedElement="_g1u84dwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VdJTOxE9EeGOffqMW1YiZA" name="isConsistentWith" visibility="public" bodyCondition="_VdJTQBE9EeGOffqMW1YiZA" isQuery="true" precondition="_VdJTPhE9EeGOffqMW1YiZA" redefinedOperation="_Vd1PsBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdJTPBE9EeGOffqMW1YiZA" annotatedElement="_VdJTOxE9EeGOffqMW1YiZA">
+          <body>The query isConsistentWith() specifies, for any two Properties in a context in which redefinition is possible, whether redefinition would be logically consistent. A redefining property is consistent with a redefined property if the type of the redefining property conforms to the type of the redefined property, the multiplicity of the redefining property (if specified) is contained in the multiplicity of the redefined property.</body>
+        </ownedComment>
+        <ownedComment xmi:id="_VdJTPRE9EeGOffqMW1YiZA" annotatedElement="_VdJTOxE9EeGOffqMW1YiZA">
           <body>The query isConsistentWith() specifies, for any two Properties in a context in which redefinition is possible, whether redefinition would be logically consistent. A redefining property is consistent with a redefined property if the type of the redefining property conforms to the type of the redefined property, and the multiplicity of the redefining property (if specified) is contained in the multiplicity of the redefined property.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1u85NwbEeCT5O2F6sGn5g" name="pre" constrainedElement="_g1u84dwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1u85dwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VdJTPhE9EeGOffqMW1YiZA" name="pre" constrainedElement="_VdJTOxE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdJTPxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>redefinee.isRedefinitionContextValid(self)</body>
           </specification>
         </ownedRule>
-        <ownedRule xmi:id="_g1u85twbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1u84dwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1u859wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VdJTQBE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VdJTOxE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdJTQRE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = redefinee.oclIsKindOf(Property) and 
   let prop : Property = redefinee.oclAsType(Property) in 
@@ -12082,31 +12091,31 @@
   (self.isComposite implies prop.isComposite))</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1u86NwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VdJTQhE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
-        <ownedParameter xmi:id="_g1u86dwbEeCT5O2F6sGn5g" name="redefinee" visibility="public" type="_uCRA4La-EeCRxrN1JUGuxA"/>
+        <ownedParameter xmi:id="_VdJTQxE9EeGOffqMW1YiZA" name="redefinee" visibility="public" type="_uCRA4La-EeCRxrN1JUGuxA"/>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1u86twbEeCT5O2F6sGn5g" name="isNavigable" visibility="public" bodyCondition="_g1u87NwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1u869wbEeCT5O2F6sGn5g" annotatedElement="_g1u86twbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VdJTRBE9EeGOffqMW1YiZA" name="isNavigable" visibility="public" bodyCondition="_VdJ6QRE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VdJ6QBE9EeGOffqMW1YiZA" annotatedElement="_VdJTRBE9EeGOffqMW1YiZA">
           <body>The query isNavigable() indicates whether it is possible to navigate across the property.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1u87NwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1u86twbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1vj4NwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VdJ6QRE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VdJTRBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdJ6QhE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = not classifier->isEmpty() or association.owningAssociation.navigableOwnedEnd->includes(self)</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1vj4dwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VdJ6QxE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_meukALL6EeCBifIhhuFqZA" name="opposite" visibility="public" bodyCondition="_g1vj49wbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1vj4twbEeCT5O2F6sGn5g" annotatedElement="_meukALL6EeCBifIhhuFqZA">
+      <ownedOperation xmi:id="_meukALL6EeCBifIhhuFqZA" name="opposite" visibility="public" bodyCondition="_VdQn8RE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VdQn8BE9EeGOffqMW1YiZA" annotatedElement="_meukALL6EeCBifIhhuFqZA">
           <body>If this property is owned by a class, associated with a binary association, and the other end of the association is also owned by a class, then opposite gives the other end.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1vj49wbEeCT5O2F6sGn5g" name="spec" constrainedElement="_meukALL6EeCBifIhhuFqZA _g1tuwtwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1vj5NwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VdQn8RE9EeGOffqMW1YiZA" name="spec" constrainedElement="_meukALL6EeCBifIhhuFqZA _VdHeChE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdQn8hE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = if owningAssociation->isEmpty() and association.memberEnd->size() = 2
   then
@@ -12120,12 +12129,12 @@
           <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_s9sLgbL6EeCBifIhhuFqZA"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g1vj5dwbEeCT5O2F6sGn5g" name="subsettingContext" visibility="public" bodyCondition="_g1vj59wbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1vj5twbEeCT5O2F6sGn5g" annotatedElement="_g1vj5dwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VdRPABE9EeGOffqMW1YiZA" name="subsettingContext" visibility="public" bodyCondition="_VdRPAhE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VdRPARE9EeGOffqMW1YiZA" annotatedElement="_VdRPABE9EeGOffqMW1YiZA">
           <body>The query subsettingContext() gives the context for subsetting a property. It consists, in the case of an attribute, of the corresponding classifier, and in the case of an association end, all of the classifiers at the other ends.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1vj59wbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1vj5dwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1vj6NwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VdRPAhE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VdRPABE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdRPAxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = if association->notEmpty()
 then association.endType-type
@@ -12133,438 +12142,438 @@
 endif</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1vj6dwbEeCT5O2F6sGn5g" name="result" visibility="public" type="_ynRtoGvtEdqG6fBIPwe-mw" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1vj6twbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1vj69wbEeCT5O2F6sGn5g" value="*"/>
+        <ownedParameter xmi:id="_VdRPBBE9EeGOffqMW1YiZA" name="result" visibility="public" type="_ynRtoGvtEdqG6fBIPwe-mw" direction="return">
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VdRPBRE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VdRPBhE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g1wyANwbEeCT5O2F6sGn5g" name="ProtocolConformance">
-      <ownedComment xmi:id="_g1wyAdwbEeCT5O2F6sGn5g" annotatedElement="_g1wyANwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VdWHgBE9EeGOffqMW1YiZA" name="ProtocolConformance">
+      <ownedComment xmi:id="_VdWHgRE9EeGOffqMW1YiZA" annotatedElement="_VdWHgBE9EeGOffqMW1YiZA">
         <body>Protocol state machines can be redefined into more specific protocol state machines, or into behavioral state machines. Protocol conformance declares that the specific protocol state machine specifies a protocol that conforms to the general state machine one, or that the specific behavioral state machine abide by the protocol of the general protocol state machine.</body>
       </ownedComment>
-      <generalization xmi:id="_g1wyAtwbEeCT5O2F6sGn5g" general="_JBgfoKPAEdqi_5gqUMOQtA"/>
-      <ownedAttribute xmi:id="_g1wyA9wbEeCT5O2F6sGn5g" name="generalMachine" visibility="public" type="_g1xZENwbEeCT5O2F6sGn5g" subsettedProperty="_g0HzRNwbEeCT5O2F6sGn5g" association="_gydmadwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1wyBNwbEeCT5O2F6sGn5g" annotatedElement="_g1wyA9wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VdWHghE9EeGOffqMW1YiZA" general="_JBgfoKPAEdqi_5gqUMOQtA"/>
+      <ownedAttribute xmi:id="_VdWHgxE9EeGOffqMW1YiZA" name="generalMachine" visibility="public" type="_VdXVoBE9EeGOffqMW1YiZA" subsettedProperty="_VY66iBE9EeGOffqMW1YiZA" association="_VTj5YBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdWHhBE9EeGOffqMW1YiZA" annotatedElement="_VdWHgxE9EeGOffqMW1YiZA">
           <body>Specifies the protocol state machine to which the specific state machine conforms.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1wyBdwbEeCT5O2F6sGn5g" name="specificMachine" visibility="public" type="_g1xZENwbEeCT5O2F6sGn5g" subsettedProperty="_g0HzQdwbEeCT5O2F6sGn5g _g0JodNwbEeCT5O2F6sGn5g" association="_gyVql9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1wyBtwbEeCT5O2F6sGn5g" annotatedElement="_g1wyBdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VdWHhRE9EeGOffqMW1YiZA" name="specificMachine" visibility="public" type="_VdXVoBE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw _VY66hRE9EeGOffqMW1YiZA" association="_VTF_VBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdWHhhE9EeGOffqMW1YiZA" annotatedElement="_VdWHhRE9EeGOffqMW1YiZA">
           <body>Specifies the state machine which conforms to the general state machine.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g1xZENwbEeCT5O2F6sGn5g" name="ProtocolStateMachine">
-      <ownedComment xmi:id="_g1xZEdwbEeCT5O2F6sGn5g" annotatedElement="_g1xZENwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VdXVoBE9EeGOffqMW1YiZA" name="ProtocolStateMachine">
+      <ownedComment xmi:id="_VdXVoRE9EeGOffqMW1YiZA" annotatedElement="_VdXVoBE9EeGOffqMW1YiZA">
         <body>A protocol state machine is always defined in the context of a classifier. It specifies which operations of the classifier can be called in which state and under which condition, thus specifying the allowed call sequences on the classifier's operations. A protocol state machine presents the possible and permitted transitions on the instances of its context classifier, together with the operations which carry the transitions. In this manner, an instance lifecycle can be created for a classifier, by specifying the order in which the operations can be activated and the states through which an instance progresses during its existence.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g1xZEtwbEeCT5O2F6sGn5g" name="classifier_context" constrainedElement="_g1xZENwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1xZE9wbEeCT5O2F6sGn5g" annotatedElement="_g1xZEtwbEeCT5O2F6sGn5g">
-          <body>A protocol state machine must only have a classifier context, not a behavioral feature context.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1xZFNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>(not context->isEmpty( )) and specification->isEmpty()</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g1xZFdwbEeCT5O2F6sGn5g" name="deep_or_shallow_history" constrainedElement="_g1xZENwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1xZFtwbEeCT5O2F6sGn5g" annotatedElement="_g1xZFdwbEeCT5O2F6sGn5g">
-          <body>Protocol state machines cannot have deep or shallow history pseudostates.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1xZF9wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>region->forAll (r | r.subvertex->forAll (v | v.oclIsKindOf(Psuedostate) implies
-((v.kind &lt;> #deepHistory) and (v.kind &lt;> #shallowHistory)))))
-</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g1xZGNwbEeCT5O2F6sGn5g" name="entry_exit_do" constrainedElement="_g1xZENwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1xZGdwbEeCT5O2F6sGn5g" annotatedElement="_g1xZGNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VdXVohE9EeGOffqMW1YiZA" name="entry_exit_do" constrainedElement="_VdXVoBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdXVoxE9EeGOffqMW1YiZA" annotatedElement="_VdXVohE9EeGOffqMW1YiZA">
           <body>The states of a protocol state machine cannot have entry, exit, or do activity actions.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1xZGtwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdXVpBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>region->forAll(r | r.subvertex->forAll(v | v.oclIsKindOf(State) implies
 (v.entry->isEmpty() and v.exit->isEmpty() and v.doActivity->isEmpty())))
 </body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g1xZG9wbEeCT5O2F6sGn5g" name="ports_connected" constrainedElement="_g1xZENwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1xZHNwbEeCT5O2F6sGn5g" annotatedElement="_g1xZG9wbEeCT5O2F6sGn5g">
-          <body>If two ports are connected, then the protocol state machine of the required interface (if defined) must be conformant to the protocol state machine of the provided interface (if defined).</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1xZHdwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g1xZHtwbEeCT5O2F6sGn5g" name="protocol_transitions" constrainedElement="_g1xZENwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1xZH9wbEeCT5O2F6sGn5g" annotatedElement="_g1xZHtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VdXVpRE9EeGOffqMW1YiZA" name="protocol_transitions" constrainedElement="_VdXVoBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdXVphE9EeGOffqMW1YiZA" annotatedElement="_VdXVpRE9EeGOffqMW1YiZA">
           <body>All transitions of a protocol state machine must be protocol transitions. (transitions as extended by the ProtocolStateMachines package)</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1xZINwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdXVpxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>region->forAll(r | r.transition->forAll(t | t.oclIsTypeOf(ProtocolTransition)))</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g1xZIdwbEeCT5O2F6sGn5g" general="_g2EUANwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g1xZItwbEeCT5O2F6sGn5g" name="conformance" visibility="public" type="_g1wyANwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g _gy5rStwbEeCT5O2F6sGn5g" association="_gyVql9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1xZI9wbEeCT5O2F6sGn5g" annotatedElement="_g1xZItwbEeCT5O2F6sGn5g">
-          <body>Conformance between protocol state machines.</body>
+      <ownedRule xmi:id="_VdXVqBE9EeGOffqMW1YiZA" name="deep_or_shallow_history" constrainedElement="_VdXVoBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdXVqRE9EeGOffqMW1YiZA" annotatedElement="_VdXVqBE9EeGOffqMW1YiZA">
+          <body>Protocol state machines cannot have deep or shallow history pseudostates.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1xZJNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1xZJdwbEeCT5O2F6sGn5g" value="*"/>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_Dtp8ULL7EeCBifIhhuFqZA" name="ProtocolTransition">
-      <ownedComment xmi:id="_g1xZJtwbEeCT5O2F6sGn5g" annotatedElement="_Dtp8ULL7EeCBifIhhuFqZA">
-        <body>A protocol transition specifies a legal transition for an operation. Transitions of protocol state machines have the following information: a pre condition (guard), on trigger, and a post condition. Every protocol transition is associated to zero or one operation (referred BehavioralFeature) that belongs to the context classifier of the protocol state machine.</body>
-      </ownedComment>
-      <ownedRule xmi:id="_g1xZJ9wbEeCT5O2F6sGn5g" name="refers_to_operation" constrainedElement="_Dtp8ULL7EeCBifIhhuFqZA">
-        <ownedComment xmi:id="_g1xZKNwbEeCT5O2F6sGn5g" annotatedElement="_g1xZJ9wbEeCT5O2F6sGn5g">
-          <body>If a protocol transition refers to an operation (i. e. has a call trigger corresponding to an operation), then that operation should apply to the context classifier of the state machine of the protocol transition.</body>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdXVqhE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>region->forAll (r | r.subvertex->forAll (v | v.oclIsKindOf(Psuedostate) implies
+((v.kind &lt;> #deepHistory) and (v.kind &lt;> #shallowHistory)))))
+</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VdXVqxE9EeGOffqMW1YiZA" name="classifier_context" constrainedElement="_VdXVoBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdXVrBE9EeGOffqMW1YiZA" annotatedElement="_VdXVqxE9EeGOffqMW1YiZA">
+          <body>A protocol state machine must only have a classifier context, not a behavioral feature context.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1xZKdwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdXVrRE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>(not context->isEmpty( )) and specification->isEmpty()</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VdXVrhE9EeGOffqMW1YiZA" name="ports_connected" constrainedElement="_VdXVoBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdXVrxE9EeGOffqMW1YiZA" annotatedElement="_VdXVrhE9EeGOffqMW1YiZA">
+          <body>If two ports are connected, then the protocol state machine of the required interface (if defined) must be conformant to the protocol state machine of the provided interface (if defined).</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdXVsBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g1xZKtwbEeCT5O2F6sGn5g" name="associated_actions" constrainedElement="_Dtp8ULL7EeCBifIhhuFqZA">
-        <ownedComment xmi:id="_g1xZK9wbEeCT5O2F6sGn5g" annotatedElement="_g1xZKtwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VdXVsRE9EeGOffqMW1YiZA" general="_VeWNEBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VdXVshE9EeGOffqMW1YiZA" name="conformance" visibility="public" type="_VdWHgBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VUkmBhE9EeGOffqMW1YiZA _GDD2YAtAEeGcpbeCPJfCmw" association="_VTF_VBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdXVsxE9EeGOffqMW1YiZA" annotatedElement="_VdXVshE9EeGOffqMW1YiZA">
+          <body>Conformance between protocol state machines.</body>
+        </ownedComment>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VdXVtBE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VdXVtRE9EeGOffqMW1YiZA" value="*"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Class" xmi:id="_Dtp8ULL7EeCBifIhhuFqZA" name="ProtocolTransition">
+      <ownedComment xmi:id="_VdXVthE9EeGOffqMW1YiZA" annotatedElement="_Dtp8ULL7EeCBifIhhuFqZA">
+        <body>A protocol transition specifies a legal transition for an operation. Transitions of protocol state machines have the following information: a pre condition (guard), on trigger, and a post condition. Every protocol transition is associated to zero or one operation (referred BehavioralFeature) that belongs to the context classifier of the protocol state machine.</body>
+      </ownedComment>
+      <ownedRule xmi:id="_VdX8sBE9EeGOffqMW1YiZA" name="refers_to_operation" constrainedElement="_Dtp8ULL7EeCBifIhhuFqZA">
+        <ownedComment xmi:id="_VdX8sRE9EeGOffqMW1YiZA" annotatedElement="_VdX8sBE9EeGOffqMW1YiZA">
+          <body>If a protocol transition refers to an operation (i. e. has a call trigger corresponding to an operation), then that operation should apply to the context classifier of the state machine of the protocol transition.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdX8shE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VdX8sxE9EeGOffqMW1YiZA" name="associated_actions" constrainedElement="_Dtp8ULL7EeCBifIhhuFqZA">
+        <ownedComment xmi:id="_VdX8tBE9EeGOffqMW1YiZA" annotatedElement="_VdX8sxE9EeGOffqMW1YiZA">
           <body>A protocol transition never has associated actions.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1xZLNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdX8tRE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>effect->isEmpty()</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g1xZLdwbEeCT5O2F6sGn5g" name="belongs_to_psm" constrainedElement="_Dtp8ULL7EeCBifIhhuFqZA">
-        <ownedComment xmi:id="_g1xZLtwbEeCT5O2F6sGn5g" annotatedElement="_g1xZLdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VdX8thE9EeGOffqMW1YiZA" name="belongs_to_psm" constrainedElement="_Dtp8ULL7EeCBifIhhuFqZA">
+        <ownedComment xmi:id="_VdX8txE9EeGOffqMW1YiZA" annotatedElement="_VdX8thE9EeGOffqMW1YiZA">
           <body>A protocol transition always belongs to a protocol state machine.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1xZL9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdX8uBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>container.belongsToPSM()</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g1xZMNwbEeCT5O2F6sGn5g" general="_ykKV8PnlEdunWsS3se92JQ"/>
-      <ownedAttribute xmi:id="_g1xZMdwbEeCT5O2F6sGn5g" name="postCondition" visibility="public" type="_g0AegNwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g1TfANwbEeCT5O2F6sGn5g" association="_gysP7twbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1xZMtwbEeCT5O2F6sGn5g" annotatedElement="_g1xZMdwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VdX8uRE9EeGOffqMW1YiZA" general="_ykKV8PnlEdunWsS3se92JQ"/>
+      <ownedAttribute xmi:id="_VdX8uhE9EeGOffqMW1YiZA" name="postCondition" visibility="public" type="_VYbLQBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_Var1FBE9EeGOffqMW1YiZA" association="_VUJINBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdX8uxE9EeGOffqMW1YiZA" annotatedElement="_VdX8uhE9EeGOffqMW1YiZA">
           <body>Specifies the post condition of the transition which is the condition that should be obtained once the transition is triggered. This post condition is part of the post condition of the operation connected to the transition.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1xZM9wbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VdX8vBE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1xZNNwbEeCT5O2F6sGn5g" name="preCondition" visibility="public" type="_g0AegNwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g2SWfdwbEeCT5O2F6sGn5g" association="_gys299wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1xZNdwbEeCT5O2F6sGn5g" annotatedElement="_g1xZNNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VdYjwBE9EeGOffqMW1YiZA" name="preCondition" visibility="public" type="_VYbLQBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_Ve9RExE9EeGOffqMW1YiZA" association="_VUKWUBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdYjwRE9EeGOffqMW1YiZA" annotatedElement="_VdYjwBE9EeGOffqMW1YiZA">
           <body>Specifies the precondition of the transition. It specifies the condition that should be verified before triggering the transition. This guard condition added to the source state will be evaluated as part of the precondition of the operation referred by the transition if any.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1xZNtwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VdYjwhE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1yAINwbEeCT5O2F6sGn5g" name="referred" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" isReadOnly="true" isDerived="true" association="_gyyWgNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1yAIdwbEeCT5O2F6sGn5g" annotatedElement="_g1yAINwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VdYjwxE9EeGOffqMW1YiZA" name="referred" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" isReadOnly="true" isDerived="true" association="_VUYYxBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdYjxBE9EeGOffqMW1YiZA" annotatedElement="_VdYjwxE9EeGOffqMW1YiZA">
           <body>This association refers to the associated operation. It is derived from the operation of the call trigger when applicable.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1yAItwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1yAI9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VdYjxRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VdYjxhE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedOperation xmi:id="_IZYEkLL7EeCBifIhhuFqZA" name="referred" visibility="public" bodyCondition="_g1yAJdwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g1yAJNwbEeCT5O2F6sGn5g" annotatedElement="_IZYEkLL7EeCBifIhhuFqZA">
+      <ownedOperation xmi:id="_IZYEkLL7EeCBifIhhuFqZA" name="referred" visibility="public" bodyCondition="_VdYjyBE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VdYjxxE9EeGOffqMW1YiZA" annotatedElement="_IZYEkLL7EeCBifIhhuFqZA">
           <body>Missing derivation for ProtocolTransition::/referred : Operation</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1yAJdwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_IZYEkLL7EeCBifIhhuFqZA _g1yAINwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1yAJtwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VdYjyBE9EeGOffqMW1YiZA" name="spec" constrainedElement="_IZYEkLL7EeCBifIhhuFqZA _VdYjwxE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdYjyRE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>true</body>
           </specification>
         </ownedRule>
         <ownedParameter xmi:id="_JnbMELL7EeCBifIhhuFqZA" name="result" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1yAJ9wbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1yAKNwbEeCT5O2F6sGn5g" value="*"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VdYjyhE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VdYjyxE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g1zOQNwbEeCT5O2F6sGn5g" name="Pseudostate">
-      <ownedComment xmi:id="_g1zOQdwbEeCT5O2F6sGn5g" annotatedElement="_g1zOQNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VdaY8BE9EeGOffqMW1YiZA" name="Pseudostate">
+      <ownedComment xmi:id="_VdaY8RE9EeGOffqMW1YiZA" annotatedElement="_VdaY8BE9EeGOffqMW1YiZA">
         <body>A pseudostate is an abstraction that encompasses different types of transient vertices in the state machine graph.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g1zOQtwbEeCT5O2F6sGn5g" name="transitions_outgoing" constrainedElement="_g1zOQNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1zOQ9wbEeCT5O2F6sGn5g" annotatedElement="_g1zOQtwbEeCT5O2F6sGn5g">
-          <body>All transitions outgoing a fork vertex must target states in different regions of an orthogonal state.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1zORNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>(self.kind = #fork) implies
-  self.outgoing->forAll (t1, t2 | t1&lt;>t2 implies
-    (self.stateMachine.LCA(t1.target, t2.target).container.isOrthogonal))</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g1zORdwbEeCT5O2F6sGn5g" name="choice_vertex" constrainedElement="_g1zOQNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1zORtwbEeCT5O2F6sGn5g" annotatedElement="_g1zORdwbEeCT5O2F6sGn5g">
-          <body>In a complete statemachine, a choice vertex must have at least one incoming and one outgoing transition.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1zOR9wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>(self.kind = #choice) implies
-((self.incoming->size >= 1) and (self.outgoing->size >= 1))
-</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g1zOSNwbEeCT5O2F6sGn5g" name="outgoing_from_initial" constrainedElement="_g1zOQNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1zOSdwbEeCT5O2F6sGn5g" annotatedElement="_g1zOSNwbEeCT5O2F6sGn5g">
-          <body>The outgoing transition from and initial vertex may have a behavior, but not a trigger or a guard.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1zOStwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>(self.kind = #initial) implies (self.outgoing.guard->isEmpty()
-  and self.outgoing.trigger->isEmpty())</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g1zOS9wbEeCT5O2F6sGn5g" name="join_vertex" constrainedElement="_g1zOQNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1zOTNwbEeCT5O2F6sGn5g" annotatedElement="_g1zOS9wbEeCT5O2F6sGn5g">
-          <body>In a complete statemachine, a join vertex must have at least two incoming transitions and exactly one outgoing transition.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1zOTdwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>(self.kind = #join) implies
-((self.outgoing->size = 1) and (self.incoming->size >= 2))
-</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g1zOTtwbEeCT5O2F6sGn5g" name="junction_vertex" constrainedElement="_g1zOQNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1zOT9wbEeCT5O2F6sGn5g" annotatedElement="_g1zOTtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VdaY8hE9EeGOffqMW1YiZA" name="junction_vertex" constrainedElement="_VdaY8BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdaY8xE9EeGOffqMW1YiZA" annotatedElement="_VdaY8hE9EeGOffqMW1YiZA">
           <body>In a complete statemachine, a junction vertex must have at least one incoming and one outgoing transition.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1zOUNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdaY9BE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>(self.kind = #junction) implies
 ((self.incoming->size >= 1) and (self.outgoing->size >= 1))
 </body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g1zOUdwbEeCT5O2F6sGn5g" name="history_vertices" constrainedElement="_g1zOQNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1zOUtwbEeCT5O2F6sGn5g" annotatedElement="_g1zOUdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VdaY9RE9EeGOffqMW1YiZA" name="history_vertices" constrainedElement="_VdaY8BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdaY9hE9EeGOffqMW1YiZA" annotatedElement="_VdaY9RE9EeGOffqMW1YiZA">
           <body>History vertices can have at most one outgoing transition.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1zOU9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdaY9xE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>((self.kind = #deepHistory) or (self.kind = #shallowHistory)) implies
 (self.outgoing->size &lt;= 1)
 </body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g1zOVNwbEeCT5O2F6sGn5g" name="initial_vertex" constrainedElement="_g1zOQNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1zOVdwbEeCT5O2F6sGn5g" annotatedElement="_g1zOVNwbEeCT5O2F6sGn5g">
-          <body>An initial vertex can have at most one outgoing transition.</body>
+      <ownedRule xmi:id="_VdaY-BE9EeGOffqMW1YiZA" name="transitions_outgoing" constrainedElement="_VdaY8BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdaY-RE9EeGOffqMW1YiZA" annotatedElement="_VdaY-BE9EeGOffqMW1YiZA">
+          <body>All transitions outgoing a fork vertex must target states in different regions of an orthogonal state.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1zOVtwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdaY-hE9EeGOffqMW1YiZA">
           <language>OCL</language>
-          <body>(self.kind = #initial) implies (self.outgoing->size &lt;= 1)</body>
+          <body>(self.kind = #fork) implies
+  self.outgoing->forAll (t1, t2 | t1&lt;>t2 implies
+    (self.stateMachine.LCA(t1.target, t2.target).container.isOrthogonal))</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g1zOV9wbEeCT5O2F6sGn5g" name="fork_vertex" constrainedElement="_g1zOQNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1zOWNwbEeCT5O2F6sGn5g" annotatedElement="_g1zOV9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VdaY-xE9EeGOffqMW1YiZA" name="outgoing_from_initial" constrainedElement="_VdaY8BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdaY_BE9EeGOffqMW1YiZA" annotatedElement="_VdaY-xE9EeGOffqMW1YiZA">
+          <body>The outgoing transition from and initial vertex may have a behavior, but not a trigger or a guard.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdaY_RE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>(self.kind = #initial) implies (self.outgoing.guard->isEmpty()
+  and self.outgoing.trigger->isEmpty())</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VdaY_hE9EeGOffqMW1YiZA" name="fork_vertex" constrainedElement="_VdaY8BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdaY_xE9EeGOffqMW1YiZA" annotatedElement="_VdaY_hE9EeGOffqMW1YiZA">
           <body>In a complete statemachine, a fork vertex must have at least two outgoing transitions and exactly one incoming transition.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1zOWdwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdaZABE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>(self.kind = #fork) implies
 ((self.incoming->size = 1) and (self.outgoing->size >= 2))
 </body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g1zOWtwbEeCT5O2F6sGn5g" name="transitions_incoming" constrainedElement="_g1zOQNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1zOW9wbEeCT5O2F6sGn5g" annotatedElement="_g1zOWtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VdaZARE9EeGOffqMW1YiZA" name="join_vertex" constrainedElement="_VdaY8BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdaZAhE9EeGOffqMW1YiZA" annotatedElement="_VdaZARE9EeGOffqMW1YiZA">
+          <body>In a complete statemachine, a join vertex must have at least two incoming transitions and exactly one outgoing transition.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdaZAxE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>(self.kind = #join) implies
+((self.outgoing->size = 1) and (self.incoming->size >= 2))
+</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VdaZBBE9EeGOffqMW1YiZA" name="choice_vertex" constrainedElement="_VdaY8BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdaZBRE9EeGOffqMW1YiZA" annotatedElement="_VdaZBBE9EeGOffqMW1YiZA">
+          <body>In a complete statemachine, a choice vertex must have at least one incoming and one outgoing transition.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdaZBhE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>(self.kind = #choice) implies
+((self.incoming->size >= 1) and (self.outgoing->size >= 1))
+</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VdaZBxE9EeGOffqMW1YiZA" name="initial_vertex" constrainedElement="_VdaY8BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdaZCBE9EeGOffqMW1YiZA" annotatedElement="_VdaZBxE9EeGOffqMW1YiZA">
+          <body>An initial vertex can have at most one outgoing transition.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdaZCRE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>(self.kind = #initial) implies (self.outgoing->size &lt;= 1)</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VdaZChE9EeGOffqMW1YiZA" name="transitions_incoming" constrainedElement="_VdaY8BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdaZCxE9EeGOffqMW1YiZA" annotatedElement="_VdaZChE9EeGOffqMW1YiZA">
           <body>All transitions incoming a join vertex must originate in different regions of an orthogonal state.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1zOXNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdaZDBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>(self.kind = #join) implies
   self.incoming->forAll (t1, t2 | t1&lt;>t2 implies
     (self.stateMachine.LCA(t1.source, t2.source).container.isOrthogonal))</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g1zOXdwbEeCT5O2F6sGn5g" general="_xM1WoPnlEdunWsS3se92JQ"/>
-      <ownedAttribute xmi:id="_g1zOXtwbEeCT5O2F6sGn5g" name="kind" visibility="public" type="_g2fKwNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1zOX9wbEeCT5O2F6sGn5g" annotatedElement="_g1zOXtwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VdaZDRE9EeGOffqMW1YiZA" general="_xM1WoPnlEdunWsS3se92JQ"/>
+      <ownedAttribute xmi:id="_VdaZDhE9EeGOffqMW1YiZA" name="kind" visibility="public" type="_VfRaIBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdaZDxE9EeGOffqMW1YiZA" annotatedElement="_VdaZDhE9EeGOffqMW1YiZA">
           <body>Determines the precise type of the Pseudostate and can be one of: entryPoint, exitPoint, initial, deepHistory, shallowHistory, join, fork, junction, terminate or choice.</body>
         </ownedComment>
-        <defaultValue xmi:type="uml:InstanceValue" xmi:id="_g1zOYNwbEeCT5O2F6sGn5g" type="_g2fKwNwbEeCT5O2F6sGn5g" instance="_g2fKwtwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:InstanceValue" xmi:id="_VdaZEBE9EeGOffqMW1YiZA" type="_VfRaIBE9EeGOffqMW1YiZA" instance="_VfRaIhE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1zOYdwbEeCT5O2F6sGn5g" name="state" visibility="public" type="_g2Ce0NwbEeCT5O2F6sGn5g" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_gyVqmdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1zOYtwbEeCT5O2F6sGn5g" annotatedElement="_g1zOYdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VdaZERE9EeGOffqMW1YiZA" name="state" visibility="public" type="_VeRUkBE9EeGOffqMW1YiZA" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_VTGmYBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdaZEhE9EeGOffqMW1YiZA" annotatedElement="_VdaZERE9EeGOffqMW1YiZA">
           <body>The State that owns this pseudostate and in which it appears.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1zOY9wbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VdaZExE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1zOZNwbEeCT5O2F6sGn5g" name="stateMachine" visibility="public" type="_g2EUANwbEeCT5O2F6sGn5g" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_gyVqmtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1zOZdwbEeCT5O2F6sGn5g" annotatedElement="_g1zOZNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VdaZFBE9EeGOffqMW1YiZA" name="stateMachine" visibility="public" type="_VeWNEBE9EeGOffqMW1YiZA" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_VTGmYRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdaZFRE9EeGOffqMW1YiZA" annotatedElement="_VdaZFBE9EeGOffqMW1YiZA">
           <body>The StateMachine in which this Pseudostate is defined. This only applies to Pseudostates of the kind entryPoint or exitPoint.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1zOZtwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VdaZFhE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g1zOZ9wbEeCT5O2F6sGn5g" name="QualifierValue">
-      <ownedComment xmi:id="_g1zOaNwbEeCT5O2F6sGn5g" annotatedElement="_g1zOZ9wbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VdbnEBE9EeGOffqMW1YiZA" name="QualifierValue">
+      <ownedComment xmi:id="_VdbnERE9EeGOffqMW1YiZA" annotatedElement="_VdbnEBE9EeGOffqMW1YiZA">
         <body>A qualifier value is not an action. It is an element that identifies links. It gives a single qualifier within a link end data specification.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g1zOadwbEeCT5O2F6sGn5g" name="multiplicity_of_qualifier" constrainedElement="_g1zOZ9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1zOatwbEeCT5O2F6sGn5g" annotatedElement="_g1zOadwbEeCT5O2F6sGn5g">
-          <body>The multiplicity of the qualifier value input pin is &quot;1..1&quot;.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1zOa9wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>self.value.multiplicity.is(1,1)</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g1zObNwbEeCT5O2F6sGn5g" name="type_of_qualifier" constrainedElement="_g1zOZ9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1zObdwbEeCT5O2F6sGn5g" annotatedElement="_g1zObNwbEeCT5O2F6sGn5g">
-          <body>The type of the qualifier value input pin is the same as the type of the qualifier attribute.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1zObtwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>self.value.type = self.qualifier.type</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g1zOb9wbEeCT5O2F6sGn5g" name="qualifier_attribute" constrainedElement="_g1zOZ9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1zOcNwbEeCT5O2F6sGn5g" annotatedElement="_g1zOb9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VdbnEhE9EeGOffqMW1YiZA" name="qualifier_attribute" constrainedElement="_VdbnEBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdbnExE9EeGOffqMW1YiZA" annotatedElement="_VdbnEhE9EeGOffqMW1YiZA">
           <body>The qualifier attribute must be a qualifier of the association end of the link-end data.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1zOcdwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdbnFBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.LinkEndData.end->collect(qualifier)->includes(self.qualifier)</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g1zOctwbEeCT5O2F6sGn5g" general="_kl90MGvbEdq4DLWZOhbdEA"/>
-      <ownedAttribute xmi:id="_g1zOc9wbEeCT5O2F6sGn5g" name="qualifier" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" association="_gyuFG9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1zOdNwbEeCT5O2F6sGn5g" annotatedElement="_g1zOc9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VdbnFRE9EeGOffqMW1YiZA" name="multiplicity_of_qualifier" constrainedElement="_VdbnEBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdbnFhE9EeGOffqMW1YiZA" annotatedElement="_VdbnFRE9EeGOffqMW1YiZA">
+          <body>The multiplicity of the qualifier value input pin is &quot;1..1&quot;.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdbnFxE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>self.value.multiplicity.is(1,1)</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VdbnGBE9EeGOffqMW1YiZA" name="type_of_qualifier" constrainedElement="_VdbnEBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdbnGRE9EeGOffqMW1YiZA" annotatedElement="_VdbnGBE9EeGOffqMW1YiZA">
+          <body>The type of the qualifier value input pin is the same as the type of the qualifier attribute.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdbnGhE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>self.value.type = self.qualifier.type</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VdbnGxE9EeGOffqMW1YiZA" general="_kl90MGvbEdq4DLWZOhbdEA"/>
+      <ownedAttribute xmi:id="_VdbnHBE9EeGOffqMW1YiZA" name="qualifier" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" association="_VUMykBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdbnHRE9EeGOffqMW1YiZA" annotatedElement="_VdbnHBE9EeGOffqMW1YiZA">
           <body>Attribute representing the qualifier for which the value is to be specified.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1zOddwbEeCT5O2F6sGn5g" name="value" visibility="public" type="_g0aHKdwbEeCT5O2F6sGn5g" association="_gy_K1twbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1zOdtwbEeCT5O2F6sGn5g" annotatedElement="_g1zOddwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VdbnHhE9EeGOffqMW1YiZA" name="value" visibility="public" type="_VZp6WRE9EeGOffqMW1YiZA" association="_VUwMNhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdbnHxE9EeGOffqMW1YiZA" annotatedElement="_VdbnHhE9EeGOffqMW1YiZA">
           <body>Input pin from which the specified value for the qualifier is taken.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g1z1UNwbEeCT5O2F6sGn5g" name="RaiseExceptionAction">
-      <ownedComment xmi:id="_g1z1UdwbEeCT5O2F6sGn5g" annotatedElement="_g1z1UNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VdbnIBE9EeGOffqMW1YiZA" name="RaiseExceptionAction">
+      <ownedComment xmi:id="_VdbnIRE9EeGOffqMW1YiZA" annotatedElement="_VdbnIBE9EeGOffqMW1YiZA">
         <body>A raise exception action is an action that causes an exception to occur. The input value becomes the exception object.</body>
       </ownedComment>
-      <generalization xmi:id="_g1z1UtwbEeCT5O2F6sGn5g" general="_6WKakLLQEeCsYvaJqFFivQ"/>
-      <ownedAttribute xmi:id="_g1z1U9wbEeCT5O2F6sGn5g" name="exception" visibility="public" type="_g0aHKdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzBnMNwbEeCT5O2F6sGn5g" association="_gybKMNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1z1VNwbEeCT5O2F6sGn5g" annotatedElement="_g1z1U9wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VdbnIhE9EeGOffqMW1YiZA" general="_6WKakLLQEeCsYvaJqFFivQ"/>
+      <ownedAttribute xmi:id="_VdbnIxE9EeGOffqMW1YiZA" name="exception" visibility="public" type="_VZp6WRE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4IABE9EeGOffqMW1YiZA" association="_VTWeABE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdbnJBE9EeGOffqMW1YiZA" annotatedElement="_VdbnIxE9EeGOffqMW1YiZA">
           <body>An input pin whose value becomes an exception object.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g1z1VdwbEeCT5O2F6sGn5g" name="ReadExtentAction">
-      <ownedComment xmi:id="_g1z1VtwbEeCT5O2F6sGn5g" annotatedElement="_g1z1VdwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VdcOIBE9EeGOffqMW1YiZA" name="ReadExtentAction">
+      <ownedComment xmi:id="_VdcOIRE9EeGOffqMW1YiZA" annotatedElement="_VdcOIBE9EeGOffqMW1YiZA">
         <body>A read extent action is an action that retrieves the current instances of a classifier.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g1z1V9wbEeCT5O2F6sGn5g" name="type_is_classifier" constrainedElement="_g1z1VdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1z1WNwbEeCT5O2F6sGn5g" annotatedElement="_g1z1V9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VdcOIhE9EeGOffqMW1YiZA" name="type_is_classifier" constrainedElement="_VdcOIBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdcOIxE9EeGOffqMW1YiZA" annotatedElement="_VdcOIhE9EeGOffqMW1YiZA">
           <body>The type of the result output pin is the classifier.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1z1WdwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdcOJBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g1z1WtwbEeCT5O2F6sGn5g" name="multiplicity_of_result" constrainedElement="_g1z1VdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1z1W9wbEeCT5O2F6sGn5g" annotatedElement="_g1z1WtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VdcOJRE9EeGOffqMW1YiZA" name="multiplicity_of_result" constrainedElement="_VdcOIBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdcOJhE9EeGOffqMW1YiZA" annotatedElement="_VdcOJRE9EeGOffqMW1YiZA">
           <body>The multiplicity of the result output pin is 0..*.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1z1XNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdcOJxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.result.multiplicity.is(0,#null)</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g1z1XdwbEeCT5O2F6sGn5g" general="_6WKakLLQEeCsYvaJqFFivQ"/>
-      <ownedAttribute xmi:id="_g1z1XtwbEeCT5O2F6sGn5g" name="classifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" association="_gyUcgdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1z1X9wbEeCT5O2F6sGn5g" annotatedElement="_g1z1XtwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VdcOKBE9EeGOffqMW1YiZA" general="_6WKakLLQEeCsYvaJqFFivQ"/>
+      <ownedAttribute xmi:id="_VdcOKRE9EeGOffqMW1YiZA" name="classifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" association="_VTC8BBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdcOKhE9EeGOffqMW1YiZA" annotatedElement="_VdcOKRE9EeGOffqMW1YiZA">
           <body>The classifier whose instances are to be retrieved.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1z1YNwbEeCT5O2F6sGn5g" name="result" visibility="public" type="_g1fsRdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzCOK9wbEeCT5O2F6sGn5g" association="_gy1Z0NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1z1YdwbEeCT5O2F6sGn5g" annotatedElement="_g1z1YNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VdcOKxE9EeGOffqMW1YiZA" name="result" visibility="public" type="_VcHYcBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4vEBE9EeGOffqMW1YiZA" association="_VUd4VBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdcOLBE9EeGOffqMW1YiZA" annotatedElement="_VdcOKxE9EeGOffqMW1YiZA">
           <body>The runtime instances of the classifier.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g10cYNwbEeCT5O2F6sGn5g" name="ReadIsClassifiedObjectAction">
-      <ownedComment xmi:id="_g10cYdwbEeCT5O2F6sGn5g" annotatedElement="_g10cYNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_Vdc1MBE9EeGOffqMW1YiZA" name="ReadIsClassifiedObjectAction">
+      <ownedComment xmi:id="_Vdc1MRE9EeGOffqMW1YiZA" annotatedElement="_Vdc1MBE9EeGOffqMW1YiZA">
         <body>A read is classified object action is an action that determines whether a runtime object is classified by a given classifier.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g10cYtwbEeCT5O2F6sGn5g" name="no_type" constrainedElement="_g10cYNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g10cY9wbEeCT5O2F6sGn5g" annotatedElement="_g10cYtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_Vdc1MhE9EeGOffqMW1YiZA" name="no_type" constrainedElement="_Vdc1MBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vdc1MxE9EeGOffqMW1YiZA" annotatedElement="_Vdc1MhE9EeGOffqMW1YiZA">
           <body>The input pin has no type.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g10cZNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vdc1NBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.object.type->isEmpty()</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g10cZdwbEeCT5O2F6sGn5g" name="multiplicity_of_output" constrainedElement="_g10cYNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g10cZtwbEeCT5O2F6sGn5g" annotatedElement="_g10cZdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_Vdc1NRE9EeGOffqMW1YiZA" name="multiplicity_of_output" constrainedElement="_Vdc1MBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vdc1NhE9EeGOffqMW1YiZA" annotatedElement="_Vdc1NRE9EeGOffqMW1YiZA">
           <body>The multiplicity of the output pin is 1..1.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g10cZ9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vdc1NxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.result.multiplicity.is(1,1)</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g10caNwbEeCT5O2F6sGn5g" name="boolean_result" constrainedElement="_g10cYNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g10cadwbEeCT5O2F6sGn5g" annotatedElement="_g10caNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_Vdc1OBE9EeGOffqMW1YiZA" name="boolean_result" constrainedElement="_Vdc1MBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vdc1ORE9EeGOffqMW1YiZA" annotatedElement="_Vdc1OBE9EeGOffqMW1YiZA">
           <body>The type of the output pin is Boolean</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g10catwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vdc1OhE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.result.type = Boolean</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g10ca9wbEeCT5O2F6sGn5g" name="multiplicity_of_input" constrainedElement="_g10cYNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g10cbNwbEeCT5O2F6sGn5g" annotatedElement="_g10ca9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_Vdc1OxE9EeGOffqMW1YiZA" name="multiplicity_of_input" constrainedElement="_Vdc1MBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vdc1PBE9EeGOffqMW1YiZA" annotatedElement="_Vdc1OxE9EeGOffqMW1YiZA">
           <body>The multiplicity of the input pin is 1..1.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g10cbdwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vdc1PRE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.object.multiplicity.is(1,1)</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g10cbtwbEeCT5O2F6sGn5g" general="_6WKakLLQEeCsYvaJqFFivQ"/>
-      <ownedAttribute xmi:id="_g10cb9wbEeCT5O2F6sGn5g" name="classifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" association="_gyVDgNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g10ccNwbEeCT5O2F6sGn5g" annotatedElement="_g10cb9wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_Vdc1PhE9EeGOffqMW1YiZA" general="_6WKakLLQEeCsYvaJqFFivQ"/>
+      <ownedAttribute xmi:id="_Vdc1PxE9EeGOffqMW1YiZA" name="classifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" association="_VTEKIBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vdc1QBE9EeGOffqMW1YiZA" annotatedElement="_Vdc1PxE9EeGOffqMW1YiZA">
           <body>The classifier against which the classification of the input object is tested.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g10ccdwbEeCT5O2F6sGn5g" name="isDirect" visibility="public">
-        <ownedComment xmi:id="_g10cctwbEeCT5O2F6sGn5g" annotatedElement="_g10ccdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_Vdc1QRE9EeGOffqMW1YiZA" name="isDirect" visibility="public">
+        <ownedComment xmi:id="_Vdc1QhE9EeGOffqMW1YiZA" annotatedElement="_Vdc1QRE9EeGOffqMW1YiZA">
           <body>Indicates whether the classifier must directly classify the input object.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g10cc9wbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_Vdc1QxE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g10cdNwbEeCT5O2F6sGn5g" name="object" visibility="public" type="_g0aHKdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzBnMNwbEeCT5O2F6sGn5g" association="_gyliNNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g10cddwbEeCT5O2F6sGn5g" annotatedElement="_g10cdNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_Vdc1RBE9EeGOffqMW1YiZA" name="object" visibility="public" type="_VZp6WRE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4IABE9EeGOffqMW1YiZA" association="_VT2NQxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vdc1RRE9EeGOffqMW1YiZA" annotatedElement="_Vdc1RBE9EeGOffqMW1YiZA">
           <body>Holds the object whose classification is to be tested.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g10cdtwbEeCT5O2F6sGn5g" name="result" visibility="public" type="_g1fsRdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzCOK9wbEeCT5O2F6sGn5g" association="_gy1Z09wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g10cd9wbEeCT5O2F6sGn5g" annotatedElement="_g10cdtwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_Vdc1RhE9EeGOffqMW1YiZA" name="result" visibility="public" type="_VcHYcBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4vEBE9EeGOffqMW1YiZA" association="_VUd4VxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vdc1RxE9EeGOffqMW1YiZA" annotatedElement="_Vdc1RhE9EeGOffqMW1YiZA">
           <body>After termination of the action, will hold the result of the test.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g11DcNwbEeCT5O2F6sGn5g" name="ReadLinkAction">
-      <ownedComment xmi:id="_g11DcdwbEeCT5O2F6sGn5g" annotatedElement="_g11DcNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VdeDUBE9EeGOffqMW1YiZA" name="ReadLinkAction">
+      <ownedComment xmi:id="_VdeDURE9EeGOffqMW1YiZA" annotatedElement="_VdeDUBE9EeGOffqMW1YiZA">
         <body>A read link action is a link action that navigates across associations to retrieve objects on one end.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g11DctwbEeCT5O2F6sGn5g" name="type_and_ordering" constrainedElement="_g11DcNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g11Dc9wbEeCT5O2F6sGn5g" annotatedElement="_g11DctwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VdeDUhE9EeGOffqMW1YiZA" name="type_and_ordering" constrainedElement="_VdeDUBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdeDUxE9EeGOffqMW1YiZA" annotatedElement="_VdeDUhE9EeGOffqMW1YiZA">
           <body>The type and ordering of the result output pin are same as the type and ordering of the open association end.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g11DdNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdeDVBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>let openend : Property = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in
 self.result.type = openend.type
@@ -12572,22 +12581,42 @@
 </body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g11DddwbEeCT5O2F6sGn5g" name="compatible_multiplicity" constrainedElement="_g11DcNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g11DdtwbEeCT5O2F6sGn5g" annotatedElement="_g11DddwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VdeDVRE9EeGOffqMW1YiZA" name="one_open_end" constrainedElement="_VdeDUBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdeDVhE9EeGOffqMW1YiZA" annotatedElement="_VdeDVRE9EeGOffqMW1YiZA">
+          <body>Exactly one link-end data specification (the 'open' end) must not have an end object input pin.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdeDVxE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>self.endData->select(ed | ed.value->size() = 0)->size() = 1</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VdeDWBE9EeGOffqMW1YiZA" name="compatible_multiplicity" constrainedElement="_VdeDUBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdeDWRE9EeGOffqMW1YiZA" annotatedElement="_VdeDWBE9EeGOffqMW1YiZA">
           <body>The multiplicity of the open association end must be compatible with the multiplicity of the result output pin.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g11Dd9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdeDWhE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>let openend : Property = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in
 openend.multiplicity.compatibleWith(self.result.multiplicity)
 </body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g11DeNwbEeCT5O2F6sGn5g" name="visibility" constrainedElement="_g11DcNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g11DedwbEeCT5O2F6sGn5g" annotatedElement="_g11DeNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VdeDWxE9EeGOffqMW1YiZA" name="navigable_open_end" constrainedElement="_VdeDUBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdeDXBE9EeGOffqMW1YiZA" annotatedElement="_VdeDWxE9EeGOffqMW1YiZA">
+          <body>The open end must be navigable.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdeDXRE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>let openend : Property = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in
+openend.isNavigable()
+</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VdeDXhE9EeGOffqMW1YiZA" name="visibility" constrainedElement="_VdeDUBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdeDXxE9EeGOffqMW1YiZA" annotatedElement="_VdeDXhE9EeGOffqMW1YiZA">
           <body>Visibility of the open end must allow access to the object performing the action.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g11DetwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdeDYBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>let host : Classifier = self.context in
 let openend : Property = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in
@@ -12599,711 +12628,691 @@
 </body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g11De9wbEeCT5O2F6sGn5g" name="one_open_end" constrainedElement="_g11DcNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g11DfNwbEeCT5O2F6sGn5g" annotatedElement="_g11De9wbEeCT5O2F6sGn5g">
-          <body>Exactly one link-end data specification (the 'open' end) must not have an end object input pin.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g11DfdwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>self.endData->select(ed | ed.value->size() = 0)->size() = 1</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g11DftwbEeCT5O2F6sGn5g" name="navigable_open_end" constrainedElement="_g11DcNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g11Df9wbEeCT5O2F6sGn5g" annotatedElement="_g11DftwbEeCT5O2F6sGn5g">
-          <body>The open end must be navigable.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g11DgNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>let openend : Property = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in
-openend.isNavigable()
-</body>
-        </specification>
-      </ownedRule>
-      <generalization xmi:id="_g11DgdwbEeCT5O2F6sGn5g" general="_g0iC8NwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g11DgtwbEeCT5O2F6sGn5g" name="result" visibility="public" type="_g1fsRdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzCOK9wbEeCT5O2F6sGn5g" association="_gy1Z1twbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g11Dg9wbEeCT5O2F6sGn5g" annotatedElement="_g11DgtwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VdeDYRE9EeGOffqMW1YiZA" general="_VZ1ggBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VdeDYhE9EeGOffqMW1YiZA" name="result" visibility="public" type="_VcHYcBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4vEBE9EeGOffqMW1YiZA" association="_VUefYBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdeDYxE9EeGOffqMW1YiZA" annotatedElement="_VdeDYhE9EeGOffqMW1YiZA">
           <body>The pin on which are put the objects participating in the association at the end not specified by the inputs.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g11qgNwbEeCT5O2F6sGn5g" name="ReadLinkObjectEndAction">
-      <ownedComment xmi:id="_g11qgdwbEeCT5O2F6sGn5g" annotatedElement="_g11qgNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VdfRcBE9EeGOffqMW1YiZA" name="ReadLinkObjectEndAction">
+      <ownedComment xmi:id="_VdfRcRE9EeGOffqMW1YiZA" annotatedElement="_VdfRcBE9EeGOffqMW1YiZA">
         <body>A read link object end action is an action that retrieves an end object from a link object.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g11qgtwbEeCT5O2F6sGn5g" name="property" constrainedElement="_g11qgNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g11qg9wbEeCT5O2F6sGn5g" annotatedElement="_g11qgtwbEeCT5O2F6sGn5g">
-          <body>The property must be an association end.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g11qhNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>self.end.association.notEmpty()</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g11qhdwbEeCT5O2F6sGn5g" name="multiplicity_of_object" constrainedElement="_g11qgNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g11qhtwbEeCT5O2F6sGn5g" annotatedElement="_g11qhdwbEeCT5O2F6sGn5g">
-          <body>The multiplicity of the object input pin is 1..1.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g11qh9wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>self.object.multiplicity.is(1,1)</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g11qiNwbEeCT5O2F6sGn5g" name="ends_of_association" constrainedElement="_g11qgNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g11qidwbEeCT5O2F6sGn5g" annotatedElement="_g11qiNwbEeCT5O2F6sGn5g">
-          <body>The ends of the association must not be static.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g11qitwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>self.end.association.memberEnd->forall(e | not e.isStatic)</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g11qi9wbEeCT5O2F6sGn5g" name="type_of_result" constrainedElement="_g11qgNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g11qjNwbEeCT5O2F6sGn5g" annotatedElement="_g11qi9wbEeCT5O2F6sGn5g">
-          <body>The type of the result output pin is the same as the type of the association end.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g11qjdwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>self.result.type = self.end.type</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g11qjtwbEeCT5O2F6sGn5g" name="multiplicity_of_result" constrainedElement="_g11qgNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g11qj9wbEeCT5O2F6sGn5g" annotatedElement="_g11qjtwbEeCT5O2F6sGn5g">
-          <body>The multiplicity of the result output pin is 1..1.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g11qkNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>self.result.multiplicity.is(1,1)</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g11qkdwbEeCT5O2F6sGn5g" name="type_of_object" constrainedElement="_g11qgNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g11qktwbEeCT5O2F6sGn5g" annotatedElement="_g11qkdwbEeCT5O2F6sGn5g">
-          <body>The type of the object input pin is the association class that owns the association end.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g11qk9wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>self.object.type = self.end.association</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g11qlNwbEeCT5O2F6sGn5g" name="association_of_association" constrainedElement="_g11qgNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g11qldwbEeCT5O2F6sGn5g" annotatedElement="_g11qlNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VdfRchE9EeGOffqMW1YiZA" name="association_of_association" constrainedElement="_VdfRcBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdfRcxE9EeGOffqMW1YiZA" annotatedElement="_VdfRchE9EeGOffqMW1YiZA">
           <body>The association of the association end must be an association class.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g11qltwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdfRdBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.end.Association.oclIsKindOf(AssociationClass)</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g11ql9wbEeCT5O2F6sGn5g" general="_6WKakLLQEeCsYvaJqFFivQ"/>
-      <ownedAttribute xmi:id="_g11qmNwbEeCT5O2F6sGn5g" name="end" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" association="_gyajENwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g11qmdwbEeCT5O2F6sGn5g" annotatedElement="_g11qmNwbEeCT5O2F6sGn5g">
-          <body>Link end to be read.</body>
-        </ownedComment>
-      </ownedAttribute>
-      <ownedAttribute xmi:id="_g11qmtwbEeCT5O2F6sGn5g" name="object" visibility="public" type="_g0aHKdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzBnMNwbEeCT5O2F6sGn5g" association="_gyliN9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g11qm9wbEeCT5O2F6sGn5g" annotatedElement="_g11qmtwbEeCT5O2F6sGn5g">
-          <body>Gives the input pin from which the link object is obtained.</body>
-        </ownedComment>
-      </ownedAttribute>
-      <ownedAttribute xmi:id="_g11qnNwbEeCT5O2F6sGn5g" name="result" visibility="public" type="_g1fsRdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzCOK9wbEeCT5O2F6sGn5g" association="_gy1Z2dwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g11qndwbEeCT5O2F6sGn5g" annotatedElement="_g11qnNwbEeCT5O2F6sGn5g">
-          <body>Pin where the result value is placed.</body>
-        </ownedComment>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g12RkNwbEeCT5O2F6sGn5g" name="ReadLinkObjectEndQualifierAction">
-      <ownedComment xmi:id="_g12RkdwbEeCT5O2F6sGn5g" annotatedElement="_g12RkNwbEeCT5O2F6sGn5g">
-        <body>A read link object end qualifier action is an action that retrieves a qualifier end value from a link object.</body>
-      </ownedComment>
-      <ownedRule xmi:id="_g12RktwbEeCT5O2F6sGn5g" name="multiplicity_of_object" constrainedElement="_g12RkNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g12Rk9wbEeCT5O2F6sGn5g" annotatedElement="_g12RktwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VdfRdRE9EeGOffqMW1YiZA" name="multiplicity_of_object" constrainedElement="_VdfRcBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdfRdhE9EeGOffqMW1YiZA" annotatedElement="_VdfRdRE9EeGOffqMW1YiZA">
           <body>The multiplicity of the object input pin is 1..1.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g12RlNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdfRdxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.object.multiplicity.is(1,1)</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g12RldwbEeCT5O2F6sGn5g" name="type_of_object" constrainedElement="_g12RkNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g12RltwbEeCT5O2F6sGn5g" annotatedElement="_g12RldwbEeCT5O2F6sGn5g">
-          <body>The type of the object input pin is the association class that owns the association end that has the given qualifier attribute.</body>
+      <ownedRule xmi:id="_VdfReBE9EeGOffqMW1YiZA" name="type_of_result" constrainedElement="_VdfRcBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdfReRE9EeGOffqMW1YiZA" annotatedElement="_VdfReBE9EeGOffqMW1YiZA">
+          <body>The type of the result output pin is the same as the type of the association end.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g12Rl9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdfRehE9EeGOffqMW1YiZA">
           <language>OCL</language>
-          <body>self.object.type = self.qualifier.associationEnd.association</body>
+          <body>self.result.type = self.end.type</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g12RmNwbEeCT5O2F6sGn5g" name="multiplicity_of_qualifier" constrainedElement="_g12RkNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g12RmdwbEeCT5O2F6sGn5g" annotatedElement="_g12RmNwbEeCT5O2F6sGn5g">
-          <body>The multiplicity of the qualifier attribute is 1..1.</body>
+      <ownedRule xmi:id="_VdfRexE9EeGOffqMW1YiZA" name="type_of_object" constrainedElement="_VdfRcBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdfRfBE9EeGOffqMW1YiZA" annotatedElement="_VdfRexE9EeGOffqMW1YiZA">
+          <body>The type of the object input pin is the association class that owns the association end.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g12RmtwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdfRfRE9EeGOffqMW1YiZA">
           <language>OCL</language>
-          <body>self.qualifier.multiplicity.is(1,1)</body>
+          <body>self.object.type = self.end.association</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g12Rm9wbEeCT5O2F6sGn5g" name="ends_of_association" constrainedElement="_g12RkNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g12RnNwbEeCT5O2F6sGn5g" annotatedElement="_g12Rm9wbEeCT5O2F6sGn5g">
-          <body>The ends of the association must not be static.</body>
+      <ownedRule xmi:id="_VdfRfhE9EeGOffqMW1YiZA" name="property" constrainedElement="_VdfRcBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdfRfxE9EeGOffqMW1YiZA" annotatedElement="_VdfRfhE9EeGOffqMW1YiZA">
+          <body>The property must be an association end.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g12RndwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdfRgBE9EeGOffqMW1YiZA">
           <language>OCL</language>
-          <body>self.qualifier.associationEnd.association.memberEnd->forall(e | not e.isStatic)</body>
+          <body>self.end.association.notEmpty()</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g12RntwbEeCT5O2F6sGn5g" name="multiplicity_of_result" constrainedElement="_g12RkNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g12Rn9wbEeCT5O2F6sGn5g" annotatedElement="_g12RntwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VdfRgRE9EeGOffqMW1YiZA" name="multiplicity_of_result" constrainedElement="_VdfRcBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdfRghE9EeGOffqMW1YiZA" annotatedElement="_VdfRgRE9EeGOffqMW1YiZA">
           <body>The multiplicity of the result output pin is 1..1.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g12RoNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdfRgxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.result.multiplicity.is(1,1)</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g12RodwbEeCT5O2F6sGn5g" name="same_type" constrainedElement="_g12RkNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g12RotwbEeCT5O2F6sGn5g" annotatedElement="_g12RodwbEeCT5O2F6sGn5g">
-          <body>The type of the result output pin is the same as the type of the qualifier attribute.</body>
+      <ownedRule xmi:id="_VdfRhBE9EeGOffqMW1YiZA" name="ends_of_association" constrainedElement="_VdfRcBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdfRhRE9EeGOffqMW1YiZA" annotatedElement="_VdfRhBE9EeGOffqMW1YiZA">
+          <body>The ends of the association must not be static.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g12Ro9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdfRhhE9EeGOffqMW1YiZA">
           <language>OCL</language>
-          <body>self.result.type = self.qualifier.type</body>
+          <body>self.end.association.memberEnd->forall(e | not e.isStatic)</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g12RpNwbEeCT5O2F6sGn5g" name="association_of_association" constrainedElement="_g12RkNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g12RpdwbEeCT5O2F6sGn5g" annotatedElement="_g12RpNwbEeCT5O2F6sGn5g">
-          <body>The association of the association end of the qualifier attribute must be an association class.</body>
+      <generalization xmi:id="_VdfRhxE9EeGOffqMW1YiZA" general="_6WKakLLQEeCsYvaJqFFivQ"/>
+      <ownedAttribute xmi:id="_VdfRiBE9EeGOffqMW1YiZA" name="end" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" association="_VTSzpBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdfRiRE9EeGOffqMW1YiZA" annotatedElement="_VdfRiBE9EeGOffqMW1YiZA">
+          <body>Link end to be read.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g12RptwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>self.qualifier.associationEnd.association.oclIsKindOf(AssociationClass)</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g12Rp9wbEeCT5O2F6sGn5g" name="qualifier_attribute" constrainedElement="_g12RkNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g12RqNwbEeCT5O2F6sGn5g" annotatedElement="_g12Rp9wbEeCT5O2F6sGn5g">
-          <body>The qualifier attribute must be a qualifier attribute of an association end.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g12RqdwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>self.qualifier.associationEnd->size() = 1</body>
-        </specification>
-      </ownedRule>
-      <generalization xmi:id="_g12RqtwbEeCT5O2F6sGn5g" general="_6WKakLLQEeCsYvaJqFFivQ"/>
-      <ownedAttribute xmi:id="_g12Rq9wbEeCT5O2F6sGn5g" name="object" visibility="public" type="_g0aHKdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzBnMNwbEeCT5O2F6sGn5g" association="_gyliOtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g12RrNwbEeCT5O2F6sGn5g" annotatedElement="_g12Rq9wbEeCT5O2F6sGn5g">
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_VdfRihE9EeGOffqMW1YiZA" name="object" visibility="public" type="_VZp6WRE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4IABE9EeGOffqMW1YiZA" association="_VT20UBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdfRixE9EeGOffqMW1YiZA" annotatedElement="_VdfRihE9EeGOffqMW1YiZA">
           <body>Gives the input pin from which the link object is obtained.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g12RrdwbEeCT5O2F6sGn5g" name="qualifier" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" association="_gyusINwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g12RrtwbEeCT5O2F6sGn5g" annotatedElement="_g12RrdwbEeCT5O2F6sGn5g">
-          <body>The attribute representing the qualifier to be read.</body>
-        </ownedComment>
-      </ownedAttribute>
-      <ownedAttribute xmi:id="_g12Rr9wbEeCT5O2F6sGn5g" name="result" visibility="public" type="_g1fsRdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzCOK9wbEeCT5O2F6sGn5g" association="_gy1Z3NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g12RsNwbEeCT5O2F6sGn5g" annotatedElement="_g12Rr9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VdfRjBE9EeGOffqMW1YiZA" name="result" visibility="public" type="_VcHYcBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4vEBE9EeGOffqMW1YiZA" association="_VUefYxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdfRjRE9EeGOffqMW1YiZA" annotatedElement="_VdfRjBE9EeGOffqMW1YiZA">
           <body>Pin where the result value is placed.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g124oNwbEeCT5O2F6sGn5g" name="ReadSelfAction">
-      <ownedComment xmi:id="_g124odwbEeCT5O2F6sGn5g" annotatedElement="_g124oNwbEeCT5O2F6sGn5g">
-        <body>A read self action is an action that retrieves the host object of an action.</body>
+    <packagedElement xmi:type="uml:Class" xmi:id="_VdgfkBE9EeGOffqMW1YiZA" name="ReadLinkObjectEndQualifierAction">
+      <ownedComment xmi:id="_VdgfkRE9EeGOffqMW1YiZA" annotatedElement="_VdgfkBE9EeGOffqMW1YiZA">
+        <body>A read link object end qualifier action is an action that retrieves a qualifier end value from a link object.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g124otwbEeCT5O2F6sGn5g" name="contained" constrainedElement="_g124oNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g124o9wbEeCT5O2F6sGn5g" annotatedElement="_g124otwbEeCT5O2F6sGn5g">
-          <body>The action must be contained in an behavior that has a host classifier.</body>
+      <ownedRule xmi:id="_VdgfkhE9EeGOffqMW1YiZA" name="type_of_object" constrainedElement="_VdgfkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdgfkxE9EeGOffqMW1YiZA" annotatedElement="_VdgfkhE9EeGOffqMW1YiZA">
+          <body>The type of the object input pin is the association class that owns the association end that has the given qualifier attribute.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g124pNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdgflBE9EeGOffqMW1YiZA">
           <language>OCL</language>
-          <body>self.context->size() = 1</body>
+          <body>self.object.type = self.qualifier.associationEnd.association</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g124pdwbEeCT5O2F6sGn5g" name="multiplicity" constrainedElement="_g124oNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g124ptwbEeCT5O2F6sGn5g" annotatedElement="_g124pdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VdgflRE9EeGOffqMW1YiZA" name="multiplicity_of_result" constrainedElement="_VdgfkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdgflhE9EeGOffqMW1YiZA" annotatedElement="_VdgflRE9EeGOffqMW1YiZA">
           <body>The multiplicity of the result output pin is 1..1.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g124p9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdgflxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.result.multiplicity.is(1,1)</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g124qNwbEeCT5O2F6sGn5g" name="not_static" constrainedElement="_g124oNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g124qdwbEeCT5O2F6sGn5g" annotatedElement="_g124qNwbEeCT5O2F6sGn5g">
-          <body>If the action is contained in an behavior that is acting as the body of a method, then the operation of the method must not be static.</body>
+      <ownedRule xmi:id="_VdgfmBE9EeGOffqMW1YiZA" name="same_type" constrainedElement="_VdgfkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdgfmRE9EeGOffqMW1YiZA" annotatedElement="_VdgfmBE9EeGOffqMW1YiZA">
+          <body>The type of the result output pin is the same as the type of the qualifier attribute.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g124qtwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdgfmhE9EeGOffqMW1YiZA">
           <language>OCL</language>
-          <body>true</body>
+          <body>self.result.type = self.qualifier.type</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g124q9wbEeCT5O2F6sGn5g" name="type" constrainedElement="_g124oNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g124rNwbEeCT5O2F6sGn5g" annotatedElement="_g124q9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VdgfmxE9EeGOffqMW1YiZA" name="ends_of_association" constrainedElement="_VdgfkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdgfnBE9EeGOffqMW1YiZA" annotatedElement="_VdgfmxE9EeGOffqMW1YiZA">
+          <body>The ends of the association must not be static.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdgfnRE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>self.qualifier.associationEnd.association.memberEnd->forall(e | not e.isStatic)</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VdgfnhE9EeGOffqMW1YiZA" name="multiplicity_of_qualifier" constrainedElement="_VdgfkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdgfnxE9EeGOffqMW1YiZA" annotatedElement="_VdgfnhE9EeGOffqMW1YiZA">
+          <body>The multiplicity of the qualifier attribute is 1..1.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdgfoBE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>self.qualifier.multiplicity.is(1,1)</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VdgfoRE9EeGOffqMW1YiZA" name="multiplicity_of_object" constrainedElement="_VdgfkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdgfohE9EeGOffqMW1YiZA" annotatedElement="_VdgfoRE9EeGOffqMW1YiZA">
+          <body>The multiplicity of the object input pin is 1..1.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdgfoxE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>self.object.multiplicity.is(1,1)</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VdgfpBE9EeGOffqMW1YiZA" name="association_of_association" constrainedElement="_VdgfkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdgfpRE9EeGOffqMW1YiZA" annotatedElement="_VdgfpBE9EeGOffqMW1YiZA">
+          <body>The association of the association end of the qualifier attribute must be an association class.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdgfphE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>self.qualifier.associationEnd.association.oclIsKindOf(AssociationClass)</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VdgfpxE9EeGOffqMW1YiZA" name="qualifier_attribute" constrainedElement="_VdgfkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdgfqBE9EeGOffqMW1YiZA" annotatedElement="_VdgfpxE9EeGOffqMW1YiZA">
+          <body>The qualifier attribute must be a qualifier attribute of an association end.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdgfqRE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>self.qualifier.associationEnd->size() = 1</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VdgfqhE9EeGOffqMW1YiZA" general="_6WKakLLQEeCsYvaJqFFivQ"/>
+      <ownedAttribute xmi:id="_VdgfqxE9EeGOffqMW1YiZA" name="object" visibility="public" type="_VZp6WRE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4IABE9EeGOffqMW1YiZA" association="_VT20UxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdgfrBE9EeGOffqMW1YiZA" annotatedElement="_VdgfqxE9EeGOffqMW1YiZA">
+          <body>Gives the input pin from which the link object is obtained.</body>
+        </ownedComment>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_VdgfrRE9EeGOffqMW1YiZA" name="qualifier" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" association="_VUMylBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdgfrhE9EeGOffqMW1YiZA" annotatedElement="_VdgfrRE9EeGOffqMW1YiZA">
+          <body>The attribute representing the qualifier to be read.</body>
+        </ownedComment>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_VdgfrxE9EeGOffqMW1YiZA" name="result" visibility="public" type="_VcHYcBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4vEBE9EeGOffqMW1YiZA" association="_VUefZhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdgfsBE9EeGOffqMW1YiZA" annotatedElement="_VdgfrxE9EeGOffqMW1YiZA">
+          <body>Pin where the result value is placed.</body>
+        </ownedComment>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Class" xmi:id="_VdhGoBE9EeGOffqMW1YiZA" name="ReadSelfAction">
+      <ownedComment xmi:id="_VdhGoRE9EeGOffqMW1YiZA" annotatedElement="_VdhGoBE9EeGOffqMW1YiZA">
+        <body>A read self action is an action that retrieves the host object of an action.</body>
+      </ownedComment>
+      <ownedRule xmi:id="_VdhGohE9EeGOffqMW1YiZA" name="contained" constrainedElement="_VdhGoBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdhGoxE9EeGOffqMW1YiZA" annotatedElement="_VdhGohE9EeGOffqMW1YiZA">
+          <body>The action must be contained in an behavior that has a host classifier.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdhGpBE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>self.context->size() = 1</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VdhGpRE9EeGOffqMW1YiZA" name="type" constrainedElement="_VdhGoBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdhGphE9EeGOffqMW1YiZA" annotatedElement="_VdhGpRE9EeGOffqMW1YiZA">
           <body>The type of the result output pin is the host classifier.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g124rdwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdhGpxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.result.type = self.context</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g124rtwbEeCT5O2F6sGn5g" general="_6WKakLLQEeCsYvaJqFFivQ"/>
-      <ownedAttribute xmi:id="_g124r9wbEeCT5O2F6sGn5g" name="result" visibility="public" type="_g1fsRdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzCOK9wbEeCT5O2F6sGn5g" association="_gy2A4NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g124sNwbEeCT5O2F6sGn5g" annotatedElement="_g124r9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VdhGqBE9EeGOffqMW1YiZA" name="not_static" constrainedElement="_VdhGoBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdhGqRE9EeGOffqMW1YiZA" annotatedElement="_VdhGqBE9EeGOffqMW1YiZA">
+          <body>If the action is contained in an behavior that is acting as the body of a method, then the operation of the method must not be static.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdhGqhE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VdhGqxE9EeGOffqMW1YiZA" name="multiplicity" constrainedElement="_VdhGoBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdhGrBE9EeGOffqMW1YiZA" annotatedElement="_VdhGqxE9EeGOffqMW1YiZA">
+          <body>The multiplicity of the result output pin is 1..1.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdhGrRE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>self.result.multiplicity.is(1,1)</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VdhGrhE9EeGOffqMW1YiZA" general="_6WKakLLQEeCsYvaJqFFivQ"/>
+      <ownedAttribute xmi:id="_VdhGrxE9EeGOffqMW1YiZA" name="result" visibility="public" type="_VcHYcBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4vEBE9EeGOffqMW1YiZA" association="_VUfGcBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdhGsBE9EeGOffqMW1YiZA" annotatedElement="_VdhGrxE9EeGOffqMW1YiZA">
           <body>Gives the output pin on which the hosting object is placed.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g13fsNwbEeCT5O2F6sGn5g" name="ReadStructuralFeatureAction">
-      <ownedComment xmi:id="_g13fsdwbEeCT5O2F6sGn5g" annotatedElement="_g13fsNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VdhtsBE9EeGOffqMW1YiZA" name="ReadStructuralFeatureAction">
+      <ownedComment xmi:id="_VdhtsRE9EeGOffqMW1YiZA" annotatedElement="_VdhtsBE9EeGOffqMW1YiZA">
         <body>A read structural feature action is a structural feature action that retrieves the values of a structural feature.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g13fstwbEeCT5O2F6sGn5g" name="multiplicity" constrainedElement="_g13fsNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g13fs9wbEeCT5O2F6sGn5g" annotatedElement="_g13fstwbEeCT5O2F6sGn5g">
-          <body>The multiplicity of the structural feature must be compatible with the multiplicity of the output pin.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g13ftNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>self.structuralFeature.multiplicity.compatibleWith(self.result.multiplicity)</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g13ftdwbEeCT5O2F6sGn5g" name="type_and_ordering" constrainedElement="_g13fsNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g13fttwbEeCT5O2F6sGn5g" annotatedElement="_g13ftdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VdhtshE9EeGOffqMW1YiZA" name="type_and_ordering" constrainedElement="_VdhtsBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdhtsxE9EeGOffqMW1YiZA" annotatedElement="_VdhtshE9EeGOffqMW1YiZA">
           <body>The type and ordering of the result output pin are the same as the type and ordering of the structural feature.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g13ft9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdhttBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.result.type = self.structuralFeature.type
 and self.result.ordering = self.structuralFeature.ordering
 </body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g13fuNwbEeCT5O2F6sGn5g" general="_g2H-YNwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g13fudwbEeCT5O2F6sGn5g" name="result" visibility="public" type="_g1fsRdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzCOK9wbEeCT5O2F6sGn5g" association="_gy2A49wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g13futwbEeCT5O2F6sGn5g" annotatedElement="_g13fudwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VdhttRE9EeGOffqMW1YiZA" name="multiplicity" constrainedElement="_VdhtsBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdhtthE9EeGOffqMW1YiZA" annotatedElement="_VdhttRE9EeGOffqMW1YiZA">
+          <body>The multiplicity of the structural feature must be compatible with the multiplicity of the output pin.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdhttxE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>self.structuralFeature.multiplicity.compatibleWith(self.result.multiplicity)</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VdhtuBE9EeGOffqMW1YiZA" general="_VehMMBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VdiUwBE9EeGOffqMW1YiZA" name="result" visibility="public" type="_VcHYcBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4vEBE9EeGOffqMW1YiZA" association="_VUfGcxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdiUwRE9EeGOffqMW1YiZA" annotatedElement="_VdiUwBE9EeGOffqMW1YiZA">
           <body>Gives the output pin on which the result is put.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g13fu9wbEeCT5O2F6sGn5g" name="ReadVariableAction">
-      <ownedComment xmi:id="_g13fvNwbEeCT5O2F6sGn5g" annotatedElement="_g13fu9wbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_Vdi70BE9EeGOffqMW1YiZA" name="ReadVariableAction">
+      <ownedComment xmi:id="_Vdi70RE9EeGOffqMW1YiZA" annotatedElement="_Vdi70BE9EeGOffqMW1YiZA">
         <body>A read variable action is a variable action that retrieves the values of a variable.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g13fvdwbEeCT5O2F6sGn5g" name="type_and_ordering" constrainedElement="_g13fu9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g13fvtwbEeCT5O2F6sGn5g" annotatedElement="_g13fvdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_Vdi70hE9EeGOffqMW1YiZA" name="type_and_ordering" constrainedElement="_Vdi70BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vdi70xE9EeGOffqMW1YiZA" annotatedElement="_Vdi70hE9EeGOffqMW1YiZA">
           <body>The type and ordering of the result output pin of a read-variable action are the same as the type and ordering of the variable.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g14GwNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vdi71BE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.result.type =self.variable.type
 and self.result.ordering = self.variable.ordering
 </body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g14GwdwbEeCT5O2F6sGn5g" name="compatible_multiplicity" constrainedElement="_g13fu9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g14GwtwbEeCT5O2F6sGn5g" annotatedElement="_g14GwdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_Vdi71RE9EeGOffqMW1YiZA" name="compatible_multiplicity" constrainedElement="_Vdi70BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vdi71hE9EeGOffqMW1YiZA" annotatedElement="_Vdi71RE9EeGOffqMW1YiZA">
           <body>The multiplicity of the variable must be compatible with the multiplicity of the output pin.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g14Gw9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vdi71xE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.variable.multiplicity.compatibleWith(self.result.multiplicity)</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g14GxNwbEeCT5O2F6sGn5g" general="_g2ZrMNwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g14GxdwbEeCT5O2F6sGn5g" name="result" visibility="public" type="_g1fsRdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzCOK9wbEeCT5O2F6sGn5g" association="_gy2A5twbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g14GxtwbEeCT5O2F6sGn5g" annotatedElement="_g14GxdwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_Vdi72BE9EeGOffqMW1YiZA" general="_VfIQRBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_Vdi72RE9EeGOffqMW1YiZA" name="result" visibility="public" type="_VcHYcBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4vEBE9EeGOffqMW1YiZA" association="_VUfGdhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vdi72hE9EeGOffqMW1YiZA" annotatedElement="_Vdi72RE9EeGOffqMW1YiZA">
           <body>Gives the output pin on which the result is put.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g14Gx9wbEeCT5O2F6sGn5g" name="Realization">
-      <ownedComment xmi:id="_g14GyNwbEeCT5O2F6sGn5g" annotatedElement="_g14Gx9wbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_Vdi72xE9EeGOffqMW1YiZA" name="Realization">
+      <ownedComment xmi:id="_Vdi73BE9EeGOffqMW1YiZA" annotatedElement="_Vdi72xE9EeGOffqMW1YiZA">
         <body>Realization is a specialized abstraction relationship between two sets of model elements, one representing a specification (the supplier) and the other represents an implementation of the latter (the client). Realization can be used to model stepwise refinement, optimizations, transformations, templates, model synthesis, framework composition, etc.</body>
       </ownedComment>
-      <generalization xmi:id="_g14GydwbEeCT5O2F6sGn5g" general="_gzAY9twbEeCT5O2F6sGn5g"/>
+      <generalization xmi:id="_Vdi73RE9EeGOffqMW1YiZA" general="_VU1EsBE9EeGOffqMW1YiZA"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g14t0NwbEeCT5O2F6sGn5g" name="Reception">
-      <ownedComment xmi:id="_g14t0dwbEeCT5O2F6sGn5g" annotatedElement="_g14t0NwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_Vdji4BE9EeGOffqMW1YiZA" name="Reception">
+      <ownedComment xmi:id="_Vdji4RE9EeGOffqMW1YiZA" annotatedElement="_Vdji4BE9EeGOffqMW1YiZA">
         <body>A reception is a declaration stating that a classifier is prepared to react to the receipt of a signal. A reception designates a signal and specifies the expected behavioral response. The details of handling a signal are specified by the behavior associated with the reception or the classifier itself.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g14t0twbEeCT5O2F6sGn5g" name="not_query" constrainedElement="_g14t0NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g14t09wbEeCT5O2F6sGn5g" annotatedElement="_g14t0twbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_Vdji4hE9EeGOffqMW1YiZA" name="not_query" constrainedElement="_Vdji4BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vdji4xE9EeGOffqMW1YiZA" annotatedElement="_Vdji4hE9EeGOffqMW1YiZA">
           <body>A Reception can not be a query.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g14t1NwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vdji5BE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>not self.isQuery</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g14t1dwbEeCT5O2F6sGn5g" general="_rHT3YKOsEdqi_5gqUMOQtA"/>
-      <ownedAttribute xmi:id="_g14t1twbEeCT5O2F6sGn5g" name="signal" visibility="public" type="_Pu3O0HL0EdqziYxiZo0YtA" association="_gy5ENNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g14t19wbEeCT5O2F6sGn5g" annotatedElement="_g14t1twbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_Vdji5RE9EeGOffqMW1YiZA" general="_rHT3YKOsEdqi_5gqUMOQtA"/>
+      <ownedAttribute xmi:id="_Vdji5hE9EeGOffqMW1YiZA" name="signal" visibility="public" type="_Pu3O0HL0EdqziYxiZo0YtA" association="_VUjX5BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vdji5xE9EeGOffqMW1YiZA" annotatedElement="_Vdji5hE9EeGOffqMW1YiZA">
           <body>The signal that this reception handles.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g14t2NwbEeCT5O2F6sGn5g" name="ReclassifyObjectAction">
-      <ownedComment xmi:id="_g14t2dwbEeCT5O2F6sGn5g" annotatedElement="_g14t2NwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VdlYEBE9EeGOffqMW1YiZA" name="ReclassifyObjectAction">
+      <ownedComment xmi:id="_VdlYERE9EeGOffqMW1YiZA" annotatedElement="_VdlYEBE9EeGOffqMW1YiZA">
         <body>A reclassify object action is an action that changes which classifiers classify an object.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g14t2twbEeCT5O2F6sGn5g" name="input_pin" constrainedElement="_g14t2NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g14t29wbEeCT5O2F6sGn5g" annotatedElement="_g14t2twbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VdlYEhE9EeGOffqMW1YiZA" name="input_pin" constrainedElement="_VdlYEBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdlYExE9EeGOffqMW1YiZA" annotatedElement="_VdlYEhE9EeGOffqMW1YiZA">
           <body>The input pin has no type.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g14t3NwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdlYFBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.argument.type->size() = 0</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g14t3dwbEeCT5O2F6sGn5g" name="classifier_not_abstract" constrainedElement="_g14t2NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g14t3twbEeCT5O2F6sGn5g" annotatedElement="_g14t3dwbEeCT5O2F6sGn5g">
-          <body>None of the new classifiers may be abstract.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g14t39wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>not self.newClassifier->exists(isAbstract = true)</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g14t4NwbEeCT5O2F6sGn5g" name="multiplicity" constrainedElement="_g14t2NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g14t4dwbEeCT5O2F6sGn5g" annotatedElement="_g14t4NwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VdlYFRE9EeGOffqMW1YiZA" name="multiplicity" constrainedElement="_VdlYEBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdlYFhE9EeGOffqMW1YiZA" annotatedElement="_VdlYFRE9EeGOffqMW1YiZA">
           <body>The multiplicity of the input pin is 1..1.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g14t4twbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdlYFxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.argument.multiplicity.is(1,1)</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g14t49wbEeCT5O2F6sGn5g" general="_6WKakLLQEeCsYvaJqFFivQ"/>
-      <ownedAttribute xmi:id="_g14t5NwbEeCT5O2F6sGn5g" name="isReplaceAll" visibility="public">
-        <ownedComment xmi:id="_g14t5dwbEeCT5O2F6sGn5g" annotatedElement="_g14t5NwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VdlYGBE9EeGOffqMW1YiZA" name="classifier_not_abstract" constrainedElement="_VdlYEBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdlYGRE9EeGOffqMW1YiZA" annotatedElement="_VdlYGBE9EeGOffqMW1YiZA">
+          <body>None of the new classifiers may be abstract.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VdlYGhE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>not self.newClassifier->exists(isAbstract = true)</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VdlYGxE9EeGOffqMW1YiZA" general="_6WKakLLQEeCsYvaJqFFivQ"/>
+      <ownedAttribute xmi:id="_VdlYHBE9EeGOffqMW1YiZA" name="isReplaceAll" visibility="public">
+        <ownedComment xmi:id="_VdlYHRE9EeGOffqMW1YiZA" annotatedElement="_VdlYHBE9EeGOffqMW1YiZA">
           <body>Specifies whether existing classifiers should be removed before adding the new classifiers.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g14t5twbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VdlYHhE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g14t59wbEeCT5O2F6sGn5g" name="newClassifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" association="_gyk7LNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g14t6NwbEeCT5O2F6sGn5g" annotatedElement="_g14t59wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VdlYHxE9EeGOffqMW1YiZA" name="newClassifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" association="_VT1mMBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdlYIBE9EeGOffqMW1YiZA" annotatedElement="_VdlYHxE9EeGOffqMW1YiZA">
           <body>A set of classifiers to be added to the classifiers of the object.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g14t6dwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g14t6twbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VdlYIRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VdlYIhE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g14t69wbEeCT5O2F6sGn5g" name="object" visibility="public" type="_g0aHKdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzBnMNwbEeCT5O2F6sGn5g" association="_gyliPdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g14t7NwbEeCT5O2F6sGn5g" annotatedElement="_g14t69wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VdlYIxE9EeGOffqMW1YiZA" name="object" visibility="public" type="_VZp6WRE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4IABE9EeGOffqMW1YiZA" association="_VT20VhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdlYJBE9EeGOffqMW1YiZA" annotatedElement="_VdlYIxE9EeGOffqMW1YiZA">
           <body>Holds the object to be reclassified.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g14t7dwbEeCT5O2F6sGn5g" name="oldClassifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" association="_gymwU9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g14t7twbEeCT5O2F6sGn5g" annotatedElement="_g14t7dwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VdlYJRE9EeGOffqMW1YiZA" name="oldClassifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" association="_VT7s1hE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdlYJhE9EeGOffqMW1YiZA" annotatedElement="_VdlYJRE9EeGOffqMW1YiZA">
           <body>A set of classifiers to be removed from the classifiers of the object.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g14t79wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g14t8NwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VdlYJxE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VdlYKBE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_uCRA4La-EeCRxrN1JUGuxA" name="RedefinableElement" isAbstract="true">
-      <ownedComment xmi:id="_g15U4NwbEeCT5O2F6sGn5g" annotatedElement="_uCRA4La-EeCRxrN1JUGuxA">
+      <ownedComment xmi:id="_Vdl_IBE9EeGOffqMW1YiZA" annotatedElement="_uCRA4La-EeCRxrN1JUGuxA">
         <body>A redefinable element is an element that, when defined in the context of a classifier, can be redefined more specifically or differently in the context of another classifier that specializes (directly or indirectly) the context classifier.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g15U4dwbEeCT5O2F6sGn5g" name="redefinition_consistent" constrainedElement="_uCRA4La-EeCRxrN1JUGuxA">
-        <ownedComment xmi:id="_g15U4twbEeCT5O2F6sGn5g" annotatedElement="_g15U4dwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_Vdl_IRE9EeGOffqMW1YiZA" name="redefinition_consistent" constrainedElement="_uCRA4La-EeCRxrN1JUGuxA">
+        <ownedComment xmi:id="_Vdl_IhE9EeGOffqMW1YiZA" annotatedElement="_Vdl_IRE9EeGOffqMW1YiZA">
           <body>A redefining element must be consistent with each redefined element.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g15U49wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vdl_IxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.redefinedElement->forAll(re | re.isConsistentWith(self))</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g15U5NwbEeCT5O2F6sGn5g" name="non_leaf_redefinition" constrainedElement="_uCRA4La-EeCRxrN1JUGuxA">
-        <ownedComment xmi:id="_g15U5dwbEeCT5O2F6sGn5g" annotatedElement="_g15U5NwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_Vdl_JBE9EeGOffqMW1YiZA" name="non_leaf_redefinition" constrainedElement="_uCRA4La-EeCRxrN1JUGuxA">
+        <ownedComment xmi:id="_Vdl_JRE9EeGOffqMW1YiZA" annotatedElement="_Vdl_JBE9EeGOffqMW1YiZA">
           <body>A redefinable element can only redefine non-leaf redefinable elements</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g15U5twbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vdl_JhE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.redefinedElement->forAll(not isLeaf)</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g15U59wbEeCT5O2F6sGn5g" name="redefinition_context_valid" constrainedElement="_uCRA4La-EeCRxrN1JUGuxA">
-        <ownedComment xmi:id="_g15U6NwbEeCT5O2F6sGn5g" annotatedElement="_g15U59wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_Vdl_JxE9EeGOffqMW1YiZA" name="redefinition_context_valid" constrainedElement="_uCRA4La-EeCRxrN1JUGuxA">
+        <ownedComment xmi:id="_Vdl_KBE9EeGOffqMW1YiZA" annotatedElement="_Vdl_JxE9EeGOffqMW1YiZA">
           <body>At least one of the redefinition contexts of the redefining element must be a specialization of at least one of the redefinition contexts for each redefined element.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g15U6dwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vdl_KRE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.redefinedElement->forAll(e | self.isRedefinitionContextValid(e))</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g15U6twbEeCT5O2F6sGn5g" general="_csVgUGvtEdqG6fBIPwe-mw"/>
-      <ownedAttribute xmi:id="_g15U69wbEeCT5O2F6sGn5g" name="isLeaf" visibility="public">
-        <ownedComment xmi:id="_g15U7NwbEeCT5O2F6sGn5g" annotatedElement="_g15U69wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_Vdl_KhE9EeGOffqMW1YiZA" general="_csVgUGvtEdqG6fBIPwe-mw"/>
+      <ownedAttribute xmi:id="_VdmmMBE9EeGOffqMW1YiZA" name="isLeaf" visibility="public">
+        <ownedComment xmi:id="_VdmmMRE9EeGOffqMW1YiZA" annotatedElement="_VdmmMBE9EeGOffqMW1YiZA">
           <body>Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g15U7dwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VdmmMhE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g15U7twbEeCT5O2F6sGn5g" name="redefinedElement" visibility="public" type="_uCRA4La-EeCRxrN1JUGuxA" isReadOnly="true" isDerived="true" isDerivedUnion="true" association="_gywhUNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g15U79wbEeCT5O2F6sGn5g" annotatedElement="_g15U7twbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VdtT4BE9EeGOffqMW1YiZA" name="redefinedElement" visibility="public" type="_uCRA4La-EeCRxrN1JUGuxA" isReadOnly="true" isDerived="true" isDerivedUnion="true" association="_VURrEBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdtT4RE9EeGOffqMW1YiZA" annotatedElement="_VdtT4BE9EeGOffqMW1YiZA">
           <body>The redefinable element that is being redefined by this element.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g15U8NwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g15U8dwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VdtT4hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VdtT4xE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_zYrE4La-EeCRxrN1JUGuxA" name="redefinitionContext" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" isReadOnly="true" isDerived="true" isDerivedUnion="true" association="_gyxIbtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g15U8twbEeCT5O2F6sGn5g" annotatedElement="_zYrE4La-EeCRxrN1JUGuxA">
+      <ownedAttribute xmi:id="_zYrE4La-EeCRxrN1JUGuxA" name="redefinitionContext" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" isReadOnly="true" isDerived="true" isDerivedUnion="true" association="_VUWjlhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VdtT5BE9EeGOffqMW1YiZA" annotatedElement="_zYrE4La-EeCRxrN1JUGuxA">
           <body>References the contexts that this element may be redefined from.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g15U89wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g15U9NwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Vdt68BE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Vdt68RE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedOperation xmi:id="_g1578NwbEeCT5O2F6sGn5g" name="isConsistentWith" visibility="public" bodyCondition="_g1578twbEeCT5O2F6sGn5g" isQuery="true" precondition="_g1579NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1578dwbEeCT5O2F6sGn5g" annotatedElement="_g1578NwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_Vd1PsBE9EeGOffqMW1YiZA" name="isConsistentWith" visibility="public" bodyCondition="_Vd1PshE9EeGOffqMW1YiZA" isQuery="true" precondition="_Vd1PtBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vd1PsRE9EeGOffqMW1YiZA" annotatedElement="_Vd1PsBE9EeGOffqMW1YiZA">
           <body>The query isConsistentWith() specifies, for any two RedefinableElements in a context in which redefinition is possible, whether redefinition would be logically consistent. By default, this is false; this operation must be overridden for subclasses of RedefinableElement to define the consistency conditions.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g1578twbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g1578NwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g15789wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_Vd1PshE9EeGOffqMW1YiZA" name="spec" constrainedElement="_Vd1PsBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vd1PsxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = false</body>
           </specification>
         </ownedRule>
-        <ownedRule xmi:id="_g1579NwbEeCT5O2F6sGn5g" name="pre" constrainedElement="_g1578NwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1579dwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_Vd1PtBE9EeGOffqMW1YiZA" name="pre" constrainedElement="_Vd1PsBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vd1PtRE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>redefinee.isRedefinitionContextValid(self)</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g1579twbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_Vd1PthE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
-        <ownedParameter xmi:id="_g15799wbEeCT5O2F6sGn5g" name="redefinee" visibility="public" type="_uCRA4La-EeCRxrN1JUGuxA"/>
+        <ownedParameter xmi:id="_Vd1PtxE9EeGOffqMW1YiZA" name="redefinee" visibility="public" type="_uCRA4La-EeCRxrN1JUGuxA"/>
       </ownedOperation>
-      <ownedOperation xmi:id="_g157-NwbEeCT5O2F6sGn5g" name="isRedefinitionContextValid" visibility="public" bodyCondition="_g157-twbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g157-dwbEeCT5O2F6sGn5g" annotatedElement="_g157-NwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_Vd1PuBE9EeGOffqMW1YiZA" name="isRedefinitionContextValid" visibility="public" bodyCondition="_Vd1PuhE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_Vd1PuRE9EeGOffqMW1YiZA" annotatedElement="_Vd1PuBE9EeGOffqMW1YiZA">
           <body>The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g157-twbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g157-NwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g157-9wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_Vd1PuhE9EeGOffqMW1YiZA" name="spec" constrainedElement="_Vd1PuBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vd1PuxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = redefinitionContext->exists(c | c.allParents()->includes(redefined.redefinitionContext)))</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g157_NwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_Vd1PvBE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
-        <ownedParameter xmi:id="_g157_dwbEeCT5O2F6sGn5g" name="redefined" visibility="public" type="_uCRA4La-EeCRxrN1JUGuxA"/>
+        <ownedParameter xmi:id="_Vd1PvRE9EeGOffqMW1YiZA" name="redefined" visibility="public" type="_uCRA4La-EeCRxrN1JUGuxA"/>
       </ownedOperation>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_9keOQGvdEdq4DLWZOhbdEA" name="RedefinableTemplateSignature">
-      <ownedComment xmi:id="_g157_twbEeCT5O2F6sGn5g" annotatedElement="_9keOQGvdEdq4DLWZOhbdEA">
+      <ownedComment xmi:id="_Vd12wBE9EeGOffqMW1YiZA" annotatedElement="_9keOQGvdEdq4DLWZOhbdEA">
         <body>A redefinable template signature supports the addition of formal template parameters in a specialization of a template classifier.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g157_9wbEeCT5O2F6sGn5g" name="inherited_parameters" constrainedElement="_9keOQGvdEdq4DLWZOhbdEA">
-        <ownedComment xmi:id="_g158ANwbEeCT5O2F6sGn5g" annotatedElement="_g157_9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_Vd12wRE9EeGOffqMW1YiZA" name="inherited_parameters" constrainedElement="_9keOQGvdEdq4DLWZOhbdEA">
+        <ownedComment xmi:id="_Vd12whE9EeGOffqMW1YiZA" annotatedElement="_Vd12wRE9EeGOffqMW1YiZA">
           <body>The inherited parameters are the parameters of the extended template signature.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g158AdwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vd12wxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>if extendedSignature->isEmpty() then Set{} else extendedSignature.parameter endif</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g158AtwbEeCT5O2F6sGn5g" general="_uCRA4La-EeCRxrN1JUGuxA"/>
-      <generalization xmi:id="_g16jANwbEeCT5O2F6sGn5g" general="_g2OsENwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g16jAdwbEeCT5O2F6sGn5g" name="classifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" redefinedProperty="_g2OsHdwbEeCT5O2F6sGn5g" subsettedProperty="_zYrE4La-EeCRxrN1JUGuxA" association="_gyrBw9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g16jAtwbEeCT5O2F6sGn5g" annotatedElement="_g16jAdwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_Vd12xBE9EeGOffqMW1YiZA" general="_VesyYBE9EeGOffqMW1YiZA"/>
+      <generalization xmi:id="_Vd2d0BE9EeGOffqMW1YiZA" general="_uCRA4La-EeCRxrN1JUGuxA"/>
+      <ownedAttribute xmi:id="_Vd2d0RE9EeGOffqMW1YiZA" name="classifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" redefinedProperty="_VesybRE9EeGOffqMW1YiZA" subsettedProperty="_zYrE4La-EeCRxrN1JUGuxA" association="_VUEPsxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vd2d0hE9EeGOffqMW1YiZA" annotatedElement="_Vd2d0RE9EeGOffqMW1YiZA">
           <body>The classifier that owns this template signature.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g16jA9wbEeCT5O2F6sGn5g" name="extendedSignature" visibility="public" type="_9keOQGvdEdq4DLWZOhbdEA" subsettedProperty="_g15U7twbEeCT5O2F6sGn5g" association="_gycYSdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g16jBNwbEeCT5O2F6sGn5g" annotatedElement="_g16jA9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_Vd3E4BE9EeGOffqMW1YiZA" name="extendedSignature" visibility="public" type="_9keOQGvdEdq4DLWZOhbdEA" subsettedProperty="_VdtT4BE9EeGOffqMW1YiZA" association="_VTZhUxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vd3E4RE9EeGOffqMW1YiZA" annotatedElement="_Vd3E4BE9EeGOffqMW1YiZA">
           <body>The template signature that is extended by this template signature.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g16jBdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g16jBtwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Vd3E4hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Vd3E4xE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g16jB9wbEeCT5O2F6sGn5g" name="inheritedParameter" visibility="public" type="_KxRzgGvuEdqG6fBIPwe-mw" isReadOnly="true" isDerived="true" subsettedProperty="_g2OsGtwbEeCT5O2F6sGn5g" association="_gygCrNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g16jCNwbEeCT5O2F6sGn5g" annotatedElement="_g16jB9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_Vd3E5BE9EeGOffqMW1YiZA" name="inheritedParameter" visibility="public" type="_KxRzgGvuEdqG6fBIPwe-mw" isReadOnly="true" isDerived="true" subsettedProperty="_VesyahE9EeGOffqMW1YiZA" association="_VTqAABE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vd3E5RE9EeGOffqMW1YiZA" annotatedElement="_Vd3E5BE9EeGOffqMW1YiZA">
           <body>The formal template parameters of the extendedSignature.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g16jCdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g16jCtwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Vd3E5hE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Vd3E5xE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedOperation xmi:id="_FvJUYFYLEdqrn7iZ0eqieg" name="inheritedParameter" visibility="public" bodyCondition="_g16jDNwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g16jC9wbEeCT5O2F6sGn5g" annotatedElement="_FvJUYFYLEdqrn7iZ0eqieg">
+      <ownedOperation xmi:id="_FvJUYFYLEdqrn7iZ0eqieg" name="inheritedParameter" visibility="public" bodyCondition="_Vd3E6RE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_Vd3E6BE9EeGOffqMW1YiZA" annotatedElement="_FvJUYFYLEdqrn7iZ0eqieg">
           <body>Missing derivation for RedefinableTemplateSignature::/inheritedParameter : TemplateParameter</body>
         </ownedComment>
-        <ownedRule xmi:id="_g16jDNwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_FvJUYFYLEdqrn7iZ0eqieg _g16jB9wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g16jDdwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_Vd3E6RE9EeGOffqMW1YiZA" name="spec" constrainedElement="_FvJUYFYLEdqrn7iZ0eqieg _Vd3E5BE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vd3E6hE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>true</body>
           </specification>
         </ownedRule>
         <ownedParameter xmi:id="_Jbx-MFYLEdqrn7iZ0eqieg" name="result" visibility="public" type="_KxRzgGvuEdqG6fBIPwe-mw" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g16jDtwbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g16jD9wbEeCT5O2F6sGn5g" value="*"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Vd3E6xE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Vd3E7BE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g17KENwbEeCT5O2F6sGn5g" name="isConsistentWith" visibility="public" bodyCondition="_g17KEtwbEeCT5O2F6sGn5g" isQuery="true" precondition="_g17KFNwbEeCT5O2F6sGn5g" redefinedOperation="_g1578NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g17KEdwbEeCT5O2F6sGn5g" annotatedElement="_g17KENwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_Vd3r8BE9EeGOffqMW1YiZA" name="isConsistentWith" visibility="public" bodyCondition="_Vd3r8hE9EeGOffqMW1YiZA" isQuery="true" precondition="_Vd3r9BE9EeGOffqMW1YiZA" redefinedOperation="_Vd1PsBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vd3r8RE9EeGOffqMW1YiZA" annotatedElement="_Vd3r8BE9EeGOffqMW1YiZA">
           <body>The query isConsistentWith() specifies, for any two RedefinableTemplateSignatures in a context in which redefinition is possible, whether redefinition would be logically consistent. A redefining template signature is always consistent with a redefined template signature, since redefinition only adds new formal parameters.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g17KEtwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g17KENwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g17KE9wbEeCT5O2F6sGn5g" name="spec">
+        <ownedRule xmi:id="_Vd3r8hE9EeGOffqMW1YiZA" name="spec" constrainedElement="_Vd3r8BE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vd3r8xE9EeGOffqMW1YiZA" name="spec">
             <language>OCL</language>
             <body>result = redefinee.oclIsKindOf(RedefineableTemplateSignature)</body>
           </specification>
         </ownedRule>
-        <ownedRule xmi:id="_g17KFNwbEeCT5O2F6sGn5g" name="pre" constrainedElement="_g17KENwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g17KFdwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_Vd3r9BE9EeGOffqMW1YiZA" name="pre" constrainedElement="_Vd3r8BE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vd3r9RE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>redefinee.isRedefinitionContextValid(self)</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g17KFtwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_Vd3r9hE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
-        <ownedParameter xmi:id="_g17KF9wbEeCT5O2F6sGn5g" name="redefinee" visibility="public" type="_uCRA4La-EeCRxrN1JUGuxA"/>
+        <ownedParameter xmi:id="_Vd3r9xE9EeGOffqMW1YiZA" name="redefinee" visibility="public" type="_uCRA4La-EeCRxrN1JUGuxA"/>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g17xINwbEeCT5O2F6sGn5g" name="ReduceAction">
-      <ownedComment xmi:id="_g17xIdwbEeCT5O2F6sGn5g" annotatedElement="_g17xINwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_Vd46EBE9EeGOffqMW1YiZA" name="ReduceAction">
+      <ownedComment xmi:id="_Vd46ERE9EeGOffqMW1YiZA" annotatedElement="_Vd46EBE9EeGOffqMW1YiZA">
         <body>A reduce action is an action that reduces a collection to a single value by combining the elements of the collection.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g17xItwbEeCT5O2F6sGn5g" name="reducer_inputs_output" constrainedElement="_g17xINwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g17xI9wbEeCT5O2F6sGn5g" annotatedElement="_g17xItwbEeCT5O2F6sGn5g">
-          <body>The reducer behavior must have two input parameters and one output parameter, of types compatible with the types of elements of the input collection.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g17xJNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g17xJdwbEeCT5O2F6sGn5g" name="input_type_is_collection" constrainedElement="_g17xINwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g17xJtwbEeCT5O2F6sGn5g" annotatedElement="_g17xJdwbEeCT5O2F6sGn5g">
-          <body>The type of the input must be a collection.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g17xJ9wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g17xKNwbEeCT5O2F6sGn5g" name="output_types_are_compatible" constrainedElement="_g17xINwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g17xKdwbEeCT5O2F6sGn5g" annotatedElement="_g17xKNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_Vd46EhE9EeGOffqMW1YiZA" name="output_types_are_compatible" constrainedElement="_Vd46EBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vd46ExE9EeGOffqMW1YiZA" annotatedElement="_Vd46EhE9EeGOffqMW1YiZA">
           <body>The type of the output must be compatible with the type of the output of the reducer behavior.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g17xKtwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vd46FBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g17xK9wbEeCT5O2F6sGn5g" general="_6WKakLLQEeCsYvaJqFFivQ"/>
-      <ownedAttribute xmi:id="_g17xLNwbEeCT5O2F6sGn5g" name="collection" visibility="public" type="_g0aHKdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzBnMNwbEeCT5O2F6sGn5g" association="_gyVDj9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g17xLdwbEeCT5O2F6sGn5g" annotatedElement="_g17xLNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_Vd46FRE9EeGOffqMW1YiZA" name="reducer_inputs_output" constrainedElement="_Vd46EBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vd46FhE9EeGOffqMW1YiZA" annotatedElement="_Vd46FRE9EeGOffqMW1YiZA">
+          <body>The reducer behavior must have two input parameters and one output parameter, of types compatible with the types of elements of the input collection.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vd46FxE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_Vd46GBE9EeGOffqMW1YiZA" name="input_type_is_collection" constrainedElement="_Vd46EBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vd46GRE9EeGOffqMW1YiZA" annotatedElement="_Vd46GBE9EeGOffqMW1YiZA">
+          <body>The type of the input must be a collection.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vd46GhE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_Vd46GxE9EeGOffqMW1YiZA" general="_6WKakLLQEeCsYvaJqFFivQ"/>
+      <ownedAttribute xmi:id="_Vd46HBE9EeGOffqMW1YiZA" name="collection" visibility="public" type="_VZp6WRE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4IABE9EeGOffqMW1YiZA" association="_VTFYQBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vd9ykBE9EeGOffqMW1YiZA" annotatedElement="_Vd46HBE9EeGOffqMW1YiZA">
           <body>The collection to be reduced.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g17xLtwbEeCT5O2F6sGn5g" name="isOrdered" visibility="public">
-        <ownedComment xmi:id="_g17xL9wbEeCT5O2F6sGn5g" annotatedElement="_g17xLtwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_Vd9ykRE9EeGOffqMW1YiZA" name="isOrdered" visibility="public">
+        <ownedComment xmi:id="_Vd9ykhE9EeGOffqMW1YiZA" annotatedElement="_Vd9ykRE9EeGOffqMW1YiZA">
           <body>Tells whether the order of the input collection should determine the order in which the behavior is applied to its elements.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g17xMNwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_Vd9ykxE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g17xMdwbEeCT5O2F6sGn5g" name="reducer" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" association="_gyxvf9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g17xMtwbEeCT5O2F6sGn5g" annotatedElement="_g17xMdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_Vd9ylBE9EeGOffqMW1YiZA" name="reducer" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" association="_VUYYwBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vd9ylRE9EeGOffqMW1YiZA" annotatedElement="_Vd9ylBE9EeGOffqMW1YiZA">
           <body>Behavior that is applied to two elements of the input collection to produce a value that is the same type as elements of the collection.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g17xM9wbEeCT5O2F6sGn5g" name="result" visibility="public" type="_g1fsRdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzCOK9wbEeCT5O2F6sGn5g" association="_gy2A6dwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g17xNNwbEeCT5O2F6sGn5g" annotatedElement="_g17xM9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_Vd9ylhE9EeGOffqMW1YiZA" name="result" visibility="public" type="_VcHYcBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4vEBE9EeGOffqMW1YiZA" association="_VUftgBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vd9ylxE9EeGOffqMW1YiZA" annotatedElement="_Vd9ylhE9EeGOffqMW1YiZA">
           <body>Gives the output pin on which the result is put.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g18_QNwbEeCT5O2F6sGn5g" name="Region">
-      <ownedComment xmi:id="_g18_QdwbEeCT5O2F6sGn5g" annotatedElement="_g18_QNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VeA14BE9EeGOffqMW1YiZA" name="Region">
+      <ownedComment xmi:id="_VeA14RE9EeGOffqMW1YiZA" annotatedElement="_VeA14BE9EeGOffqMW1YiZA">
         <body>A region is an orthogonal part of either a composite state or a state machine. It contains states and transitions.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g18_QtwbEeCT5O2F6sGn5g" name="deep_history_vertex" constrainedElement="_g18_QNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g18_Q9wbEeCT5O2F6sGn5g" annotatedElement="_g18_QtwbEeCT5O2F6sGn5g">
-          <body>A region can have at most one deep history vertex</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g18_RNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>self.subvertex->select (v | v.oclIsKindOf(Pseudostate))->
-select(p : Pseudostate | p.kind = #deepHistory)->size() &lt;= 1
-</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g18_RdwbEeCT5O2F6sGn5g" name="shallow_history_vertex" constrainedElement="_g18_QNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g18_RtwbEeCT5O2F6sGn5g" annotatedElement="_g18_RdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VeA14hE9EeGOffqMW1YiZA" name="shallow_history_vertex" constrainedElement="_VeA14BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeA14xE9EeGOffqMW1YiZA" annotatedElement="_VeA14hE9EeGOffqMW1YiZA">
           <body>A region can have at most one shallow history vertex</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g18_R9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeA15BE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.subvertex->select(v | v.oclIsKindOf(Pseudostate))->
 select(p : Pseudostate | p.kind = #shallowHistory)->size() &lt;= 1
 </body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g18_SNwbEeCT5O2F6sGn5g" name="owned" constrainedElement="_g18_QNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g18_SdwbEeCT5O2F6sGn5g" annotatedElement="_g18_SNwbEeCT5O2F6sGn5g">
-          <body>If a Region is owned by a StateMachine, then it cannot also be owned by a State and vice versa.</body>
+      <ownedRule xmi:id="_VeA15RE9EeGOffqMW1YiZA" name="deep_history_vertex" constrainedElement="_VeA14BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeA15hE9EeGOffqMW1YiZA" annotatedElement="_VeA15RE9EeGOffqMW1YiZA">
+          <body>A region can have at most one deep history vertex</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g18_StwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeA15xE9EeGOffqMW1YiZA">
           <language>OCL</language>
-          <body>(stateMachine->notEmpty() implies state->isEmpty()) and (state->notEmpty() implies stateMachine->isEmpty())</body>
+          <body>self.subvertex->select (v | v.oclIsKindOf(Pseudostate))->
+select(p : Pseudostate | p.kind = #deepHistory)->size() &lt;= 1
+</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g18_S9wbEeCT5O2F6sGn5g" name="initial_vertex" constrainedElement="_g18_QNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g18_TNwbEeCT5O2F6sGn5g" annotatedElement="_g18_S9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VeA16BE9EeGOffqMW1YiZA" name="initial_vertex" constrainedElement="_VeA14BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeA16RE9EeGOffqMW1YiZA" annotatedElement="_VeA16BE9EeGOffqMW1YiZA">
           <body>A region can have at most one initial vertex</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g18_TdwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeA16hE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.subvertex->select (v | v.oclIsKindOf(Pseudostate))->
 select(p : Pseudostate | p.kind = #initial)->size() &lt;= 1
 </body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g18_TtwbEeCT5O2F6sGn5g" general="_ZiwkoGwLEdq7X4sGURiZYA"/>
-      <generalization xmi:id="_g18_T9wbEeCT5O2F6sGn5g" general="_uCRA4La-EeCRxrN1JUGuxA"/>
-      <ownedAttribute xmi:id="_g18_UNwbEeCT5O2F6sGn5g" name="extendedRegion" visibility="public" type="_g18_QNwbEeCT5O2F6sGn5g" subsettedProperty="_g15U7twbEeCT5O2F6sGn5g" association="_gycYRtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g18_UdwbEeCT5O2F6sGn5g" annotatedElement="_g18_UNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VeA16xE9EeGOffqMW1YiZA" name="owned" constrainedElement="_VeA14BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeA17BE9EeGOffqMW1YiZA" annotatedElement="_VeA16xE9EeGOffqMW1YiZA">
+          <body>If a Region is owned by a StateMachine, then it cannot also be owned by a State and vice versa.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeA17RE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>(stateMachine->notEmpty() implies state->isEmpty()) and (state->notEmpty() implies stateMachine->isEmpty())</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VeA17hE9EeGOffqMW1YiZA" general="_uCRA4La-EeCRxrN1JUGuxA"/>
+      <generalization xmi:id="_VeA17xE9EeGOffqMW1YiZA" general="_ZiwkoGwLEdq7X4sGURiZYA"/>
+      <ownedAttribute xmi:id="_VeA18BE9EeGOffqMW1YiZA" name="extendedRegion" visibility="public" type="_VeA14BE9EeGOffqMW1YiZA" subsettedProperty="_VdtT4BE9EeGOffqMW1YiZA" association="_VTZhUBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeA18RE9EeGOffqMW1YiZA" annotatedElement="_VeA18BE9EeGOffqMW1YiZA">
           <body>The region of which this region is an extension.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g18_UtwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VeA18hE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g18_U9wbEeCT5O2F6sGn5g" name="redefinitionContext" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" isReadOnly="true" isDerived="true" redefinedProperty="_zYrE4La-EeCRxrN1JUGuxA" association="_gyxvcNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g18_VNwbEeCT5O2F6sGn5g" annotatedElement="_g18_U9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VeA18xE9EeGOffqMW1YiZA" name="redefinitionContext" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" isReadOnly="true" isDerived="true" redefinedProperty="_zYrE4La-EeCRxrN1JUGuxA" association="_VUXKoBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeA19BE9EeGOffqMW1YiZA" annotatedElement="_VeA18xE9EeGOffqMW1YiZA">
           <body>References the classifier in which context this element may be redefined.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g18_VdwbEeCT5O2F6sGn5g" name="state" visibility="public" type="_g2Ce0NwbEeCT5O2F6sGn5g" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_gyyWiNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g18_VtwbEeCT5O2F6sGn5g" annotatedElement="_g18_VdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VeA19RE9EeGOffqMW1YiZA" name="state" visibility="public" type="_VeRUkBE9EeGOffqMW1YiZA" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_VUY_1BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeA19hE9EeGOffqMW1YiZA" annotatedElement="_VeA19RE9EeGOffqMW1YiZA">
           <body>The State that owns the Region. If a Region is owned by a State, then it cannot also be owned by a StateMachine.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g18_V9wbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VeA19xE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g18_WNwbEeCT5O2F6sGn5g" name="stateMachine" visibility="public" type="_g2EUANwbEeCT5O2F6sGn5g" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_gyyWidwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g18_WdwbEeCT5O2F6sGn5g" annotatedElement="_g18_WNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VeA1-BE9EeGOffqMW1YiZA" name="stateMachine" visibility="public" type="_VeWNEBE9EeGOffqMW1YiZA" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_VUY_1RE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeA1-RE9EeGOffqMW1YiZA" annotatedElement="_VeA1-BE9EeGOffqMW1YiZA">
           <body>The StateMachine that owns the Region. If a Region is owned by a StateMachine, then it cannot also be owned by a State.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g18_WtwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VeA1-hE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g18_W9wbEeCT5O2F6sGn5g" name="subvertex" visibility="public" type="_xM1WoPnlEdunWsS3se92JQ" aggregation="composite" subsettedProperty="_g1S4AdwbEeCT5O2F6sGn5g" association="_gy7getwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g18_XNwbEeCT5O2F6sGn5g" annotatedElement="_g18_W9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VeA1-xE9EeGOffqMW1YiZA" name="subvertex" visibility="public" type="_xM1WoPnlEdunWsS3se92JQ" aggregation="composite" subsettedProperty="_Var1EBE9EeGOffqMW1YiZA" association="_VUoQYRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeA1_BE9EeGOffqMW1YiZA" annotatedElement="_VeA1-xE9EeGOffqMW1YiZA">
           <body>The set of vertices that are owned by this region.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g18_XdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g18_XtwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VeA1_RE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VeA1_hE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g18_X9wbEeCT5O2F6sGn5g" name="transition" visibility="public" type="_ykKV8PnlEdunWsS3se92JQ" aggregation="composite" subsettedProperty="_g1S4AdwbEeCT5O2F6sGn5g" association="_gy9VqNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g18_YNwbEeCT5O2F6sGn5g" annotatedElement="_g18_X9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VeA1_xE9EeGOffqMW1YiZA" name="transition" visibility="public" type="_ykKV8PnlEdunWsS3se92JQ" aggregation="composite" subsettedProperty="_Var1EBE9EeGOffqMW1YiZA" association="_VUqspBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeA2ABE9EeGOffqMW1YiZA" annotatedElement="_VeA1_xE9EeGOffqMW1YiZA">
           <body>The set of transitions owned by the region.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g18_YdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g18_YtwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VeA2ARE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VeA2AhE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedOperation xmi:id="_g18_Y9wbEeCT5O2F6sGn5g" name="belongsToPSM" visibility="public" bodyCondition="_g18_ZdwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g18_ZNwbEeCT5O2F6sGn5g" annotatedElement="_g18_Y9wbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VeA2AxE9EeGOffqMW1YiZA" name="belongsToPSM" visibility="public" bodyCondition="_VeA2BRE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VeA2BBE9EeGOffqMW1YiZA" annotatedElement="_VeA2AxE9EeGOffqMW1YiZA">
           <body>The operation belongsToPSM () checks if the region belongs to a protocol state machine</body>
         </ownedComment>
-        <ownedRule xmi:id="_g18_ZdwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g18_Y9wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g18_ZtwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VeA2BRE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VeA2AxE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeA2BhE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = if not stateMachine->isEmpty() then
 oclIsTypeOf(ProtocolStateMachine)
@@ -13312,16 +13321,16 @@
 else false</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g18_Z9wbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VeA2BxE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g18_aNwbEeCT5O2F6sGn5g" name="containingStateMachine" visibility="public" bodyCondition="_g18_atwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g18_adwbEeCT5O2F6sGn5g" annotatedElement="_g18_aNwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VeA2CBE9EeGOffqMW1YiZA" name="containingStateMachine" visibility="public" bodyCondition="_VeA2ChE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VeA2CRE9EeGOffqMW1YiZA" annotatedElement="_VeA2CBE9EeGOffqMW1YiZA">
           <body>The operation containingStateMachine() returns the sate machine in which this Region is defined</body>
         </ownedComment>
-        <ownedRule xmi:id="_g18_atwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g18_aNwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g18_a9wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VeA2ChE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VeA2CBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeA2CxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = if stateMachine->isEmpty() 
 then
@@ -13331,44 +13340,44 @@
 endif</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g18_bNwbEeCT5O2F6sGn5g" name="result" visibility="public" type="_g2EUANwbEeCT5O2F6sGn5g" direction="return"/>
+        <ownedParameter xmi:id="_VeA2DBE9EeGOffqMW1YiZA" name="result" visibility="public" type="_VeWNEBE9EeGOffqMW1YiZA" direction="return"/>
       </ownedOperation>
-      <ownedOperation xmi:id="_g18_bdwbEeCT5O2F6sGn5g" name="isConsistentWith" visibility="public" bodyCondition="_g18_b9wbEeCT5O2F6sGn5g" isQuery="true" redefinedOperation="_g1578NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g18_btwbEeCT5O2F6sGn5g" annotatedElement="_g18_bdwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VeA2DRE9EeGOffqMW1YiZA" name="isConsistentWith" visibility="public" bodyCondition="_VeA2DxE9EeGOffqMW1YiZA" isQuery="true" redefinedOperation="_Vd1PsBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeA2DhE9EeGOffqMW1YiZA" annotatedElement="_VeA2DRE9EeGOffqMW1YiZA">
           <body>The query isConsistentWith() specifies that a redefining region is consistent with a redefined region provided that the redefining region is an extension of the redefined region, i.e. it adds vertices and transitions and it redefines states and transitions of the redefined region.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g18_b9wbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g18_bdwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g18_cNwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VeA2DxE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VeA2DRE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeA2EBE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = true</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g18_cdwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VeA2ERE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
-        <ownedParameter xmi:id="_g18_ctwbEeCT5O2F6sGn5g" name="redefinee" visibility="public" type="_uCRA4La-EeCRxrN1JUGuxA"/>
+        <ownedParameter xmi:id="_VeA2EhE9EeGOffqMW1YiZA" name="redefinee" visibility="public" type="_uCRA4La-EeCRxrN1JUGuxA"/>
       </ownedOperation>
-      <ownedOperation xmi:id="_g18_c9wbEeCT5O2F6sGn5g" name="isRedefinitionContextValid" visibility="public" bodyCondition="_g18_ddwbEeCT5O2F6sGn5g" isQuery="true" redefinedOperation="_g157-NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g18_dNwbEeCT5O2F6sGn5g" annotatedElement="_g18_c9wbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VeA2ExE9EeGOffqMW1YiZA" name="isRedefinitionContextValid" visibility="public" bodyCondition="_VeA2FRE9EeGOffqMW1YiZA" isQuery="true" redefinedOperation="_Vd1PuBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeA2FBE9EeGOffqMW1YiZA" annotatedElement="_VeA2ExE9EeGOffqMW1YiZA">
           <body>The query isRedefinitionContextValid() specifies whether the redefinition contexts of a region are properly related to the redefinition contexts of the specified region to allow this element to redefine the other. The containing statemachine/state of a redefining region must redefine the containing statemachine/state of the redefined region.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g18_ddwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g18_c9wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g18_dtwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VeA2FRE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VeA2ExE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeA2FhE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = true</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g18_d9wbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VeA2FxE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
-        <ownedParameter xmi:id="_g18_eNwbEeCT5O2F6sGn5g" name="redefined" visibility="public" type="_g18_QNwbEeCT5O2F6sGn5g"/>
+        <ownedParameter xmi:id="_VeA2GBE9EeGOffqMW1YiZA" name="redefined" visibility="public" type="_VeA14BE9EeGOffqMW1YiZA"/>
       </ownedOperation>
-      <ownedOperation xmi:id="_g18_edwbEeCT5O2F6sGn5g" name="redefinitionContext" visibility="public" bodyCondition="_g18_e9wbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g18_etwbEeCT5O2F6sGn5g" annotatedElement="_g18_edwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VeA2GRE9EeGOffqMW1YiZA" name="redefinitionContext" visibility="public" bodyCondition="_VeA2GxE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VeA2GhE9EeGOffqMW1YiZA" annotatedElement="_VeA2GRE9EeGOffqMW1YiZA">
           <body>The redefinition context of a region is the nearest containing statemachine</body>
         </ownedComment>
-        <ownedRule xmi:id="_g18_e9wbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g18_edwbEeCT5O2F6sGn5g _g18_U9wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g18_fNwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VeA2GxE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VeA2GRE9EeGOffqMW1YiZA _VeA18xE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeA2HBE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = let sm = containingStateMachine() in
 if sm.context->isEmpty() or sm.general->notEmpty() then
@@ -13378,30 +13387,30 @@
 endif</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g18_fdwbEeCT5O2F6sGn5g" name="result" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" direction="return"/>
+        <ownedParameter xmi:id="_VeA2HRE9EeGOffqMW1YiZA" name="result" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" direction="return"/>
       </ownedOperation>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_DH62EKPAEdqi_5gqUMOQtA" name="Relationship" isAbstract="true">
-      <ownedComment xmi:id="_g18_ftwbEeCT5O2F6sGn5g" annotatedElement="_DH62EKPAEdqi_5gqUMOQtA">
+      <ownedComment xmi:id="_VeBc8BE9EeGOffqMW1YiZA" annotatedElement="_DH62EKPAEdqi_5gqUMOQtA">
         <body>Relationship is an abstract concept that specifies some kind of relationship between elements.</body>
       </ownedComment>
-      <generalization xmi:id="_g18_f9wbEeCT5O2F6sGn5g" general="_kl90MGvbEdq4DLWZOhbdEA"/>
-      <ownedAttribute xmi:id="_g18_gNwbEeCT5O2F6sGn5g" name="relatedElement" visibility="public" type="_kl90MGvbEdq4DLWZOhbdEA" isReadOnly="true" isDerived="true" isDerivedUnion="true" association="_gyyWitwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g18_gdwbEeCT5O2F6sGn5g" annotatedElement="_g18_gNwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VeBc8RE9EeGOffqMW1YiZA" general="_kl90MGvbEdq4DLWZOhbdEA"/>
+      <ownedAttribute xmi:id="_VeBc8hE9EeGOffqMW1YiZA" name="relatedElement" visibility="public" type="_kl90MGvbEdq4DLWZOhbdEA" isReadOnly="true" isDerived="true" isDerivedUnion="true" association="_VUZm4BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeBc8xE9EeGOffqMW1YiZA" annotatedElement="_VeBc8hE9EeGOffqMW1YiZA">
           <body>Specifies the elements related by the Relationship.</body>
         </ownedComment>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g18_gtwbEeCT5O2F6sGn5g" value="*"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VeBc9BE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g19mUNwbEeCT5O2F6sGn5g" name="RemoveStructuralFeatureValueAction">
-      <ownedComment xmi:id="_g19mUdwbEeCT5O2F6sGn5g" annotatedElement="_g19mUNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VeCEABE9EeGOffqMW1YiZA" name="RemoveStructuralFeatureValueAction">
+      <ownedComment xmi:id="_VeCEARE9EeGOffqMW1YiZA" annotatedElement="_VeCEABE9EeGOffqMW1YiZA">
         <body>A remove structural feature value action is a write structural feature action that removes values from structural features.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g19mUtwbEeCT5O2F6sGn5g" name="non_unique_removal" constrainedElement="_g19mUNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g19mU9wbEeCT5O2F6sGn5g" annotatedElement="_g19mUtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VeCEAhE9EeGOffqMW1YiZA" name="non_unique_removal" constrainedElement="_VeCEABE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeCEAxE9EeGOffqMW1YiZA" annotatedElement="_VeCEAhE9EeGOffqMW1YiZA">
           <body>Actions removing a value from ordered non-unique structural features must have a single removeAt input pin and no value input pin if isRemoveDuplicates is false. The removeAt pin must be of type Unlimited Natural with multiplicity 1..1. Otherwise, the action has a value input pin and no removeAt input pin.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g19mVNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeCEBBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>if not self.structuralFeature.isOrdered or self.structuralFeature.isUnique or  isRemoveDuplicates then
   self.removeAt -> isEmpty() and self.value -> notEmpty()
@@ -13414,30 +13423,30 @@
 endif</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g19mVdwbEeCT5O2F6sGn5g" general="_g2bgYNwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g19mVtwbEeCT5O2F6sGn5g" name="isRemoveDuplicates" visibility="public">
-        <ownedComment xmi:id="_g19mV9wbEeCT5O2F6sGn5g" annotatedElement="_g19mVtwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VeCEBRE9EeGOffqMW1YiZA" general="_VfKscBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VeCEBhE9EeGOffqMW1YiZA" name="isRemoveDuplicates" visibility="public">
+        <ownedComment xmi:id="_VeCEBxE9EeGOffqMW1YiZA" annotatedElement="_VeCEBhE9EeGOffqMW1YiZA">
           <body>Specifies whether to remove duplicates of the value in nonunique structural features.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g19mWNwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VeCECBE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g19mWdwbEeCT5O2F6sGn5g" name="removeAt" visibility="public" type="_g0aHKdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzBnMNwbEeCT5O2F6sGn5g" association="_gyy9kNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g19mWtwbEeCT5O2F6sGn5g" annotatedElement="_g19mWdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VeCECRE9EeGOffqMW1YiZA" name="removeAt" visibility="public" type="_VZp6WRE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4IABE9EeGOffqMW1YiZA" association="_VUZm5BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeCEChE9EeGOffqMW1YiZA" annotatedElement="_VeCECRE9EeGOffqMW1YiZA">
           <body>Specifies the position of an existing value to remove in ordered nonunique structural features. The type of the pin is UnlimitedNatural, but the value cannot be zero or unlimited.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g19mW9wbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VeCECxE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g19mXNwbEeCT5O2F6sGn5g" name="RemoveVariableValueAction">
-      <ownedComment xmi:id="_g19mXdwbEeCT5O2F6sGn5g" annotatedElement="_g19mXNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VeCrEBE9EeGOffqMW1YiZA" name="RemoveVariableValueAction">
+      <ownedComment xmi:id="_VeCrERE9EeGOffqMW1YiZA" annotatedElement="_VeCrEBE9EeGOffqMW1YiZA">
         <body>A remove variable value action is a write variable action that removes values from variables.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g1-NYNwbEeCT5O2F6sGn5g" name="unlimited_natural" constrainedElement="_g19mXNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1-NYdwbEeCT5O2F6sGn5g" annotatedElement="_g1-NYNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VeCrEhE9EeGOffqMW1YiZA" name="unlimited_natural" constrainedElement="_VeCrEBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeCrExE9EeGOffqMW1YiZA" annotatedElement="_VeCrEhE9EeGOffqMW1YiZA">
           <body>Actions removing a value from ordered non-unique variables must have a single removeAt input pin and no value input pin if isRemoveDuplicates is false. The removeAt pin must be of type Unlimited Natural with multiplicity 1..1. Otherwise, the action has a value input pin and no removeAt input pin.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1-NYtwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeCrFBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>if not self.variable.isOrdered or self.variable.isUnique or isRemoveDuplicates then 
   self.removeAt -> isEmpty() and self.value -> notEmpty()
@@ -13450,136 +13459,136 @@
 endif</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g1-NY9wbEeCT5O2F6sGn5g" general="_g2bgddwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g1-NZNwbEeCT5O2F6sGn5g" name="isRemoveDuplicates" visibility="public">
-        <ownedComment xmi:id="_g1-NZdwbEeCT5O2F6sGn5g" annotatedElement="_g1-NZNwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VeCrFRE9EeGOffqMW1YiZA" general="_VfLTgBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VeCrFhE9EeGOffqMW1YiZA" name="isRemoveDuplicates" visibility="public">
+        <ownedComment xmi:id="_VeCrFxE9EeGOffqMW1YiZA" annotatedElement="_VeCrFhE9EeGOffqMW1YiZA">
           <body>Specifies whether to remove duplicates of the value in nonunique variables.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g1-NZtwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VeCrGBE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1-NZ9wbEeCT5O2F6sGn5g" name="removeAt" visibility="public" type="_g0aHKdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzBnMNwbEeCT5O2F6sGn5g" association="_gyy9k9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1-NaNwbEeCT5O2F6sGn5g" annotatedElement="_g1-NZ9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VeCrGRE9EeGOffqMW1YiZA" name="removeAt" visibility="public" type="_VZp6WRE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4IABE9EeGOffqMW1YiZA" association="_VUZm5xE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeCrGhE9EeGOffqMW1YiZA" annotatedElement="_VeCrGRE9EeGOffqMW1YiZA">
           <body>Specifies the position of an existing value to remove in ordered nonunique variables. The type of the pin is UnlimitedNatural, but the value cannot be zero or unlimited.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1-NadwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VeCrGxE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g1-NatwbEeCT5O2F6sGn5g" name="ReplyAction">
-      <ownedComment xmi:id="_g1-Na9wbEeCT5O2F6sGn5g" annotatedElement="_g1-NatwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VeDSIBE9EeGOffqMW1YiZA" name="ReplyAction">
+      <ownedComment xmi:id="_VeDSIRE9EeGOffqMW1YiZA" annotatedElement="_VeDSIBE9EeGOffqMW1YiZA">
         <body>A reply action is an action that accepts a set of return values and a value containing return information produced by a previous accept call action. The reply action returns the values to the caller of the previous call, completing execution of the call.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g1-NbNwbEeCT5O2F6sGn5g" name="pins_match_parameter" constrainedElement="_g1-NatwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1-NbdwbEeCT5O2F6sGn5g" annotatedElement="_g1-NbNwbEeCT5O2F6sGn5g">
-          <body>The reply value pins must match the return, out, and inout parameters of the operation on the event on the trigger in number, type, and order.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1-NbtwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g1-Nb9wbEeCT5O2F6sGn5g" name="event_on_reply_to_call_trigger" constrainedElement="_g1-NatwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1-NcNwbEeCT5O2F6sGn5g" annotatedElement="_g1-Nb9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VeDSIhE9EeGOffqMW1YiZA" name="event_on_reply_to_call_trigger" constrainedElement="_VeDSIBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeDSIxE9EeGOffqMW1YiZA" annotatedElement="_VeDSIhE9EeGOffqMW1YiZA">
           <body>The event on replyToCall trigger must be a CallEvent replyToCallEvent.oclIsKindOf(CallEvent)</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1-NcdwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeDSJBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>replyToCallEvent.oclIsKindOf(CallEvent)</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g1-NctwbEeCT5O2F6sGn5g" general="_6WKakLLQEeCsYvaJqFFivQ"/>
-      <ownedAttribute xmi:id="_g1-Nc9wbEeCT5O2F6sGn5g" name="replyToCall" visibility="public" type="_g2TkldwbEeCT5O2F6sGn5g" association="_gyy9ltwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1-NdNwbEeCT5O2F6sGn5g" annotatedElement="_g1-Nc9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VeDSJRE9EeGOffqMW1YiZA" name="pins_match_parameter" constrainedElement="_VeDSIBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeDSJhE9EeGOffqMW1YiZA" annotatedElement="_VeDSJRE9EeGOffqMW1YiZA">
+          <body>The reply value pins must match the return, out, and inout parameters of the operation on the event on the trigger in number, type, and order.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeDSJxE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VeDSKBE9EeGOffqMW1YiZA" general="_6WKakLLQEeCsYvaJqFFivQ"/>
+      <ownedAttribute xmi:id="_VeDSKRE9EeGOffqMW1YiZA" name="replyToCall" visibility="public" type="_VfCJkBE9EeGOffqMW1YiZA" association="_VUaN8BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeDSKhE9EeGOffqMW1YiZA" annotatedElement="_VeDSKRE9EeGOffqMW1YiZA">
           <body>The trigger specifying the operation whose call is being replied to.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1-NddwbEeCT5O2F6sGn5g" name="replyValue" visibility="public" type="_g0aHKdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzBnMNwbEeCT5O2F6sGn5g" association="_gyy9mdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1-NdtwbEeCT5O2F6sGn5g" annotatedElement="_g1-NddwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VeDSKxE9EeGOffqMW1YiZA" name="replyValue" visibility="public" type="_VZp6WRE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4IABE9EeGOffqMW1YiZA" association="_VUaN8xE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeDSLBE9EeGOffqMW1YiZA" annotatedElement="_VeDSKxE9EeGOffqMW1YiZA">
           <body>A list of pins containing the reply values of the operation. These values are returned to the caller.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1-Nd9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1-NeNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VeDSLRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VeDSLhE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1-NedwbEeCT5O2F6sGn5g" name="returnInformation" visibility="public" type="_g0aHKdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzBnMNwbEeCT5O2F6sGn5g" association="_gy3PANwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1-NetwbEeCT5O2F6sGn5g" annotatedElement="_g1-NedwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VeDSLxE9EeGOffqMW1YiZA" name="returnInformation" visibility="public" type="_VZp6WRE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4IABE9EeGOffqMW1YiZA" association="_VUg7oBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeDSMBE9EeGOffqMW1YiZA" annotatedElement="_VeDSLxE9EeGOffqMW1YiZA">
           <body>A pin containing the return information value produced by an earlier AcceptCallAction.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g1-0cNwbEeCT5O2F6sGn5g" name="SendObjectAction">
-      <ownedComment xmi:id="_g1-0cdwbEeCT5O2F6sGn5g" annotatedElement="_g1-0cNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VeD5MBE9EeGOffqMW1YiZA" name="SendObjectAction">
+      <ownedComment xmi:id="_VeD5MRE9EeGOffqMW1YiZA" annotatedElement="_VeD5MBE9EeGOffqMW1YiZA">
         <body>A send object action is an action that transmits an object to the target object, where it may invoke behavior such as the firing of state machine transitions or the execution of an activity. The value of the object is available to the execution of invoked behaviors. The requestor continues execution immediately. Any reply message is ignored and is not transmitted to the requestor.</body>
       </ownedComment>
-      <generalization xmi:id="_g1-0ctwbEeCT5O2F6sGn5g" general="_g0gNxdwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g1-0c9wbEeCT5O2F6sGn5g" name="request" visibility="public" type="_g0aHKdwbEeCT5O2F6sGn5g" aggregation="composite" redefinedProperty="_g0gNzNwbEeCT5O2F6sGn5g" association="_gyzkrdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1-0dNwbEeCT5O2F6sGn5g" annotatedElement="_g1-0c9wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VeD5MhE9EeGOffqMW1YiZA" general="_VZzEQBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VeD5MxE9EeGOffqMW1YiZA" name="request" visibility="public" type="_VZp6WRE9EeGOffqMW1YiZA" aggregation="composite" redefinedProperty="_VZzERxE9EeGOffqMW1YiZA" association="_VUbcFRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeD5NBE9EeGOffqMW1YiZA" annotatedElement="_VeD5MxE9EeGOffqMW1YiZA">
           <body>The request object, which is transmitted to the target object. The object may be copied in transmission, so identity might not be preserved.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1-0ddwbEeCT5O2F6sGn5g" name="target" visibility="public" type="_g0aHKdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzBnMNwbEeCT5O2F6sGn5g" association="_gy8ulNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1-0dtwbEeCT5O2F6sGn5g" annotatedElement="_g1-0ddwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VeD5NRE9EeGOffqMW1YiZA" name="target" visibility="public" type="_VZp6WRE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4IABE9EeGOffqMW1YiZA" association="_VUpehBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeD5NhE9EeGOffqMW1YiZA" annotatedElement="_VeD5NRE9EeGOffqMW1YiZA">
           <body>The target object to which the object is sent.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g1-0d9wbEeCT5O2F6sGn5g" name="SendSignalAction">
-      <ownedComment xmi:id="_g1-0eNwbEeCT5O2F6sGn5g" annotatedElement="_g1-0d9wbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VeKm4BE9EeGOffqMW1YiZA" name="SendSignalAction">
+      <ownedComment xmi:id="_VeKm4RE9EeGOffqMW1YiZA" annotatedElement="_VeKm4BE9EeGOffqMW1YiZA">
         <body>A send signal action is an action that creates a signal instance from its inputs, and transmits it to the target object, where it may cause the firing of a state machine transition or the execution of an activity. The argument values are available to the execution of associated behaviors. The requestor continues execution immediately. Any reply message is ignored and is not transmitted to the requestor. If the input is already a signal instance, use a send object action.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g1-0edwbEeCT5O2F6sGn5g" name="type_ordering_multiplicity" constrainedElement="_g1-0d9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1-0etwbEeCT5O2F6sGn5g" annotatedElement="_g1-0edwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VeKm4hE9EeGOffqMW1YiZA" name="type_ordering_multiplicity" constrainedElement="_VeKm4BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeKm4xE9EeGOffqMW1YiZA" annotatedElement="_VeKm4hE9EeGOffqMW1YiZA">
           <body>The type, ordering, and multiplicity of an argument pin must be the same as the corresponding attribute of the signal.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1-0e9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeKm5BE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g1-0fNwbEeCT5O2F6sGn5g" name="number_order" constrainedElement="_g1-0d9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1-0fdwbEeCT5O2F6sGn5g" annotatedElement="_g1-0fNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VeKm5RE9EeGOffqMW1YiZA" name="number_order" constrainedElement="_VeKm4BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeKm5hE9EeGOffqMW1YiZA" annotatedElement="_VeKm5RE9EeGOffqMW1YiZA">
           <body>The number and order of argument pins must be the same as the number and order of attributes in the signal.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g1-0ftwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeKm5xE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g1-0f9wbEeCT5O2F6sGn5g" general="_g0gNxdwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g1-0gNwbEeCT5O2F6sGn5g" name="signal" visibility="public" type="_Pu3O0HL0EdqziYxiZo0YtA" association="_gy5EONwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1-0gdwbEeCT5O2F6sGn5g" annotatedElement="_g1-0gNwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VeKm6BE9EeGOffqMW1YiZA" general="_VZzEQBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VeKm6RE9EeGOffqMW1YiZA" name="signal" visibility="public" type="_Pu3O0HL0EdqziYxiZo0YtA" association="_VUj-8BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeKm6hE9EeGOffqMW1YiZA" annotatedElement="_VeKm6RE9EeGOffqMW1YiZA">
           <body>The type of signal transmitted to the target object.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g1-0gtwbEeCT5O2F6sGn5g" name="target" visibility="public" type="_g0aHKdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzBnMNwbEeCT5O2F6sGn5g" association="_gy8ul9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1-0g9wbEeCT5O2F6sGn5g" annotatedElement="_g1-0gtwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VeKm6xE9EeGOffqMW1YiZA" name="target" visibility="public" type="_VZp6WRE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4IABE9EeGOffqMW1YiZA" association="_VUpehxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeKm7BE9EeGOffqMW1YiZA" annotatedElement="_VeKm6xE9EeGOffqMW1YiZA">
           <body>The target object to which the signal is sent.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g1_bgNwbEeCT5O2F6sGn5g" name="SequenceNode">
-      <ownedComment xmi:id="_g1_bgdwbEeCT5O2F6sGn5g" annotatedElement="_g1_bgNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VeLN8BE9EeGOffqMW1YiZA" name="SequenceNode">
+      <ownedComment xmi:id="_VeLN8RE9EeGOffqMW1YiZA" annotatedElement="_VeLN8BE9EeGOffqMW1YiZA">
         <body>A sequence node is a structured activity node that executes its actions in order.</body>
       </ownedComment>
-      <generalization xmi:id="_g1_bgtwbEeCT5O2F6sGn5g" general="_w1_2cLLREeCsYvaJqFFivQ"/>
-      <ownedAttribute xmi:id="_g1_bg9wbEeCT5O2F6sGn5g" name="executableNode" visibility="public" type="_g0OhCNwbEeCT5O2F6sGn5g" isOrdered="true" aggregation="composite" redefinedProperty="_g2IletwbEeCT5O2F6sGn5g" association="_gybxMNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1_bhNwbEeCT5O2F6sGn5g" annotatedElement="_g1_bg9wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VeLN8hE9EeGOffqMW1YiZA" general="_w1_2cLLREeCsYvaJqFFivQ"/>
+      <ownedAttribute xmi:id="_VeLN8xE9EeGOffqMW1YiZA" name="executableNode" visibility="public" type="_VZPqoBE9EeGOffqMW1YiZA" isOrdered="true" aggregation="composite" redefinedProperty="_VeiaUxE9EeGOffqMW1YiZA" association="_VTWeAxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeLN9BE9EeGOffqMW1YiZA" annotatedElement="_VeLN8xE9EeGOffqMW1YiZA">
           <body>An ordered set of executable nodes.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1_bhdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1_bhtwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VeLN9RE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VeLN9hE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_Pu3O0HL0EdqziYxiZo0YtA" name="Signal">
-      <ownedComment xmi:id="_g1_bh9wbEeCT5O2F6sGn5g" annotatedElement="_Pu3O0HL0EdqziYxiZo0YtA">
+      <ownedComment xmi:id="_VeLN9xE9EeGOffqMW1YiZA" annotatedElement="_Pu3O0HL0EdqziYxiZo0YtA">
         <body>A signal is a specification of send request instances communicated between objects. The receiving object handles the received request instances as specified by its receptions. The data carried by a send request (which was passed to it by the send invocation occurrence that caused that request) are represented as attributes of the signal. A signal is defined independently of the classifiers handling the signal occurrence.</body>
       </ownedComment>
-      <generalization xmi:id="_g1_biNwbEeCT5O2F6sGn5g" general="_6UV2QGwJEdq7X4sGURiZYA"/>
-      <ownedAttribute xmi:id="_g1_bidwbEeCT5O2F6sGn5g" name="ownedAttribute" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" subsettedProperty="_gzuKp9wbEeCT5O2F6sGn5g _g1S4AdwbEeCT5O2F6sGn5g" association="_gyolgNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1_bitwbEeCT5O2F6sGn5g" annotatedElement="_g1_bidwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VeLN-BE9EeGOffqMW1YiZA" general="_6UV2QGwJEdq7X4sGURiZYA"/>
+      <ownedAttribute xmi:id="_VeL1ABE9EeGOffqMW1YiZA" name="ownedAttribute" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" subsettedProperty="_Var1EBE9EeGOffqMW1YiZA _VXldxBE9EeGOffqMW1YiZA" association="_VT_XMBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeL1ARE9EeGOffqMW1YiZA" annotatedElement="_VeL1ABE9EeGOffqMW1YiZA">
           <body>The attributes owned by the signal.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g1_bi9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g1_bjNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VeL1AhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VeL1AxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
       <ownedOperation xmi:id="_YIM4UHL0EdqziYxiZo0YtA" name="createOwnedAttribute">
         <ownedComment xmi:id="_MBen4OwmEdqYHf-imTcTdw" annotatedElement="_YIM4UHL0EdqziYxiZo0YtA">
@@ -13615,383 +13624,383 @@
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g1_bjdwbEeCT5O2F6sGn5g" name="SignalEvent">
-      <ownedComment xmi:id="_g1_bjtwbEeCT5O2F6sGn5g" annotatedElement="_g1_bjdwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VeL1BBE9EeGOffqMW1YiZA" name="SignalEvent">
+      <ownedComment xmi:id="_VeL1BRE9EeGOffqMW1YiZA" annotatedElement="_VeL1BBE9EeGOffqMW1YiZA">
         <body>A signal event represents the receipt of an asynchronous signal instance. A signal event may, for example, cause a state machine to trigger a transition.</body>
       </ownedComment>
-      <generalization xmi:id="_g1_bj9wbEeCT5O2F6sGn5g" general="_g1MKRtwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g1_bkNwbEeCT5O2F6sGn5g" name="signal" visibility="public" type="_Pu3O0HL0EdqziYxiZo0YtA" association="_gy5EPNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g1_bkdwbEeCT5O2F6sGn5g" annotatedElement="_g1_bkNwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VeL1BhE9EeGOffqMW1YiZA" general="_VaEKBhE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VeL1BxE9EeGOffqMW1YiZA" name="signal" visibility="public" type="_Pu3O0HL0EdqziYxiZo0YtA" association="_VUj-9BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeL1CBE9EeGOffqMW1YiZA" annotatedElement="_VeL1BxE9EeGOffqMW1YiZA">
           <body>The specific signal that is associated with this event.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g2ACkNwbEeCT5O2F6sGn5g" name="Slot">
-      <ownedComment xmi:id="_g2ACkdwbEeCT5O2F6sGn5g" annotatedElement="_g2ACkNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VeMcEBE9EeGOffqMW1YiZA" name="Slot">
+      <ownedComment xmi:id="_VeMcERE9EeGOffqMW1YiZA" annotatedElement="_VeMcEBE9EeGOffqMW1YiZA">
         <body>A slot specifies that an entity modeled by an instance specification has a value or values for a specific structural feature.</body>
       </ownedComment>
-      <generalization xmi:id="_g2ACktwbEeCT5O2F6sGn5g" general="_kl90MGvbEdq4DLWZOhbdEA"/>
-      <ownedAttribute xmi:id="_g2ACk9wbEeCT5O2F6sGn5g" name="definingFeature" visibility="public" type="_g2HXUNwbEeCT5O2F6sGn5g" association="_gyYt5NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2AClNwbEeCT5O2F6sGn5g" annotatedElement="_g2ACk9wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VeMcEhE9EeGOffqMW1YiZA" general="_kl90MGvbEdq4DLWZOhbdEA"/>
+      <ownedAttribute xmi:id="_VeMcExE9EeGOffqMW1YiZA" name="definingFeature" visibility="public" type="_Vef-EBE9EeGOffqMW1YiZA" association="_VTOiMBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeMcFBE9EeGOffqMW1YiZA" annotatedElement="_VeMcExE9EeGOffqMW1YiZA">
           <body>The structural feature that specifies the values that may be held by the slot.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2ACldwbEeCT5O2F6sGn5g" name="owningInstance" visibility="public" type="_g0auMNwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gy5rSNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2ACltwbEeCT5O2F6sGn5g" annotatedElement="_g2ACldwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VeMcFRE9EeGOffqMW1YiZA" name="owningInstance" visibility="public" type="_VZrIcBE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VUkmBBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeMcFhE9EeGOffqMW1YiZA" annotatedElement="_VeMcFRE9EeGOffqMW1YiZA">
           <body>The instance specification that owns this slot.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2ACl9wbEeCT5O2F6sGn5g" name="value" visibility="public" type="_g2YdENwbEeCT5O2F6sGn5g" isOrdered="true" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gy_K09wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2ACmNwbEeCT5O2F6sGn5g" annotatedElement="_g2ACl9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VeMcFxE9EeGOffqMW1YiZA" name="value" visibility="public" type="_VfGbABE9EeGOffqMW1YiZA" isOrdered="true" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VUwMMxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeMcGBE9EeGOffqMW1YiZA" annotatedElement="_VeMcFxE9EeGOffqMW1YiZA">
           <body>The value or values corresponding to the defining feature for the owning instance specification.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2ACmdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2ACmtwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VeMcGRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VeMcGhE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g2ACm9wbEeCT5O2F6sGn5g" name="StartClassifierBehaviorAction">
-      <ownedComment xmi:id="_g2ACnNwbEeCT5O2F6sGn5g" annotatedElement="_g2ACm9wbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VeNDIBE9EeGOffqMW1YiZA" name="StartClassifierBehaviorAction">
+      <ownedComment xmi:id="_VeNDIRE9EeGOffqMW1YiZA" annotatedElement="_VeNDIBE9EeGOffqMW1YiZA">
         <body>A start classifier behavior action is an action that starts the classifier behavior of the input.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g2ACndwbEeCT5O2F6sGn5g" name="multiplicity" constrainedElement="_g2ACm9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2ACntwbEeCT5O2F6sGn5g" annotatedElement="_g2ACndwbEeCT5O2F6sGn5g">
-          <body>The multiplicity of the input pin is 1..1</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2ACn9wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g2ACoNwbEeCT5O2F6sGn5g" name="type_has_classifier" constrainedElement="_g2ACm9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2ACodwbEeCT5O2F6sGn5g" annotatedElement="_g2ACoNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VeNDIhE9EeGOffqMW1YiZA" name="type_has_classifier" constrainedElement="_VeNDIBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeNDIxE9EeGOffqMW1YiZA" annotatedElement="_VeNDIhE9EeGOffqMW1YiZA">
           <body>If the input pin has a type, then the type must have a classifier behavior.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2ACotwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeNDJBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g2ACo9wbEeCT5O2F6sGn5g" general="_6WKakLLQEeCsYvaJqFFivQ"/>
-      <ownedAttribute xmi:id="_g2ACpNwbEeCT5O2F6sGn5g" name="object" visibility="public" type="_g0aHKdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzBnMNwbEeCT5O2F6sGn5g" association="_gymJQNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2ACpdwbEeCT5O2F6sGn5g" annotatedElement="_g2ACpNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VeNDJRE9EeGOffqMW1YiZA" name="multiplicity" constrainedElement="_VeNDIBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeNDJhE9EeGOffqMW1YiZA" annotatedElement="_VeNDJRE9EeGOffqMW1YiZA">
+          <body>The multiplicity of the input pin is 1..1</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeNDJxE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VeNDKBE9EeGOffqMW1YiZA" general="_6WKakLLQEeCsYvaJqFFivQ"/>
+      <ownedAttribute xmi:id="_VeNDKRE9EeGOffqMW1YiZA" name="object" visibility="public" type="_VZp6WRE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4IABE9EeGOffqMW1YiZA" association="_VT3bYBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeNDKhE9EeGOffqMW1YiZA" annotatedElement="_VeNDKRE9EeGOffqMW1YiZA">
           <body>Holds the object on which to start the owned behavior.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g2ApoNwbEeCT5O2F6sGn5g" name="StartObjectBehaviorAction">
-      <ownedComment xmi:id="_g2ApodwbEeCT5O2F6sGn5g" annotatedElement="_g2ApoNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VeNqMBE9EeGOffqMW1YiZA" name="StartObjectBehaviorAction">
+      <ownedComment xmi:id="_VeNqMRE9EeGOffqMW1YiZA" annotatedElement="_VeNqMBE9EeGOffqMW1YiZA">
         <body>StartObjectBehaviorAction is an action that starts the execution either of a directly instantiated behavior or of the classifier behavior of an object. Argument values may be supplied for the input parameters of the behavior. If the behavior is invoked synchronously, then output values may be obtained for output parameters.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g2ApotwbEeCT5O2F6sGn5g" name="number_order_results" constrainedElement="_g2ApoNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2Apo9wbEeCT5O2F6sGn5g" annotatedElement="_g2ApotwbEeCT5O2F6sGn5g">
-          <body>The number and order of result pins must be the same as the number and order of the in-out, out and return parameters of the invoked behavior. Pins are matched to parameters by order.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2AppNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g2AppdwbEeCT5O2F6sGn5g" name="multiplicity_of_object" constrainedElement="_g2ApoNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2ApptwbEeCT5O2F6sGn5g" annotatedElement="_g2AppdwbEeCT5O2F6sGn5g">
-          <body>The multiplicity of the object input pin must be [1..1].</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2App9wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g2ApqNwbEeCT5O2F6sGn5g" name="type_ordering_multiplicity_match" constrainedElement="_g2ApoNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2ApqdwbEeCT5O2F6sGn5g" annotatedElement="_g2ApqNwbEeCT5O2F6sGn5g">
-          <body>The type, ordering, and multiplicity of an argument or result pin must be the same as the corresponding parameter of the behavior.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2ApqtwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g2Apq9wbEeCT5O2F6sGn5g" name="number_order_arguments" constrainedElement="_g2ApoNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2AprNwbEeCT5O2F6sGn5g" annotatedElement="_g2Apq9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VeNqMhE9EeGOffqMW1YiZA" name="number_order_arguments" constrainedElement="_VeNqMBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeNqMxE9EeGOffqMW1YiZA" annotatedElement="_VeNqMhE9EeGOffqMW1YiZA">
           <body>The number and order of the argument pins must be the same as the number and order of the in and in-out parameters of the invoked behavior. Pins are matched to parameters by order.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2AprdwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeNqNBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g2AprtwbEeCT5O2F6sGn5g" name="type_of_object" constrainedElement="_g2ApoNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2Apr9wbEeCT5O2F6sGn5g" annotatedElement="_g2AprtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VeNqNRE9EeGOffqMW1YiZA" name="type_ordering_multiplicity_match" constrainedElement="_VeNqMBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeNqNhE9EeGOffqMW1YiZA" annotatedElement="_VeNqNRE9EeGOffqMW1YiZA">
+          <body>The type, ordering, and multiplicity of an argument or result pin must be the same as the corresponding parameter of the behavior.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeNqNxE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VeNqOBE9EeGOffqMW1YiZA" name="number_order_results" constrainedElement="_VeNqMBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeNqORE9EeGOffqMW1YiZA" annotatedElement="_VeNqOBE9EeGOffqMW1YiZA">
+          <body>The number and order of result pins must be the same as the number and order of the in-out, out and return parameters of the invoked behavior. Pins are matched to parameters by order.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeNqOhE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VeNqOxE9EeGOffqMW1YiZA" name="type_of_object" constrainedElement="_VeNqMBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeNqPBE9EeGOffqMW1YiZA" annotatedElement="_VeNqOxE9EeGOffqMW1YiZA">
           <body>The type of the object input pin must be either a Behavior or a BehavioredClassifier with a classifier behavior.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2ApsNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeNqPRE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g2ApsdwbEeCT5O2F6sGn5g" general="_gzmO0NwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g2ApstwbEeCT5O2F6sGn5g" name="object" visibility="public" type="_g0aHKdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzBnMNwbEeCT5O2F6sGn5g" association="_gymJQ9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2Aps9wbEeCT5O2F6sGn5g" annotatedElement="_g2ApstwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VeNqPhE9EeGOffqMW1YiZA" name="multiplicity_of_object" constrainedElement="_VeNqMBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeNqPxE9EeGOffqMW1YiZA" annotatedElement="_VeNqPhE9EeGOffqMW1YiZA">
+          <body>The multiplicity of the object input pin must be [1..1].</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeNqQBE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VeORQBE9EeGOffqMW1YiZA" general="_VWTEUBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VeORQRE9EeGOffqMW1YiZA" name="object" visibility="public" type="_VZp6WRE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4IABE9EeGOffqMW1YiZA" association="_VT3bYxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeORQhE9EeGOffqMW1YiZA" annotatedElement="_VeORQRE9EeGOffqMW1YiZA">
           <body>Holds the object which is either a behavior to be started or has a classifier behavior to be started.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g2Ce0NwbEeCT5O2F6sGn5g" name="State">
-      <ownedComment xmi:id="_g2Ce0dwbEeCT5O2F6sGn5g" annotatedElement="_g2Ce0NwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VeRUkBE9EeGOffqMW1YiZA" name="State">
+      <ownedComment xmi:id="_VeRUkRE9EeGOffqMW1YiZA" annotatedElement="_VeRUkBE9EeGOffqMW1YiZA">
         <body>A state models a situation during which some (usually implicit) invariant condition holds.</body>
       </ownedComment>
-      <ownedComment xmi:id="_g2Ce0twbEeCT5O2F6sGn5g" annotatedElement="_g2Ce0NwbEeCT5O2F6sGn5g">
+      <ownedComment xmi:id="_VeRUkhE9EeGOffqMW1YiZA" annotatedElement="_VeRUkBE9EeGOffqMW1YiZA">
         <body>The states of protocol state machines are exposed to the users of their context classifiers. A protocol state represents an exposed stable situation of its context classifier: when an instance of the classifier is not processing any operation, users of this instance can always know its state configuration.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g2Ce09wbEeCT5O2F6sGn5g" name="entry_or_exit" constrainedElement="_g2Ce0NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2Ce1NwbEeCT5O2F6sGn5g" annotatedElement="_g2Ce09wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VeRUkxE9EeGOffqMW1YiZA" name="entry_or_exit" constrainedElement="_VeRUkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeR7oBE9EeGOffqMW1YiZA" annotatedElement="_VeRUkxE9EeGOffqMW1YiZA">
           <body>Only entry or exit pseudostates can serve as connection points.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2Ce1dwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeR7oRE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>connectionPoint->forAll(cp|cp.kind = #entry or cp.kind = #exit)</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g2Ce1twbEeCT5O2F6sGn5g" name="submachine_states" constrainedElement="_g2Ce0NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2Ce19wbEeCT5O2F6sGn5g" annotatedElement="_g2Ce1twbEeCT5O2F6sGn5g">
-          <body>Only submachine states can have connection point references.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2Ce2NwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>isSubmachineState implies connection->notEmpty ( )</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g2Ce2dwbEeCT5O2F6sGn5g" name="composite_states" constrainedElement="_g2Ce0NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2Ce2twbEeCT5O2F6sGn5g" annotatedElement="_g2Ce2dwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VeR7ohE9EeGOffqMW1YiZA" name="composite_states" constrainedElement="_VeRUkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeR7oxE9EeGOffqMW1YiZA" annotatedElement="_VeR7ohE9EeGOffqMW1YiZA">
           <body>Only composite states can have entry or exit pseudostates defined.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2Ce29wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeR7pBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>connectionPoint->notEmpty() implies isComoposite</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g2Ce3NwbEeCT5O2F6sGn5g" name="destinations_or_sources_of_transitions" constrainedElement="_g2Ce0NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2Ce3dwbEeCT5O2F6sGn5g" annotatedElement="_g2Ce3NwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VeR7pRE9EeGOffqMW1YiZA" name="destinations_or_sources_of_transitions" constrainedElement="_VeRUkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeR7phE9EeGOffqMW1YiZA" annotatedElement="_VeR7pRE9EeGOffqMW1YiZA">
           <body>The connection point references used as destinations/sources of transitions associated with a submachine state must be defined as entry/exit points in the submachine state machine.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2Ce3twbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeR7pxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.isSubmachineState implies (self.connection->forAll (cp |
 cp.entry->forAll (p | p.statemachine = self.submachine) and
 cp.exit->forAll (p | p.statemachine = self.submachine)))</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g2Ce39wbEeCT5O2F6sGn5g" name="submachine_or_regions" constrainedElement="_g2Ce0NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2Ce4NwbEeCT5O2F6sGn5g" annotatedElement="_g2Ce39wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VeR7qBE9EeGOffqMW1YiZA" name="submachine_or_regions" constrainedElement="_VeRUkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeR7qRE9EeGOffqMW1YiZA" annotatedElement="_VeR7qBE9EeGOffqMW1YiZA">
           <body>A state is not allowed to have both a submachine and regions.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2Ce4dwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeR7qhE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>isComposite implies not isSubmachineState</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g2Ce4twbEeCT5O2F6sGn5g" general="_uCRA4La-EeCRxrN1JUGuxA"/>
-      <generalization xmi:id="_g2Ce49wbEeCT5O2F6sGn5g" general="_ZiwkoGwLEdq7X4sGURiZYA"/>
-      <generalization xmi:id="_g2Ce5NwbEeCT5O2F6sGn5g" general="_xM1WoPnlEdunWsS3se92JQ"/>
-      <ownedAttribute xmi:id="_g2Ce5dwbEeCT5O2F6sGn5g" name="connection" visibility="public" type="_gz80JdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g1S4AdwbEeCT5O2F6sGn5g" association="_gyVqm9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2Ce5twbEeCT5O2F6sGn5g" annotatedElement="_g2Ce5dwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VeR7qxE9EeGOffqMW1YiZA" name="submachine_states" constrainedElement="_VeRUkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeR7rBE9EeGOffqMW1YiZA" annotatedElement="_VeR7qxE9EeGOffqMW1YiZA">
+          <body>Only submachine states can have connection point references.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeR7rRE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>isSubmachineState implies connection->notEmpty ( )</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VeR7rhE9EeGOffqMW1YiZA" general="_ZiwkoGwLEdq7X4sGURiZYA"/>
+      <generalization xmi:id="_VeR7rxE9EeGOffqMW1YiZA" general="_uCRA4La-EeCRxrN1JUGuxA"/>
+      <generalization xmi:id="_VeR7sBE9EeGOffqMW1YiZA" general="_xM1WoPnlEdunWsS3se92JQ"/>
+      <ownedAttribute xmi:id="_VeR7sRE9EeGOffqMW1YiZA" name="connection" visibility="public" type="_VYKskBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_Var1EBE9EeGOffqMW1YiZA" association="_VTGmYhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeR7shE9EeGOffqMW1YiZA" annotatedElement="_VeR7sRE9EeGOffqMW1YiZA">
           <body>The entry and exit connection points used in conjunction with this (submachine) state, i.e. as targets and sources, respectively, in the region with the submachine state. A connection point reference references the corresponding definition of a connection point pseudostate in the statemachine referenced by the submachinestate.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2Ce59wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2Ce6NwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VeR7sxE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VeR7tBE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2Ce6dwbEeCT5O2F6sGn5g" name="connectionPoint" visibility="public" type="_g1zOQNwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g1S4AdwbEeCT5O2F6sGn5g" association="_gyVqmdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2Ce6twbEeCT5O2F6sGn5g" annotatedElement="_g2Ce6dwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VeR7tRE9EeGOffqMW1YiZA" name="connectionPoint" visibility="public" type="_VdaY8BE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_Var1EBE9EeGOffqMW1YiZA" association="_VTGmYBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeR7thE9EeGOffqMW1YiZA" annotatedElement="_VeR7tRE9EeGOffqMW1YiZA">
           <body>The entry and exit pseudostates of a composite state. These can only be entry or exit Pseudostates, and they must have different names. They can only be defined for composite states.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2Ce69wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2Ce7NwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VeR7txE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VeR7uBE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2Ce7dwbEeCT5O2F6sGn5g" name="deferrableTrigger" visibility="public" type="_g2TkldwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gyYG3twbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2Ce7twbEeCT5O2F6sGn5g" annotatedElement="_g2Ce7dwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VeR7uRE9EeGOffqMW1YiZA" name="deferrableTrigger" visibility="public" type="_VfCJkBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VTN7IBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeR7uhE9EeGOffqMW1YiZA" annotatedElement="_VeR7uRE9EeGOffqMW1YiZA">
           <body>A list of triggers that are candidates to be retained by the state machine if they trigger no transitions out of the state (not consumed). A deferred trigger is retained until the state machine reaches a state configuration where it is no longer deferred.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2Ce79wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2Ce8NwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VeR7uxE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VeR7vBE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2Ce8dwbEeCT5O2F6sGn5g" name="doActivity" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gyZU8NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2Ce8twbEeCT5O2F6sGn5g" annotatedElement="_g2Ce8dwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VeR7vRE9EeGOffqMW1YiZA" name="doActivity" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VTPwUxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeR7vhE9EeGOffqMW1YiZA" annotatedElement="_VeR7vRE9EeGOffqMW1YiZA">
           <body>An optional behavior that is executed while being in the state. The execution starts when this state is entered, and stops either by itself, or when the state is exited, whichever comes first.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2Ce89wbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VeR7vxE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2Ce9NwbEeCT5O2F6sGn5g" name="entry" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gyajFtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2Ce9dwbEeCT5O2F6sGn5g" annotatedElement="_g2Ce9NwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VeR7wBE9EeGOffqMW1YiZA" name="entry" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VTUBwxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeR7wRE9EeGOffqMW1YiZA" annotatedElement="_VeR7wBE9EeGOffqMW1YiZA">
           <body>An optional behavior that is executed whenever this state is entered regardless of the transition taken to reach the state. If defined, entry actions are always executed to completion prior to any internal behavior or transitions performed within the state.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2Ce9twbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VeR7whE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2Ce99wbEeCT5O2F6sGn5g" name="exit" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gybxOtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2Ce-NwbEeCT5O2F6sGn5g" annotatedElement="_g2Ce99wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VeR7wxE9EeGOffqMW1YiZA" name="exit" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VTXsIBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeR7xBE9EeGOffqMW1YiZA" annotatedElement="_VeR7wxE9EeGOffqMW1YiZA">
           <body>An optional behavior that is executed whenever this state is exited regardless of which transition was taken out of the state. If defined, exit actions are always executed to completion only after all internal activities and transition actions have completed execution.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2Ce-dwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VeR7xRE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2Ce-twbEeCT5O2F6sGn5g" name="isComposite" visibility="public" isReadOnly="true" isDerived="true">
-        <ownedComment xmi:id="_g2Ce-9wbEeCT5O2F6sGn5g" annotatedElement="_g2Ce-twbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VeR7xhE9EeGOffqMW1YiZA" name="isComposite" visibility="public" isReadOnly="true" isDerived="true">
+        <ownedComment xmi:id="_VeR7xxE9EeGOffqMW1YiZA" annotatedElement="_VeR7xhE9EeGOffqMW1YiZA">
           <body>A state with isComposite=true is said to be a composite state. A composite state is a state that contains at least one region.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g2Ce_NwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VeR7yBE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2Ce_dwbEeCT5O2F6sGn5g" name="isOrthogonal" visibility="public" isReadOnly="true" isDerived="true">
-        <ownedComment xmi:id="_g2Ce_twbEeCT5O2F6sGn5g" annotatedElement="_g2Ce_dwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VeR7yRE9EeGOffqMW1YiZA" name="isOrthogonal" visibility="public" isReadOnly="true" isDerived="true">
+        <ownedComment xmi:id="_VeR7yhE9EeGOffqMW1YiZA" annotatedElement="_VeR7yRE9EeGOffqMW1YiZA">
           <body>A state with isOrthogonal=true is said to be an orthogonal composite state. An orthogonal composite state contains two or more regions.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g2Ce_9wbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VeR7yxE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2CfANwbEeCT5O2F6sGn5g" name="isSimple" visibility="public" isReadOnly="true" isDerived="true">
-        <ownedComment xmi:id="_g2CfAdwbEeCT5O2F6sGn5g" annotatedElement="_g2CfANwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VeR7zBE9EeGOffqMW1YiZA" name="isSimple" visibility="public" isReadOnly="true" isDerived="true">
+        <ownedComment xmi:id="_VeR7zRE9EeGOffqMW1YiZA" annotatedElement="_VeR7zBE9EeGOffqMW1YiZA">
           <body>A state with isSimple=true is said to be a simple state. A simple state does not have any regions and it does not refer to any submachine state machine.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g2CfAtwbEeCT5O2F6sGn5g" value="true"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VeR7zhE9EeGOffqMW1YiZA" value="true"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2CfA9wbEeCT5O2F6sGn5g" name="isSubmachineState" visibility="public" isReadOnly="true" isDerived="true">
-        <ownedComment xmi:id="_g2CfBNwbEeCT5O2F6sGn5g" annotatedElement="_g2CfA9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VeR7zxE9EeGOffqMW1YiZA" name="isSubmachineState" visibility="public" isReadOnly="true" isDerived="true">
+        <ownedComment xmi:id="_VeR70BE9EeGOffqMW1YiZA" annotatedElement="_VeR7zxE9EeGOffqMW1YiZA">
           <body>A state with isSubmachineState=true is said to be a submachine state. Such a state refers to a state machine (submachine).</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g2CfBdwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VeR70RE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2CfBtwbEeCT5O2F6sGn5g" name="redefinedState" visibility="public" type="_g2Ce0NwbEeCT5O2F6sGn5g" subsettedProperty="_g15U7twbEeCT5O2F6sGn5g" association="_gyxIaNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2CfB9wbEeCT5O2F6sGn5g" annotatedElement="_g2CfBtwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VeR70hE9EeGOffqMW1YiZA" name="redefinedState" visibility="public" type="_VeRUkBE9EeGOffqMW1YiZA" subsettedProperty="_VdtT4BE9EeGOffqMW1YiZA" association="_VUWjkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeR70xE9EeGOffqMW1YiZA" annotatedElement="_VeR70hE9EeGOffqMW1YiZA">
           <body>The state of which this state is a redefinition.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2CfCNwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VeR71BE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2CfCdwbEeCT5O2F6sGn5g" name="redefinitionContext" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" isReadOnly="true" isDerived="true" redefinedProperty="_zYrE4La-EeCRxrN1JUGuxA" association="_gyxvddwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2CfCtwbEeCT5O2F6sGn5g" annotatedElement="_g2CfCdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VeR71RE9EeGOffqMW1YiZA" name="redefinitionContext" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" isReadOnly="true" isDerived="true" redefinedProperty="_zYrE4La-EeCRxrN1JUGuxA" association="_VUXKpRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeR71hE9EeGOffqMW1YiZA" annotatedElement="_VeR71RE9EeGOffqMW1YiZA">
           <body>References the classifier in which context this element may be redefined.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2CfC9wbEeCT5O2F6sGn5g" name="region" visibility="public" type="_g18_QNwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g1S4AdwbEeCT5O2F6sGn5g" association="_gyyWiNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2CfDNwbEeCT5O2F6sGn5g" annotatedElement="_g2CfC9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VeR71xE9EeGOffqMW1YiZA" name="region" visibility="public" type="_VeA14BE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_Var1EBE9EeGOffqMW1YiZA" association="_VUY_1BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeR72BE9EeGOffqMW1YiZA" annotatedElement="_VeR71xE9EeGOffqMW1YiZA">
           <body>The regions owned directly by the state.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2CfDdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2CfDtwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VeR72RE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VeR72hE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2CfD9wbEeCT5O2F6sGn5g" name="stateInvariant" visibility="public" type="_g0AegNwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g1TfANwbEeCT5O2F6sGn5g" association="_gy65ZdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2CfENwbEeCT5O2F6sGn5g" annotatedElement="_g2CfD9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VeR72xE9EeGOffqMW1YiZA" name="stateInvariant" visibility="public" type="_VYbLQBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_Var1FBE9EeGOffqMW1YiZA" association="_VUmbNRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeR73BE9EeGOffqMW1YiZA" annotatedElement="_VeR72xE9EeGOffqMW1YiZA">
           <body>Specifies conditions that are always true when this state is the current state. In protocol state machines, state invariants are additional conditions to the preconditions of the outgoing transitions, and to the postcondition of the incoming transitions.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2CfEdwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VeR73RE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2CfEtwbEeCT5O2F6sGn5g" name="submachine" visibility="public" type="_g2EUANwbEeCT5O2F6sGn5g" association="_gy7gc9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2CfE9wbEeCT5O2F6sGn5g" annotatedElement="_g2CfEtwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VeR73hE9EeGOffqMW1YiZA" name="submachine" visibility="public" type="_VeWNEBE9EeGOffqMW1YiZA" association="_VUnpUhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeR73xE9EeGOffqMW1YiZA" annotatedElement="_VeR73hE9EeGOffqMW1YiZA">
           <body>The state machine that is to be inserted in place of the (submachine) state.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2CfFNwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VeR74BE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedOperation xmi:id="_g2CfFdwbEeCT5O2F6sGn5g" name="containingStateMachine" visibility="public" bodyCondition="_g2CfF9wbEeCT5O2F6sGn5g" isQuery="true" redefinedOperation="_g2ZrRdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2CfFtwbEeCT5O2F6sGn5g" annotatedElement="_g2CfFdwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VeR74RE9EeGOffqMW1YiZA" name="containingStateMachine" visibility="public" bodyCondition="_VeR74xE9EeGOffqMW1YiZA" isQuery="true" redefinedOperation="_VfI3TBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeR74hE9EeGOffqMW1YiZA" annotatedElement="_VeR74RE9EeGOffqMW1YiZA">
           <body>The query containingStateMachine() returns the state machine that contains the state either directly or transitively.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g2CfF9wbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g2CfFdwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2CfGNwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VeR74xE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VeR74RE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeR75BE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = container.containingStateMachine()</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g2CfGdwbEeCT5O2F6sGn5g" name="result" visibility="public" type="_g2EUANwbEeCT5O2F6sGn5g" direction="return"/>
+        <ownedParameter xmi:id="_VeR75RE9EeGOffqMW1YiZA" name="result" visibility="public" type="_VeWNEBE9EeGOffqMW1YiZA" direction="return"/>
       </ownedOperation>
-      <ownedOperation xmi:id="_g2CfGtwbEeCT5O2F6sGn5g" name="isComposite" visibility="public" bodyCondition="_g2CfHNwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g2CfG9wbEeCT5O2F6sGn5g" annotatedElement="_g2CfGtwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VeR75hE9EeGOffqMW1YiZA" name="isComposite" visibility="public" bodyCondition="_VeR76BE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VeR75xE9EeGOffqMW1YiZA" annotatedElement="_VeR75hE9EeGOffqMW1YiZA">
           <body>A composite state is a state with at least one region.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g2CfHNwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g2CfGtwbEeCT5O2F6sGn5g _g2Ce-twbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2CfHdwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VeR76BE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VeR75hE9EeGOffqMW1YiZA _VeR7xhE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeR76RE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = region.notEmpty()</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g2CfHtwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VeR76hE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g2CfH9wbEeCT5O2F6sGn5g" name="isConsistentWith" visibility="public" bodyCondition="_g2CfIdwbEeCT5O2F6sGn5g" isQuery="true" redefinedOperation="_g1578NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2CfINwbEeCT5O2F6sGn5g" annotatedElement="_g2CfH9wbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VeR76xE9EeGOffqMW1YiZA" name="isConsistentWith" visibility="public" bodyCondition="_VeR77RE9EeGOffqMW1YiZA" isQuery="true" redefinedOperation="_Vd1PsBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeR77BE9EeGOffqMW1YiZA" annotatedElement="_VeR76xE9EeGOffqMW1YiZA">
           <body>The query isConsistentWith() specifies that a redefining state is consistent with a redefined state provided that the redefining state is an extension of the redefined state: A simple state can be redefined (extended) to become a composite state (by adding a region) and a composite state can be redefined (extended) by adding regions and by adding vertices, states, and transitions to inherited regions. All states may add or replace entry, exit, and 'doActivity' actions.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g2CfIdwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g2CfH9wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2CfItwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VeR77RE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VeR76xE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeR77hE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = true</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g2CfI9wbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VeR77xE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
-        <ownedParameter xmi:id="_g2CfJNwbEeCT5O2F6sGn5g" name="redefinee" visibility="public" type="_uCRA4La-EeCRxrN1JUGuxA"/>
+        <ownedParameter xmi:id="_VeR78BE9EeGOffqMW1YiZA" name="redefinee" visibility="public" type="_uCRA4La-EeCRxrN1JUGuxA"/>
       </ownedOperation>
-      <ownedOperation xmi:id="_g2CfJdwbEeCT5O2F6sGn5g" name="isOrthogonal" visibility="public" bodyCondition="_g2CfJ9wbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g2CfJtwbEeCT5O2F6sGn5g" annotatedElement="_g2CfJdwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VeR78RE9EeGOffqMW1YiZA" name="isOrthogonal" visibility="public" bodyCondition="_VeR78xE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VeR78hE9EeGOffqMW1YiZA" annotatedElement="_VeR78RE9EeGOffqMW1YiZA">
           <body>An orthogonal state is a composite state with at least 2 regions</body>
         </ownedComment>
-        <ownedRule xmi:id="_g2CfJ9wbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g2CfJdwbEeCT5O2F6sGn5g _g2Ce_dwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2CfKNwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VeR78xE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VeR78RE9EeGOffqMW1YiZA _VeR7yRE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeR79BE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = (region->size () > 1)</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g2CfKdwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VeR79RE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g2CfKtwbEeCT5O2F6sGn5g" name="isRedefinitionContextValid" visibility="public" bodyCondition="_g2CfLNwbEeCT5O2F6sGn5g" isQuery="true" redefinedOperation="_g157-NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2CfK9wbEeCT5O2F6sGn5g" annotatedElement="_g2CfKtwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VeR79hE9EeGOffqMW1YiZA" name="isRedefinitionContextValid" visibility="public" bodyCondition="_VeR7-BE9EeGOffqMW1YiZA" isQuery="true" redefinedOperation="_Vd1PuBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeR79xE9EeGOffqMW1YiZA" annotatedElement="_VeR79hE9EeGOffqMW1YiZA">
           <body>The query isRedefinitionContextValid() specifies whether the redefinition contexts of a state are properly related to the redefinition contexts of the specified state to allow this element to redefine the other. The containing region of a redefining state must redefine the containing region of the redefined state.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g2CfLNwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g2CfKtwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2CfLdwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VeR7-BE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VeR79hE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeR7-RE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = true</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g2CfLtwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VeR7-hE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
-        <ownedParameter xmi:id="_g2CfL9wbEeCT5O2F6sGn5g" name="redefined" visibility="public" type="_g2Ce0NwbEeCT5O2F6sGn5g"/>
+        <ownedParameter xmi:id="_VeR7-xE9EeGOffqMW1YiZA" name="redefined" visibility="public" type="_VeRUkBE9EeGOffqMW1YiZA"/>
       </ownedOperation>
-      <ownedOperation xmi:id="_g2CfMNwbEeCT5O2F6sGn5g" name="isSimple" visibility="public" bodyCondition="_g2CfMtwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g2CfMdwbEeCT5O2F6sGn5g" annotatedElement="_g2CfMNwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VeR7_BE9EeGOffqMW1YiZA" name="isSimple" visibility="public" bodyCondition="_VeR7_hE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VeR7_RE9EeGOffqMW1YiZA" annotatedElement="_VeR7_BE9EeGOffqMW1YiZA">
           <body>A simple state is a state without any regions.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g2CfMtwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g2CfMNwbEeCT5O2F6sGn5g _g2CfANwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2CfM9wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VeR7_hE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VeR7_BE9EeGOffqMW1YiZA _VeR7zBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeR7_xE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = region.isEmpty()</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g2CfNNwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VeR8ABE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g2CfNdwbEeCT5O2F6sGn5g" name="isSubmachineState" visibility="public" bodyCondition="_g2DF4NwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g2CfNtwbEeCT5O2F6sGn5g" annotatedElement="_g2CfNdwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VeR8ARE9EeGOffqMW1YiZA" name="isSubmachineState" visibility="public" bodyCondition="_VeR8AxE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VeR8AhE9EeGOffqMW1YiZA" annotatedElement="_VeR8ARE9EeGOffqMW1YiZA">
           <body>Only submachine states can have a reference statemachine.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g2DF4NwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g2CfNdwbEeCT5O2F6sGn5g _g2CfA9wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2DF4dwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VeR8AxE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VeR8ARE9EeGOffqMW1YiZA _VeR7zxE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeR8BBE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = submachine.notEmpty()</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g2DF4twbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VeR8BRE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g2DF49wbEeCT5O2F6sGn5g" name="redefinitionContext" visibility="public" bodyCondition="_g2DF5dwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g2DF5NwbEeCT5O2F6sGn5g" annotatedElement="_g2DF49wbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VeR8BhE9EeGOffqMW1YiZA" name="redefinitionContext" visibility="public" bodyCondition="_VeR8CBE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VeR8BxE9EeGOffqMW1YiZA" annotatedElement="_VeR8BhE9EeGOffqMW1YiZA">
           <body>The redefinition context of a state is the nearest containing statemachine.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g2DF5dwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g2DF49wbEeCT5O2F6sGn5g _g2CfCdwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2DF5twbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VeR8CBE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VeR8BhE9EeGOffqMW1YiZA _VeR71RE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeR8CRE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = let sm = containingStateMachine() in
 if sm.context->isEmpty() or sm.general->notEmpty() then
@@ -14001,113 +14010,113 @@
 endif</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g2DF59wbEeCT5O2F6sGn5g" name="result" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" direction="return"/>
+        <ownedParameter xmi:id="_VeR8ChE9EeGOffqMW1YiZA" name="result" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" direction="return"/>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g2DF6NwbEeCT5O2F6sGn5g" name="StateInvariant">
-      <ownedComment xmi:id="_g2DF6dwbEeCT5O2F6sGn5g" annotatedElement="_g2DF6NwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VeSisBE9EeGOffqMW1YiZA" name="StateInvariant">
+      <ownedComment xmi:id="_VeSisRE9EeGOffqMW1YiZA" annotatedElement="_VeSisBE9EeGOffqMW1YiZA">
         <body>A state invariant is a runtime constraint on the participants of the interaction. It may be used to specify a variety of different kinds of constraints, such as values of attributes or variables, internal or external states, and so on. A state invariant is an interaction fragment and it is placed on a lifeline.</body>
       </ownedComment>
-      <generalization xmi:id="_g2DF6twbEeCT5O2F6sGn5g" general="_g0cjYNwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g2DF69wbEeCT5O2F6sGn5g" name="covered" visibility="public" type="_g0hb4NwbEeCT5O2F6sGn5g" redefinedProperty="_g0cjY9wbEeCT5O2F6sGn5g" association="_gyXfxNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2DF7NwbEeCT5O2F6sGn5g" annotatedElement="_g2DF69wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VeSishE9EeGOffqMW1YiZA" general="_VZuLwBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VeSisxE9EeGOffqMW1YiZA" name="covered" visibility="public" type="_VZ0SYBE9EeGOffqMW1YiZA" redefinedProperty="_VZuLwxE9EeGOffqMW1YiZA" association="_VTLe4BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeSitBE9EeGOffqMW1YiZA" annotatedElement="_VeSisxE9EeGOffqMW1YiZA">
           <body>References the Lifeline on which the StateInvariant appears.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2DF7dwbEeCT5O2F6sGn5g" name="invariant" visibility="public" type="_g0AegNwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gyhQxtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2DF7twbEeCT5O2F6sGn5g" annotatedElement="_g2DF7dwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VeSitRE9EeGOffqMW1YiZA" name="invariant" visibility="public" type="_VYbLQBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VTr1MhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeSithE9EeGOffqMW1YiZA" annotatedElement="_VeSitRE9EeGOffqMW1YiZA">
           <body>A Constraint that should hold at runtime for this StateInvariant</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g2EUANwbEeCT5O2F6sGn5g" name="StateMachine">
-      <ownedComment xmi:id="_g2EUAdwbEeCT5O2F6sGn5g" annotatedElement="_g2EUANwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VeWNEBE9EeGOffqMW1YiZA" name="StateMachine">
+      <ownedComment xmi:id="_VeWNERE9EeGOffqMW1YiZA" annotatedElement="_VeWNEBE9EeGOffqMW1YiZA">
         <body>State machines can be used to express the behavior of part of a system. Behavior is modeled as a traversal of a graph of state nodes interconnected by one or more joined transition arcs that are triggered by the dispatching of series of (event) occurrences. During this traversal, the state machine executes a series of activities associated with various elements of the state machine.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g2EUAtwbEeCT5O2F6sGn5g" name="connection_points" constrainedElement="_g2EUANwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2EUA9wbEeCT5O2F6sGn5g" annotatedElement="_g2EUAtwbEeCT5O2F6sGn5g">
-          <body>The connection points of a state machine are pseudostates of kind entry point or exit point.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2EUBNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>conectionPoint->forAll (c | c.kind = #entryPoint or c.kind = #exitPoint)</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g2EUBdwbEeCT5O2F6sGn5g" name="classifier_context" constrainedElement="_g2EUANwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2EUBtwbEeCT5O2F6sGn5g" annotatedElement="_g2EUBdwbEeCT5O2F6sGn5g">
-          <body>The classifier context of a state machine cannot be an interface.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2EUB9wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>context->notEmpty() implies not context.oclIsKindOf(Interface)</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g2EUCNwbEeCT5O2F6sGn5g" name="method" constrainedElement="_g2EUANwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2EUCdwbEeCT5O2F6sGn5g" annotatedElement="_g2EUCNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VeWNEhE9EeGOffqMW1YiZA" name="method" constrainedElement="_VeWNEBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeWNExE9EeGOffqMW1YiZA" annotatedElement="_VeWNEhE9EeGOffqMW1YiZA">
           <body>A state machine as the method for a behavioral feature cannot have entry/exit connection points.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2EUCtwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeWNFBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>specification->notEmpty() implies connectionPoint->isEmpty()</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g2EUC9wbEeCT5O2F6sGn5g" name="context_classifier" constrainedElement="_g2EUANwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2EUDNwbEeCT5O2F6sGn5g" annotatedElement="_g2EUC9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VeWNFRE9EeGOffqMW1YiZA" name="classifier_context" constrainedElement="_VeWNEBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeWNFhE9EeGOffqMW1YiZA" annotatedElement="_VeWNFRE9EeGOffqMW1YiZA">
+          <body>The classifier context of a state machine cannot be an interface.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeWNFxE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>context->notEmpty() implies not context.oclIsKindOf(Interface)</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VeWNGBE9EeGOffqMW1YiZA" name="context_classifier" constrainedElement="_VeWNEBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeWNGRE9EeGOffqMW1YiZA" annotatedElement="_VeWNGBE9EeGOffqMW1YiZA">
           <body>The context classifier of the method state machine of a behavioral feature must be the classifier that owns the behavioral feature.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2EUDdwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeWNGhE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>specification->notEmpty() implies (context->notEmpty() and specification->featuringClassifier->exists (c | c = context))</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g2EUDtwbEeCT5O2F6sGn5g" general="_TUPtYGveEdq4DLWZOhbdEA"/>
-      <ownedAttribute xmi:id="_g2EUD9wbEeCT5O2F6sGn5g" name="connectionPoint" visibility="public" type="_g1zOQNwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g1S4AdwbEeCT5O2F6sGn5g" association="_gyVqmtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2EUENwbEeCT5O2F6sGn5g" annotatedElement="_g2EUD9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VeWNGxE9EeGOffqMW1YiZA" name="connection_points" constrainedElement="_VeWNEBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeWNHBE9EeGOffqMW1YiZA" annotatedElement="_VeWNGxE9EeGOffqMW1YiZA">
+          <body>The connection points of a state machine are pseudostates of kind entry point or exit point.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeWNHRE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>conectionPoint->forAll (c | c.kind = #entryPoint or c.kind = #exitPoint)</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VeWNHhE9EeGOffqMW1YiZA" general="_TUPtYGveEdq4DLWZOhbdEA"/>
+      <ownedAttribute xmi:id="_VeWNHxE9EeGOffqMW1YiZA" name="connectionPoint" visibility="public" type="_VdaY8BE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_Var1EBE9EeGOffqMW1YiZA" association="_VTGmYRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeWNIBE9EeGOffqMW1YiZA" annotatedElement="_VeWNHxE9EeGOffqMW1YiZA">
           <body>The connection points defined for this state machine. They represent the interface of the state machine when used as part of submachine state.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2EUEdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2EUEtwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VeWNIRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VeWNIhE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2EUE9wbEeCT5O2F6sGn5g" name="extendedStateMachine" visibility="public" type="_g2EUANwbEeCT5O2F6sGn5g" redefinedProperty="_gzikfNwbEeCT5O2F6sGn5g" association="_gycYTdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2EUFNwbEeCT5O2F6sGn5g" annotatedElement="_g2EUE9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VeWNIxE9EeGOffqMW1YiZA" name="extendedStateMachine" visibility="public" type="_VeWNEBE9EeGOffqMW1YiZA" redefinedProperty="_VWEa0BE9EeGOffqMW1YiZA" association="_VTaIYBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeWNJBE9EeGOffqMW1YiZA" annotatedElement="_VeWNIxE9EeGOffqMW1YiZA">
           <body>The state machines of which this is an extension.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2EUFdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2EUFtwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VeWNJRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VeWNJhE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2EUF9wbEeCT5O2F6sGn5g" name="region" visibility="public" type="_g18_QNwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g1S4AdwbEeCT5O2F6sGn5g" association="_gyyWidwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2EUGNwbEeCT5O2F6sGn5g" annotatedElement="_g2EUF9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VeWNJxE9EeGOffqMW1YiZA" name="region" visibility="public" type="_VeA14BE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_Var1EBE9EeGOffqMW1YiZA" association="_VUY_1RE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeWNKBE9EeGOffqMW1YiZA" annotatedElement="_VeWNJxE9EeGOffqMW1YiZA">
           <body>The regions owned directly by the state machine.</body>
         </ownedComment>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2EUGdwbEeCT5O2F6sGn5g" value="*"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VeWNKRE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2EUGtwbEeCT5O2F6sGn5g" name="submachineState" visibility="public" type="_g2Ce0NwbEeCT5O2F6sGn5g" association="_gy7gc9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2EUG9wbEeCT5O2F6sGn5g" annotatedElement="_g2EUGtwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VeWNKhE9EeGOffqMW1YiZA" name="submachineState" visibility="public" type="_VeRUkBE9EeGOffqMW1YiZA" association="_VUnpUhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeWNKxE9EeGOffqMW1YiZA" annotatedElement="_VeWNKhE9EeGOffqMW1YiZA">
           <body>References the submachine(s) in case of a submachine state. Multiple machines are referenced in case of a concurrent state.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2EUHNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2EUHdwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VeWNLBE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VeWNLRE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedOperation xmi:id="_g2EUHtwbEeCT5O2F6sGn5g" name="LCA" visibility="public" bodyCondition="_g2EUINwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g2EUH9wbEeCT5O2F6sGn5g" annotatedElement="_g2EUHtwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VeWNLhE9EeGOffqMW1YiZA" name="LCA" visibility="public" bodyCondition="_VeWNMBE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VeWNLxE9EeGOffqMW1YiZA" annotatedElement="_VeWNLhE9EeGOffqMW1YiZA">
           <body>The operation LCA(s1,s2) returns an orthogonal state or region which is the least common ancestor of states s1 and s2, based on the statemachine containment hierarchy.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g2EUINwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g2EUHtwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2EUIdwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VeWNMBE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VeWNLhE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeWNMRE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>true</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g2EUItwbEeCT5O2F6sGn5g" name="result" visibility="public" type="_ZiwkoGwLEdq7X4sGURiZYA" direction="return"/>
-        <ownedParameter xmi:id="_g2EUI9wbEeCT5O2F6sGn5g" name="s1" visibility="public" type="_g2Ce0NwbEeCT5O2F6sGn5g"/>
-        <ownedParameter xmi:id="_g2EUJNwbEeCT5O2F6sGn5g" name="s2" visibility="public" type="_g2Ce0NwbEeCT5O2F6sGn5g"/>
+        <ownedParameter xmi:id="_VeWNMhE9EeGOffqMW1YiZA" name="result" visibility="public" type="_ZiwkoGwLEdq7X4sGURiZYA" direction="return"/>
+        <ownedParameter xmi:id="_VeWNMxE9EeGOffqMW1YiZA" name="s1" visibility="public" type="_VeRUkBE9EeGOffqMW1YiZA"/>
+        <ownedParameter xmi:id="_VeWNNBE9EeGOffqMW1YiZA" name="s2" visibility="public" type="_VeRUkBE9EeGOffqMW1YiZA"/>
       </ownedOperation>
-      <ownedOperation xmi:id="_g2EUJdwbEeCT5O2F6sGn5g" name="ancestor" visibility="public" bodyCondition="_g2EUJ9wbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g2EUJtwbEeCT5O2F6sGn5g" annotatedElement="_g2EUJdwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VeWNNRE9EeGOffqMW1YiZA" name="ancestor" visibility="public" bodyCondition="_VeWNNxE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VeWNNhE9EeGOffqMW1YiZA" annotatedElement="_VeWNNRE9EeGOffqMW1YiZA">
           <body>The query ancestor(s1, s2) checks whether s1 is an ancestor state of state s2.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g2EUJ9wbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g2EUJdwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2EUKNwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VeWNNxE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VeWNNRE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeWNOBE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = 
 if (s2 = s1) then 
@@ -14122,95 +14131,95 @@
 </body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g2EUKdwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VeWNORE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
-        <ownedParameter xmi:id="_g2EUKtwbEeCT5O2F6sGn5g" name="s1" visibility="public" type="_g2Ce0NwbEeCT5O2F6sGn5g"/>
-        <ownedParameter xmi:id="_g2EUK9wbEeCT5O2F6sGn5g" name="s2" visibility="public" type="_g2Ce0NwbEeCT5O2F6sGn5g"/>
+        <ownedParameter xmi:id="_VeWNOhE9EeGOffqMW1YiZA" name="s1" visibility="public" type="_VeRUkBE9EeGOffqMW1YiZA"/>
+        <ownedParameter xmi:id="_VeWNOxE9EeGOffqMW1YiZA" name="s2" visibility="public" type="_VeRUkBE9EeGOffqMW1YiZA"/>
       </ownedOperation>
-      <ownedOperation xmi:id="_g2EULNwbEeCT5O2F6sGn5g" name="isConsistentWith" visibility="public" bodyCondition="_g2EULtwbEeCT5O2F6sGn5g" isQuery="true" redefinedOperation="_g1578NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2EULdwbEeCT5O2F6sGn5g" annotatedElement="_g2EULNwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VeWNPBE9EeGOffqMW1YiZA" name="isConsistentWith" visibility="public" bodyCondition="_VeWNPhE9EeGOffqMW1YiZA" isQuery="true" redefinedOperation="_Vd1PsBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeWNPRE9EeGOffqMW1YiZA" annotatedElement="_VeWNPBE9EeGOffqMW1YiZA">
           <body>The query isConsistentWith() specifies that a redefining state machine is consistent with a redefined state machine provided that the redefining state machine is an extension of the redefined state machine: Regions are inherited and regions can be added, inherited regions can be redefined. In case of multiple redefining state machines, extension implies that the redefining state machine gets orthogonal regions for each of the redefined state machines.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g2EULtwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g2EULNwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2EUL9wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VeWNPhE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VeWNPBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeWNPxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = true</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g2EUMNwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VeWNQBE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
-        <ownedParameter xmi:id="_g2EUMdwbEeCT5O2F6sGn5g" name="redefinee" visibility="public" type="_uCRA4La-EeCRxrN1JUGuxA"/>
+        <ownedParameter xmi:id="_VeWNQRE9EeGOffqMW1YiZA" name="redefinee" visibility="public" type="_uCRA4La-EeCRxrN1JUGuxA"/>
       </ownedOperation>
-      <ownedOperation xmi:id="_g2EUMtwbEeCT5O2F6sGn5g" name="isRedefinitionContextValid" visibility="public" bodyCondition="_g2EUNNwbEeCT5O2F6sGn5g" isQuery="true" redefinedOperation="_g157-NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2EUM9wbEeCT5O2F6sGn5g" annotatedElement="_g2EUMtwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VeWNQhE9EeGOffqMW1YiZA" name="isRedefinitionContextValid" visibility="public" bodyCondition="_VeWNRBE9EeGOffqMW1YiZA" isQuery="true" redefinedOperation="_Vd1PuBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeWNQxE9EeGOffqMW1YiZA" annotatedElement="_VeWNQhE9EeGOffqMW1YiZA">
           <body>The query isRedefinitionContextValid() specifies whether the redefinition contexts of a statemachine are properly related to the redefinition contexts of the specified statemachine to allow this element to redefine the other. The containing classifier of a redefining statemachine must redefine the containing classifier of the redefined statemachine.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g2EUNNwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g2EUMtwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2EUNdwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VeWNRBE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VeWNQhE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeWNRRE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = true</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g2EUNtwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VeWNRhE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
-        <ownedParameter xmi:id="_g2EUN9wbEeCT5O2F6sGn5g" name="redefined" visibility="public" type="_g2EUANwbEeCT5O2F6sGn5g"/>
+        <ownedParameter xmi:id="_VeWNRxE9EeGOffqMW1YiZA" name="redefined" visibility="public" type="_VeWNEBE9EeGOffqMW1YiZA"/>
       </ownedOperation>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_A7vDAGv0Edq7X4sGURiZYA" name="Stereotype">
-      <ownedComment xmi:id="_g2EUONwbEeCT5O2F6sGn5g" annotatedElement="_A7vDAGv0Edq7X4sGURiZYA">
+      <ownedComment xmi:id="_VeWNSBE9EeGOffqMW1YiZA" annotatedElement="_A7vDAGv0Edq7X4sGURiZYA">
         <body>A stereotype defines how an existing metaclass may be extended, and enables the use of platform or domain specific terminology or notation in place of, or in addition to, the ones used for the extended metaclass.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g2E7ENwbEeCT5O2F6sGn5g" name="binaryAssociationsOnly" constrainedElement="_A7vDAGv0Edq7X4sGURiZYA">
-        <ownedComment xmi:id="_g2E7EdwbEeCT5O2F6sGn5g" annotatedElement="_g2E7ENwbEeCT5O2F6sGn5g">
-          <body>Stereotypes may only participate in binary associations.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2E7EtwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>ownedAttribute.association->forAll(memberEnd->size()=2)</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g2E7E9wbEeCT5O2F6sGn5g" name="generalize" constrainedElement="_A7vDAGv0Edq7X4sGURiZYA">
-        <ownedComment xmi:id="_g2E7FNwbEeCT5O2F6sGn5g" annotatedElement="_g2E7E9wbEeCT5O2F6sGn5g">
-          <body>A Stereotype may only generalize or specialize another Stereotype.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2E7FdwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>generalization.general->forAll(e |e.oclIsKindOf(Stereotype)) and generalization.specific->forAll(e | e.oclIsKindOf(Stereotype)) </body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g2E7FtwbEeCT5O2F6sGn5g" name="name_not_clash" constrainedElement="_A7vDAGv0Edq7X4sGURiZYA">
-        <ownedComment xmi:id="_g2E7F9wbEeCT5O2F6sGn5g" annotatedElement="_g2E7FtwbEeCT5O2F6sGn5g">
-          <body>Stereotype names should not clash with keyword names for the extended model element.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2E7GNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g2E7GdwbEeCT5O2F6sGn5g" name="associationEndOwnership" constrainedElement="_A7vDAGv0Edq7X4sGURiZYA">
-        <ownedComment xmi:id="_g2E7GtwbEeCT5O2F6sGn5g" annotatedElement="_g2E7GdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VeWNSRE9EeGOffqMW1YiZA" name="associationEndOwnership" constrainedElement="_A7vDAGv0Edq7X4sGURiZYA">
+        <ownedComment xmi:id="_VeWNShE9EeGOffqMW1YiZA" annotatedElement="_VeWNSRE9EeGOffqMW1YiZA">
           <body>Where a stereotype’s property is an association end for an association other than a kind of extension, and the other end is not a stereotype, the other end must be owned by the association itself.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2E7G9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeWNSxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>ownedAttribute
 ->select(association->notEmpty() and not association.oclIsKindOf(Extension) and not type.oclIsKindOf(Stereotype))
 ->forAll(opposite.owner = association)</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g2E7HNwbEeCT5O2F6sGn5g" general="_00owUGvdEdq4DLWZOhbdEA"/>
-      <ownedAttribute xmi:id="_g2E7HdwbEeCT5O2F6sGn5g" name="icon" visibility="public" type="_nDq0wJPzEdqpjIDDFZ2Hgw" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gye0iNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2E7HtwbEeCT5O2F6sGn5g" annotatedElement="_g2E7HdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VeW0IBE9EeGOffqMW1YiZA" name="name_not_clash" constrainedElement="_A7vDAGv0Edq7X4sGURiZYA">
+        <ownedComment xmi:id="_VeW0IRE9EeGOffqMW1YiZA" annotatedElement="_VeW0IBE9EeGOffqMW1YiZA">
+          <body>Stereotype names should not clash with keyword names for the extended model element.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeW0IhE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VeW0IxE9EeGOffqMW1YiZA" name="binaryAssociationsOnly" constrainedElement="_A7vDAGv0Edq7X4sGURiZYA">
+        <ownedComment xmi:id="_VeW0JBE9EeGOffqMW1YiZA" annotatedElement="_VeW0IxE9EeGOffqMW1YiZA">
+          <body>Stereotypes may only participate in binary associations.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeW0JRE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>ownedAttribute.association->forAll(memberEnd->size()=2)</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VeW0JhE9EeGOffqMW1YiZA" name="generalize" constrainedElement="_A7vDAGv0Edq7X4sGURiZYA">
+        <ownedComment xmi:id="_VeW0JxE9EeGOffqMW1YiZA" annotatedElement="_VeW0JhE9EeGOffqMW1YiZA">
+          <body>A Stereotype may only generalize or specialize another Stereotype.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeW0KBE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>generalization.general->forAll(e |e.oclIsKindOf(Stereotype)) and generalization.specific->forAll(e | e.oclIsKindOf(Stereotype)) </body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VeW0KRE9EeGOffqMW1YiZA" general="_00owUGvdEdq4DLWZOhbdEA"/>
+      <ownedAttribute xmi:id="_VeW0KhE9EeGOffqMW1YiZA" name="icon" visibility="public" type="_nDq0wJPzEdqpjIDDFZ2Hgw" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VTm8sBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeW0KxE9EeGOffqMW1YiZA" annotatedElement="_VeW0KhE9EeGOffqMW1YiZA">
           <body>Stereotype can change the graphical appearance of the extended model element by using attached icons. When this association is not null, it references the location of the icon content to be displayed within diagrams presenting the extended model elements.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2E7H9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2E7INwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VeW0LBE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VeW0LRE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2E7IdwbEeCT5O2F6sGn5g" name="profile" visibility="public" type="__pew8GvzEdq7X4sGURiZYA" isReadOnly="true" isDerived="true" association="_gyteAtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2E7ItwbEeCT5O2F6sGn5g" annotatedElement="_g2E7IdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_Vec6wBE9EeGOffqMW1YiZA" name="profile" visibility="public" type="__pew8GvzEdq7X4sGURiZYA" isReadOnly="true" isDerived="true" association="_VUK9YRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vec6wRE9EeGOffqMW1YiZA" annotatedElement="_Vec6wBE9EeGOffqMW1YiZA">
           <body>The profile that directly or indirectly contains this stereotype.</body>
         </ownedComment>
       </ownedAttribute>
@@ -14311,24 +14320,24 @@
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g2E7I9wbEeCT5O2F6sGn5g" name="containingProfile" visibility="public" bodyCondition="_g2E7JdwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g2E7JNwbEeCT5O2F6sGn5g" annotatedElement="_g2E7I9wbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_Vec6whE9EeGOffqMW1YiZA" name="containingProfile" visibility="public" bodyCondition="_Vec6xBE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_Vec6wxE9EeGOffqMW1YiZA" annotatedElement="_Vec6whE9EeGOffqMW1YiZA">
           <body>The query containingProfile returns the closest profile directly or indirectly containing this stereotype.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g2E7JdwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g2E7I9wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2E7JtwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_Vec6xBE9EeGOffqMW1YiZA" name="spec" constrainedElement="_Vec6whE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vec6xRE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = self.namespace.oclAsType(Package).containingProfile()</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g2E7J9wbEeCT5O2F6sGn5g" name="result" visibility="public" type="__pew8GvzEdq7X4sGURiZYA" direction="return"/>
+        <ownedParameter xmi:id="_Vec6xhE9EeGOffqMW1YiZA" name="result" visibility="public" type="__pew8GvzEdq7X4sGURiZYA" direction="return"/>
       </ownedOperation>
-      <ownedOperation xmi:id="_jDbsYLL7EeCBifIhhuFqZA" name="profile" visibility="public" bodyCondition="_g2FiIdwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g2FiINwbEeCT5O2F6sGn5g" annotatedElement="_jDbsYLL7EeCBifIhhuFqZA">
+      <ownedOperation xmi:id="_jDbsYLL7EeCBifIhhuFqZA" name="profile" visibility="public" bodyCondition="_Vedh0RE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_Vedh0BE9EeGOffqMW1YiZA" annotatedElement="_jDbsYLL7EeCBifIhhuFqZA">
           <body>A stereotype must be contained, directly or indirectly, in a profile.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g2FiIdwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_jDbsYLL7EeCBifIhhuFqZA _g2E7IdwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2FiItwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_Vedh0RE9EeGOffqMW1YiZA" name="spec" constrainedElement="_jDbsYLL7EeCBifIhhuFqZA _Vec6wBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vedh0hE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = self.containingProfile()</body>
           </specification>
@@ -14336,106 +14345,87 @@
         <ownedParameter xmi:id="_nkVEsLL7EeCBifIhhuFqZA" name="result" visibility="public" type="__pew8GvzEdq7X4sGURiZYA" direction="return"/>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g2GwQNwbEeCT5O2F6sGn5g" name="StringExpression">
-      <ownedComment xmi:id="_g2GwQdwbEeCT5O2F6sGn5g" annotatedElement="_g2GwQNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VefXABE9EeGOffqMW1YiZA" name="StringExpression">
+      <ownedComment xmi:id="_VefXARE9EeGOffqMW1YiZA" annotatedElement="_VefXABE9EeGOffqMW1YiZA">
         <body>An expression that specifies a string value that is derived by concatenating a set of sub string expressions, some of which might be template parameters.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g2GwQtwbEeCT5O2F6sGn5g" name="operands" constrainedElement="_g2GwQNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2GwQ9wbEeCT5O2F6sGn5g" annotatedElement="_g2GwQtwbEeCT5O2F6sGn5g">
-          <body>All the operands of a StringExpression must be LiteralStrings</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2GwRNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>operand->forAll (op | op.oclIsKindOf (LiteralString))</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g2GwRdwbEeCT5O2F6sGn5g" name="subexpressions" constrainedElement="_g2GwQNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2GwRtwbEeCT5O2F6sGn5g" annotatedElement="_g2GwRdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VefXAhE9EeGOffqMW1YiZA" name="subexpressions" constrainedElement="_VefXABE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VefXAxE9EeGOffqMW1YiZA" annotatedElement="_VefXAhE9EeGOffqMW1YiZA">
           <body>If a StringExpression has sub-expressions, it cannot have operands and vice versa (this avoids the problem of having to define a collating sequence between operands and subexpressions).</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2GwR9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VefXBBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>if subExpression->notEmpty() then operand->isEmpty() else operand->notEmpty()</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g2GwSNwbEeCT5O2F6sGn5g" general="_g2PTINwbEeCT5O2F6sGn5g"/>
-      <generalization xmi:id="_g2GwSdwbEeCT5O2F6sGn5g" general="_8QuDcLG3EeCDe8CO90iVKQ"/>
-      <ownedAttribute xmi:id="_g2GwStwbEeCT5O2F6sGn5g" name="owningExpression" visibility="public" type="_g2GwQNwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gy7gcNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2GwS9wbEeCT5O2F6sGn5g" annotatedElement="_g2GwStwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VefXBRE9EeGOffqMW1YiZA" name="operands" constrainedElement="_VefXABE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VefXBhE9EeGOffqMW1YiZA" annotatedElement="_VefXBRE9EeGOffqMW1YiZA">
+          <body>All the operands of a StringExpression must be LiteralStrings</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VefXBxE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>operand->forAll (op | op.oclIsKindOf (LiteralString))</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VefXCBE9EeGOffqMW1YiZA" general="_8QuDcLG3EeCDe8CO90iVKQ"/>
+      <generalization xmi:id="_VefXCRE9EeGOffqMW1YiZA" general="_VeuAgBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VefXChE9EeGOffqMW1YiZA" name="owningExpression" visibility="public" type="_VefXABE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VUnCRhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VefXCxE9EeGOffqMW1YiZA" annotatedElement="_VefXChE9EeGOffqMW1YiZA">
           <body>The string expression of which this expression is a substring.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2GwTNwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VefXDBE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2GwTdwbEeCT5O2F6sGn5g" name="subExpression" visibility="public" type="_g2GwQNwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gy7gcNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2GwTtwbEeCT5O2F6sGn5g" annotatedElement="_g2GwTdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VefXDRE9EeGOffqMW1YiZA" name="subExpression" visibility="public" type="_VefXABE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VUnCRhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VefXDhE9EeGOffqMW1YiZA" annotatedElement="_VefXDRE9EeGOffqMW1YiZA">
           <body>The StringExpressions that constitute this StringExpression.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2GwT9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2GwUNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VefXDxE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VefXEBE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedOperation xmi:id="_g2GwUdwbEeCT5O2F6sGn5g" name="stringValue" visibility="public" bodyCondition="_g2GwU9wbEeCT5O2F6sGn5g" isQuery="true" redefinedOperation="_g2YdN9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2GwUtwbEeCT5O2F6sGn5g" annotatedElement="_g2GwUdwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VefXERE9EeGOffqMW1YiZA" name="stringValue" visibility="public" bodyCondition="_VefXExE9EeGOffqMW1YiZA" isQuery="true" redefinedOperation="_VfGbJxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VefXEhE9EeGOffqMW1YiZA" annotatedElement="_VefXERE9EeGOffqMW1YiZA">
           <body>The query stringValue() returns the string that concatenates, in order, all the component string literals of all the subexpressions that are part of the StringExpression.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g2GwU9wbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g2GwUdwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2GwVNwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VefXExE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VefXERE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VefXFBE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = if subExpression->notEmpty()
 then subExpression->iterate(se; stringValue = | stringValue.concat(se.stringValue()))
 else operand->iterate()(op; stringValue =  | stringValue.concat(op.value))</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g2GwVdwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VefXFRE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g2HXUNwbEeCT5O2F6sGn5g" name="StructuralFeature" isAbstract="true">
-      <ownedComment xmi:id="_g2HXUdwbEeCT5O2F6sGn5g" annotatedElement="_g2HXUNwbEeCT5O2F6sGn5g">
-        <body>By specializing multiplicity element, it supports a multiplicity that specifies valid cardinalities for the collection of values associated with an instantiation of the structural feature.</body>
-      </ownedComment>
-      <ownedComment xmi:id="_g2HXUtwbEeCT5O2F6sGn5g" annotatedElement="_g2HXUNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_Vef-EBE9EeGOffqMW1YiZA" name="StructuralFeature" isAbstract="true">
+      <ownedComment xmi:id="_Vef-ERE9EeGOffqMW1YiZA" annotatedElement="_Vef-EBE9EeGOffqMW1YiZA">
         <body>A structural feature is a typed feature of a classifier that specifies the structure of instances of the classifier.</body>
       </ownedComment>
-      <generalization xmi:id="_g2HXU9wbEeCT5O2F6sGn5g" general="_Gjgl0GveEdq4DLWZOhbdEA"/>
-      <generalization xmi:id="_g2HXVNwbEeCT5O2F6sGn5g" general="_g2UysNwbEeCT5O2F6sGn5g"/>
-      <generalization xmi:id="_g2HXVdwbEeCT5O2F6sGn5g" general="_UL0VYLbAEeCRxrN1JUGuxA"/>
-      <ownedAttribute xmi:id="_g2HXVtwbEeCT5O2F6sGn5g" name="isReadOnly" visibility="public">
-        <ownedComment xmi:id="_g2HXV9wbEeCT5O2F6sGn5g" annotatedElement="_g2HXVtwbEeCT5O2F6sGn5g">
+      <ownedComment xmi:id="_Vef-EhE9EeGOffqMW1YiZA" annotatedElement="_Vef-EBE9EeGOffqMW1YiZA">
+        <body>By specializing multiplicity element, it supports a multiplicity that specifies valid cardinalities for the collection of values associated with an instantiation of the structural feature.</body>
+      </ownedComment>
+      <generalization xmi:id="_Vef-ExE9EeGOffqMW1YiZA" general="_VfDXsBE9EeGOffqMW1YiZA"/>
+      <generalization xmi:id="_Vef-FBE9EeGOffqMW1YiZA" general="_Gjgl0GveEdq4DLWZOhbdEA"/>
+      <generalization xmi:id="_Vef-FRE9EeGOffqMW1YiZA" general="_UL0VYLbAEeCRxrN1JUGuxA"/>
+      <ownedAttribute xmi:id="_Vef-FhE9EeGOffqMW1YiZA" name="isReadOnly" visibility="public">
+        <ownedComment xmi:id="_Vef-FxE9EeGOffqMW1YiZA" annotatedElement="_Vef-FhE9EeGOffqMW1YiZA">
           <body>States whether the feature's value may be modified by a client.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g2HXWNwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_Vef-GBE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g2H-YNwbEeCT5O2F6sGn5g" name="StructuralFeatureAction" isAbstract="true">
-      <ownedComment xmi:id="_g2H-YdwbEeCT5O2F6sGn5g" annotatedElement="_g2H-YNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VehMMBE9EeGOffqMW1YiZA" name="StructuralFeatureAction" isAbstract="true">
+      <ownedComment xmi:id="_VehMMRE9EeGOffqMW1YiZA" annotatedElement="_VehMMBE9EeGOffqMW1YiZA">
         <body>StructuralFeatureAction is an abstract class for all structural feature actions.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g2H-YtwbEeCT5O2F6sGn5g" name="multiplicity" constrainedElement="_g2H-YNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2H-Y9wbEeCT5O2F6sGn5g" annotatedElement="_g2H-YtwbEeCT5O2F6sGn5g">
-          <body>The multiplicity of the object input pin must be 1..1.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2H-ZNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>self.object.lowerBound()=1 and self.object.upperBound()=1</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g2H-ZdwbEeCT5O2F6sGn5g" name="same_type" constrainedElement="_g2H-YNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2H-ZtwbEeCT5O2F6sGn5g" annotatedElement="_g2H-ZdwbEeCT5O2F6sGn5g">
-          <body>The structural feature must either be owned by the type of the object input pin, or it must be an owned end of a binary association with the type of the opposite end being the type of the object input pin.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2H-Z9wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>self.structuralFeature.featuringClassifier.oclAsType(Type)->includes(self.object.type) or
-	self.structuralFeature.oclAsType(Property).opposite.type = self.object.type</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g2H-aNwbEeCT5O2F6sGn5g" name="visibility" constrainedElement="_g2H-YNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2H-adwbEeCT5O2F6sGn5g" annotatedElement="_g2H-aNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VehMMhE9EeGOffqMW1YiZA" name="visibility" constrainedElement="_VehMMBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VehMMxE9EeGOffqMW1YiZA" annotatedElement="_VehMMhE9EeGOffqMW1YiZA">
           <body>Visibility of structural feature must allow access to the object performing the action.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2H-atwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VehMNBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>let host : Classifier = self.context in
 self.structuralFeature.visibility = #public
@@ -14445,157 +14435,176 @@
 </body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g2H-a9wbEeCT5O2F6sGn5g" name="not_static" constrainedElement="_g2H-YNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2H-bNwbEeCT5O2F6sGn5g" annotatedElement="_g2H-a9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VehMNRE9EeGOffqMW1YiZA" name="multiplicity" constrainedElement="_VehMMBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VehMNhE9EeGOffqMW1YiZA" annotatedElement="_VehMNRE9EeGOffqMW1YiZA">
+          <body>The multiplicity of the object input pin must be 1..1.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VehMNxE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>self.object.lowerBound()=1 and self.object.upperBound()=1</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VehMOBE9EeGOffqMW1YiZA" name="not_static" constrainedElement="_VehMMBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VehMORE9EeGOffqMW1YiZA" annotatedElement="_VehMOBE9EeGOffqMW1YiZA">
           <body>The structural feature must not be static.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2H-bdwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VehMOhE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.structuralFeature.isStatic = #false</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g2H-btwbEeCT5O2F6sGn5g" name="one_featuring_classifier" constrainedElement="_g2H-YNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2H-b9wbEeCT5O2F6sGn5g" annotatedElement="_g2H-btwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VehMOxE9EeGOffqMW1YiZA" name="one_featuring_classifier" constrainedElement="_VehMMBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VehMPBE9EeGOffqMW1YiZA" annotatedElement="_VehMOxE9EeGOffqMW1YiZA">
           <body>A structural feature has exactly one featuringClassifier.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2H-cNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VehMPRE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.structuralFeature.featuringClassifier->size() = 1</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g2H-cdwbEeCT5O2F6sGn5g" general="_6WKakLLQEeCsYvaJqFFivQ"/>
-      <ownedAttribute xmi:id="_g2H-ctwbEeCT5O2F6sGn5g" name="object" visibility="public" type="_g0aHKdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzBnMNwbEeCT5O2F6sGn5g" association="_gymJRtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2H-c9wbEeCT5O2F6sGn5g" annotatedElement="_g2H-ctwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VehMPhE9EeGOffqMW1YiZA" name="same_type" constrainedElement="_VehMMBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VehMPxE9EeGOffqMW1YiZA" annotatedElement="_VehMPhE9EeGOffqMW1YiZA">
+          <body>The structural feature must either be owned by the type of the object input pin, or it must be an owned end of a binary association with the type of the opposite end being the type of the object input pin.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VehMQBE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>self.structuralFeature.featuringClassifier.oclAsType(Type)->includes(self.object.type) or
+	self.structuralFeature.oclAsType(Property).opposite.type = self.object.type</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VehMQRE9EeGOffqMW1YiZA" general="_6WKakLLQEeCsYvaJqFFivQ"/>
+      <ownedAttribute xmi:id="_VehMQhE9EeGOffqMW1YiZA" name="object" visibility="public" type="_VZp6WRE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4IABE9EeGOffqMW1YiZA" association="_VT4CcBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VehMQxE9EeGOffqMW1YiZA" annotatedElement="_VehMQhE9EeGOffqMW1YiZA">
           <body>Gives the input pin from which the object whose structural feature is to be read or written is obtained.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2H-dNwbEeCT5O2F6sGn5g" name="structuralFeature" visibility="public" type="_g2HXUNwbEeCT5O2F6sGn5g" association="_gy65aNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2H-ddwbEeCT5O2F6sGn5g" annotatedElement="_g2H-dNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VehMRBE9EeGOffqMW1YiZA" name="structuralFeature" visibility="public" type="_Vef-EBE9EeGOffqMW1YiZA" association="_VUmbOBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VehMRRE9EeGOffqMW1YiZA" annotatedElement="_VehMRBE9EeGOffqMW1YiZA">
           <body>Structural feature to be read.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_w1_2cLLREeCsYvaJqFFivQ" name="StructuredActivityNode">
-      <ownedComment xmi:id="_g2H-dtwbEeCT5O2F6sGn5g" annotatedElement="_w1_2cLLREeCsYvaJqFFivQ">
-        <body>Because of the concurrent nature of the execution of actions within and across activities, it can be difficult to guarantee the consistent access and modification of object memory. In order to avoid race conditions or other concurrency-related problems, it is sometimes necessary to isolate the effects of a group of actions from the effects of actions outside the group. This may be indicated by setting the mustIsolate attribute to true on a structured activity node. If a structured activity node is &quot;isolated,&quot; then any object used by an action within the node cannot be accessed by any action outside the node until the structured activity node as a whole completes. Any concurrent actions that would result in accessing such objects are required to have their execution deferred until the completion of the node.</body>
-      </ownedComment>
-      <ownedComment xmi:id="_g2H-d9wbEeCT5O2F6sGn5g" annotatedElement="_w1_2cLLREeCsYvaJqFFivQ">
+      <ownedComment xmi:id="_VehMRhE9EeGOffqMW1YiZA" annotatedElement="_w1_2cLLREeCsYvaJqFFivQ">
         <body>A structured activity node is an executable activity node that may have an expansion into subordinate nodes as an activity group. The subordinate nodes must belong to only one structured activity node, although they may be nested.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g2H-eNwbEeCT5O2F6sGn5g" name="output_pin_edges" constrainedElement="_w1_2cLLREeCsYvaJqFFivQ">
-        <ownedComment xmi:id="_g2H-edwbEeCT5O2F6sGn5g" annotatedElement="_g2H-eNwbEeCT5O2F6sGn5g">
-          <body>The outgoing edges of the output pins of a StructuredActivityNode must have targets that are not within the StructuredActivityNode.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2H-etwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g2H-e9wbEeCT5O2F6sGn5g" name="edges" constrainedElement="_w1_2cLLREeCsYvaJqFFivQ">
-        <ownedComment xmi:id="_g2H-fNwbEeCT5O2F6sGn5g" annotatedElement="_g2H-e9wbEeCT5O2F6sGn5g">
-          <body>The edges owned by a structured node must have source and target nodes in the structured node, and vice versa.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2H-fdwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g2H-ftwbEeCT5O2F6sGn5g" name="input_pin_edges" constrainedElement="_w1_2cLLREeCsYvaJqFFivQ">
-        <ownedComment xmi:id="_g2H-f9wbEeCT5O2F6sGn5g" annotatedElement="_g2H-ftwbEeCT5O2F6sGn5g">
+      <ownedComment xmi:id="_VehMRxE9EeGOffqMW1YiZA" annotatedElement="_w1_2cLLREeCsYvaJqFFivQ">
+        <body>Because of the concurrent nature of the execution of actions within and across activities, it can be difficult to guarantee the consistent access and modification of object memory. In order to avoid race conditions or other concurrency-related problems, it is sometimes necessary to isolate the effects of a group of actions from the effects of actions outside the group. This may be indicated by setting the mustIsolate attribute to true on a structured activity node. If a structured activity node is &quot;isolated,&quot; then any object used by an action within the node cannot be accessed by any action outside the node until the structured activity node as a whole completes. Any concurrent actions that would result in accessing such objects are required to have their execution deferred until the completion of the node.</body>
+      </ownedComment>
+      <ownedRule xmi:id="_VehMSBE9EeGOffqMW1YiZA" name="input_pin_edges" constrainedElement="_w1_2cLLREeCsYvaJqFFivQ">
+        <ownedComment xmi:id="_VehMSRE9EeGOffqMW1YiZA" annotatedElement="_VehMSBE9EeGOffqMW1YiZA">
           <body>The incoming edges of the input pins of a StructuredActivityNode must have sources that are not within the StructuredActivityNode.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2H-gNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VehMShE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g2H-gdwbEeCT5O2F6sGn5g" general="_ZiwkoGwLEdq7X4sGURiZYA"/>
-      <generalization xmi:id="_g2H-gtwbEeCT5O2F6sGn5g" general="_gzaBkNwbEeCT5O2F6sGn5g"/>
-      <generalization xmi:id="_g2H-g9wbEeCT5O2F6sGn5g" general="_6WKakLLQEeCsYvaJqFFivQ"/>
-      <ownedAttribute xmi:id="_g2IlcNwbEeCT5O2F6sGn5g" name="activity" visibility="public" type="_eGtFwLLREeCsYvaJqFFivQ" redefinedProperty="_gzaBpNwbEeCT5O2F6sGn5g _gzbPudwbEeCT5O2F6sGn5g" association="_gy65ctwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2IlcdwbEeCT5O2F6sGn5g" annotatedElement="_g2IlcNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VehMSxE9EeGOffqMW1YiZA" name="edges" constrainedElement="_w1_2cLLREeCsYvaJqFFivQ">
+        <ownedComment xmi:id="_VehMTBE9EeGOffqMW1YiZA" annotatedElement="_VehMSxE9EeGOffqMW1YiZA">
+          <body>The edges owned by a structured node must have source and target nodes in the structured node, and vice versa.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VehMTRE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VehzQBE9EeGOffqMW1YiZA" name="output_pin_edges" constrainedElement="_w1_2cLLREeCsYvaJqFFivQ">
+        <ownedComment xmi:id="_VehzQRE9EeGOffqMW1YiZA" annotatedElement="_VehzQBE9EeGOffqMW1YiZA">
+          <body>The outgoing edges of the output pins of a StructuredActivityNode must have targets that are not within the StructuredActivityNode.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VehzQhE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VehzQxE9EeGOffqMW1YiZA" general="_6WKakLLQEeCsYvaJqFFivQ"/>
+      <generalization xmi:id="_VehzRBE9EeGOffqMW1YiZA" general="_ZiwkoGwLEdq7X4sGURiZYA"/>
+      <generalization xmi:id="_VehzRRE9EeGOffqMW1YiZA" general="_aZICgAs-EeGcpbeCPJfCmw"/>
+      <ownedAttribute xmi:id="_gnnw0AtZEeGV4NAcunjVqQ" name="activity" visibility="public" type="_eGtFwLLREeCsYvaJqFFivQ" isDerived="true" redefinedProperty="_5V2SAAtBEeGcpbeCPJfCmw _X0ZfIAtCEeGcpbeCPJfCmw" association="_w4820AtEEeGcpbeCPJfCmw">
+        <ownedComment xmi:id="_VehzRhE9EeGOffqMW1YiZA" annotatedElement="_gnnw0AtZEeGV4NAcunjVqQ">
           <body>Activity immediately containing the node.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2IlctwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VehzRxE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2Ilc9wbEeCT5O2F6sGn5g" name="edge" visibility="public" type="_gzZagNwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzaBnNwbEeCT5O2F6sGn5g _g0JocNwbEeCT5O2F6sGn5g" association="_gyZU9dwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2IldNwbEeCT5O2F6sGn5g" annotatedElement="_g2Ilc9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VehzSBE9EeGOffqMW1YiZA" name="edge" visibility="public" type="_VVcIsBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VVd95BE9EeGOffqMW1YiZA _GDD2YAtAEeGcpbeCPJfCmw" association="_VTQXYhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VehzSRE9EeGOffqMW1YiZA" annotatedElement="_VehzSBE9EeGOffqMW1YiZA">
           <body>Edges immediately contained in the structured node.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2IlddwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2IldtwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VehzShE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VehzSxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2Ild9wbEeCT5O2F6sGn5g" name="mustIsolate" visibility="public">
-        <ownedComment xmi:id="_g2IleNwbEeCT5O2F6sGn5g" annotatedElement="_g2Ild9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VeiaUBE9EeGOffqMW1YiZA" name="mustIsolate" visibility="public">
+        <ownedComment xmi:id="_VeiaURE9EeGOffqMW1YiZA" annotatedElement="_VeiaUBE9EeGOffqMW1YiZA">
           <body>If true, then the actions in the node execute in isolation from actions outside the node.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g2IledwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VeiaUhE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2IletwbEeCT5O2F6sGn5g" name="node" visibility="public" type="_gzbPsNwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g _gzaBoNwbEeCT5O2F6sGn5g" association="_gyliMNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2Ile9wbEeCT5O2F6sGn5g" annotatedElement="_g2IletwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VeiaUxE9EeGOffqMW1YiZA" name="node" visibility="public" type="_WpiyYAs-EeGcpbeCPJfCmw" aggregation="composite" subsettedProperty="_VVd96BE9EeGOffqMW1YiZA _GDD2YAtAEeGcpbeCPJfCmw" association="_VT1mNBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeiaVBE9EeGOffqMW1YiZA" annotatedElement="_VeiaUxE9EeGOffqMW1YiZA">
           <body>Nodes immediately contained in the group.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2IlfNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2IlfdwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VeiaVRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VeiaVhE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2IlftwbEeCT5O2F6sGn5g" name="structuredNodeInput" visibility="public" type="_g0aHKdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzBnMNwbEeCT5O2F6sGn5g" association="_gy65bNwbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2Ilf9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2IlgNwbEeCT5O2F6sGn5g" value="*"/>
+      <ownedAttribute xmi:id="_VeiaVxE9EeGOffqMW1YiZA" name="structuredNodeInput" visibility="public" type="_VZp6WRE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4IABE9EeGOffqMW1YiZA" association="_VUnCQBE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VeiaWBE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VeiaWRE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2IlgdwbEeCT5O2F6sGn5g" name="structuredNodeOutput" visibility="public" type="_g1fsRdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzCOK9wbEeCT5O2F6sGn5g" association="_gy65b9wbEeCT5O2F6sGn5g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2IlgtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2Ilg9wbEeCT5O2F6sGn5g" value="*"/>
+      <ownedAttribute xmi:id="_VeiaWhE9EeGOffqMW1YiZA" name="structuredNodeOutput" visibility="public" type="_VcHYcBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4vEBE9EeGOffqMW1YiZA" association="_VUnCQxE9EeGOffqMW1YiZA">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VeiaWxE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VeiaXBE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2IlhNwbEeCT5O2F6sGn5g" name="variable" visibility="public" type="_g2ZELdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g1S4AdwbEeCT5O2F6sGn5g" association="_gy_x59wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2IlhdwbEeCT5O2F6sGn5g" annotatedElement="_g2IlhNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VejBYBE9EeGOffqMW1YiZA" name="variable" visibility="public" type="_VfIQMBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_Var1EBE9EeGOffqMW1YiZA" association="_VUyocRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VejBYRE9EeGOffqMW1YiZA" annotatedElement="_VejBYBE9EeGOffqMW1YiZA">
           <body>A variable defined in the scope of the structured activity node. It has no value and may not be accessed</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2IlhtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2Ilh9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VejBYhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VejBYxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_FQiVsGwYEdqHKKVoxc0dlA" name="StructuredClassifier" isAbstract="true">
-      <ownedComment xmi:id="_g2JMgNwbEeCT5O2F6sGn5g" annotatedElement="_FQiVsGwYEdqHKKVoxc0dlA">
+      <ownedComment xmi:id="_VejBZBE9EeGOffqMW1YiZA" annotatedElement="_FQiVsGwYEdqHKKVoxc0dlA">
         <body>A structured classifier is an abstract metaclass that represents any classifier whose behavior can be fully or partly described by the collaboration of owned or referenced instances.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g2JMgdwbEeCT5O2F6sGn5g" name="multiplicities" constrainedElement="_FQiVsGwYEdqHKKVoxc0dlA">
-        <ownedComment xmi:id="_g2JMgtwbEeCT5O2F6sGn5g" annotatedElement="_g2JMgdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VejBZRE9EeGOffqMW1YiZA" name="multiplicities" constrainedElement="_FQiVsGwYEdqHKKVoxc0dlA">
+        <ownedComment xmi:id="_VejBZhE9EeGOffqMW1YiZA" annotatedElement="_VejBZRE9EeGOffqMW1YiZA">
           <body>The multiplicities on connected elements must be consistent.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2JMg9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VejBZxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g2JMhNwbEeCT5O2F6sGn5g" general="_6UV2QGwJEdq7X4sGURiZYA"/>
-      <ownedAttribute xmi:id="_g2JMhdwbEeCT5O2F6sGn5g" name="ownedAttribute" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" subsettedProperty="_gzuKp9wbEeCT5O2F6sGn5g _g2JMkdwbEeCT5O2F6sGn5g _g1S4AdwbEeCT5O2F6sGn5g" association="_gyolg9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2JMhtwbEeCT5O2F6sGn5g" annotatedElement="_g2JMhdwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VejocBE9EeGOffqMW1YiZA" general="_6UV2QGwJEdq7X4sGURiZYA"/>
+      <ownedAttribute xmi:id="_VejocRE9EeGOffqMW1YiZA" name="ownedAttribute" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" subsettedProperty="_VXldxBE9EeGOffqMW1YiZA _Var1EBE9EeGOffqMW1YiZA _VekPgBE9EeGOffqMW1YiZA" association="_VT_XMxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VejochE9EeGOffqMW1YiZA" annotatedElement="_VejocRE9EeGOffqMW1YiZA">
           <body>References the properties owned by the classifier.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2JMh9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2JMiNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VejocxE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VejodBE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2JMidwbEeCT5O2F6sGn5g" name="ownedConnector" visibility="public" type="_YxC2YLLWEeCsYvaJqFFivQ" aggregation="composite" subsettedProperty="_gzuKr9wbEeCT5O2F6sGn5g _gyxIb9wbEeCT5O2F6sGn5g _g1S4AdwbEeCT5O2F6sGn5g" association="_gyoljdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2JMitwbEeCT5O2F6sGn5g" annotatedElement="_g2JMidwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VejodRE9EeGOffqMW1YiZA" name="ownedConnector" visibility="public" type="_YxC2YLLWEeCsYvaJqFFivQ" aggregation="composite" subsettedProperty="_VXmE1BE9EeGOffqMW1YiZA _VUWjlxE9EeGOffqMW1YiZA _Var1EBE9EeGOffqMW1YiZA" association="_VT_-QxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VejodhE9EeGOffqMW1YiZA" annotatedElement="_VejodRE9EeGOffqMW1YiZA">
           <body>References the connectors owned by the classifier.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2JMi9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2JMjNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VejodxE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VejoeBE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2JMjdwbEeCT5O2F6sGn5g" name="part" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" isReadOnly="true" isDerived="true" association="_gysP5NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2JMjtwbEeCT5O2F6sGn5g" annotatedElement="_g2JMjdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VejoeRE9EeGOffqMW1YiZA" name="part" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" isReadOnly="true" isDerived="true" association="_VUIhIBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VejoehE9EeGOffqMW1YiZA" annotatedElement="_VejoeRE9EeGOffqMW1YiZA">
           <body>References the properties specifying instances that the classifier owns by composition. This association is derived, selecting those owned properties where isComposite is true.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2JMj9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2JMkNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VejoexE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VejofBE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2JMkdwbEeCT5O2F6sGn5g" name="role" visibility="public" type="_0dB44PnhEdunWsS3se92JQ" isReadOnly="true" isDerived="true" isDerivedUnion="true" subsettedProperty="_g1S3_dwbEeCT5O2F6sGn5g" association="_gy32FtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2JMktwbEeCT5O2F6sGn5g" annotatedElement="_g2JMkdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VekPgBE9EeGOffqMW1YiZA" name="role" visibility="public" type="_0dB44PnhEdunWsS3se92JQ" isReadOnly="true" isDerived="true" isDerivedUnion="true" subsettedProperty="_VarOCBE9EeGOffqMW1YiZA" association="_VUhisxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VekPgRE9EeGOffqMW1YiZA" annotatedElement="_VekPgBE9EeGOffqMW1YiZA">
           <body>References the roles that instances may play in this classifier.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2JMk9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2JMlNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VekPghE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VekPgxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
       <ownedOperation xmi:id="_YorvMHL0EdqziYxiZo0YtA" name="createOwnedAttribute">
         <ownedComment xmi:id="_9BZT4OwlEdqYHf-imTcTdw" annotatedElement="_YorvMHL0EdqziYxiZo0YtA">
@@ -14630,367 +14639,367 @@
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#UnlimitedNatural"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_ATcCwLL8EeCBifIhhuFqZA" name="part" visibility="public" bodyCondition="_g2JzkdwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g2JzkNwbEeCT5O2F6sGn5g" annotatedElement="_ATcCwLL8EeCBifIhhuFqZA">
+      <ownedOperation xmi:id="_ATcCwLL8EeCBifIhhuFqZA" name="part" visibility="public" bodyCondition="_VekPhRE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VekPhBE9EeGOffqMW1YiZA" annotatedElement="_ATcCwLL8EeCBifIhhuFqZA">
           <body>Missing derivation for StructuredClassifier::/part : Property</body>
         </ownedComment>
-        <ownedRule xmi:id="_g2JzkdwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_ATcCwLL8EeCBifIhhuFqZA _g2JMjdwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2JzktwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VekPhRE9EeGOffqMW1YiZA" name="spec" constrainedElement="_ATcCwLL8EeCBifIhhuFqZA _VejoeRE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VekPhhE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>true</body>
           </specification>
         </ownedRule>
         <ownedParameter xmi:id="_BPYtoLL8EeCBifIhhuFqZA" name="result" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2Jzk9wbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2JzlNwbEeCT5O2F6sGn5g" value="*"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VekPhxE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VekPiBE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g2KaoNwbEeCT5O2F6sGn5g" name="Substitution">
-      <ownedComment xmi:id="_g2KaodwbEeCT5O2F6sGn5g" annotatedElement="_g2KaoNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VeldoBE9EeGOffqMW1YiZA" name="Substitution">
+      <ownedComment xmi:id="_VeldoRE9EeGOffqMW1YiZA" annotatedElement="_VeldoBE9EeGOffqMW1YiZA">
         <body>A substitution is a relationship between two classifiers signifies that the substituting classifier complies with the contract specified by the contract classifier. This implies that instances of the substituting classifier are runtime substitutable where instances of the contract classifier are expected.</body>
       </ownedComment>
-      <generalization xmi:id="_g2KaotwbEeCT5O2F6sGn5g" general="_g14Gx9wbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g2Kao9wbEeCT5O2F6sGn5g" name="contract" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" subsettedProperty="_g0EI5twbEeCT5O2F6sGn5g" association="_gyW4uNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2KapNwbEeCT5O2F6sGn5g" annotatedElement="_g2Kao9wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VeldohE9EeGOffqMW1YiZA" general="_Vdi72xE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VeldoxE9EeGOffqMW1YiZA" name="contract" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" subsettedProperty="_VYyXoxE9EeGOffqMW1YiZA" association="_VTJpsBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeldpBE9EeGOffqMW1YiZA" annotatedElement="_VeldoxE9EeGOffqMW1YiZA">
           <body>The contract with which the substituting classifier complies.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2KapdwbEeCT5O2F6sGn5g" name="substitutingClassifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" subsettedProperty="_g0EI49wbEeCT5O2F6sGn5g _g0JodNwbEeCT5O2F6sGn5g" association="_gy7gedwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2KaptwbEeCT5O2F6sGn5g" annotatedElement="_g2KapdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VeldpRE9EeGOffqMW1YiZA" name="substitutingClassifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw _VYyXoBE9EeGOffqMW1YiZA" association="_VUoQYBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeldphE9EeGOffqMW1YiZA" annotatedElement="_VeldpRE9EeGOffqMW1YiZA">
           <body>Instances of the substituting classifier are runtime substitutable where instances of the contract classifier are expected.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g2LBsNwbEeCT5O2F6sGn5g" name="TemplateBinding">
-      <ownedComment xmi:id="_g2LBsdwbEeCT5O2F6sGn5g" annotatedElement="_g2LBsNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VemrwBE9EeGOffqMW1YiZA" name="TemplateBinding">
+      <ownedComment xmi:id="_VemrwRE9EeGOffqMW1YiZA" annotatedElement="_VemrwBE9EeGOffqMW1YiZA">
         <body>A template binding represents a relationship between a templateable element and a template. A template binding specifies the substitutions of actual parameters for the formal parameters of the template.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g2LBstwbEeCT5O2F6sGn5g" name="parameter_substitution_formal" constrainedElement="_g2LBsNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2LBs9wbEeCT5O2F6sGn5g" annotatedElement="_g2LBstwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VemrwhE9EeGOffqMW1YiZA" name="parameter_substitution_formal" constrainedElement="_VemrwBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VemrwxE9EeGOffqMW1YiZA" annotatedElement="_VemrwhE9EeGOffqMW1YiZA">
           <body>Each parameter substitution must refer to a formal template parameter of the target template signature.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2LBtNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VemrxBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>parameterSubstitution->forAll(b | template.parameter->includes(b.formal))</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g2LBtdwbEeCT5O2F6sGn5g" name="one_parameter_substitution" constrainedElement="_g2LBsNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2LBttwbEeCT5O2F6sGn5g" annotatedElement="_g2LBtdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VemrxRE9EeGOffqMW1YiZA" name="one_parameter_substitution" constrainedElement="_VemrwBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VemrxhE9EeGOffqMW1YiZA" annotatedElement="_VemrxRE9EeGOffqMW1YiZA">
           <body>A binding contains at most one parameter substitution for each formal template parameter of the target template signature.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2LBt9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VemrxxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>template.parameter->forAll(p | parameterSubstitution->select(b | b.formal = p)->size() &lt;= 1)</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g2LBuNwbEeCT5O2F6sGn5g" general="_JBgfoKPAEdqi_5gqUMOQtA"/>
-      <ownedAttribute xmi:id="_g2LBudwbEeCT5O2F6sGn5g" name="boundElement" visibility="public" type="_g2PTINwbEeCT5O2F6sGn5g" subsettedProperty="_g0HzQdwbEeCT5O2F6sGn5g _g0JodNwbEeCT5O2F6sGn5g" association="_gy8umtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2LButwbEeCT5O2F6sGn5g" annotatedElement="_g2LBudwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VemryBE9EeGOffqMW1YiZA" general="_JBgfoKPAEdqi_5gqUMOQtA"/>
+      <ownedAttribute xmi:id="_VemryRE9EeGOffqMW1YiZA" name="boundElement" visibility="public" type="_VeuAgBE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw _VY66hRE9EeGOffqMW1YiZA" association="_VUqFkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VemryhE9EeGOffqMW1YiZA" annotatedElement="_VemryRE9EeGOffqMW1YiZA">
           <body>The element that is bound by this binding.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2LBu9wbEeCT5O2F6sGn5g" name="parameterSubstitution" visibility="public" type="_g2Nd8NwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gyro1NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2LBvNwbEeCT5O2F6sGn5g" annotatedElement="_g2LBu9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VemryxE9EeGOffqMW1YiZA" name="parameterSubstitution" visibility="public" type="_VesLUBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VUHTBBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VemrzBE9EeGOffqMW1YiZA" annotatedElement="_VemryxE9EeGOffqMW1YiZA">
           <body>The parameter substitutions owned by this template binding.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2LBvdwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2LBvtwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VemrzRE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VemrzhE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2LBv9wbEeCT5O2F6sGn5g" name="signature" visibility="public" type="_g2OsENwbEeCT5O2F6sGn5g" subsettedProperty="_g0HzRNwbEeCT5O2F6sGn5g" association="_gy5rRNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2LBwNwbEeCT5O2F6sGn5g" annotatedElement="_g2LBv9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VemrzxE9EeGOffqMW1YiZA" name="signature" visibility="public" type="_VesyYBE9EeGOffqMW1YiZA" subsettedProperty="_VY66iBE9EeGOffqMW1YiZA" association="_VUkmABE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vemr0BE9EeGOffqMW1YiZA" annotatedElement="_VemrzxE9EeGOffqMW1YiZA">
           <body>The template signature for the template that is the target of the binding.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_KxRzgGvuEdqG6fBIPwe-mw" name="TemplateParameter">
-      <ownedComment xmi:id="_g2LBwdwbEeCT5O2F6sGn5g" annotatedElement="_KxRzgGvuEdqG6fBIPwe-mw">
+      <ownedComment xmi:id="_VenS0BE9EeGOffqMW1YiZA" annotatedElement="_KxRzgGvuEdqG6fBIPwe-mw">
         <body>A template parameter exposes a parameterable element as a formal template parameter of a template.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g2LBwtwbEeCT5O2F6sGn5g" name="must_be_compatible" constrainedElement="_KxRzgGvuEdqG6fBIPwe-mw">
-        <ownedComment xmi:id="_g2LBw9wbEeCT5O2F6sGn5g" annotatedElement="_g2LBwtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VeqWIBE9EeGOffqMW1YiZA" name="must_be_compatible" constrainedElement="_KxRzgGvuEdqG6fBIPwe-mw">
+        <ownedComment xmi:id="_VeqWIRE9EeGOffqMW1YiZA" annotatedElement="_VeqWIBE9EeGOffqMW1YiZA">
           <body>The default must be compatible with the formal template parameter.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2LBxNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeqWIhE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>default->notEmpty() implies default->isCompatibleWith(parameteredElement)</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g2LBxdwbEeCT5O2F6sGn5g" general="_kl90MGvbEdq4DLWZOhbdEA"/>
-      <ownedAttribute xmi:id="_g2LBxtwbEeCT5O2F6sGn5g" name="default" visibility="public" type="_g1noENwbEeCT5O2F6sGn5g" association="_gyYG2twbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2LBx9wbEeCT5O2F6sGn5g" annotatedElement="_g2LBxtwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VeqWIxE9EeGOffqMW1YiZA" general="_kl90MGvbEdq4DLWZOhbdEA"/>
+      <ownedAttribute xmi:id="_VeqWJBE9EeGOffqMW1YiZA" name="default" visibility="public" type="_Vc730BE9EeGOffqMW1YiZA" association="_VTNUExE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeqWJRE9EeGOffqMW1YiZA" annotatedElement="_VeqWJBE9EeGOffqMW1YiZA">
           <body>The element that is the default for this formal template parameter.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2LByNwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VeqWJhE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2M24NwbEeCT5O2F6sGn5g" name="ownedDefault" visibility="public" type="_g1noENwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g _g2LBxtwbEeCT5O2F6sGn5g" association="_gypMkNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2M24dwbEeCT5O2F6sGn5g" annotatedElement="_g2M24NwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VeqWJxE9EeGOffqMW1YiZA" name="ownedDefault" visibility="public" type="_Vc730BE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw _VeqWJBE9EeGOffqMW1YiZA" association="_VUAlUBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeqWKBE9EeGOffqMW1YiZA" annotatedElement="_VeqWJxE9EeGOffqMW1YiZA">
           <body>The element that is owned by this template parameter for the purpose of providing a default.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2M24twbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VeqWKRE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2M249wbEeCT5O2F6sGn5g" name="ownedParameteredElement" visibility="public" type="_g1noENwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g _g2M25twbEeCT5O2F6sGn5g" association="_gyqatNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2M25NwbEeCT5O2F6sGn5g" annotatedElement="_g2M249wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_Veq9MBE9EeGOffqMW1YiZA" name="ownedParameteredElement" visibility="public" type="_Vc730BE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_Veq9MxE9EeGOffqMW1YiZA _GDD2YAtAEeGcpbeCPJfCmw" association="_VUDBlBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Veq9MRE9EeGOffqMW1YiZA" annotatedElement="_Veq9MBE9EeGOffqMW1YiZA">
           <body>The element that is owned by this template parameter.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2M25dwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Veq9MhE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2M25twbEeCT5O2F6sGn5g" name="parameteredElement" visibility="public" type="_g1noENwbEeCT5O2F6sGn5g" association="_gyro3dwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2M259wbEeCT5O2F6sGn5g" annotatedElement="_g2M25twbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_Veq9MxE9EeGOffqMW1YiZA" name="parameteredElement" visibility="public" type="_Vc730BE9EeGOffqMW1YiZA" association="_VUH6FBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Veq9NBE9EeGOffqMW1YiZA" annotatedElement="_Veq9MxE9EeGOffqMW1YiZA">
           <body>The element exposed by this template parameter.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2M26NwbEeCT5O2F6sGn5g" name="signature" visibility="public" type="_g2OsENwbEeCT5O2F6sGn5g" subsettedProperty="_gyro2twbEeCT5O2F6sGn5g _g0JodNwbEeCT5O2F6sGn5g" association="_gyqas9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2M26dwbEeCT5O2F6sGn5g" annotatedElement="_g2M26NwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_Veq9NRE9EeGOffqMW1YiZA" name="signature" visibility="public" type="_VesyYBE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw _VUH6ERE9EeGOffqMW1YiZA" association="_VUDBkxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Veq9NhE9EeGOffqMW1YiZA" annotatedElement="_Veq9NRE9EeGOffqMW1YiZA">
           <body>The template signature that owns this template parameter.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g2Nd8NwbEeCT5O2F6sGn5g" name="TemplateParameterSubstitution">
-      <ownedComment xmi:id="_g2Nd8dwbEeCT5O2F6sGn5g" annotatedElement="_g2Nd8NwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VesLUBE9EeGOffqMW1YiZA" name="TemplateParameterSubstitution">
+      <ownedComment xmi:id="_VesLURE9EeGOffqMW1YiZA" annotatedElement="_VesLUBE9EeGOffqMW1YiZA">
         <body>A template parameter substitution relates the actual parameter to a formal template parameter as part of a template binding.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g2Nd8twbEeCT5O2F6sGn5g" name="must_be_compatible" constrainedElement="_g2Nd8NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2Nd89wbEeCT5O2F6sGn5g" annotatedElement="_g2Nd8twbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VesLUhE9EeGOffqMW1YiZA" name="must_be_compatible" constrainedElement="_VesLUBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VesLUxE9EeGOffqMW1YiZA" annotatedElement="_VesLUhE9EeGOffqMW1YiZA">
           <body>The actual parameter must be compatible with the formal template parameter, e.g. the actual parameter for a class template parameter must be a class.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2Nd9NwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VesLVBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>actual->forAll(a | a.isCompatibleWith(formal.parameteredElement))</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g2Nd9dwbEeCT5O2F6sGn5g" general="_kl90MGvbEdq4DLWZOhbdEA"/>
-      <ownedAttribute xmi:id="_g2Nd9twbEeCT5O2F6sGn5g" name="actual" visibility="public" type="_g1noENwbEeCT5O2F6sGn5g" association="_gySANtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2Nd99wbEeCT5O2F6sGn5g" annotatedElement="_g2Nd9twbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VesLVRE9EeGOffqMW1YiZA" general="_kl90MGvbEdq4DLWZOhbdEA"/>
+      <ownedAttribute xmi:id="_VesLVhE9EeGOffqMW1YiZA" name="actual" visibility="public" type="_Vc730BE9EeGOffqMW1YiZA" association="_VS81YBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VesLVxE9EeGOffqMW1YiZA" annotatedElement="_VesLVhE9EeGOffqMW1YiZA">
           <body>The element that is the actual parameter for this substitution.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2Nd-NwbEeCT5O2F6sGn5g" name="formal" visibility="public" type="_KxRzgGvuEdqG6fBIPwe-mw" association="_gydmYNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2Nd-dwbEeCT5O2F6sGn5g" annotatedElement="_g2Nd-NwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VesLWBE9EeGOffqMW1YiZA" name="formal" visibility="public" type="_KxRzgGvuEdqG6fBIPwe-mw" association="_VTb9kxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VesLWRE9EeGOffqMW1YiZA" annotatedElement="_VesLWBE9EeGOffqMW1YiZA">
           <body>The formal template parameter that is associated with this substitution.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2Nd-twbEeCT5O2F6sGn5g" name="ownedActual" visibility="public" type="_g1noENwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g _g2Nd9twbEeCT5O2F6sGn5g" association="_gyn-dtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2Nd-9wbEeCT5O2F6sGn5g" annotatedElement="_g2Nd-twbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VesLWhE9EeGOffqMW1YiZA" name="ownedActual" visibility="public" type="_Vc730BE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw _VesLVhE9EeGOffqMW1YiZA" association="_VT-JFhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VesLWxE9EeGOffqMW1YiZA" annotatedElement="_VesLWhE9EeGOffqMW1YiZA">
           <body>The actual parameter that is owned by this substitution.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2OFANwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VesLXBE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2OFAdwbEeCT5O2F6sGn5g" name="templateBinding" visibility="public" type="_g2LBsNwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gyro1NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2OFAtwbEeCT5O2F6sGn5g" annotatedElement="_g2OFAdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VesLXRE9EeGOffqMW1YiZA" name="templateBinding" visibility="public" type="_VemrwBE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VUHTBBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VesLXhE9EeGOffqMW1YiZA" annotatedElement="_VesLXRE9EeGOffqMW1YiZA">
           <body>The optional bindings from this element to templates.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g2OsENwbEeCT5O2F6sGn5g" name="TemplateSignature">
-      <ownedComment xmi:id="_g2OsEdwbEeCT5O2F6sGn5g" annotatedElement="_g2OsENwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VesyYBE9EeGOffqMW1YiZA" name="TemplateSignature">
+      <ownedComment xmi:id="_VesyYRE9EeGOffqMW1YiZA" annotatedElement="_VesyYBE9EeGOffqMW1YiZA">
         <body>A template signature bundles the set of formal template parameters for a templated element.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g2OsEtwbEeCT5O2F6sGn5g" name="own_elements" constrainedElement="_g2OsENwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2OsE9wbEeCT5O2F6sGn5g" annotatedElement="_g2OsEtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VesyYhE9EeGOffqMW1YiZA" name="own_elements" constrainedElement="_VesyYBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VesyYxE9EeGOffqMW1YiZA" annotatedElement="_VesyYhE9EeGOffqMW1YiZA">
           <body>Parameters must own the elements they parameter or those elements must be owned by the element being templated.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2OsFNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VesyZBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>templatedElement.ownedElement->includesAll(parameter.parameteredElement - parameter.ownedParameteredElement)</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g2OsFdwbEeCT5O2F6sGn5g" general="_kl90MGvbEdq4DLWZOhbdEA"/>
-      <ownedAttribute xmi:id="_g2OsFtwbEeCT5O2F6sGn5g" name="ownedParameter" visibility="public" type="_KxRzgGvuEdqG6fBIPwe-mw" isOrdered="true" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g _g2OsGtwbEeCT5O2F6sGn5g" association="_gyqas9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2OsF9wbEeCT5O2F6sGn5g" annotatedElement="_g2OsFtwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VesyZRE9EeGOffqMW1YiZA" general="_kl90MGvbEdq4DLWZOhbdEA"/>
+      <ownedAttribute xmi:id="_VesyZhE9EeGOffqMW1YiZA" name="ownedParameter" visibility="public" type="_KxRzgGvuEdqG6fBIPwe-mw" isOrdered="true" aggregation="composite" subsettedProperty="_VesyahE9EeGOffqMW1YiZA _GDD2YAtAEeGcpbeCPJfCmw" association="_VUDBkxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VesyZxE9EeGOffqMW1YiZA" annotatedElement="_VesyZhE9EeGOffqMW1YiZA">
           <body>The formal template parameters that are owned by this template signature.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2OsGNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2OsGdwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VesyaBE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VesyaRE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2OsGtwbEeCT5O2F6sGn5g" name="parameter" visibility="public" type="_KxRzgGvuEdqG6fBIPwe-mw" isOrdered="true" association="_gyro2dwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2OsG9wbEeCT5O2F6sGn5g" annotatedElement="_g2OsGtwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VesyahE9EeGOffqMW1YiZA" name="parameter" visibility="public" type="_KxRzgGvuEdqG6fBIPwe-mw" isOrdered="true" association="_VUH6EBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VesyaxE9EeGOffqMW1YiZA" annotatedElement="_VesyahE9EeGOffqMW1YiZA">
           <body>The ordered set of all formal template parameters for this template signature.</body>
         </ownedComment>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2OsHNwbEeCT5O2F6sGn5g" value="*"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VesybBE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2OsHdwbEeCT5O2F6sGn5g" name="template" visibility="public" type="_g2PTINwbEeCT5O2F6sGn5g" subsettedProperty="_g0JodNwbEeCT5O2F6sGn5g" association="_gyrBxNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2OsHtwbEeCT5O2F6sGn5g" annotatedElement="_g2OsHdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VesybRE9EeGOffqMW1YiZA" name="template" visibility="public" type="_VeuAgBE9EeGOffqMW1YiZA" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_VUEPtBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VesybhE9EeGOffqMW1YiZA" annotatedElement="_VesybRE9EeGOffqMW1YiZA">
           <body>The element that owns this template signature.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g2PTINwbEeCT5O2F6sGn5g" name="TemplateableElement" isAbstract="true">
-      <ownedComment xmi:id="_g2PTIdwbEeCT5O2F6sGn5g" annotatedElement="_g2PTINwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VeuAgBE9EeGOffqMW1YiZA" name="TemplateableElement" isAbstract="true">
+      <ownedComment xmi:id="_VeuAgRE9EeGOffqMW1YiZA" annotatedElement="_VeuAgBE9EeGOffqMW1YiZA">
         <body>A templateable element is an element that can optionally be defined as a template and bound to other templates.</body>
       </ownedComment>
-      <generalization xmi:id="_g2PTItwbEeCT5O2F6sGn5g" general="_kl90MGvbEdq4DLWZOhbdEA"/>
-      <ownedAttribute xmi:id="_g2PTI9wbEeCT5O2F6sGn5g" name="ownedTemplateSignature" visibility="public" type="_g2OsENwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gyrBxNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2PTJNwbEeCT5O2F6sGn5g" annotatedElement="_g2PTI9wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VeuAghE9EeGOffqMW1YiZA" general="_kl90MGvbEdq4DLWZOhbdEA"/>
+      <ownedAttribute xmi:id="_VeuAgxE9EeGOffqMW1YiZA" name="ownedTemplateSignature" visibility="public" type="_VesyYBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VUEPtBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeuAhBE9EeGOffqMW1YiZA" annotatedElement="_VeuAgxE9EeGOffqMW1YiZA">
           <body>The optional template signature specifying the formal template parameters.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2PTJdwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VeuAhRE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2PTJtwbEeCT5O2F6sGn5g" name="templateBinding" visibility="public" type="_g2LBsNwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g _gy5rStwbEeCT5O2F6sGn5g" association="_gy8umtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2PTJ9wbEeCT5O2F6sGn5g" annotatedElement="_g2PTJtwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VeuAhhE9EeGOffqMW1YiZA" name="templateBinding" visibility="public" type="_VemrwBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VUkmBhE9EeGOffqMW1YiZA _GDD2YAtAEeGcpbeCPJfCmw" association="_VUqFkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeuAhxE9EeGOffqMW1YiZA" annotatedElement="_VeuAhhE9EeGOffqMW1YiZA">
           <body>The optional bindings from this element to templates.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2PTKNwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2PTKdwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VeuAiBE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VeuAiRE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedOperation xmi:id="_g2PTKtwbEeCT5O2F6sGn5g" name="isTemplate" visibility="public" bodyCondition="_g2PTLNwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g2PTK9wbEeCT5O2F6sGn5g" annotatedElement="_g2PTKtwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VeuAihE9EeGOffqMW1YiZA" name="isTemplate" visibility="public" bodyCondition="_VeuAjBE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VeuAixE9EeGOffqMW1YiZA" annotatedElement="_VeuAihE9EeGOffqMW1YiZA">
           <body>The query isTemplate() returns whether this templateable element is actually a template.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g2PTLNwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g2PTKtwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2PTLdwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VeuAjBE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VeuAihE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeuAjRE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = ownedTemplateSignature->notEmpty()</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g2PTLtwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VeuAjhE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g2PTL9wbEeCT5O2F6sGn5g" name="parameterableElements" visibility="public" bodyCondition="_g2PTMdwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g2PTMNwbEeCT5O2F6sGn5g" annotatedElement="_g2PTL9wbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VeuAjxE9EeGOffqMW1YiZA" name="parameterableElements" visibility="public" bodyCondition="_VeuAkRE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VeuAkBE9EeGOffqMW1YiZA" annotatedElement="_VeuAjxE9EeGOffqMW1YiZA">
           <body>The query parameterableElements() returns the set of elements that may be used as the parametered elements for a template parameter of this templateable element. By default, this set includes all the owned elements. Subclasses may override this operation if they choose to restrict the set of parameterable elements.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g2PTMdwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g2PTL9wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2PTMtwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VeuAkRE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VeuAjxE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeuAkhE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = allOwnedElements->select(oclIsKindOf(ParameterableElement))</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g2PTM9wbEeCT5O2F6sGn5g" name="result" visibility="public" type="_g1noENwbEeCT5O2F6sGn5g" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2PTNNwbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2PTNdwbEeCT5O2F6sGn5g" value="*"/>
+        <ownedParameter xmi:id="_VeuAkxE9EeGOffqMW1YiZA" name="result" visibility="public" type="_Vc730BE9EeGOffqMW1YiZA" direction="return">
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VeuAlBE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VeuAlRE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g2P6MNwbEeCT5O2F6sGn5g" name="TestIdentityAction">
-      <ownedComment xmi:id="_g2P6MdwbEeCT5O2F6sGn5g" annotatedElement="_g2P6MNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VeunkBE9EeGOffqMW1YiZA" name="TestIdentityAction">
+      <ownedComment xmi:id="_VeunkRE9EeGOffqMW1YiZA" annotatedElement="_VeunkBE9EeGOffqMW1YiZA">
         <body>A test identity action is an action that tests if two values are identical objects.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g2P6MtwbEeCT5O2F6sGn5g" name="multiplicity" constrainedElement="_g2P6MNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2P6M9wbEeCT5O2F6sGn5g" annotatedElement="_g2P6MtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VeunkhE9EeGOffqMW1YiZA" name="multiplicity" constrainedElement="_VeunkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeunkxE9EeGOffqMW1YiZA" annotatedElement="_VeunkhE9EeGOffqMW1YiZA">
           <body>The multiplicity of the input pins is 1..1.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2P6NNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeunlBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.first.multiplicity.is(1,1)
 and self.second.multiplicity.is(1,1)
 </body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g2P6NdwbEeCT5O2F6sGn5g" name="no_type" constrainedElement="_g2P6MNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2P6NtwbEeCT5O2F6sGn5g" annotatedElement="_g2P6NdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VeunlRE9EeGOffqMW1YiZA" name="no_type" constrainedElement="_VeunkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeunlhE9EeGOffqMW1YiZA" annotatedElement="_VeunlRE9EeGOffqMW1YiZA">
           <body>The input pins have no type.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2P6N9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeunlxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.first.type->size() = 0
 and self.second.type->size() = 0
 </body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g2P6ONwbEeCT5O2F6sGn5g" name="result_is_boolean" constrainedElement="_g2P6MNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2P6OdwbEeCT5O2F6sGn5g" annotatedElement="_g2P6ONwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VeunmBE9EeGOffqMW1YiZA" name="result_is_boolean" constrainedElement="_VeunkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeunmRE9EeGOffqMW1YiZA" annotatedElement="_VeunmBE9EeGOffqMW1YiZA">
           <body>The type of the result is the UML standard primitive type Boolean. (This is not directly representable in OCL at the metamodel level.)</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2P6OtwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VeunmhE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true
 </body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g2P6O9wbEeCT5O2F6sGn5g" general="_6WKakLLQEeCsYvaJqFFivQ"/>
-      <ownedAttribute xmi:id="_g2P6PNwbEeCT5O2F6sGn5g" name="first" visibility="public" type="_g0aHKdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzBnMNwbEeCT5O2F6sGn5g" association="_gyc_XNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2P6PdwbEeCT5O2F6sGn5g" annotatedElement="_g2P6PNwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VeunmxE9EeGOffqMW1YiZA" general="_6WKakLLQEeCsYvaJqFFivQ"/>
+      <ownedAttribute xmi:id="_VeunnBE9EeGOffqMW1YiZA" name="first" visibility="public" type="_VZp6WRE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4IABE9EeGOffqMW1YiZA" association="_VTbWhRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeunnRE9EeGOffqMW1YiZA" annotatedElement="_VeunnBE9EeGOffqMW1YiZA">
           <body>Gives the pin on which an object is placed.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2P6PtwbEeCT5O2F6sGn5g" name="result" visibility="public" type="_g1fsRdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzCOK9wbEeCT5O2F6sGn5g" association="_gy2A7NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2P6P9wbEeCT5O2F6sGn5g" annotatedElement="_g2P6PtwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VeunnhE9EeGOffqMW1YiZA" name="result" visibility="public" type="_VcHYcBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4vEBE9EeGOffqMW1YiZA" association="_VUftgxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeunnxE9EeGOffqMW1YiZA" annotatedElement="_VeunnhE9EeGOffqMW1YiZA">
           <body>Tells whether the two input objects are identical.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2P6QNwbEeCT5O2F6sGn5g" name="second" visibility="public" type="_g0aHKdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzBnMNwbEeCT5O2F6sGn5g" association="_gy32GtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2P6QdwbEeCT5O2F6sGn5g" annotatedElement="_g2P6QNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VeunoBE9EeGOffqMW1YiZA" name="second" visibility="public" type="_VZp6WRE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4IABE9EeGOffqMW1YiZA" association="_VUhitxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeunoRE9EeGOffqMW1YiZA" annotatedElement="_VeunoBE9EeGOffqMW1YiZA">
           <body>Gives the pin on which an object is placed.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g2P6QtwbEeCT5O2F6sGn5g" name="TimeConstraint">
-      <ownedComment xmi:id="_g2P6Q9wbEeCT5O2F6sGn5g" annotatedElement="_g2P6QtwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VeunohE9EeGOffqMW1YiZA" name="TimeConstraint">
+      <ownedComment xmi:id="_VeunoxE9EeGOffqMW1YiZA" annotatedElement="_VeunohE9EeGOffqMW1YiZA">
         <body>A time constraint is a constraint that refers to a time interval.</body>
       </ownedComment>
-      <generalization xmi:id="_g2P6RNwbEeCT5O2F6sGn5g" general="_g0gNwNwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g2P6RdwbEeCT5O2F6sGn5g" name="firstEvent" visibility="public">
-        <ownedComment xmi:id="_g2P6RtwbEeCT5O2F6sGn5g" annotatedElement="_g2P6RdwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VeunpBE9EeGOffqMW1YiZA" general="_VZydNxE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VeunpRE9EeGOffqMW1YiZA" name="firstEvent" visibility="public">
+        <ownedComment xmi:id="_VeunphE9EeGOffqMW1YiZA" annotatedElement="_VeunpRE9EeGOffqMW1YiZA">
           <body>The value of firstEvent is related to constrainedElement. If firstEvent is true, then the corresponding observation event is the first time instant the execution enters constrainedElement. If firstEvent is false, then the corresponding observation event is the last time instant the execution is within constrainedElement.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2P6R9wbEeCT5O2F6sGn5g"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g2P6SNwbEeCT5O2F6sGn5g" value="true"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VeunpxE9EeGOffqMW1YiZA"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VeunqBE9EeGOffqMW1YiZA" value="true"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2P6SdwbEeCT5O2F6sGn5g" name="specification" visibility="public" type="_g2RIUNwbEeCT5O2F6sGn5g" aggregation="composite" redefinedProperty="_g0gNw9wbEeCT5O2F6sGn5g _g0AeltwbEeCT5O2F6sGn5g" association="_gy6SWtwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2P6StwbEeCT5O2F6sGn5g" annotatedElement="_g2P6SdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VeunqRE9EeGOffqMW1YiZA" name="specification" visibility="public" type="_VexD0BE9EeGOffqMW1YiZA" aggregation="composite" redefinedProperty="_VZydOhE9EeGOffqMW1YiZA _VYbLVhE9EeGOffqMW1YiZA" association="_VUl0JhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VeunqhE9EeGOffqMW1YiZA" annotatedElement="_VeunqRE9EeGOffqMW1YiZA">
           <body>A condition that must be true when evaluated in order for the constraint to be satisfied.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g2QhQNwbEeCT5O2F6sGn5g" name="TimeEvent">
-      <ownedComment xmi:id="_g2QhQdwbEeCT5O2F6sGn5g" annotatedElement="_g2QhQNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VevOoBE9EeGOffqMW1YiZA" name="TimeEvent">
+      <ownedComment xmi:id="_VevOoRE9EeGOffqMW1YiZA" annotatedElement="_VevOoBE9EeGOffqMW1YiZA">
         <body>A time event can be defined relative to entering the current state of the executing state machine.</body>
       </ownedComment>
-      <ownedComment xmi:id="_g2QhQtwbEeCT5O2F6sGn5g" annotatedElement="_g2QhQNwbEeCT5O2F6sGn5g">
+      <ownedComment xmi:id="_VevOohE9EeGOffqMW1YiZA" annotatedElement="_VevOoBE9EeGOffqMW1YiZA">
         <body>A time event specifies a point in time. At the specified time, the event occurs.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g2QhQ9wbEeCT5O2F6sGn5g" name="when_non_negative" constrainedElement="_g2QhQNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2QhRNwbEeCT5O2F6sGn5g" annotatedElement="_g2QhQ9wbEeCT5O2F6sGn5g">
-          <body>The ValueSpecification when must return a non-negative Integer.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2QhRdwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g2QhRtwbEeCT5O2F6sGn5g" name="starting_time" constrainedElement="_g2QhQNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2QhR9wbEeCT5O2F6sGn5g" annotatedElement="_g2QhRtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VevOoxE9EeGOffqMW1YiZA" name="starting_time" constrainedElement="_VevOoBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VevOpBE9EeGOffqMW1YiZA" annotatedElement="_VevOoxE9EeGOffqMW1YiZA">
           <body>The starting time for a relative time event may only be omitted for a time event that is the trigger of a state machine.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2QhSNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VevOpRE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g2QhSdwbEeCT5O2F6sGn5g" general="_g0N54NwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g2QhStwbEeCT5O2F6sGn5g" name="isRelative" visibility="public">
-        <ownedComment xmi:id="_g2QhS9wbEeCT5O2F6sGn5g" annotatedElement="_g2QhStwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VevOphE9EeGOffqMW1YiZA" name="when_non_negative" constrainedElement="_VevOoBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VevOpxE9EeGOffqMW1YiZA" annotatedElement="_VevOphE9EeGOffqMW1YiZA">
+          <body>The ValueSpecification when must return a non-negative Integer.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VevOqBE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VevOqRE9EeGOffqMW1YiZA" general="_VZOcgBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VevOqhE9EeGOffqMW1YiZA" name="isRelative" visibility="public">
+        <ownedComment xmi:id="_VevOqxE9EeGOffqMW1YiZA" annotatedElement="_VevOqhE9EeGOffqMW1YiZA">
           <body>Specifies whether it is relative or absolute time.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g2QhTNwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_VevOrBE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2QhTdwbEeCT5O2F6sGn5g" name="when" visibility="public" type="_DylKEH4YEdq7cMP_l1l5Gg" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gzAY89wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2QhTtwbEeCT5O2F6sGn5g" annotatedElement="_g2QhTdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VevOrRE9EeGOffqMW1YiZA" name="when" visibility="public" type="_DylKEH4YEdq7cMP_l1l5Gg" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VU0doBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VevOrhE9EeGOffqMW1YiZA" annotatedElement="_VevOrRE9EeGOffqMW1YiZA">
           <body>Specifies the corresponding time deadline.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_DylKEH4YEdq7cMP_l1l5Gg" name="TimeExpression">
-      <ownedComment xmi:id="_g2QhT9wbEeCT5O2F6sGn5g" annotatedElement="_DylKEH4YEdq7cMP_l1l5Gg">
+      <ownedComment xmi:id="_Vev1sBE9EeGOffqMW1YiZA" annotatedElement="_DylKEH4YEdq7cMP_l1l5Gg">
         <body>A time expression defines a value specification that represents a time value.</body>
       </ownedComment>
-      <generalization xmi:id="_g2QhUNwbEeCT5O2F6sGn5g" general="_g2YdENwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g2QhUdwbEeCT5O2F6sGn5g" name="expr" visibility="public" type="_g2YdENwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gybxQNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2QhUtwbEeCT5O2F6sGn5g" annotatedElement="_g2QhUdwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_Vev1sRE9EeGOffqMW1YiZA" general="_VfGbABE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_Vev1shE9EeGOffqMW1YiZA" name="expr" visibility="public" type="_VfGbABE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VTXsJhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vev1sxE9EeGOffqMW1YiZA" annotatedElement="_Vev1shE9EeGOffqMW1YiZA">
           <body>The value of the time expression.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2QhU9wbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Vev1tBE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2QhVNwbEeCT5O2F6sGn5g" name="observation" visibility="public" type="_g1XJfdwbEeCT5O2F6sGn5g" association="_gymwUNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2QhVdwbEeCT5O2F6sGn5g" annotatedElement="_g2QhVNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_Vev1tRE9EeGOffqMW1YiZA" name="observation" visibility="public" type="_VbcqEBE9EeGOffqMW1YiZA" association="_VT7s0xE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vev1thE9EeGOffqMW1YiZA" annotatedElement="_Vev1tRE9EeGOffqMW1YiZA">
           <body>Refers to the time and duration observations that are involved in expr.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2QhVtwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2QhV9wbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Vev1txE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Vev1uBE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
       <ownedOperation xmi:id="_JdkW8H4YEdq7cMP_l1l5Gg" name="stringValue" visibility="protected" isQuery="true">
         <ownedParameter xmi:id="_JdkW8X4YEdq7cMP_l1l5Gg" direction="return">
@@ -14998,125 +15007,78 @@
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g2RIUNwbEeCT5O2F6sGn5g" name="TimeInterval">
-      <ownedComment xmi:id="_g2RIUdwbEeCT5O2F6sGn5g" annotatedElement="_g2RIUNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VexD0BE9EeGOffqMW1YiZA" name="TimeInterval">
+      <ownedComment xmi:id="_VexD0RE9EeGOffqMW1YiZA" annotatedElement="_VexD0BE9EeGOffqMW1YiZA">
         <body>A time interval defines the range between two time expressions.</body>
       </ownedComment>
-      <generalization xmi:id="_g2RIUtwbEeCT5O2F6sGn5g" general="_g0fmvtwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g2RIU9wbEeCT5O2F6sGn5g" name="max" visibility="public" type="_DylKEH4YEdq7cMP_l1l5Gg" redefinedProperty="_g0fmwdwbEeCT5O2F6sGn5g" association="_gyie7NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2RIVNwbEeCT5O2F6sGn5g" annotatedElement="_g2RIU9wbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VexD0hE9EeGOffqMW1YiZA" general="_VZydMBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VexD0xE9EeGOffqMW1YiZA" name="max" visibility="public" type="_DylKEH4YEdq7cMP_l1l5Gg" redefinedProperty="_VZydMxE9EeGOffqMW1YiZA" association="_VTvfmBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VexD1BE9EeGOffqMW1YiZA" annotatedElement="_VexD0xE9EeGOffqMW1YiZA">
           <body>Refers to the TimeExpression denoting the maximum value of the range.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2RIVdwbEeCT5O2F6sGn5g" name="min" visibility="public" type="_DylKEH4YEdq7cMP_l1l5Gg" redefinedProperty="_g0fmw9wbEeCT5O2F6sGn5g" association="_gykUENwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2RIVtwbEeCT5O2F6sGn5g" annotatedElement="_g2RIVdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VexD1RE9EeGOffqMW1YiZA" name="min" visibility="public" type="_DylKEH4YEdq7cMP_l1l5Gg" redefinedProperty="_VZydNRE9EeGOffqMW1YiZA" association="_VTzJ9BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VexD1hE9EeGOffqMW1YiZA" annotatedElement="_VexD1RE9EeGOffqMW1YiZA">
           <body>Refers to the TimeExpression denoting the minimum value of the range.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g2RIV9wbEeCT5O2F6sGn5g" name="TimeObservation">
-      <ownedComment xmi:id="_g2RIWNwbEeCT5O2F6sGn5g" annotatedElement="_g2RIV9wbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_Vexq4BE9EeGOffqMW1YiZA" name="TimeObservation">
+      <ownedComment xmi:id="_Vexq4RE9EeGOffqMW1YiZA" annotatedElement="_Vexq4BE9EeGOffqMW1YiZA">
         <body>A time observation is a reference to a time instant during an execution. It points out the element in the model to observe and whether the observation is when this model element is entered or when it is exited.</body>
       </ownedComment>
-      <generalization xmi:id="_g2RIWdwbEeCT5O2F6sGn5g" general="_g1XJfdwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g2RIWtwbEeCT5O2F6sGn5g" name="event" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw" association="_gybKINwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2RIW9wbEeCT5O2F6sGn5g" annotatedElement="_g2RIWtwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_Vexq4hE9EeGOffqMW1YiZA" general="_VbcqEBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_Vexq4xE9EeGOffqMW1YiZA" name="event" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw" association="_VTUo1BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Vexq5BE9EeGOffqMW1YiZA" annotatedElement="_Vexq4xE9EeGOffqMW1YiZA">
           <body>The observation is determined by the entering or exiting of the event element during execution.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2RIXNwbEeCT5O2F6sGn5g" name="firstEvent" visibility="public">
-        <ownedComment xmi:id="_g2RIXdwbEeCT5O2F6sGn5g" annotatedElement="_g2RIXNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_Vexq5RE9EeGOffqMW1YiZA" name="firstEvent" visibility="public">
+        <ownedComment xmi:id="_Vexq5hE9EeGOffqMW1YiZA" annotatedElement="_Vexq5RE9EeGOffqMW1YiZA">
           <body>The value of firstEvent is related to event. If firstEvent is true, then the corresponding observation event is the first time instant the execution enters event. If firstEvent is false, then the corresponding observation event is the time instant the execution exits event.</body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_g2RIXtwbEeCT5O2F6sGn5g" value="true"/>
+        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_Vexq5xE9EeGOffqMW1YiZA" value="true"/>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_ykKV8PnlEdunWsS3se92JQ" name="Transition">
-      <ownedComment xmi:id="_g2RIX9wbEeCT5O2F6sGn5g" annotatedElement="_ykKV8PnlEdunWsS3se92JQ">
+      <ownedComment xmi:id="_Vexq6BE9EeGOffqMW1YiZA" annotatedElement="_ykKV8PnlEdunWsS3se92JQ">
         <body>A transition is a directed relationship between a source vertex and a target vertex. It may be part of a compound transition, which takes the state machine from one state configuration to another, representing the complete response of the state machine to an occurrence of an event of a particular type.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g2RvYNwbEeCT5O2F6sGn5g" name="state_is_external" constrainedElement="_ykKV8PnlEdunWsS3se92JQ">
-        <ownedComment xmi:id="_g2RvYdwbEeCT5O2F6sGn5g" annotatedElement="_g2RvYNwbEeCT5O2F6sGn5g">
-          <body>A transition with kind external can source any vertex except entry points.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2RvYtwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>(kind = TransitionKind::external) implies
-	not (source.oclIsKindOf(Pseudostate) and source.oclAsType(Pseudostate).kind = PseudostateKind::entryPoint)</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g2RvY9wbEeCT5O2F6sGn5g" name="join_segment_guards" constrainedElement="_ykKV8PnlEdunWsS3se92JQ">
-        <ownedComment xmi:id="_g2RvZNwbEeCT5O2F6sGn5g" annotatedElement="_g2RvY9wbEeCT5O2F6sGn5g">
-          <body>A join segment must not have guards or triggers.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2RvZdwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>(target.oclIsKindOf(Pseudostate) and target.kind = #join) implies (guard->isEmpty() and trigger->isEmpty())</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g2RvZtwbEeCT5O2F6sGn5g" name="state_is_internal" constrainedElement="_ykKV8PnlEdunWsS3se92JQ">
-        <ownedComment xmi:id="_g2RvZ9wbEeCT5O2F6sGn5g" annotatedElement="_g2RvZtwbEeCT5O2F6sGn5g">
-          <body>A transition with kind internal must have a state as its source, and its source and target must be equal.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2RvaNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>(kind = TransitionKind::internal) implies
-		(source.oclIsKindOf (State) and source = target)</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g2RvadwbEeCT5O2F6sGn5g" name="outgoing_pseudostates" constrainedElement="_ykKV8PnlEdunWsS3se92JQ">
-        <ownedComment xmi:id="_g2RvatwbEeCT5O2F6sGn5g" annotatedElement="_g2RvadwbEeCT5O2F6sGn5g">
-          <body>Transitions outgoing pseudostates may not have a trigger.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2Rva9wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>source.oclIsKindOf(Pseudostate) and (source.kind &lt;> #initial)) implies trigger->isEmpty()</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g2RvbNwbEeCT5O2F6sGn5g" name="join_segment_state" constrainedElement="_ykKV8PnlEdunWsS3se92JQ">
-        <ownedComment xmi:id="_g2RvbdwbEeCT5O2F6sGn5g" annotatedElement="_g2RvbNwbEeCT5O2F6sGn5g">
-          <body>A join segment must always originate from a state.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2RvbtwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>(target.oclIsKindOf(Pseudostate) and target.kind = #join) implies (source.oclIsKindOf(State))</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g2Rvb9wbEeCT5O2F6sGn5g" name="fork_segment_state" constrainedElement="_ykKV8PnlEdunWsS3se92JQ">
-        <ownedComment xmi:id="_g2RvcNwbEeCT5O2F6sGn5g" annotatedElement="_g2Rvb9wbEeCT5O2F6sGn5g">
-          <body>A fork segment must always target a state.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2RvcdwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>(source.oclIsKindOf(Pseudostate) and source.kind = #fork) implies (target.oclIsKindOf(State))</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g2RvctwbEeCT5O2F6sGn5g" name="signatures_compatible" constrainedElement="_ykKV8PnlEdunWsS3se92JQ">
-        <ownedComment xmi:id="_g2Rvc9wbEeCT5O2F6sGn5g" annotatedElement="_g2RvctwbEeCT5O2F6sGn5g">
-          <body>In case of more than one trigger, the signatures of these must be compatible in case the parameters of the signal are assigned to local variables/attributes.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2RvdNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g2RvddwbEeCT5O2F6sGn5g" name="state_is_local" constrainedElement="_ykKV8PnlEdunWsS3se92JQ">
-        <ownedComment xmi:id="_g2RvdtwbEeCT5O2F6sGn5g" annotatedElement="_g2RvddwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_Vexq6RE9EeGOffqMW1YiZA" name="state_is_local" constrainedElement="_ykKV8PnlEdunWsS3se92JQ">
+        <ownedComment xmi:id="_Vexq6hE9EeGOffqMW1YiZA" annotatedElement="_Vexq6RE9EeGOffqMW1YiZA">
           <body>A transition with kind local must have a composite state or an entry point as its source.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2Rvd9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vexq6xE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>(kind = TransitionKind::local) implies
 		((source.oclIsKindOf (State) and source.oclAsType(State).isComposite) or
 		(source.oclIsKindOf (Pseudostate) and source.oclAsType(Pseudostate).kind = PseudostateKind::entryPoint))</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g2SWcNwbEeCT5O2F6sGn5g" name="initial_transition" constrainedElement="_ykKV8PnlEdunWsS3se92JQ">
-        <ownedComment xmi:id="_g2SWcdwbEeCT5O2F6sGn5g" annotatedElement="_g2SWcNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VeyR8BE9EeGOffqMW1YiZA" name="fork_segment_guards" constrainedElement="_ykKV8PnlEdunWsS3se92JQ">
+        <ownedComment xmi:id="_Ve7b4BE9EeGOffqMW1YiZA" annotatedElement="_VeyR8BE9EeGOffqMW1YiZA">
+          <body>A fork segment must not have guards or triggers.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Ve7b4RE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>(source.oclIsKindOf(Pseudostate) and source.kind = #fork) implies (guard->isEmpty() and trigger->isEmpty())</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_Ve7b4hE9EeGOffqMW1YiZA" name="join_segment_state" constrainedElement="_ykKV8PnlEdunWsS3se92JQ">
+        <ownedComment xmi:id="_Ve7b4xE9EeGOffqMW1YiZA" annotatedElement="_Ve7b4hE9EeGOffqMW1YiZA">
+          <body>A join segment must always originate from a state.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Ve7b5BE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>(target.oclIsKindOf(Pseudostate) and target.kind = #join) implies (source.oclIsKindOf(State))</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_Ve7b5RE9EeGOffqMW1YiZA" name="initial_transition" constrainedElement="_ykKV8PnlEdunWsS3se92JQ">
+        <ownedComment xmi:id="_Ve7b5hE9EeGOffqMW1YiZA" annotatedElement="_Ve7b5RE9EeGOffqMW1YiZA">
           <body>An initial transition at the topmost level (region of a statemachine) either has no trigger or it has a trigger with the stereotype >.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2SWctwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Ve7b5xE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.source.oclIsKindOf(Pseudostate) implies
 (self.source.oclAsType(Pseudostate).kind = #initial) implies
@@ -15126,113 +15088,160 @@
 </body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g2SWc9wbEeCT5O2F6sGn5g" name="fork_segment_guards" constrainedElement="_ykKV8PnlEdunWsS3se92JQ">
-        <ownedComment xmi:id="_g2SWdNwbEeCT5O2F6sGn5g" annotatedElement="_g2SWc9wbEeCT5O2F6sGn5g">
-          <body>A fork segment must not have guards or triggers.</body>
+      <ownedRule xmi:id="_Ve7b6BE9EeGOffqMW1YiZA" name="outgoing_pseudostates" constrainedElement="_ykKV8PnlEdunWsS3se92JQ">
+        <ownedComment xmi:id="_Ve7b6RE9EeGOffqMW1YiZA" annotatedElement="_Ve7b6BE9EeGOffqMW1YiZA">
+          <body>Transitions outgoing pseudostates may not have a trigger.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2SWddwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Ve7b6hE9EeGOffqMW1YiZA">
           <language>OCL</language>
-          <body>(source.oclIsKindOf(Pseudostate) and source.kind = #fork) implies (guard->isEmpty() and trigger->isEmpty())</body>
+          <body>source.oclIsKindOf(Pseudostate) and (source.kind &lt;> #initial)) implies trigger->isEmpty()</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g2SWdtwbEeCT5O2F6sGn5g" general="_ZiwkoGwLEdq7X4sGURiZYA"/>
-      <generalization xmi:id="_g2SWd9wbEeCT5O2F6sGn5g" general="_uCRA4La-EeCRxrN1JUGuxA"/>
-      <ownedAttribute xmi:id="_g2SWeNwbEeCT5O2F6sGn5g" name="container" visibility="public" type="_g18_QNwbEeCT5O2F6sGn5g" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_gy9VqNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2SWedwbEeCT5O2F6sGn5g" annotatedElement="_g2SWeNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_Ve8C8BE9EeGOffqMW1YiZA" name="signatures_compatible" constrainedElement="_ykKV8PnlEdunWsS3se92JQ">
+        <ownedComment xmi:id="_Ve8C8RE9EeGOffqMW1YiZA" annotatedElement="_Ve8C8BE9EeGOffqMW1YiZA">
+          <body>In case of more than one trigger, the signatures of these must be compatible in case the parameters of the signal are assigned to local variables/attributes.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Ve8C8hE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_Ve8C8xE9EeGOffqMW1YiZA" name="state_is_internal" constrainedElement="_ykKV8PnlEdunWsS3se92JQ">
+        <ownedComment xmi:id="_Ve8C9BE9EeGOffqMW1YiZA" annotatedElement="_Ve8C8xE9EeGOffqMW1YiZA">
+          <body>A transition with kind internal must have a state as its source, and its source and target must be equal.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Ve8C9RE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>(kind = TransitionKind::internal) implies
+		(source.oclIsKindOf (State) and source = target)</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_Ve8C9hE9EeGOffqMW1YiZA" name="join_segment_guards" constrainedElement="_ykKV8PnlEdunWsS3se92JQ">
+        <ownedComment xmi:id="_Ve8C9xE9EeGOffqMW1YiZA" annotatedElement="_Ve8C9hE9EeGOffqMW1YiZA">
+          <body>A join segment must not have guards or triggers.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Ve8C-BE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>(target.oclIsKindOf(Pseudostate) and target.kind = #join) implies (guard->isEmpty() and trigger->isEmpty())</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_Ve8C-RE9EeGOffqMW1YiZA" name="fork_segment_state" constrainedElement="_ykKV8PnlEdunWsS3se92JQ">
+        <ownedComment xmi:id="_Ve8C-hE9EeGOffqMW1YiZA" annotatedElement="_Ve8C-RE9EeGOffqMW1YiZA">
+          <body>A fork segment must always target a state.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Ve8C-xE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>(source.oclIsKindOf(Pseudostate) and source.kind = #fork) implies (target.oclIsKindOf(State))</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_Ve8qABE9EeGOffqMW1YiZA" name="state_is_external" constrainedElement="_ykKV8PnlEdunWsS3se92JQ">
+        <ownedComment xmi:id="_Ve8qARE9EeGOffqMW1YiZA" annotatedElement="_Ve8qABE9EeGOffqMW1YiZA">
+          <body>A transition with kind external can source any vertex except entry points.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Ve8qAhE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>(kind = TransitionKind::external) implies
+	not (source.oclIsKindOf(Pseudostate) and source.oclAsType(Pseudostate).kind = PseudostateKind::entryPoint)</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_Ve8qAxE9EeGOffqMW1YiZA" general="_uCRA4La-EeCRxrN1JUGuxA"/>
+      <generalization xmi:id="_Ve8qBBE9EeGOffqMW1YiZA" general="_ZiwkoGwLEdq7X4sGURiZYA"/>
+      <ownedAttribute xmi:id="_Ve8qBRE9EeGOffqMW1YiZA" name="container" visibility="public" type="_VeA14BE9EeGOffqMW1YiZA" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_VUqspBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Ve8qBhE9EeGOffqMW1YiZA" annotatedElement="_Ve8qBRE9EeGOffqMW1YiZA">
           <body>Designates the region that owns this transition.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2SWetwbEeCT5O2F6sGn5g" name="effect" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gyZU9twbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2SWe9wbEeCT5O2F6sGn5g" annotatedElement="_g2SWetwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_Ve9REBE9EeGOffqMW1YiZA" name="effect" visibility="public" type="_TUPtYGveEdq4DLWZOhbdEA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VTQXYxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Ve9RERE9EeGOffqMW1YiZA" annotatedElement="_Ve9REBE9EeGOffqMW1YiZA">
           <body>Specifies an optional behavior to be performed when the transition fires.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2SWfNwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ve9REhE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2SWfdwbEeCT5O2F6sGn5g" name="guard" visibility="public" type="_g0AegNwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g1TfANwbEeCT5O2F6sGn5g" association="_gye0gNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2SWftwbEeCT5O2F6sGn5g" annotatedElement="_g2SWfdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_Ve9RExE9EeGOffqMW1YiZA" name="guard" visibility="public" type="_VYbLQBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_Var1FBE9EeGOffqMW1YiZA" association="_VTlulRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Ve9RFBE9EeGOffqMW1YiZA" annotatedElement="_Ve9RExE9EeGOffqMW1YiZA">
           <body>A guard is a constraint that provides a fine-grained control over the firing of the transition. The guard is evaluated when an event occurrence is dispatched by the state machine. If the guard is true at that time, the transition may be enabled, otherwise, it is disabled. Guards should be pure expressions without side effects. Guard expressions with side effects are ill formed.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2SWf9wbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ve9RFRE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2SWgNwbEeCT5O2F6sGn5g" name="kind" visibility="public" type="_g2fK1twbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2SWgdwbEeCT5O2F6sGn5g" annotatedElement="_g2SWgNwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_Ve9RFhE9EeGOffqMW1YiZA" name="kind" visibility="public" type="_VfRaNhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Ve9RFxE9EeGOffqMW1YiZA" annotatedElement="_Ve9RFhE9EeGOffqMW1YiZA">
           <body>Indicates the precise type of the transition.</body>
         </ownedComment>
-        <defaultValue xmi:type="uml:InstanceValue" xmi:id="_g2SWgtwbEeCT5O2F6sGn5g" type="_g2fK1twbEeCT5O2F6sGn5g" instance="_g2fK3NwbEeCT5O2F6sGn5g"/>
+        <defaultValue xmi:type="uml:InstanceValue" xmi:id="_Ve9RGBE9EeGOffqMW1YiZA" type="_VfRaNhE9EeGOffqMW1YiZA" instance="_VfRaPBE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2SWg9wbEeCT5O2F6sGn5g" name="redefinedTransition" visibility="public" type="_ykKV8PnlEdunWsS3se92JQ" subsettedProperty="_g15U7twbEeCT5O2F6sGn5g" association="_gyxIa9wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2SWhNwbEeCT5O2F6sGn5g" annotatedElement="_g2SWg9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_Ve9RGRE9EeGOffqMW1YiZA" name="redefinedTransition" visibility="public" type="_ykKV8PnlEdunWsS3se92JQ" subsettedProperty="_VdtT4BE9EeGOffqMW1YiZA" association="_VUWjkxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Ve9RGhE9EeGOffqMW1YiZA" annotatedElement="_Ve9RGRE9EeGOffqMW1YiZA">
           <body>The transition that is redefined by this transition.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2SWhdwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ve9RGxE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2SWhtwbEeCT5O2F6sGn5g" name="redefinitionContext" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" isReadOnly="true" isDerived="true" redefinedProperty="_zYrE4La-EeCRxrN1JUGuxA" association="_gyxvetwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2SWh9wbEeCT5O2F6sGn5g" annotatedElement="_g2SWhtwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_Ve9RHBE9EeGOffqMW1YiZA" name="redefinitionContext" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" isReadOnly="true" isDerived="true" redefinedProperty="_zYrE4La-EeCRxrN1JUGuxA" association="_VUXxsBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Ve9RHRE9EeGOffqMW1YiZA" annotatedElement="_Ve9RHBE9EeGOffqMW1YiZA">
           <body>References the classifier in which context this element may be redefined.</body>
         </ownedComment>
       </ownedAttribute>
       <ownedAttribute xmi:id="_JPYJofnmEdunWsS3se92JQ" name="source" visibility="public" type="_xM1WoPnlEdunWsS3se92JQ" association="_JPYJoPnmEdunWsS3se92JQ">
-        <ownedComment xmi:id="_g2SWiNwbEeCT5O2F6sGn5g" annotatedElement="_JPYJofnmEdunWsS3se92JQ">
+        <ownedComment xmi:id="_Ve9RHhE9EeGOffqMW1YiZA" annotatedElement="_JPYJofnmEdunWsS3se92JQ">
           <body>Designates the originating vertex (state or pseudostate) of the transition.</body>
         </ownedComment>
         <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JPYJovnmEdunWsS3se92JQ" value="1"/>
         <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JPYJo_nmEdunWsS3se92JQ" value="1"/>
       </ownedAttribute>
       <ownedAttribute xmi:id="_EhVtMPnmEdunWsS3se92JQ" name="target" visibility="public" type="_xM1WoPnlEdunWsS3se92JQ" association="_EhL8MPnmEdunWsS3se92JQ">
-        <ownedComment xmi:id="_g2S9gNwbEeCT5O2F6sGn5g" annotatedElement="_EhVtMPnmEdunWsS3se92JQ">
+        <ownedComment xmi:id="_Ve9RHxE9EeGOffqMW1YiZA" annotatedElement="_EhVtMPnmEdunWsS3se92JQ">
           <body>Designates the target vertex that is reached when the transition is taken.</body>
         </ownedComment>
         <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_EhVtMfnmEdunWsS3se92JQ" value="1"/>
         <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_EhVtMvnmEdunWsS3se92JQ" value="1"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2S9gdwbEeCT5O2F6sGn5g" name="trigger" visibility="public" type="_g2TkldwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gy9VrNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2S9gtwbEeCT5O2F6sGn5g" annotatedElement="_g2S9gdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_Ve94IBE9EeGOffqMW1YiZA" name="trigger" visibility="public" type="_VfCJkBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VUrTsBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_Ve94IRE9EeGOffqMW1YiZA" annotatedElement="_Ve94IBE9EeGOffqMW1YiZA">
           <body>Specifies the triggers that may fire the transition.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2S9g9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2S9hNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ve94IhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ve94IxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedOperation xmi:id="_g2S9hdwbEeCT5O2F6sGn5g" name="containingStateMachine" visibility="public" bodyCondition="_g2S9h9wbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g2S9htwbEeCT5O2F6sGn5g" annotatedElement="_g2S9hdwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VfA7cBE9EeGOffqMW1YiZA" name="containingStateMachine" visibility="public" bodyCondition="_VfA7chE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VfA7cRE9EeGOffqMW1YiZA" annotatedElement="_VfA7cBE9EeGOffqMW1YiZA">
           <body>The query containingStateMachine() returns the state machine that contains the transition either directly or transitively.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g2S9h9wbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g2S9hdwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2S9iNwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VfA7chE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VfA7cBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfA7cxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = container.containingStateMachine()</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g2S9idwbEeCT5O2F6sGn5g" name="result" visibility="public" type="_g2EUANwbEeCT5O2F6sGn5g" direction="return"/>
+        <ownedParameter xmi:id="_VfA7dBE9EeGOffqMW1YiZA" name="result" visibility="public" type="_VeWNEBE9EeGOffqMW1YiZA" direction="return"/>
       </ownedOperation>
-      <ownedOperation xmi:id="_g2S9itwbEeCT5O2F6sGn5g" name="isConsistentWith" visibility="public" bodyCondition="_g2S9jNwbEeCT5O2F6sGn5g" isQuery="true" precondition="_g2S9jtwbEeCT5O2F6sGn5g" redefinedOperation="_g1578NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2S9i9wbEeCT5O2F6sGn5g" annotatedElement="_g2S9itwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VfBigBE9EeGOffqMW1YiZA" name="isConsistentWith" visibility="public" bodyCondition="_VfBihBE9EeGOffqMW1YiZA" isQuery="true" precondition="_VfBighE9EeGOffqMW1YiZA" redefinedOperation="_Vd1PsBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfBigRE9EeGOffqMW1YiZA" annotatedElement="_VfBigBE9EeGOffqMW1YiZA">
           <body>The query isConsistentWith() specifies that a redefining transition is consistent with a redefined transition provided that the redefining transition has the following relation to the redefined transition: A redefining transition redefines all properties of the corresponding redefined transition, except the source state and the trigger.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g2S9jNwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g2S9itwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2S9jdwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VfBighE9EeGOffqMW1YiZA" name="pre" constrainedElement="_VfBigBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfBigxE9EeGOffqMW1YiZA">
+            <language>OCL</language>
+            <body>redefinee.isRedefinitionContextValid(self)</body>
+          </specification>
+        </ownedRule>
+        <ownedRule xmi:id="_VfBihBE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VfBigBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfBihRE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = (redefinee.oclIsKindOf(Transition) and
   let trans: Transition = redefinee.oclAsType(Transition) in
     (source() = trans.source() and trigger() = tran.trigger())</body>
           </specification>
         </ownedRule>
-        <ownedRule xmi:id="_g2S9jtwbEeCT5O2F6sGn5g" name="pre" constrainedElement="_g2S9itwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2S9j9wbEeCT5O2F6sGn5g">
-            <language>OCL</language>
-            <body>redefinee.isRedefinitionContextValid(self)</body>
-          </specification>
-        </ownedRule>
-        <ownedParameter xmi:id="_g2S9kNwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VfBihhE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
-        <ownedParameter xmi:id="_g2S9kdwbEeCT5O2F6sGn5g" name="redefinee" visibility="public" type="_uCRA4La-EeCRxrN1JUGuxA"/>
+        <ownedParameter xmi:id="_VfBihxE9EeGOffqMW1YiZA" name="redefinee" visibility="public" type="_uCRA4La-EeCRxrN1JUGuxA"/>
       </ownedOperation>
-      <ownedOperation xmi:id="_g2TkkNwbEeCT5O2F6sGn5g" name="redefinitionContext" visibility="public" bodyCondition="_g2TkktwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g2TkkdwbEeCT5O2F6sGn5g" annotatedElement="_g2TkkNwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VfBiiBE9EeGOffqMW1YiZA" name="redefinitionContext" visibility="public" bodyCondition="_VfBiihE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VfBiiRE9EeGOffqMW1YiZA" annotatedElement="_VfBiiBE9EeGOffqMW1YiZA">
           <body>The redefinition context of a transition is the nearest containing statemachine.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g2TkktwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g2TkkNwbEeCT5O2F6sGn5g _g2SWhtwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2Tkk9wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VfBiihE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VfBiiBE9EeGOffqMW1YiZA _Ve9RHBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfBiixE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = let sm = containingStateMachine() in
 if sm.context->isEmpty() or sm.general->notEmpty() then
@@ -15242,43 +15251,43 @@
 endif</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g2TklNwbEeCT5O2F6sGn5g" name="result" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" direction="return"/>
+        <ownedParameter xmi:id="_VfBijBE9EeGOffqMW1YiZA" name="result" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" direction="return"/>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g2TkldwbEeCT5O2F6sGn5g" name="Trigger">
-      <ownedComment xmi:id="_g2TkltwbEeCT5O2F6sGn5g" annotatedElement="_g2TkldwbEeCT5O2F6sGn5g">
-        <body>A trigger relates an event to a behavior that may affect an instance of the classifier.</body>
-      </ownedComment>
-      <ownedComment xmi:id="_g2Tkl9wbEeCT5O2F6sGn5g" annotatedElement="_g2TkldwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VfCJkBE9EeGOffqMW1YiZA" name="Trigger">
+      <ownedComment xmi:id="_VfCJkRE9EeGOffqMW1YiZA" annotatedElement="_VfCJkBE9EeGOffqMW1YiZA">
         <body>A trigger specification may be qualified by the port on which the event occurred.</body>
       </ownedComment>
-      <generalization xmi:id="_g2TkmNwbEeCT5O2F6sGn5g" general="_csVgUGvtEdqG6fBIPwe-mw"/>
-      <ownedAttribute xmi:id="_g2TkmdwbEeCT5O2F6sGn5g" name="event" visibility="public" type="_g0N54NwbEeCT5O2F6sGn5g" association="_gybKJNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2TkmtwbEeCT5O2F6sGn5g" annotatedElement="_g2TkmdwbEeCT5O2F6sGn5g">
+      <ownedComment xmi:id="_VfCJkhE9EeGOffqMW1YiZA" annotatedElement="_VfCJkBE9EeGOffqMW1YiZA">
+        <body>A trigger relates an event to a behavior that may affect an instance of the classifier.</body>
+      </ownedComment>
+      <generalization xmi:id="_VfCJkxE9EeGOffqMW1YiZA" general="_csVgUGvtEdqG6fBIPwe-mw"/>
+      <ownedAttribute xmi:id="_VfCJlBE9EeGOffqMW1YiZA" name="event" visibility="public" type="_VZOcgBE9EeGOffqMW1YiZA" association="_VTVP4BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfCJlRE9EeGOffqMW1YiZA" annotatedElement="_VfCJlBE9EeGOffqMW1YiZA">
           <body>The event that causes the trigger.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2Tkm9wbEeCT5O2F6sGn5g" name="port" visibility="public" type="_ZAuvEGveEdq4DLWZOhbdEA" association="_gysP6twbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2TknNwbEeCT5O2F6sGn5g" annotatedElement="_g2Tkm9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VfCJlhE9EeGOffqMW1YiZA" name="port" visibility="public" type="_ZAuvEGveEdq4DLWZOhbdEA" association="_VUJIMBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfCJlxE9EeGOffqMW1YiZA" annotatedElement="_VfCJlhE9EeGOffqMW1YiZA">
           <body>A optional port of the receiver object on which the behavioral feature is invoked.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2TkndwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2TkntwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VfCJmBE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VfCJmRE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_ynRtoGvtEdqG6fBIPwe-mw" name="Type" isAbstract="true">
-      <ownedComment xmi:id="_g2Tkn9wbEeCT5O2F6sGn5g" annotatedElement="_ynRtoGvtEdqG6fBIPwe-mw">
+      <ownedComment xmi:id="_VfCJmhE9EeGOffqMW1YiZA" annotatedElement="_ynRtoGvtEdqG6fBIPwe-mw">
         <body>A type is a named element that is used as the type for a typed element. A type can be contained in a package.</body>
       </ownedComment>
-      <ownedComment xmi:id="_g2TkoNwbEeCT5O2F6sGn5g" annotatedElement="_ynRtoGvtEdqG6fBIPwe-mw">
+      <ownedComment xmi:id="_VfCJmxE9EeGOffqMW1YiZA" annotatedElement="_ynRtoGvtEdqG6fBIPwe-mw">
         <body>A type constrains the values represented by a typed element.</body>
       </ownedComment>
-      <generalization xmi:id="_g2ULoNwbEeCT5O2F6sGn5g" general="_jKxnwGwLEdq7X4sGURiZYA"/>
-      <ownedAttribute xmi:id="_uvHaoLbQEeCRxrN1JUGuxA" name="package" visibility="public" type="_-cvRAGvzEdq7X4sGURiZYA" subsettedProperty="_gyro0dwbEeCT5O2F6sGn5g _1vzv0LbIEeCRxrN1JUGuxA" association="_gyrBxdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2ULodwbEeCT5O2F6sGn5g" annotatedElement="_uvHaoLbQEeCRxrN1JUGuxA">
+      <generalization xmi:id="_VfCJnBE9EeGOffqMW1YiZA" general="_jKxnwGwLEdq7X4sGURiZYA"/>
+      <ownedAttribute xmi:id="_uvHaoLbQEeCRxrN1JUGuxA" name="package" visibility="public" type="_-cvRAGvzEdq7X4sGURiZYA" subsettedProperty="_VUHTARE9EeGOffqMW1YiZA _1vzv0LbIEeCRxrN1JUGuxA" association="_VUEPtRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfCJnRE9EeGOffqMW1YiZA" annotatedElement="_uvHaoLbQEeCRxrN1JUGuxA">
           <body>Specifies the owning package of this classifier, if any.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2ULotwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VfCwoBE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
       <ownedOperation xmi:id="_RNEaIGwNEdq7X4sGURiZYA" name="createAssociation">
         <ownedComment xmi:id="_w29JkOwgEdqYHf-imTcTdw" annotatedElement="_RNEaIGwNEdq7X4sGURiZYA">
@@ -15358,504 +15367,504 @@
           <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_7CRvMaPAEdqi_5gqUMOQtA" value="*"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g2ULo9wbEeCT5O2F6sGn5g" name="conformsTo" visibility="public" bodyCondition="_g2ULpdwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g2ULpNwbEeCT5O2F6sGn5g" annotatedElement="_g2ULo9wbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VfCwoRE9EeGOffqMW1YiZA" name="conformsTo" visibility="public" bodyCondition="_VfCwoxE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VfCwohE9EeGOffqMW1YiZA" annotatedElement="_VfCwoRE9EeGOffqMW1YiZA">
           <body>The query conformsTo() gives true for a type that conforms to another. By default, two types do not conform to each other. This query is intended to be redefined for specific conformance situations.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g2ULpdwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g2ULo9wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2ULptwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VfCwoxE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VfCwoRE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfCwpBE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = false</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g2ULp9wbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VfCwpRE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
-        <ownedParameter xmi:id="_g2ULqNwbEeCT5O2F6sGn5g" name="other" visibility="public" type="_ynRtoGvtEdqG6fBIPwe-mw"/>
+        <ownedParameter xmi:id="_VfCwphE9EeGOffqMW1YiZA" name="other" visibility="public" type="_ynRtoGvtEdqG6fBIPwe-mw"/>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g2UysNwbEeCT5O2F6sGn5g" name="TypedElement" isAbstract="true">
-      <ownedComment xmi:id="_g2UysdwbEeCT5O2F6sGn5g" annotatedElement="_g2UysNwbEeCT5O2F6sGn5g">
-        <body>A typed element has a type.</body>
-      </ownedComment>
-      <ownedComment xmi:id="_g2UystwbEeCT5O2F6sGn5g" annotatedElement="_g2UysNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VfDXsBE9EeGOffqMW1YiZA" name="TypedElement" isAbstract="true">
+      <ownedComment xmi:id="_VfDXsRE9EeGOffqMW1YiZA" annotatedElement="_VfDXsBE9EeGOffqMW1YiZA">
         <body>A typed element is a kind of named element that represents an element with a type.</body>
       </ownedComment>
-      <generalization xmi:id="_g2Uys9wbEeCT5O2F6sGn5g" general="_csVgUGvtEdqG6fBIPwe-mw"/>
-      <ownedAttribute xmi:id="_g2UytNwbEeCT5O2F6sGn5g" name="type" visibility="public" type="_ynRtoGvtEdqG6fBIPwe-mw" association="_gy-jwNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2UytdwbEeCT5O2F6sGn5g" annotatedElement="_g2UytNwbEeCT5O2F6sGn5g">
-          <body>The type of the TypedElement.</body>
-        </ownedComment>
-        <ownedComment xmi:id="_g2UyttwbEeCT5O2F6sGn5g" annotatedElement="_g2UytNwbEeCT5O2F6sGn5g">
+      <ownedComment xmi:id="_VfDXshE9EeGOffqMW1YiZA" annotatedElement="_VfDXsBE9EeGOffqMW1YiZA">
+        <body>A typed element has a type.</body>
+      </ownedComment>
+      <generalization xmi:id="_VfDXsxE9EeGOffqMW1YiZA" general="_csVgUGvtEdqG6fBIPwe-mw"/>
+      <ownedAttribute xmi:id="_VfDXtBE9EeGOffqMW1YiZA" name="type" visibility="public" type="_ynRtoGvtEdqG6fBIPwe-mw" association="_VUtv8BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfDXtRE9EeGOffqMW1YiZA" annotatedElement="_VfDXtBE9EeGOffqMW1YiZA">
           <body>This information is derived from the return result for this Operation.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2Uyt9wbEeCT5O2F6sGn5g"/>
+        <ownedComment xmi:id="_VfDXthE9EeGOffqMW1YiZA" annotatedElement="_VfDXtBE9EeGOffqMW1YiZA">
+          <body>The type of the TypedElement.</body>
+        </ownedComment>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VfDXtxE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g2VZwNwbEeCT5O2F6sGn5g" name="UnmarshallAction">
-      <ownedComment xmi:id="_g2VZwdwbEeCT5O2F6sGn5g" annotatedElement="_g2VZwNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VfD-wBE9EeGOffqMW1YiZA" name="UnmarshallAction">
+      <ownedComment xmi:id="_VfD-wRE9EeGOffqMW1YiZA" annotatedElement="_VfD-wBE9EeGOffqMW1YiZA">
         <body>An unmarshall action is an action that breaks an object of a known type into outputs each of which is equal to a value from a structural feature of the object.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g2VZwtwbEeCT5O2F6sGn5g" name="structural_feature" constrainedElement="_g2VZwNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2VZw9wbEeCT5O2F6sGn5g" annotatedElement="_g2VZwtwbEeCT5O2F6sGn5g">
-          <body>The unmarshall classifier must have at least one structural feature.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2VZxNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g2VZxdwbEeCT5O2F6sGn5g" name="number_of_result" constrainedElement="_g2VZwNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2VZxtwbEeCT5O2F6sGn5g" annotatedElement="_g2VZxdwbEeCT5O2F6sGn5g">
-          <body>The number of result output pins must be the same as the number of structural features of the unmarshall classifier.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2VZx9wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g2VZyNwbEeCT5O2F6sGn5g" name="multiplicity_of_result" constrainedElement="_g2VZwNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2VZydwbEeCT5O2F6sGn5g" annotatedElement="_g2VZyNwbEeCT5O2F6sGn5g">
-          <body>The multiplicity of each result output pin must be compatible with the multiplicity of the corresponding structural features of the unmarshall classifier.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2VZytwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g2VZy9wbEeCT5O2F6sGn5g" name="type_and_ordering" constrainedElement="_g2VZwNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2VZzNwbEeCT5O2F6sGn5g" annotatedElement="_g2VZy9wbEeCT5O2F6sGn5g">
-          <body>The type and ordering of each result output pin must be the same as the corresponding structural feature of the unmarshall classifier.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2VZzdwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g2VZztwbEeCT5O2F6sGn5g" name="unmarshallType_is_classifier" constrainedElement="_g2VZwNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2VZz9wbEeCT5O2F6sGn5g" annotatedElement="_g2VZztwbEeCT5O2F6sGn5g">
-          <body>unmarshallType must be a Classifier with ordered attributes</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2VZ0NwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g2VZ0dwbEeCT5O2F6sGn5g" name="multiplicity_of_object" constrainedElement="_g2VZwNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2VZ0twbEeCT5O2F6sGn5g" annotatedElement="_g2VZ0dwbEeCT5O2F6sGn5g">
-          <body>The multiplicity of the object input pin is 1..1</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2VZ09wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g2VZ1NwbEeCT5O2F6sGn5g" name="same_type" constrainedElement="_g2VZwNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2VZ1dwbEeCT5O2F6sGn5g" annotatedElement="_g2VZ1NwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VfD-whE9EeGOffqMW1YiZA" name="same_type" constrainedElement="_VfD-wBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfD-wxE9EeGOffqMW1YiZA" annotatedElement="_VfD-whE9EeGOffqMW1YiZA">
           <body>The type of the object input pin must be the same as the unmarshall classifier.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2VZ1twbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfD-xBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g2VZ19wbEeCT5O2F6sGn5g" general="_6WKakLLQEeCsYvaJqFFivQ"/>
-      <ownedAttribute xmi:id="_g2VZ2NwbEeCT5O2F6sGn5g" name="object" visibility="public" type="_g0aHKdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzBnMNwbEeCT5O2F6sGn5g" association="_gymJSdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2VZ2dwbEeCT5O2F6sGn5g" annotatedElement="_g2VZ2NwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VfD-xRE9EeGOffqMW1YiZA" name="structural_feature" constrainedElement="_VfD-wBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfD-xhE9EeGOffqMW1YiZA" annotatedElement="_VfD-xRE9EeGOffqMW1YiZA">
+          <body>The unmarshall classifier must have at least one structural feature.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfD-xxE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VfD-yBE9EeGOffqMW1YiZA" name="multiplicity_of_object" constrainedElement="_VfD-wBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfD-yRE9EeGOffqMW1YiZA" annotatedElement="_VfD-yBE9EeGOffqMW1YiZA">
+          <body>The multiplicity of the object input pin is 1..1</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfD-yhE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VfD-yxE9EeGOffqMW1YiZA" name="type_and_ordering" constrainedElement="_VfD-wBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfD-zBE9EeGOffqMW1YiZA" annotatedElement="_VfD-yxE9EeGOffqMW1YiZA">
+          <body>The type and ordering of each result output pin must be the same as the corresponding structural feature of the unmarshall classifier.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfD-zRE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VfD-zhE9EeGOffqMW1YiZA" name="number_of_result" constrainedElement="_VfD-wBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfD-zxE9EeGOffqMW1YiZA" annotatedElement="_VfD-zhE9EeGOffqMW1YiZA">
+          <body>The number of result output pins must be the same as the number of structural features of the unmarshall classifier.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfD-0BE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VfD-0RE9EeGOffqMW1YiZA" name="unmarshallType_is_classifier" constrainedElement="_VfD-wBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfD-0hE9EeGOffqMW1YiZA" annotatedElement="_VfD-0RE9EeGOffqMW1YiZA">
+          <body>unmarshallType must be a Classifier with ordered attributes</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfD-0xE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VfD-1BE9EeGOffqMW1YiZA" name="multiplicity_of_result" constrainedElement="_VfD-wBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfD-1RE9EeGOffqMW1YiZA" annotatedElement="_VfD-1BE9EeGOffqMW1YiZA">
+          <body>The multiplicity of each result output pin must be compatible with the multiplicity of the corresponding structural features of the unmarshall classifier.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfD-1hE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VfD-1xE9EeGOffqMW1YiZA" general="_6WKakLLQEeCsYvaJqFFivQ"/>
+      <ownedAttribute xmi:id="_VfD-2BE9EeGOffqMW1YiZA" name="object" visibility="public" type="_VZp6WRE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4IABE9EeGOffqMW1YiZA" association="_VT4CcxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfD-2RE9EeGOffqMW1YiZA" annotatedElement="_VfD-2BE9EeGOffqMW1YiZA">
           <body>The object to be unmarshalled.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2VZ2twbEeCT5O2F6sGn5g" name="result" visibility="public" type="_g1fsRdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzCOK9wbEeCT5O2F6sGn5g" association="_gy2A79wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2VZ29wbEeCT5O2F6sGn5g" annotatedElement="_g2VZ2twbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VfD-2hE9EeGOffqMW1YiZA" name="result" visibility="public" type="_VcHYcBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4vEBE9EeGOffqMW1YiZA" association="_VUfthhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfD-2xE9EeGOffqMW1YiZA" annotatedElement="_VfD-2hE9EeGOffqMW1YiZA">
           <body>The values of the structural features of the input object.</body>
         </ownedComment>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2VZ3NwbEeCT5O2F6sGn5g" value="*"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VfD-3BE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2VZ3dwbEeCT5O2F6sGn5g" name="unmarshallType" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" association="_gy-jxNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2VZ3twbEeCT5O2F6sGn5g" annotatedElement="_g2VZ3dwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VfD-3RE9EeGOffqMW1YiZA" name="unmarshallType" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" association="_VUtv9BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfD-3hE9EeGOffqMW1YiZA" annotatedElement="_VfD-3RE9EeGOffqMW1YiZA">
           <body>The type of the object to be unmarshalled.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_h18oENlrEduDKPkA-0jJZg" name="Usage">
-      <ownedComment xmi:id="_g2VZ39wbEeCT5O2F6sGn5g" annotatedElement="_h18oENlrEduDKPkA-0jJZg">
+      <ownedComment xmi:id="_VfD-3xE9EeGOffqMW1YiZA" annotatedElement="_h18oENlrEduDKPkA-0jJZg">
         <body>A usage is a relationship in which one element requires another element (or set of elements) for its full implementation or operation. A usage is a dependency in which the client requires the presence of the supplier.</body>
       </ownedComment>
-      <generalization xmi:id="_g2VZ4NwbEeCT5O2F6sGn5g" general="_rEDGkGwKEdq7X4sGURiZYA"/>
+      <generalization xmi:id="_VfD-4BE9EeGOffqMW1YiZA" general="_rEDGkGwKEdq7X4sGURiZYA"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g2WA0NwbEeCT5O2F6sGn5g" name="UseCase">
-      <ownedComment xmi:id="_g2WA0dwbEeCT5O2F6sGn5g" annotatedElement="_g2WA0NwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VfFM4BE9EeGOffqMW1YiZA" name="UseCase">
+      <ownedComment xmi:id="_VfFM4RE9EeGOffqMW1YiZA" annotatedElement="_VfFM4BE9EeGOffqMW1YiZA">
         <body>A use case is the specification of a set of actions performed by a system, which yields an observable result that is, typically, of value for one or more actors or other stakeholders of the system.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g2WA0twbEeCT5O2F6sGn5g" name="binary_associations" constrainedElement="_g2WA0NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2WA09wbEeCT5O2F6sGn5g" annotatedElement="_g2WA0twbEeCT5O2F6sGn5g">
-          <body>UseCases can only be involved in binary Associations.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2WA1NwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g2WA1dwbEeCT5O2F6sGn5g" name="no_association_to_use_case" constrainedElement="_g2WA0NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2WA1twbEeCT5O2F6sGn5g" annotatedElement="_g2WA1dwbEeCT5O2F6sGn5g">
-          <body>UseCases can not have Associations to UseCases specifying the same subject.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2WA19wbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g2WA2NwbEeCT5O2F6sGn5g" name="cannot_include_self" constrainedElement="_g2WA0NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2WA2dwbEeCT5O2F6sGn5g" annotatedElement="_g2WA2NwbEeCT5O2F6sGn5g">
-          <body>A use case cannot include use cases that directly or indirectly include it.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2WA2twbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>not self.allIncludedUseCases()->includes(self)</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g2WA29wbEeCT5O2F6sGn5g" name="must_have_name" constrainedElement="_g2WA0NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2WA3NwbEeCT5O2F6sGn5g" annotatedElement="_g2WA29wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VfFM4hE9EeGOffqMW1YiZA" name="must_have_name" constrainedElement="_VfFM4BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfFM4xE9EeGOffqMW1YiZA" annotatedElement="_VfFM4hE9EeGOffqMW1YiZA">
           <body>A UseCase must have a name.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2WA3dwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfFM5BE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.name -> notEmpty ()</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g2WA3twbEeCT5O2F6sGn5g" general="_iY7sMGvsEdqG6fBIPwe-mw"/>
-      <ownedAttribute xmi:id="_g2WA39wbEeCT5O2F6sGn5g" name="extend" visibility="public" type="_g0Q9MNwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gy5rStwbEeCT5O2F6sGn5g _g1S4AdwbEeCT5O2F6sGn5g" association="_gycYQdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2WA4NwbEeCT5O2F6sGn5g" annotatedElement="_g2WA39wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VfFM5RE9EeGOffqMW1YiZA" name="cannot_include_self" constrainedElement="_VfFM4BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfFM5hE9EeGOffqMW1YiZA" annotatedElement="_VfFM5RE9EeGOffqMW1YiZA">
+          <body>A use case cannot include use cases that directly or indirectly include it.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfFM5xE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>not self.allIncludedUseCases()->includes(self)</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VfFM6BE9EeGOffqMW1YiZA" name="binary_associations" constrainedElement="_VfFM4BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfFM6RE9EeGOffqMW1YiZA" annotatedElement="_VfFM6BE9EeGOffqMW1YiZA">
+          <body>UseCases can only be involved in binary Associations.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfFM6hE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <ownedRule xmi:id="_VfFM6xE9EeGOffqMW1YiZA" name="no_association_to_use_case" constrainedElement="_VfFM4BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfFM7BE9EeGOffqMW1YiZA" annotatedElement="_VfFM6xE9EeGOffqMW1YiZA">
+          <body>UseCases can not have Associations to UseCases specifying the same subject.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfFM7RE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VfFM7hE9EeGOffqMW1YiZA" general="_iY7sMGvsEdqG6fBIPwe-mw"/>
+      <ownedAttribute xmi:id="_VfFM7xE9EeGOffqMW1YiZA" name="extend" visibility="public" type="_VZTVABE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VUkmBhE9EeGOffqMW1YiZA _Var1EBE9EeGOffqMW1YiZA" association="_VTYTMBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfFM8BE9EeGOffqMW1YiZA" annotatedElement="_VfFM7xE9EeGOffqMW1YiZA">
           <body>References the Extend relationships owned by this use case.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2WA4dwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2WA4twbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VfFM8RE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VfFM8hE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2WA49wbEeCT5O2F6sGn5g" name="extensionPoint" visibility="public" type="_g0TZcNwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g1S4AdwbEeCT5O2F6sGn5g" association="_gyc_VNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2WA5NwbEeCT5O2F6sGn5g" annotatedElement="_g2WA49wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VfFM8xE9EeGOffqMW1YiZA" name="extensionPoint" visibility="public" type="_VZXmcBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_Var1EBE9EeGOffqMW1YiZA" association="_VTavcBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfFM9BE9EeGOffqMW1YiZA" annotatedElement="_VfFM8xE9EeGOffqMW1YiZA">
           <body>References the ExtensionPoints owned by the use case.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2WA5dwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2WA5twbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VfFM9RE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VfFM9hE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2WA59wbEeCT5O2F6sGn5g" name="include" visibility="public" type="_g0YR8NwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gy5rStwbEeCT5O2F6sGn5g _g1S4AdwbEeCT5O2F6sGn5g" association="_gyfbntwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2WA6NwbEeCT5O2F6sGn5g" annotatedElement="_g2WA59wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VfFM9xE9EeGOffqMW1YiZA" name="include" visibility="public" type="_VZneEBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VUkmBhE9EeGOffqMW1YiZA _Var1EBE9EeGOffqMW1YiZA" association="_VToK1BE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfFM-BE9EeGOffqMW1YiZA" annotatedElement="_VfFM9xE9EeGOffqMW1YiZA">
           <body>References the Include relationships owned by this use case.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2WA6dwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2WA6twbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VfFM-RE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VfFM-hE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2WA69wbEeCT5O2F6sGn5g" name="subject" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" association="_gy7gctwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2WA7NwbEeCT5O2F6sGn5g" annotatedElement="_g2WA69wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VfFM-xE9EeGOffqMW1YiZA" name="subject" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" association="_VUnpURE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfFM_BE9EeGOffqMW1YiZA" annotatedElement="_VfFM-xE9EeGOffqMW1YiZA">
           <body>References the subjects to which this use case applies. The subject or its parts realize all the use cases that apply to this subject. Use cases need not be attached to any specific subject, however. The subject may, but need not, own the use cases that apply to it.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2WA7dwbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2WA7twbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VfFM_RE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VfFM_hE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedOperation xmi:id="_g2WA79wbEeCT5O2F6sGn5g" name="allIncludedUseCases" visibility="public" bodyCondition="_g2WA8dwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g2WA8NwbEeCT5O2F6sGn5g" annotatedElement="_g2WA79wbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VfFM_xE9EeGOffqMW1YiZA" name="allIncludedUseCases" visibility="public" bodyCondition="_VfFNARE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VfFNABE9EeGOffqMW1YiZA" annotatedElement="_VfFM_xE9EeGOffqMW1YiZA">
           <body>The query allIncludedUseCases() returns the transitive closure of all use cases (directly or indirectly) included by this use case.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g2WA8dwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g2WA79wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2WA8twbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VfFNARE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VfFM_xE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfFNAhE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = self.include->union(self.include->collect(in | in.allIncludedUseCases()))</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g2WA89wbEeCT5O2F6sGn5g" name="result" visibility="public" type="_g2WA0NwbEeCT5O2F6sGn5g" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2WA9NwbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2WA9dwbEeCT5O2F6sGn5g" value="*"/>
+        <ownedParameter xmi:id="_VfFNAxE9EeGOffqMW1YiZA" name="result" visibility="public" type="_VfFM4BE9EeGOffqMW1YiZA" direction="return">
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VfFNBBE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VfFNBRE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g2Wn4NwbEeCT5O2F6sGn5g" name="ValuePin">
-      <ownedComment xmi:id="_g2Wn4dwbEeCT5O2F6sGn5g" annotatedElement="_g2Wn4NwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VfFNBhE9EeGOffqMW1YiZA" name="ValuePin">
+      <ownedComment xmi:id="_VfFNBxE9EeGOffqMW1YiZA" annotatedElement="_VfFNBhE9EeGOffqMW1YiZA">
         <body>A value pin is an input pin that provides a value by evaluating a value specification.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g2Wn4twbEeCT5O2F6sGn5g" name="no_incoming_edges" constrainedElement="_g2Wn4NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2Wn49wbEeCT5O2F6sGn5g" annotatedElement="_g2Wn4twbEeCT5O2F6sGn5g">
-          <body>Value pins have no incoming edges.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2Wn5NwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>true</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g2Wn5dwbEeCT5O2F6sGn5g" name="compatible_type" constrainedElement="_g2Wn4NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2Wn5twbEeCT5O2F6sGn5g" annotatedElement="_g2Wn5dwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VfFNCBE9EeGOffqMW1YiZA" name="compatible_type" constrainedElement="_VfFNBhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfFNCRE9EeGOffqMW1YiZA" annotatedElement="_VfFNCBE9EeGOffqMW1YiZA">
           <body>The type of value specification must be compatible with the type of the value pin.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2Wn59wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfFNChE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g2Wn6NwbEeCT5O2F6sGn5g" general="_g0aHKdwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g2Wn6dwbEeCT5O2F6sGn5g" name="value" visibility="public" type="_g2YdENwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gy_K2dwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2Wn6twbEeCT5O2F6sGn5g" annotatedElement="_g2Wn6dwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VfFNCxE9EeGOffqMW1YiZA" name="no_incoming_edges" constrainedElement="_VfFNBhE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfFNDBE9EeGOffqMW1YiZA" annotatedElement="_VfFNCxE9EeGOffqMW1YiZA">
+          <body>Value pins have no incoming edges.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfFNDRE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>true</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VfFNDhE9EeGOffqMW1YiZA" general="_VZp6WRE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VfFNDxE9EeGOffqMW1YiZA" name="value" visibility="public" type="_VfGbABE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VUwzQBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfFNEBE9EeGOffqMW1YiZA" annotatedElement="_VfFNDxE9EeGOffqMW1YiZA">
           <body>Value that the pin will provide.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g2YdENwbEeCT5O2F6sGn5g" name="ValueSpecification" isAbstract="true">
-      <ownedComment xmi:id="_g2YdEdwbEeCT5O2F6sGn5g" annotatedElement="_g2YdENwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VfGbABE9EeGOffqMW1YiZA" name="ValueSpecification" isAbstract="true">
+      <ownedComment xmi:id="_VfGbARE9EeGOffqMW1YiZA" annotatedElement="_VfGbABE9EeGOffqMW1YiZA">
         <body>ValueSpecification specializes ParameterableElement to specify that a value specification can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template.</body>
       </ownedComment>
-      <ownedComment xmi:id="_g2YdEtwbEeCT5O2F6sGn5g" annotatedElement="_g2YdENwbEeCT5O2F6sGn5g">
+      <ownedComment xmi:id="_VfGbAhE9EeGOffqMW1YiZA" annotatedElement="_VfGbABE9EeGOffqMW1YiZA">
         <body>A value specification is the specification of a (possibly empty) set of instances, including both objects and data values.</body>
       </ownedComment>
-      <generalization xmi:id="_g2YdE9wbEeCT5O2F6sGn5g" general="_g2UysNwbEeCT5O2F6sGn5g"/>
-      <generalization xmi:id="_g2YdFNwbEeCT5O2F6sGn5g" general="_jKxnwGwLEdq7X4sGURiZYA"/>
-      <ownedOperation xmi:id="_g2YdFdwbEeCT5O2F6sGn5g" name="booleanValue" visibility="public" bodyCondition="_g2YdF9wbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g2YdFtwbEeCT5O2F6sGn5g" annotatedElement="_g2YdFdwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VfGbAxE9EeGOffqMW1YiZA" general="_VfDXsBE9EeGOffqMW1YiZA"/>
+      <generalization xmi:id="_VfGbBBE9EeGOffqMW1YiZA" general="_jKxnwGwLEdq7X4sGURiZYA"/>
+      <ownedOperation xmi:id="_VfGbBRE9EeGOffqMW1YiZA" name="booleanValue" visibility="public" bodyCondition="_VfGbBxE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VfGbBhE9EeGOffqMW1YiZA" annotatedElement="_VfGbBRE9EeGOffqMW1YiZA">
           <body>The query booleanValue() gives a single Boolean value when one can be computed.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g2YdF9wbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g2YdFdwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2YdGNwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VfGbBxE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VfGbBRE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfGbCBE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = Set{}</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g2YdGdwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VfGbCRE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2YdGtwbEeCT5O2F6sGn5g"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VfGbChE9EeGOffqMW1YiZA"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g2YdG9wbEeCT5O2F6sGn5g" name="integerValue" visibility="public" bodyCondition="_g2YdHdwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g2YdHNwbEeCT5O2F6sGn5g" annotatedElement="_g2YdG9wbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VfGbCxE9EeGOffqMW1YiZA" name="integerValue" visibility="public" bodyCondition="_VfGbDRE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VfGbDBE9EeGOffqMW1YiZA" annotatedElement="_VfGbCxE9EeGOffqMW1YiZA">
           <body>The query integerValue() gives a single Integer value when one can be computed.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g2YdHdwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g2YdG9wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2YdHtwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VfGbDRE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VfGbCxE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfGbDhE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = Set{}</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g2YdH9wbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VfGbDxE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2YdINwbEeCT5O2F6sGn5g"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VfGbEBE9EeGOffqMW1YiZA"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g2YdIdwbEeCT5O2F6sGn5g" name="isCompatibleWith" visibility="public" bodyCondition="_g2YdI9wbEeCT5O2F6sGn5g" isQuery="true" redefinedOperation="_g1noGdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2YdItwbEeCT5O2F6sGn5g" annotatedElement="_g2YdIdwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VfGbERE9EeGOffqMW1YiZA" name="isCompatibleWith" visibility="public" bodyCondition="_VfGbExE9EeGOffqMW1YiZA" isQuery="true" redefinedOperation="_Vc732RE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfGbEhE9EeGOffqMW1YiZA" annotatedElement="_VfGbERE9EeGOffqMW1YiZA">
           <body>The query isCompatibleWith() determines if this parameterable element is compatible with the specified parameterable element. By default parameterable element P is compatible with parameterable element Q if the kind of P is the same or a subtype as the kind of Q. In addition, for ValueSpecification, the type must be conformant with the type of the specified parameterable element.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g2YdI9wbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g2YdIdwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2YdJNwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VfGbExE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VfGbERE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfGbFBE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = p->oclIsKindOf(self.oclType) and self.type.conformsTo(p.oclAsType(TypedElement).type)</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g2YdJdwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VfGbFRE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
-        <ownedParameter xmi:id="_g2YdJtwbEeCT5O2F6sGn5g" name="p" visibility="public" type="_g1noENwbEeCT5O2F6sGn5g"/>
+        <ownedParameter xmi:id="_VfGbFhE9EeGOffqMW1YiZA" name="p" visibility="public" type="_Vc730BE9EeGOffqMW1YiZA"/>
       </ownedOperation>
-      <ownedOperation xmi:id="_g2YdJ9wbEeCT5O2F6sGn5g" name="isComputable" visibility="public" bodyCondition="_g2YdKdwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g2YdKNwbEeCT5O2F6sGn5g" annotatedElement="_g2YdJ9wbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VfGbFxE9EeGOffqMW1YiZA" name="isComputable" visibility="public" bodyCondition="_VfGbGRE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VfGbGBE9EeGOffqMW1YiZA" annotatedElement="_VfGbFxE9EeGOffqMW1YiZA">
           <body>The query isComputable() determines whether a value specification can be computed in a model. This operation cannot be fully defined in OCL. A conforming implementation is expected to deliver true for this operation for all value specifications that it can compute, and to compute all of those for which the operation is true. A conforming implementation is expected to be able to compute the value of all literals.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g2YdKdwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g2YdJ9wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2YdKtwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VfGbGRE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VfGbFxE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfGbGhE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = false</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g2YdK9wbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VfGbGxE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g2YdLNwbEeCT5O2F6sGn5g" name="isNull" visibility="public" bodyCondition="_g2YdLtwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g2YdLdwbEeCT5O2F6sGn5g" annotatedElement="_g2YdLNwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VfGbHBE9EeGOffqMW1YiZA" name="isNull" visibility="public" bodyCondition="_VfGbHhE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VfGbHRE9EeGOffqMW1YiZA" annotatedElement="_VfGbHBE9EeGOffqMW1YiZA">
           <body>The query isNull() returns true when it can be computed that the value is null.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g2YdLtwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g2YdLNwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2YdL9wbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VfGbHhE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VfGbHBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfGbHxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = false</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g2YdMNwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VfGbIBE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g2YdMdwbEeCT5O2F6sGn5g" name="realValue" visibility="public" bodyCondition="_g2YdM9wbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g2YdMtwbEeCT5O2F6sGn5g" annotatedElement="_g2YdMdwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VfGbIRE9EeGOffqMW1YiZA" name="realValue" visibility="public" bodyCondition="_VfGbIxE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VfGbIhE9EeGOffqMW1YiZA" annotatedElement="_VfGbIRE9EeGOffqMW1YiZA">
           <body>The query realValue() gives a single Real value when one can be computed.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g2YdM9wbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g2YdMdwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2YdNNwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VfGbIxE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VfGbIRE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfGbJBE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = Set{}</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g2YdNdwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VfGbJRE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2YdNtwbEeCT5O2F6sGn5g"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VfGbJhE9EeGOffqMW1YiZA"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g2YdN9wbEeCT5O2F6sGn5g" name="stringValue" visibility="public" bodyCondition="_g2YdOdwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g2YdONwbEeCT5O2F6sGn5g" annotatedElement="_g2YdN9wbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VfGbJxE9EeGOffqMW1YiZA" name="stringValue" visibility="public" bodyCondition="_VfGbKRE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VfGbKBE9EeGOffqMW1YiZA" annotatedElement="_VfGbJxE9EeGOffqMW1YiZA">
           <body>The query stringValue() gives a single String value when one can be computed.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g2YdOdwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g2YdN9wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2YdOtwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VfGbKRE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VfGbJxE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfGbKhE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = Set{}</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g2YdO9wbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VfGbKxE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2YdPNwbEeCT5O2F6sGn5g"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VfGbLBE9EeGOffqMW1YiZA"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_g2YdPdwbEeCT5O2F6sGn5g" name="unlimitedValue" visibility="public" bodyCondition="_g2YdP9wbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g2YdPtwbEeCT5O2F6sGn5g" annotatedElement="_g2YdPdwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VfGbLRE9EeGOffqMW1YiZA" name="unlimitedValue" visibility="public" bodyCondition="_VfGbLxE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VfGbLhE9EeGOffqMW1YiZA" annotatedElement="_VfGbLRE9EeGOffqMW1YiZA">
           <body>The query unlimitedValue() gives a single UnlimitedNatural value when one can be computed.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g2YdP9wbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g2YdPdwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2YdQNwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VfGbLxE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VfGbLRE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfGbMBE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = Set{}</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g2YdQdwbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VfGbMRE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#UnlimitedNatural"/>
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2YdQtwbEeCT5O2F6sGn5g"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VfGbMhE9EeGOffqMW1YiZA"/>
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g2ZEINwbEeCT5O2F6sGn5g" name="ValueSpecificationAction">
-      <ownedComment xmi:id="_g2ZEIdwbEeCT5O2F6sGn5g" annotatedElement="_g2ZEINwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VfHpIBE9EeGOffqMW1YiZA" name="ValueSpecificationAction">
+      <ownedComment xmi:id="_VfHpIRE9EeGOffqMW1YiZA" annotatedElement="_VfHpIBE9EeGOffqMW1YiZA">
         <body>A value specification action is an action that evaluates a value specification.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g2ZEItwbEeCT5O2F6sGn5g" name="multiplicity" constrainedElement="_g2ZEINwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2ZEI9wbEeCT5O2F6sGn5g" annotatedElement="_g2ZEItwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VfHpIhE9EeGOffqMW1YiZA" name="multiplicity" constrainedElement="_VfHpIBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfHpIxE9EeGOffqMW1YiZA" annotatedElement="_VfHpIhE9EeGOffqMW1YiZA">
           <body>The multiplicity of the result pin is 1..1</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2ZEJNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfHpJBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g2ZEJdwbEeCT5O2F6sGn5g" name="compatible_type" constrainedElement="_g2ZEINwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2ZEJtwbEeCT5O2F6sGn5g" annotatedElement="_g2ZEJdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VfHpJRE9EeGOffqMW1YiZA" name="compatible_type" constrainedElement="_VfHpIBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfHpJhE9EeGOffqMW1YiZA" annotatedElement="_VfHpJRE9EeGOffqMW1YiZA">
           <body>The type of value specification must be compatible with the type of the result pin.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2ZEJ9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfHpJxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g2ZEKNwbEeCT5O2F6sGn5g" general="_6WKakLLQEeCsYvaJqFFivQ"/>
-      <ownedAttribute xmi:id="_g2ZEKdwbEeCT5O2F6sGn5g" name="result" visibility="public" type="_g1fsRdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzCOK9wbEeCT5O2F6sGn5g" association="_gy2n8twbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2ZEKtwbEeCT5O2F6sGn5g" annotatedElement="_g2ZEKdwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VfHpKBE9EeGOffqMW1YiZA" general="_6WKakLLQEeCsYvaJqFFivQ"/>
+      <ownedAttribute xmi:id="_VfHpKRE9EeGOffqMW1YiZA" name="result" visibility="public" type="_VcHYcBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4vEBE9EeGOffqMW1YiZA" association="_VUftiRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfHpKhE9EeGOffqMW1YiZA" annotatedElement="_VfHpKRE9EeGOffqMW1YiZA">
           <body>Gives the output pin on which the result is put.</body>
         </ownedComment>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2ZEK9wbEeCT5O2F6sGn5g" name="value" visibility="public" type="_g2YdENwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_g0JocNwbEeCT5O2F6sGn5g" association="_gy_K3NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2ZELNwbEeCT5O2F6sGn5g" annotatedElement="_g2ZEK9wbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VfHpKxE9EeGOffqMW1YiZA" name="value" visibility="public" type="_VfGbABE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_VUwzQxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfHpLBE9EeGOffqMW1YiZA" annotatedElement="_VfHpKxE9EeGOffqMW1YiZA">
           <body>Value specification to be evaluated.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g2ZELdwbEeCT5O2F6sGn5g" name="Variable">
-      <ownedComment xmi:id="_g2ZELtwbEeCT5O2F6sGn5g" annotatedElement="_g2ZELdwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VfIQMBE9EeGOffqMW1YiZA" name="Variable">
+      <ownedComment xmi:id="_VfIQMRE9EeGOffqMW1YiZA" annotatedElement="_VfIQMBE9EeGOffqMW1YiZA">
         <body>A variable is considered a connectable element.</body>
       </ownedComment>
-      <ownedComment xmi:id="_g2ZEL9wbEeCT5O2F6sGn5g" annotatedElement="_g2ZELdwbEeCT5O2F6sGn5g">
+      <ownedComment xmi:id="_VfIQMhE9EeGOffqMW1YiZA" annotatedElement="_VfIQMBE9EeGOffqMW1YiZA">
         <body>Variables are elements for passing data between actions indirectly. A local variable stores values shared by the actions within a structured activity group but not accessible outside it. The output of an action may be written to a variable and read for the input to a subsequent action, which is effectively an indirect data flow path. Because there is no predefined relationship between actions that read and write variables, these actions must be sequenced by control flows to prevent race conditions that may occur between actions that read or write the same variable.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g2ZEMNwbEeCT5O2F6sGn5g" name="owned" constrainedElement="_g2ZELdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2ZEMdwbEeCT5O2F6sGn5g" annotatedElement="_g2ZEMNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VfIQMxE9EeGOffqMW1YiZA" name="owned" constrainedElement="_VfIQMBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfIQNBE9EeGOffqMW1YiZA" annotatedElement="_VfIQMxE9EeGOffqMW1YiZA">
           <body>A variable is owned by a StructuredNode or Activity, but not both.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2ZEMtwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfIQNRE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g2ZEM9wbEeCT5O2F6sGn5g" general="_0dB44PnhEdunWsS3se92JQ"/>
-      <generalization xmi:id="_g2ZENNwbEeCT5O2F6sGn5g" general="_Gjgl0GveEdq4DLWZOhbdEA"/>
-      <ownedAttribute xmi:id="_g2ZENdwbEeCT5O2F6sGn5g" name="activityScope" visibility="public" type="_eGtFwLLREeCsYvaJqFFivQ" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_gy_x5twbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2ZENtwbEeCT5O2F6sGn5g" annotatedElement="_g2ZENdwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VfIQNhE9EeGOffqMW1YiZA" general="_Gjgl0GveEdq4DLWZOhbdEA"/>
+      <generalization xmi:id="_VfIQNxE9EeGOffqMW1YiZA" general="_0dB44PnhEdunWsS3se92JQ"/>
+      <ownedAttribute xmi:id="_VfIQOBE9EeGOffqMW1YiZA" name="activityScope" visibility="public" type="_eGtFwLLREeCsYvaJqFFivQ" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_VUyocBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfIQORE9EeGOffqMW1YiZA" annotatedElement="_VfIQOBE9EeGOffqMW1YiZA">
           <body>An activity that owns the variable.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2ZEN9wbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VfIQOhE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2ZEONwbEeCT5O2F6sGn5g" name="scope" visibility="public" type="_w1_2cLLREeCsYvaJqFFivQ" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_gy_x59wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2ZEOdwbEeCT5O2F6sGn5g" annotatedElement="_g2ZEONwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VfIQOxE9EeGOffqMW1YiZA" name="scope" visibility="public" type="_w1_2cLLREeCsYvaJqFFivQ" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_VUyocRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfIQPBE9EeGOffqMW1YiZA" annotatedElement="_VfIQOxE9EeGOffqMW1YiZA">
           <body>A structured activity node that owns the variable.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2ZEOtwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VfIQPRE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedOperation xmi:id="_g2ZEO9wbEeCT5O2F6sGn5g" name="isAccessibleBy" visibility="public" bodyCondition="_g2ZEPdwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g2ZEPNwbEeCT5O2F6sGn5g" annotatedElement="_g2ZEO9wbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VfIQPhE9EeGOffqMW1YiZA" name="isAccessibleBy" visibility="public" bodyCondition="_VfIQQBE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VfIQPxE9EeGOffqMW1YiZA" annotatedElement="_VfIQPhE9EeGOffqMW1YiZA">
           <body>The isAccessibleBy() operation is not defined in standard UML. Implementations should define it to specify which actions can access a variable.</body>
         </ownedComment>
-        <ownedRule xmi:id="_g2ZEPdwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g2ZEO9wbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2ZEPtwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VfIQQBE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VfIQPhE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfIQQRE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = true</body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g2ZEP9wbEeCT5O2F6sGn5g" name="result" visibility="public" direction="return">
+        <ownedParameter xmi:id="_VfIQQhE9EeGOffqMW1YiZA" name="result" visibility="public" direction="return">
           <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
         </ownedParameter>
-        <ownedParameter xmi:id="_g2ZEQNwbEeCT5O2F6sGn5g" name="a" visibility="public" type="_6WKakLLQEeCsYvaJqFFivQ"/>
+        <ownedParameter xmi:id="_VfIQQxE9EeGOffqMW1YiZA" name="a" visibility="public" type="_6WKakLLQEeCsYvaJqFFivQ"/>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g2ZrMNwbEeCT5O2F6sGn5g" name="VariableAction" isAbstract="true">
-      <ownedComment xmi:id="_g2ZrMdwbEeCT5O2F6sGn5g" annotatedElement="_g2ZrMNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VfIQRBE9EeGOffqMW1YiZA" name="VariableAction" isAbstract="true">
+      <ownedComment xmi:id="_VfIQRRE9EeGOffqMW1YiZA" annotatedElement="_VfIQRBE9EeGOffqMW1YiZA">
         <body>VariableAction is an abstract class for actions that operate on a statically specified variable.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g2ZrMtwbEeCT5O2F6sGn5g" name="scope_of_variable" constrainedElement="_g2ZrMNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2ZrM9wbEeCT5O2F6sGn5g" annotatedElement="_g2ZrMtwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VfIQRhE9EeGOffqMW1YiZA" name="scope_of_variable" constrainedElement="_VfIQRBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfIQRxE9EeGOffqMW1YiZA" annotatedElement="_VfIQRhE9EeGOffqMW1YiZA">
           <body>The action must be in the scope of the variable.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2ZrNNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfIQSBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.variable.isAccessibleBy(self)</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g2ZrNdwbEeCT5O2F6sGn5g" general="_6WKakLLQEeCsYvaJqFFivQ"/>
-      <ownedAttribute xmi:id="_g2ZrNtwbEeCT5O2F6sGn5g" name="variable" visibility="public" type="_g2ZELdwbEeCT5O2F6sGn5g" association="_gy_x6NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2ZrN9wbEeCT5O2F6sGn5g" annotatedElement="_g2ZrNtwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VfIQSRE9EeGOffqMW1YiZA" general="_6WKakLLQEeCsYvaJqFFivQ"/>
+      <ownedAttribute xmi:id="_VfIQShE9EeGOffqMW1YiZA" name="variable" visibility="public" type="_VfIQMBE9EeGOffqMW1YiZA" association="_VUz2kBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfIQSxE9EeGOffqMW1YiZA" annotatedElement="_VfIQShE9EeGOffqMW1YiZA">
           <body>Variable to be read.</body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_xM1WoPnlEdunWsS3se92JQ" name="Vertex" isAbstract="true">
-      <ownedComment xmi:id="_g2ZrONwbEeCT5O2F6sGn5g" annotatedElement="_xM1WoPnlEdunWsS3se92JQ">
+      <ownedComment xmi:id="_VfIQTBE9EeGOffqMW1YiZA" annotatedElement="_xM1WoPnlEdunWsS3se92JQ">
         <body>A vertex is an abstraction of a node in a state machine graph. In general, it can be the source or destination of any number of transitions.</body>
       </ownedComment>
-      <generalization xmi:id="_g2ZrOdwbEeCT5O2F6sGn5g" general="_csVgUGvtEdqG6fBIPwe-mw"/>
-      <ownedAttribute xmi:id="_g2ZrOtwbEeCT5O2F6sGn5g" name="container" visibility="public" type="_g18_QNwbEeCT5O2F6sGn5g" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_gy7getwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2ZrO9wbEeCT5O2F6sGn5g" annotatedElement="_g2ZrOtwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VfI3QBE9EeGOffqMW1YiZA" general="_csVgUGvtEdqG6fBIPwe-mw"/>
+      <ownedAttribute xmi:id="_VfI3QRE9EeGOffqMW1YiZA" name="container" visibility="public" type="_VeA14BE9EeGOffqMW1YiZA" subsettedProperty="_1vzv0LbIEeCRxrN1JUGuxA" association="_VUoQYRE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfI3QhE9EeGOffqMW1YiZA" annotatedElement="_VfI3QRE9EeGOffqMW1YiZA">
           <body>The region that contains this vertex.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2ZrPNwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VfI3QxE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2ZrPdwbEeCT5O2F6sGn5g" name="incoming" visibility="public" type="_ykKV8PnlEdunWsS3se92JQ" isReadOnly="true" isDerived="true" association="_EhL8MPnmEdunWsS3se92JQ">
-        <ownedComment xmi:id="_g2ZrPtwbEeCT5O2F6sGn5g" annotatedElement="_g2ZrPdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VfI3RBE9EeGOffqMW1YiZA" name="incoming" visibility="public" type="_ykKV8PnlEdunWsS3se92JQ" isReadOnly="true" isDerived="true" association="_EhL8MPnmEdunWsS3se92JQ">
+        <ownedComment xmi:id="_VfI3RRE9EeGOffqMW1YiZA" annotatedElement="_VfI3RBE9EeGOffqMW1YiZA">
           <body>Specifies the transitions entering this vertex.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2ZrP9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2ZrQNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VfI3RhE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VfI3RxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedAttribute xmi:id="_g2ZrQdwbEeCT5O2F6sGn5g" name="outgoing" visibility="public" type="_ykKV8PnlEdunWsS3se92JQ" isReadOnly="true" isDerived="true" association="_JPYJoPnmEdunWsS3se92JQ">
-        <ownedComment xmi:id="_g2ZrQtwbEeCT5O2F6sGn5g" annotatedElement="_g2ZrQdwbEeCT5O2F6sGn5g">
+      <ownedAttribute xmi:id="_VfI3SBE9EeGOffqMW1YiZA" name="outgoing" visibility="public" type="_ykKV8PnlEdunWsS3se92JQ" isReadOnly="true" isDerived="true" association="_JPYJoPnmEdunWsS3se92JQ">
+        <ownedComment xmi:id="_VfI3SRE9EeGOffqMW1YiZA" annotatedElement="_VfI3SBE9EeGOffqMW1YiZA">
           <body>Specifies the transitions departing from this vertex.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2ZrQ9wbEeCT5O2F6sGn5g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2ZrRNwbEeCT5O2F6sGn5g" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VfI3ShE9EeGOffqMW1YiZA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VfI3SxE9EeGOffqMW1YiZA" value="*"/>
       </ownedAttribute>
-      <ownedOperation xmi:id="_g2ZrRdwbEeCT5O2F6sGn5g" name="containingStateMachine" visibility="public" bodyCondition="_g2aSQNwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g2ZrRtwbEeCT5O2F6sGn5g" annotatedElement="_g2ZrRdwbEeCT5O2F6sGn5g">
+      <ownedOperation xmi:id="_VfI3TBE9EeGOffqMW1YiZA" name="containingStateMachine" visibility="public" bodyCondition="_VfI3ThE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VfI3TRE9EeGOffqMW1YiZA" annotatedElement="_VfI3TBE9EeGOffqMW1YiZA">
           <body>The operation containingStateMachine() returns the state machine in which this Vertex is defined</body>
         </ownedComment>
-        <ownedRule xmi:id="_g2aSQNwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_g2ZrRdwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2aSQdwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VfI3ThE9EeGOffqMW1YiZA" name="spec" constrainedElement="_VfI3TBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfI3TxE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = if not container->isEmpty()
 then
@@ -15871,509 +15880,509 @@
 </body>
           </specification>
         </ownedRule>
-        <ownedParameter xmi:id="_g2aSQtwbEeCT5O2F6sGn5g" name="result" visibility="public" type="_g2EUANwbEeCT5O2F6sGn5g" direction="return"/>
+        <ownedParameter xmi:id="_VfI3UBE9EeGOffqMW1YiZA" name="result" visibility="public" type="_VeWNEBE9EeGOffqMW1YiZA" direction="return"/>
       </ownedOperation>
-      <ownedOperation xmi:id="_ZdMVcLL8EeCBifIhhuFqZA" name="incoming" visibility="public" bodyCondition="_g2aSRNwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g2aSQ9wbEeCT5O2F6sGn5g" annotatedElement="_ZdMVcLL8EeCBifIhhuFqZA">
+      <ownedOperation xmi:id="_ZdMVcLL8EeCBifIhhuFqZA" name="incoming" visibility="public" bodyCondition="_VfJeUBE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VfI3URE9EeGOffqMW1YiZA" annotatedElement="_ZdMVcLL8EeCBifIhhuFqZA">
           <body>Missing derivation for Vertex::/incoming : Transition</body>
         </ownedComment>
-        <ownedRule xmi:id="_g2aSRNwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_ZdMVcLL8EeCBifIhhuFqZA _g2ZrPdwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2aSRdwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VfJeUBE9EeGOffqMW1YiZA" name="spec" constrainedElement="_ZdMVcLL8EeCBifIhhuFqZA _VfI3RBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfJeURE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = Transition.allInstances()->select(t | t.target=self)</body>
           </specification>
         </ownedRule>
         <ownedParameter xmi:id="_apiMwLL8EeCBifIhhuFqZA" name="result" visibility="public" type="_ykKV8PnlEdunWsS3se92JQ" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2aSRtwbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2aSR9wbEeCT5O2F6sGn5g" value="*"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VfJeUhE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VfJeUxE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
       </ownedOperation>
-      <ownedOperation xmi:id="_982T8LL9EeCBifIhhuFqZA" name="outgoing" visibility="public" bodyCondition="_g2aSSdwbEeCT5O2F6sGn5g" isQuery="true">
-        <ownedComment xmi:id="_g2aSSNwbEeCT5O2F6sGn5g" annotatedElement="_982T8LL9EeCBifIhhuFqZA">
+      <ownedOperation xmi:id="_982T8LL9EeCBifIhhuFqZA" name="outgoing" visibility="public" bodyCondition="_VfJeVRE9EeGOffqMW1YiZA" isQuery="true">
+        <ownedComment xmi:id="_VfJeVBE9EeGOffqMW1YiZA" annotatedElement="_982T8LL9EeCBifIhhuFqZA">
           <body>Missing derivation for Vertex::/outgoing : Transition</body>
         </ownedComment>
-        <ownedRule xmi:id="_g2aSSdwbEeCT5O2F6sGn5g" name="spec" constrainedElement="_982T8LL9EeCBifIhhuFqZA _g2ZrQdwbEeCT5O2F6sGn5g">
-          <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2aSStwbEeCT5O2F6sGn5g">
+        <ownedRule xmi:id="_VfJeVRE9EeGOffqMW1YiZA" name="spec" constrainedElement="_982T8LL9EeCBifIhhuFqZA _VfI3SBE9EeGOffqMW1YiZA">
+          <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfJeVhE9EeGOffqMW1YiZA">
             <language>OCL</language>
             <body>result = Transition.allInstances()->select(t | t.source=self)</body>
           </specification>
         </ownedRule>
         <ownedParameter xmi:id="_982T8bL9EeCBifIhhuFqZA" name="result" visibility="public" type="_ykKV8PnlEdunWsS3se92JQ" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2aSS9wbEeCT5O2F6sGn5g"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g2a5UNwbEeCT5O2F6sGn5g" value="*"/>
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VfJeVxE9EeGOffqMW1YiZA"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VfJeWBE9EeGOffqMW1YiZA" value="*"/>
         </ownedParameter>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g2a5UdwbEeCT5O2F6sGn5g" name="WriteLinkAction" isAbstract="true">
-      <ownedComment xmi:id="_g2a5UtwbEeCT5O2F6sGn5g" annotatedElement="_g2a5UdwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VfKFYBE9EeGOffqMW1YiZA" name="WriteLinkAction" isAbstract="true">
+      <ownedComment xmi:id="_VfKFYRE9EeGOffqMW1YiZA" annotatedElement="_VfKFYBE9EeGOffqMW1YiZA">
         <body>WriteLinkAction is an abstract class for link actions that create and destroy links.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g2a5U9wbEeCT5O2F6sGn5g" name="allow_access" constrainedElement="_g2a5UdwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2a5VNwbEeCT5O2F6sGn5g" annotatedElement="_g2a5U9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VfKFYhE9EeGOffqMW1YiZA" name="allow_access" constrainedElement="_VfKFYBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfKFYxE9EeGOffqMW1YiZA" annotatedElement="_VfKFYhE9EeGOffqMW1YiZA">
           <body>The visibility of at least one end must allow access to the class using the action.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2a5VdwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfKFZBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>true</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g2a5VtwbEeCT5O2F6sGn5g" general="_g0iC8NwbEeCT5O2F6sGn5g"/>
+      <generalization xmi:id="_VfKFZRE9EeGOffqMW1YiZA" general="_VZ1ggBE9EeGOffqMW1YiZA"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g2bgYNwbEeCT5O2F6sGn5g" name="WriteStructuralFeatureAction" isAbstract="true">
-      <ownedComment xmi:id="_g2bgYdwbEeCT5O2F6sGn5g" annotatedElement="_g2bgYNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Class" xmi:id="_VfKscBE9EeGOffqMW1YiZA" name="WriteStructuralFeatureAction" isAbstract="true">
+      <ownedComment xmi:id="_VfKscRE9EeGOffqMW1YiZA" annotatedElement="_VfKscBE9EeGOffqMW1YiZA">
         <body>WriteStructuralFeatureAction is an abstract class for structural feature actions that change structural feature values.</body>
       </ownedComment>
-      <ownedRule xmi:id="_g2bgYtwbEeCT5O2F6sGn5g" name="multiplicity_of_result" constrainedElement="_g2bgYNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2bgY9wbEeCT5O2F6sGn5g" annotatedElement="_g2bgYtwbEeCT5O2F6sGn5g">
-          <body>The multiplicity of the result output pin must be 1..1.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2bgZNwbEeCT5O2F6sGn5g">
-          <language>OCL</language>
-          <body>result->notEmpty() implies self.result.multiplicity.is(1,1)</body>
-        </specification>
-      </ownedRule>
-      <ownedRule xmi:id="_g2bgZdwbEeCT5O2F6sGn5g" name="input_pin" constrainedElement="_g2bgYNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2bgZtwbEeCT5O2F6sGn5g" annotatedElement="_g2bgZdwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VfKschE9EeGOffqMW1YiZA" name="input_pin" constrainedElement="_VfKscBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfKscxE9EeGOffqMW1YiZA" annotatedElement="_VfKschE9EeGOffqMW1YiZA">
           <body>The type of the value input pin is the same as the type of the structural feature.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2bgZ9wbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfKsdBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.value->notEmpty() implies self.value.type =  self.structuralFeature.type</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g2bgaNwbEeCT5O2F6sGn5g" name="multiplicity" constrainedElement="_g2bgYNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2bgadwbEeCT5O2F6sGn5g" annotatedElement="_g2bgaNwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VfKsdRE9EeGOffqMW1YiZA" name="multiplicity" constrainedElement="_VfKscBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfKsdhE9EeGOffqMW1YiZA" annotatedElement="_VfKsdRE9EeGOffqMW1YiZA">
           <body>The multiplicity of the input pin is 1..1.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2bgatwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfKsdxE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.value.multiplicity.is(1,1)</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g2bga9wbEeCT5O2F6sGn5g" name="type_of_result" constrainedElement="_g2bgYNwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2bgbNwbEeCT5O2F6sGn5g" annotatedElement="_g2bga9wbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VfKseBE9EeGOffqMW1YiZA" name="type_of_result" constrainedElement="_VfKscBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfKseRE9EeGOffqMW1YiZA" annotatedElement="_VfKseBE9EeGOffqMW1YiZA">
           <body>The type of the result output pin is the same as the type of the inherited object input pin.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2bgbdwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfKsehE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>result->notEmpty() implies self.result.type = self.object.type</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g2bgbtwbEeCT5O2F6sGn5g" general="_g2H-YNwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g2bgb9wbEeCT5O2F6sGn5g" name="result" visibility="public" type="_g1fsRdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzCOK9wbEeCT5O2F6sGn5g" association="_gy2n9dwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2bgcNwbEeCT5O2F6sGn5g" annotatedElement="_g2bgb9wbEeCT5O2F6sGn5g">
-          <body>Gives the output pin on which the result is put.</body>
+      <ownedRule xmi:id="_VfKsexE9EeGOffqMW1YiZA" name="multiplicity_of_result" constrainedElement="_VfKscBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfKsfBE9EeGOffqMW1YiZA" annotatedElement="_VfKsexE9EeGOffqMW1YiZA">
+          <body>The multiplicity of the result output pin must be 1..1.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2bgcdwbEeCT5O2F6sGn5g"/>
-      </ownedAttribute>
-      <ownedAttribute xmi:id="_g2bgctwbEeCT5O2F6sGn5g" name="value" visibility="public" type="_g0aHKdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzBnMNwbEeCT5O2F6sGn5g" association="_gy_x4NwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2bgc9wbEeCT5O2F6sGn5g" annotatedElement="_g2bgctwbEeCT5O2F6sGn5g">
-          <body>Value to be added or removed from the structural feature.</body>
-        </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2bgdNwbEeCT5O2F6sGn5g"/>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_g2bgddwbEeCT5O2F6sGn5g" name="WriteVariableAction" isAbstract="true">
-      <ownedComment xmi:id="_g2bgdtwbEeCT5O2F6sGn5g" annotatedElement="_g2bgddwbEeCT5O2F6sGn5g">
-        <body>WriteVariableAction is an abstract class for variable actions that change variable values.</body>
-      </ownedComment>
-      <ownedRule xmi:id="_g2bgd9wbEeCT5O2F6sGn5g" name="same_type" constrainedElement="_g2bgddwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2bgeNwbEeCT5O2F6sGn5g" annotatedElement="_g2bgd9wbEeCT5O2F6sGn5g">
-          <body>The type input pin is the same as the type of the variable.</body>
-        </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2bgedwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfKsfRE9EeGOffqMW1YiZA">
           <language>OCL</language>
-          <body>self.value -> notEmpty() implies self.value.type = self.variable.type</body>
+          <body>result->notEmpty() implies self.result.multiplicity.is(1,1)</body>
         </specification>
       </ownedRule>
-      <ownedRule xmi:id="_g2bgetwbEeCT5O2F6sGn5g" name="multiplicity" constrainedElement="_g2bgddwbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2bge9wbEeCT5O2F6sGn5g" annotatedElement="_g2bgetwbEeCT5O2F6sGn5g">
+      <generalization xmi:id="_VfKsfhE9EeGOffqMW1YiZA" general="_VehMMBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VfKsfxE9EeGOffqMW1YiZA" name="result" visibility="public" type="_VcHYcBE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4vEBE9EeGOffqMW1YiZA" association="_VUgUkBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfKsgBE9EeGOffqMW1YiZA" annotatedElement="_VfKsfxE9EeGOffqMW1YiZA">
+          <body>Gives the output pin on which the result is put.</body>
+        </ownedComment>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VfKsgRE9EeGOffqMW1YiZA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_VfKsghE9EeGOffqMW1YiZA" name="value" visibility="public" type="_VZp6WRE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4IABE9EeGOffqMW1YiZA" association="_VUyBYBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfKsgxE9EeGOffqMW1YiZA" annotatedElement="_VfKsghE9EeGOffqMW1YiZA">
+          <body>Value to be added or removed from the structural feature.</body>
+        </ownedComment>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VfKshBE9EeGOffqMW1YiZA"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Class" xmi:id="_VfLTgBE9EeGOffqMW1YiZA" name="WriteVariableAction" isAbstract="true">
+      <ownedComment xmi:id="_VfLTgRE9EeGOffqMW1YiZA" annotatedElement="_VfLTgBE9EeGOffqMW1YiZA">
+        <body>WriteVariableAction is an abstract class for variable actions that change variable values.</body>
+      </ownedComment>
+      <ownedRule xmi:id="_VfLTghE9EeGOffqMW1YiZA" name="multiplicity" constrainedElement="_VfLTgBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfLTgxE9EeGOffqMW1YiZA" annotatedElement="_VfLTghE9EeGOffqMW1YiZA">
           <body>The multiplicity of the input pin is 1..1.</body>
         </ownedComment>
-        <specification xmi:type="uml:OpaqueExpression" xmi:id="_g2bgfNwbEeCT5O2F6sGn5g">
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfLThBE9EeGOffqMW1YiZA">
           <language>OCL</language>
           <body>self.value.multiplicity.is(1,1)</body>
         </specification>
       </ownedRule>
-      <generalization xmi:id="_g2bgfdwbEeCT5O2F6sGn5g" general="_g2ZrMNwbEeCT5O2F6sGn5g"/>
-      <ownedAttribute xmi:id="_g2bgftwbEeCT5O2F6sGn5g" name="value" visibility="public" type="_g0aHKdwbEeCT5O2F6sGn5g" aggregation="composite" subsettedProperty="_gzBnMNwbEeCT5O2F6sGn5g" association="_gy_x49wbEeCT5O2F6sGn5g">
-        <ownedComment xmi:id="_g2bgf9wbEeCT5O2F6sGn5g" annotatedElement="_g2bgftwbEeCT5O2F6sGn5g">
+      <ownedRule xmi:id="_VfLThRE9EeGOffqMW1YiZA" name="same_type" constrainedElement="_VfLTgBE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfLThhE9EeGOffqMW1YiZA" annotatedElement="_VfLThRE9EeGOffqMW1YiZA">
+          <body>The type input pin is the same as the type of the variable.</body>
+        </ownedComment>
+        <specification xmi:type="uml:OpaqueExpression" xmi:id="_VfLThxE9EeGOffqMW1YiZA">
+          <language>OCL</language>
+          <body>self.value -> notEmpty() implies self.value.type = self.variable.type</body>
+        </specification>
+      </ownedRule>
+      <generalization xmi:id="_VfLTiBE9EeGOffqMW1YiZA" general="_VfIQRBE9EeGOffqMW1YiZA"/>
+      <ownedAttribute xmi:id="_VfLTiRE9EeGOffqMW1YiZA" name="value" visibility="public" type="_VZp6WRE9EeGOffqMW1YiZA" aggregation="composite" subsettedProperty="_VU4IABE9EeGOffqMW1YiZA" association="_VUyBYxE9EeGOffqMW1YiZA">
+        <ownedComment xmi:id="_VfLTihE9EeGOffqMW1YiZA" annotatedElement="_VfLTiRE9EeGOffqMW1YiZA">
           <body>Value to be added or removed from the variable.</body>
         </ownedComment>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g2bggNwbEeCT5O2F6sGn5g"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VfLTixE9EeGOffqMW1YiZA"/>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Enumeration" xmi:id="_B3q9cGwNEdq7X4sGURiZYA" name="AggregationKind" visibility="private">
-      <ownedComment xmi:id="_g2cHcNwbEeCT5O2F6sGn5g" annotatedElement="_B3q9cGwNEdq7X4sGURiZYA">
+      <ownedComment xmi:id="_VfLTjBE9EeGOffqMW1YiZA" annotatedElement="_B3q9cGwNEdq7X4sGURiZYA">
         <body>AggregationKind is an enumeration type that specifies the literals for defining the kind of aggregation of a property.</body>
       </ownedComment>
-      <ownedLiteral xmi:id="_g2cHcdwbEeCT5O2F6sGn5g" name="none">
-        <ownedComment xmi:id="_g2cHctwbEeCT5O2F6sGn5g" annotatedElement="_g2cHcdwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfL6kBE9EeGOffqMW1YiZA" name="none">
+        <ownedComment xmi:id="_VfL6kRE9EeGOffqMW1YiZA" annotatedElement="_VfL6kBE9EeGOffqMW1YiZA">
           <body>Indicates that the property has no aggregation.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2cHc9wbEeCT5O2F6sGn5g" name="shared">
-        <ownedComment xmi:id="_g2cHdNwbEeCT5O2F6sGn5g" annotatedElement="_g2cHc9wbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfL6khE9EeGOffqMW1YiZA" name="shared">
+        <ownedComment xmi:id="_VfL6kxE9EeGOffqMW1YiZA" annotatedElement="_VfL6khE9EeGOffqMW1YiZA">
           <body>Indicates that the property has a shared aggregation.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2cHddwbEeCT5O2F6sGn5g" name="composite">
-        <ownedComment xmi:id="_g2cHdtwbEeCT5O2F6sGn5g" annotatedElement="_g2cHddwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfL6lBE9EeGOffqMW1YiZA" name="composite">
+        <ownedComment xmi:id="_VfL6lRE9EeGOffqMW1YiZA" annotatedElement="_VfL6lBE9EeGOffqMW1YiZA">
           <body>Indicates that the property is aggregated compositely, i.e., the composite object has responsibility for the existence and storage of the composed objects (parts).</body>
         </ownedComment>
       </ownedLiteral>
     </packagedElement>
-    <packagedElement xmi:type="uml:Enumeration" xmi:id="_g2cHd9wbEeCT5O2F6sGn5g" name="CallConcurrencyKind">
-      <ownedComment xmi:id="_g2cHeNwbEeCT5O2F6sGn5g" annotatedElement="_g2cHd9wbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Enumeration" xmi:id="_VfMhoBE9EeGOffqMW1YiZA" name="CallConcurrencyKind">
+      <ownedComment xmi:id="_VfMhoRE9EeGOffqMW1YiZA" annotatedElement="_VfMhoBE9EeGOffqMW1YiZA">
         <body>CallConcurrencyKind is an enumeration type.</body>
       </ownedComment>
-      <ownedLiteral xmi:id="_g2cHedwbEeCT5O2F6sGn5g" name="sequential">
-        <ownedComment xmi:id="_g2cHetwbEeCT5O2F6sGn5g" annotatedElement="_g2cHedwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfMhohE9EeGOffqMW1YiZA" name="sequential">
+        <ownedComment xmi:id="_VfMhoxE9EeGOffqMW1YiZA" annotatedElement="_VfMhohE9EeGOffqMW1YiZA">
           <body>No concurrency management mechanism is associated with the operation and, therefore, concurrency conflicts may occur. Instances that invoke a behavioral feature need to coordinate so that only one invocation to a target on any behavioral feature occurs at once.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2cHe9wbEeCT5O2F6sGn5g" name="guarded">
-        <ownedComment xmi:id="_g2cHfNwbEeCT5O2F6sGn5g" annotatedElement="_g2cHe9wbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfMhpBE9EeGOffqMW1YiZA" name="guarded">
+        <ownedComment xmi:id="_VfMhpRE9EeGOffqMW1YiZA" annotatedElement="_VfMhpBE9EeGOffqMW1YiZA">
           <body>Multiple invocations of a behavioral feature may occur simultaneously to one instance, but only one is allowed to commence. The others are blocked until the performance of the currently executing behavioral feature is complete. It is the responsibility of the system designer to ensure that deadlocks do not occur due to simultaneous blocks.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2cHfdwbEeCT5O2F6sGn5g" name="concurrent">
-        <ownedComment xmi:id="_g2cHftwbEeCT5O2F6sGn5g" annotatedElement="_g2cHfdwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfMhphE9EeGOffqMW1YiZA" name="concurrent">
+        <ownedComment xmi:id="_VfMhpxE9EeGOffqMW1YiZA" annotatedElement="_VfMhphE9EeGOffqMW1YiZA">
           <body>Multiple invocations of a behavioral feature may occur simultaneously to one instance and all of them may proceed concurrently.</body>
         </ownedComment>
       </ownedLiteral>
     </packagedElement>
     <packagedElement xmi:type="uml:Enumeration" xmi:id="_echygLLWEeCsYvaJqFFivQ" name="ConnectorKind" visibility="private">
-      <ownedComment xmi:id="_g2cHf9wbEeCT5O2F6sGn5g" annotatedElement="_echygLLWEeCsYvaJqFFivQ">
+      <ownedComment xmi:id="_VfMhqBE9EeGOffqMW1YiZA" annotatedElement="_echygLLWEeCsYvaJqFFivQ">
         <body>ConnectorKind is an enumeration type.</body>
       </ownedComment>
-      <ownedLiteral xmi:id="_g2cHgNwbEeCT5O2F6sGn5g" name="assembly">
-        <ownedComment xmi:id="_g2cHgdwbEeCT5O2F6sGn5g" annotatedElement="_g2cHgNwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfMhqRE9EeGOffqMW1YiZA" name="assembly">
+        <ownedComment xmi:id="_VfNIsBE9EeGOffqMW1YiZA" annotatedElement="_VfMhqRE9EeGOffqMW1YiZA">
           <body>Indicates that the connector is an assembly connector.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2cugNwbEeCT5O2F6sGn5g" name="delegation">
-        <ownedComment xmi:id="_g2cugdwbEeCT5O2F6sGn5g" annotatedElement="_g2cugNwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfNIsRE9EeGOffqMW1YiZA" name="delegation">
+        <ownedComment xmi:id="_VfNIshE9EeGOffqMW1YiZA" annotatedElement="_VfNIsRE9EeGOffqMW1YiZA">
           <body>Indicates that the connector is a delegation connector.</body>
         </ownedComment>
       </ownedLiteral>
     </packagedElement>
-    <packagedElement xmi:type="uml:Enumeration" xmi:id="_g2cugtwbEeCT5O2F6sGn5g" name="ExpansionKind">
-      <ownedComment xmi:id="_g2cug9wbEeCT5O2F6sGn5g" annotatedElement="_g2cugtwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Enumeration" xmi:id="_VfNIsxE9EeGOffqMW1YiZA" name="ExpansionKind">
+      <ownedComment xmi:id="_VfNItBE9EeGOffqMW1YiZA" annotatedElement="_VfNIsxE9EeGOffqMW1YiZA">
         <body>ExpansionKind is an enumeration type used to specify how multiple executions of an expansion region interact.</body>
       </ownedComment>
-      <ownedLiteral xmi:id="_g2cuhNwbEeCT5O2F6sGn5g" name="parallel">
-        <ownedComment xmi:id="_g2cuhdwbEeCT5O2F6sGn5g" annotatedElement="_g2cuhNwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfNItRE9EeGOffqMW1YiZA" name="parallel">
+        <ownedComment xmi:id="_VfNIthE9EeGOffqMW1YiZA" annotatedElement="_VfNItRE9EeGOffqMW1YiZA">
           <body>The executions are independent. They may be executed concurrently.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2cuhtwbEeCT5O2F6sGn5g" name="iterative">
-        <ownedComment xmi:id="_g2cuh9wbEeCT5O2F6sGn5g" annotatedElement="_g2cuhtwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfNItxE9EeGOffqMW1YiZA" name="iterative">
+        <ownedComment xmi:id="_VfNIuBE9EeGOffqMW1YiZA" annotatedElement="_VfNItxE9EeGOffqMW1YiZA">
           <body>The executions are dependent and must be executed one at a time, in order of the collection elements.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2cuiNwbEeCT5O2F6sGn5g" name="stream">
-        <ownedComment xmi:id="_g2cuidwbEeCT5O2F6sGn5g" annotatedElement="_g2cuiNwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfNIuRE9EeGOffqMW1YiZA" name="stream">
+        <ownedComment xmi:id="_VfNIuhE9EeGOffqMW1YiZA" annotatedElement="_VfNIuRE9EeGOffqMW1YiZA">
           <body>A stream of collection elements flows into a single execution, in order of the collection elements.</body>
         </ownedComment>
       </ownedLiteral>
     </packagedElement>
-    <packagedElement xmi:type="uml:Enumeration" xmi:id="_g2dVkNwbEeCT5O2F6sGn5g" name="InteractionOperatorKind">
-      <ownedComment xmi:id="_g2dVkdwbEeCT5O2F6sGn5g" annotatedElement="_g2dVkNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Enumeration" xmi:id="_VfOW0BE9EeGOffqMW1YiZA" name="InteractionOperatorKind">
+      <ownedComment xmi:id="_VfOW0RE9EeGOffqMW1YiZA" annotatedElement="_VfOW0BE9EeGOffqMW1YiZA">
         <body>InteractionOperatorKind is an enumeration designating the different kinds of operators of combined fragments. The interaction operand defines the type of operator of a combined fragment.</body>
       </ownedComment>
-      <ownedLiteral xmi:id="_g2dVktwbEeCT5O2F6sGn5g" name="seq">
-        <ownedComment xmi:id="_g2dVk9wbEeCT5O2F6sGn5g" annotatedElement="_g2dVktwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfOW0hE9EeGOffqMW1YiZA" name="seq">
+        <ownedComment xmi:id="_VfOW0xE9EeGOffqMW1YiZA" annotatedElement="_VfOW0hE9EeGOffqMW1YiZA">
           <body>The interactionOperator seq designates that the CombinedFragment represents a weak sequencing between the behaviors of the operands.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2dVlNwbEeCT5O2F6sGn5g" name="alt">
-        <ownedComment xmi:id="_g2dVldwbEeCT5O2F6sGn5g" annotatedElement="_g2dVlNwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfOW1BE9EeGOffqMW1YiZA" name="alt">
+        <ownedComment xmi:id="_VfOW1RE9EeGOffqMW1YiZA" annotatedElement="_VfOW1BE9EeGOffqMW1YiZA">
           <body>The interactionOperator alt designates that the CombinedFragment represents a choice of behavior. At most one of the operands will be chosen. The chosen operand must have an explicit or implicit guard expression that evaluates to true at this point in the interaction. An implicit true guard is implied if the operand has no guard.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2dVltwbEeCT5O2F6sGn5g" name="opt">
-        <ownedComment xmi:id="_g2dVl9wbEeCT5O2F6sGn5g" annotatedElement="_g2dVltwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfOW1hE9EeGOffqMW1YiZA" name="opt">
+        <ownedComment xmi:id="_VfOW1xE9EeGOffqMW1YiZA" annotatedElement="_VfOW1hE9EeGOffqMW1YiZA">
           <body>The interactionOperator opt designates that the CombinedFragment represents a choice of behavior where either the (sole) operand happens or nothing happens. An option is semantically equivalent to an alternative CombinedFragment where there is one operand with non-empty content and the second operand is empty.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2dVmNwbEeCT5O2F6sGn5g" name="break">
-        <ownedComment xmi:id="_g2dVmdwbEeCT5O2F6sGn5g" annotatedElement="_g2dVmNwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfOW2BE9EeGOffqMW1YiZA" name="break">
+        <ownedComment xmi:id="_VfOW2RE9EeGOffqMW1YiZA" annotatedElement="_VfOW2BE9EeGOffqMW1YiZA">
           <body>The interactionOperator break designates that the CombinedFragment represents a breaking scenario in the sense that the operand is a scenario that is performed instead of the remainder of the enclosing InteractionFragment. A break operator with a guard is chosen when the guard is true and the rest of the enclosing Interaction Fragment is ignored. When the guard of the break operand is false, the break operand is ignored and the rest of the enclosing InteractionFragment is chosen. The choice between a break operand without a guard and the rest of the enclosing InteractionFragment is done non-deterministically.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2dVmtwbEeCT5O2F6sGn5g" name="par">
-        <ownedComment xmi:id="_g2dVm9wbEeCT5O2F6sGn5g" annotatedElement="_g2dVmtwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfOW2hE9EeGOffqMW1YiZA" name="par">
+        <ownedComment xmi:id="_VfOW2xE9EeGOffqMW1YiZA" annotatedElement="_VfOW2hE9EeGOffqMW1YiZA">
           <body>The interactionOperator par designates that the CombinedFragment represents a parallel merge between the behaviors of the operands. The OccurrenceSpecifications of the different operands can be interleaved in any way as long as the ordering imposed by each operand as such is preserved.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2dVnNwbEeCT5O2F6sGn5g" name="strict">
-        <ownedComment xmi:id="_g2dVndwbEeCT5O2F6sGn5g" annotatedElement="_g2dVnNwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfOW3BE9EeGOffqMW1YiZA" name="strict">
+        <ownedComment xmi:id="_VfOW3RE9EeGOffqMW1YiZA" annotatedElement="_VfOW3BE9EeGOffqMW1YiZA">
           <body>The interactionOperator strict designates that the CombinedFragment represents a strict sequencing between the behaviors of the operands. The semantics of strict sequencing defines a strict ordering of the operands on the first level within the CombinedFragment with interactionOperator strict. Therefore OccurrenceSpecifications within contained CombinedFragment will not directly be compared with other OccurrenceSpecifications of the enclosing CombinedFragment.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2dVntwbEeCT5O2F6sGn5g" name="loop">
-        <ownedComment xmi:id="_g2dVn9wbEeCT5O2F6sGn5g" annotatedElement="_g2dVntwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfOW3hE9EeGOffqMW1YiZA" name="loop">
+        <ownedComment xmi:id="_VfOW3xE9EeGOffqMW1YiZA" annotatedElement="_VfOW3hE9EeGOffqMW1YiZA">
           <body>The interactionOperator loop designates that the CombinedFragment represents a loop. The loop operand will be repeated a number of times.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2dVoNwbEeCT5O2F6sGn5g" name="critical">
-        <ownedComment xmi:id="_g2dVodwbEeCT5O2F6sGn5g" annotatedElement="_g2dVoNwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfOW4BE9EeGOffqMW1YiZA" name="critical">
+        <ownedComment xmi:id="_VfOW4RE9EeGOffqMW1YiZA" annotatedElement="_VfOW4BE9EeGOffqMW1YiZA">
           <body>The interactionOperator critical designates that the CombinedFragment represents a critical region. A critical region means that the traces of the region cannot be interleaved by other OccurrenceSpecifications (on those Lifelines covered by the region). This means that the region is treated atomically by the enclosing fragment when determining the set of valid traces. Even though enclosing CombinedFragments may imply that some OccurrenceSpecifications may interleave into the region, such as e.g. with par-operator, this is prevented by defining a region.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2dVotwbEeCT5O2F6sGn5g" name="neg">
-        <ownedComment xmi:id="_g2dVo9wbEeCT5O2F6sGn5g" annotatedElement="_g2dVotwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfOW4hE9EeGOffqMW1YiZA" name="neg">
+        <ownedComment xmi:id="_VfOW4xE9EeGOffqMW1YiZA" annotatedElement="_VfOW4hE9EeGOffqMW1YiZA">
           <body>The interactionOperator neg designates that the CombinedFragment represents traces that are defined to be invalid.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2dVpNwbEeCT5O2F6sGn5g" name="assert">
-        <ownedComment xmi:id="_g2dVpdwbEeCT5O2F6sGn5g" annotatedElement="_g2dVpNwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfOW5BE9EeGOffqMW1YiZA" name="assert">
+        <ownedComment xmi:id="_VfOW5RE9EeGOffqMW1YiZA" annotatedElement="_VfOW5BE9EeGOffqMW1YiZA">
           <body>The interactionOperator assert designates that the CombinedFragment represents an assertion. The sequences of the operand of the assertion are the only valid continuations. All other continuations result in an invalid trace.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2dVptwbEeCT5O2F6sGn5g" name="ignore">
-        <ownedComment xmi:id="_g2dVp9wbEeCT5O2F6sGn5g" annotatedElement="_g2dVptwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfOW5hE9EeGOffqMW1YiZA" name="ignore">
+        <ownedComment xmi:id="_VfOW5xE9EeGOffqMW1YiZA" annotatedElement="_VfOW5hE9EeGOffqMW1YiZA">
           <body>The interacionOperator ignore designates that there are some message types that are not shown within this combined fragment. These message types can be considered insignificant and are implicitly ignored if they appear in a corresponding execution. Alternatively, one can understand ignore to mean that the message types that are ignored can appear anywhere in the traces.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2dVqNwbEeCT5O2F6sGn5g" name="consider">
-        <ownedComment xmi:id="_g2dVqdwbEeCT5O2F6sGn5g" annotatedElement="_g2dVqNwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfOW6BE9EeGOffqMW1YiZA" name="consider">
+        <ownedComment xmi:id="_VfOW6RE9EeGOffqMW1YiZA" annotatedElement="_VfOW6BE9EeGOffqMW1YiZA">
           <body>The interactionOperator consider designates which messages should be considered within this combined fragment. This is equivalent to defining every other message to be ignored.</body>
         </ownedComment>
       </ownedLiteral>
     </packagedElement>
     <packagedElement xmi:type="uml:Enumeration" xmi:id="_Y_jskGvtEdqG6fBIPwe-mw" name="MessageKind" visibility="private">
-      <ownedComment xmi:id="_g2dVqtwbEeCT5O2F6sGn5g" annotatedElement="_Y_jskGvtEdqG6fBIPwe-mw">
+      <ownedComment xmi:id="_VfOW6hE9EeGOffqMW1YiZA" annotatedElement="_Y_jskGvtEdqG6fBIPwe-mw">
         <body>This is an enumerated type that identifies the type of message.</body>
       </ownedComment>
-      <ownedLiteral xmi:id="_g2dVq9wbEeCT5O2F6sGn5g" name="complete">
-        <ownedComment xmi:id="_g2dVrNwbEeCT5O2F6sGn5g" annotatedElement="_g2dVq9wbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfOW6xE9EeGOffqMW1YiZA" name="complete">
+        <ownedComment xmi:id="_VfOW7BE9EeGOffqMW1YiZA" annotatedElement="_VfOW6xE9EeGOffqMW1YiZA">
           <body>sendEvent and receiveEvent are present</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2dVrdwbEeCT5O2F6sGn5g" name="lost">
-        <ownedComment xmi:id="_g2dVrtwbEeCT5O2F6sGn5g" annotatedElement="_g2dVrdwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfOW7RE9EeGOffqMW1YiZA" name="lost">
+        <ownedComment xmi:id="_VfOW7hE9EeGOffqMW1YiZA" annotatedElement="_VfOW7RE9EeGOffqMW1YiZA">
           <body>sendEvent present and receiveEvent absent</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2dVr9wbEeCT5O2F6sGn5g" name="found">
-        <ownedComment xmi:id="_g2dVsNwbEeCT5O2F6sGn5g" annotatedElement="_g2dVr9wbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfOW7xE9EeGOffqMW1YiZA" name="found">
+        <ownedComment xmi:id="_VfOW8BE9EeGOffqMW1YiZA" annotatedElement="_VfOW7xE9EeGOffqMW1YiZA">
           <body>sendEvent absent and receiveEvent present</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2dVsdwbEeCT5O2F6sGn5g" name="unknown">
-        <ownedComment xmi:id="_g2dVstwbEeCT5O2F6sGn5g" annotatedElement="_g2dVsdwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfOW8RE9EeGOffqMW1YiZA" name="unknown">
+        <ownedComment xmi:id="_VfOW8hE9EeGOffqMW1YiZA" annotatedElement="_VfOW8RE9EeGOffqMW1YiZA">
           <body>sendEvent and receiveEvent absent (should not appear)</body>
         </ownedComment>
       </ownedLiteral>
     </packagedElement>
-    <packagedElement xmi:type="uml:Enumeration" xmi:id="_g2d8oNwbEeCT5O2F6sGn5g" name="MessageSort">
-      <ownedComment xmi:id="_g2d8odwbEeCT5O2F6sGn5g" annotatedElement="_g2d8oNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Enumeration" xmi:id="_VfO94BE9EeGOffqMW1YiZA" name="MessageSort">
+      <ownedComment xmi:id="_VfO94RE9EeGOffqMW1YiZA" annotatedElement="_VfO94BE9EeGOffqMW1YiZA">
         <body>This is an enumerated type that identifies the type of communication action that was used to generate the message.</body>
       </ownedComment>
-      <ownedLiteral xmi:id="_g2d8otwbEeCT5O2F6sGn5g" name="synchCall">
-        <ownedComment xmi:id="_g2d8o9wbEeCT5O2F6sGn5g" annotatedElement="_g2d8otwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfO94hE9EeGOffqMW1YiZA" name="synchCall">
+        <ownedComment xmi:id="_VfO94xE9EeGOffqMW1YiZA" annotatedElement="_VfO94hE9EeGOffqMW1YiZA">
           <body>The message was generated by a synchronous call to an operation.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2d8pNwbEeCT5O2F6sGn5g" name="asynchCall">
-        <ownedComment xmi:id="_g2d8pdwbEeCT5O2F6sGn5g" annotatedElement="_g2d8pNwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfO95BE9EeGOffqMW1YiZA" name="asynchCall">
+        <ownedComment xmi:id="_VfO95RE9EeGOffqMW1YiZA" annotatedElement="_VfO95BE9EeGOffqMW1YiZA">
           <body>The message was generated by an asynchronous call to an operation; i.e., a CallAction with isSynchronous = false.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2d8ptwbEeCT5O2F6sGn5g" name="asynchSignal">
-        <ownedComment xmi:id="_g2d8p9wbEeCT5O2F6sGn5g" annotatedElement="_g2d8ptwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfO95hE9EeGOffqMW1YiZA" name="asynchSignal">
+        <ownedComment xmi:id="_VfO95xE9EeGOffqMW1YiZA" annotatedElement="_VfO95hE9EeGOffqMW1YiZA">
           <body>The message was generated by an asynchronous send action.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2d8qNwbEeCT5O2F6sGn5g" name="createMessage">
-        <ownedComment xmi:id="_g2d8qdwbEeCT5O2F6sGn5g" annotatedElement="_g2d8qNwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfO96BE9EeGOffqMW1YiZA" name="createMessage">
+        <ownedComment xmi:id="_VfO96RE9EeGOffqMW1YiZA" annotatedElement="_VfO96BE9EeGOffqMW1YiZA">
           <body>The message designating the creation of another lifeline object.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2d8qtwbEeCT5O2F6sGn5g" name="deleteMessage">
-        <ownedComment xmi:id="_g2d8q9wbEeCT5O2F6sGn5g" annotatedElement="_g2d8qtwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfO96hE9EeGOffqMW1YiZA" name="deleteMessage">
+        <ownedComment xmi:id="_VfO96xE9EeGOffqMW1YiZA" annotatedElement="_VfO96hE9EeGOffqMW1YiZA">
           <body>The message designating the termination of another lifeline.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2d8rNwbEeCT5O2F6sGn5g" name="reply">
-        <ownedComment xmi:id="_g2d8rdwbEeCT5O2F6sGn5g" annotatedElement="_g2d8rNwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfO97BE9EeGOffqMW1YiZA" name="reply">
+        <ownedComment xmi:id="_VfO97RE9EeGOffqMW1YiZA" annotatedElement="_VfO97BE9EeGOffqMW1YiZA">
           <body>The message is a reply message to an operation call.</body>
         </ownedComment>
       </ownedLiteral>
     </packagedElement>
-    <packagedElement xmi:type="uml:Enumeration" xmi:id="_g2d8rtwbEeCT5O2F6sGn5g" name="ObjectNodeOrderingKind">
-      <ownedComment xmi:id="_g2d8r9wbEeCT5O2F6sGn5g" annotatedElement="_g2d8rtwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Enumeration" xmi:id="_VfPk8BE9EeGOffqMW1YiZA" name="ObjectNodeOrderingKind">
+      <ownedComment xmi:id="_VfPk8RE9EeGOffqMW1YiZA" annotatedElement="_VfPk8BE9EeGOffqMW1YiZA">
         <body>ObjectNodeOrderingKind is an enumeration indicating queuing order within a node.</body>
       </ownedComment>
-      <ownedLiteral xmi:id="_g2d8sNwbEeCT5O2F6sGn5g" name="unordered">
-        <ownedComment xmi:id="_g2d8sdwbEeCT5O2F6sGn5g" annotatedElement="_g2d8sNwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfPk8hE9EeGOffqMW1YiZA" name="unordered">
+        <ownedComment xmi:id="_VfPk8xE9EeGOffqMW1YiZA" annotatedElement="_VfPk8hE9EeGOffqMW1YiZA">
           <body>Indicates that object node tokens are unordered.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2d8stwbEeCT5O2F6sGn5g" name="ordered">
-        <ownedComment xmi:id="_g2d8s9wbEeCT5O2F6sGn5g" annotatedElement="_g2d8stwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfPk9BE9EeGOffqMW1YiZA" name="ordered">
+        <ownedComment xmi:id="_VfPk9RE9EeGOffqMW1YiZA" annotatedElement="_VfPk9BE9EeGOffqMW1YiZA">
           <body>Indicates that object node tokens are ordered.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2d8tNwbEeCT5O2F6sGn5g" name="LIFO">
-        <ownedComment xmi:id="_g2d8tdwbEeCT5O2F6sGn5g" annotatedElement="_g2d8tNwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfPk9hE9EeGOffqMW1YiZA" name="LIFO">
+        <ownedComment xmi:id="_VfPk9xE9EeGOffqMW1YiZA" annotatedElement="_VfPk9hE9EeGOffqMW1YiZA">
           <body>Indicates that object node tokens are queued in a last in, first out manner.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2d8ttwbEeCT5O2F6sGn5g" name="FIFO">
-        <ownedComment xmi:id="_g2d8t9wbEeCT5O2F6sGn5g" annotatedElement="_g2d8ttwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfPk-BE9EeGOffqMW1YiZA" name="FIFO">
+        <ownedComment xmi:id="_VfPk-RE9EeGOffqMW1YiZA" annotatedElement="_VfPk-BE9EeGOffqMW1YiZA">
           <body>Indicates that object node tokens are queued in a first in, first out manner.</body>
         </ownedComment>
       </ownedLiteral>
     </packagedElement>
-    <packagedElement xmi:type="uml:Enumeration" xmi:id="_g2ejsNwbEeCT5O2F6sGn5g" name="ParameterDirectionKind">
-      <ownedComment xmi:id="_g2ejsdwbEeCT5O2F6sGn5g" annotatedElement="_g2ejsNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Enumeration" xmi:id="_VfQMABE9EeGOffqMW1YiZA" name="ParameterDirectionKind">
+      <ownedComment xmi:id="_VfQMARE9EeGOffqMW1YiZA" annotatedElement="_VfQMABE9EeGOffqMW1YiZA">
         <body>Parameter direction kind is an enumeration type that defines literals used to specify direction of parameters.</body>
       </ownedComment>
-      <ownedLiteral xmi:id="_g2ejstwbEeCT5O2F6sGn5g" name="in">
-        <ownedComment xmi:id="_g2ejs9wbEeCT5O2F6sGn5g" annotatedElement="_g2ejstwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfQMAhE9EeGOffqMW1YiZA" name="in">
+        <ownedComment xmi:id="_VfQMAxE9EeGOffqMW1YiZA" annotatedElement="_VfQMAhE9EeGOffqMW1YiZA">
           <body>Indicates that parameter values are passed into the behavioral element by the caller.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2ejtNwbEeCT5O2F6sGn5g" name="inout">
-        <ownedComment xmi:id="_g2ejtdwbEeCT5O2F6sGn5g" annotatedElement="_g2ejtNwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfQMBBE9EeGOffqMW1YiZA" name="inout">
+        <ownedComment xmi:id="_VfQMBRE9EeGOffqMW1YiZA" annotatedElement="_VfQMBBE9EeGOffqMW1YiZA">
           <body>Indicates that parameter values are passed into a behavioral element by the caller and then back out to the caller from the behavioral element.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2ejttwbEeCT5O2F6sGn5g" name="out">
-        <ownedComment xmi:id="_g2ejt9wbEeCT5O2F6sGn5g" annotatedElement="_g2ejttwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfQMBhE9EeGOffqMW1YiZA" name="out">
+        <ownedComment xmi:id="_VfQMBxE9EeGOffqMW1YiZA" annotatedElement="_VfQMBhE9EeGOffqMW1YiZA">
           <body>Indicates that parameter values are passed from a behavioral element out to the caller.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2ejuNwbEeCT5O2F6sGn5g" name="return">
-        <ownedComment xmi:id="_g2ejudwbEeCT5O2F6sGn5g" annotatedElement="_g2ejuNwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfQMCBE9EeGOffqMW1YiZA" name="return">
+        <ownedComment xmi:id="_VfQMCRE9EeGOffqMW1YiZA" annotatedElement="_VfQMCBE9EeGOffqMW1YiZA">
           <body>Indicates that parameter values are passed as return values from a behavioral element back to the caller.</body>
         </ownedComment>
       </ownedLiteral>
     </packagedElement>
     <packagedElement xmi:type="uml:Enumeration" xmi:id="_oNLHgLG1EeCDe8CO90iVKQ" name="ParameterEffectKind" visibility="private">
-      <ownedComment xmi:id="_g2ejutwbEeCT5O2F6sGn5g" annotatedElement="_oNLHgLG1EeCDe8CO90iVKQ">
+      <ownedComment xmi:id="_VfQMChE9EeGOffqMW1YiZA" annotatedElement="_oNLHgLG1EeCDe8CO90iVKQ">
         <body>The datatype ParameterEffectKind is an enumeration that indicates the effect of a behavior on values passed in or out of its parameters.</body>
       </ownedComment>
-      <ownedLiteral xmi:id="_g2eju9wbEeCT5O2F6sGn5g" name="create">
-        <ownedComment xmi:id="_g2ejvNwbEeCT5O2F6sGn5g" annotatedElement="_g2eju9wbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfQMCxE9EeGOffqMW1YiZA" name="create">
+        <ownedComment xmi:id="_VfQMDBE9EeGOffqMW1YiZA" annotatedElement="_VfQMCxE9EeGOffqMW1YiZA">
           <body>Indicates that the behavior creates values.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2ejvdwbEeCT5O2F6sGn5g" name="read">
-        <ownedComment xmi:id="_g2ejvtwbEeCT5O2F6sGn5g" annotatedElement="_g2ejvdwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfQMDRE9EeGOffqMW1YiZA" name="read">
+        <ownedComment xmi:id="_VfQMDhE9EeGOffqMW1YiZA" annotatedElement="_VfQMDRE9EeGOffqMW1YiZA">
           <body>Indicates that the behavior reads values.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2ejv9wbEeCT5O2F6sGn5g" name="update">
-        <ownedComment xmi:id="_g2ejwNwbEeCT5O2F6sGn5g" annotatedElement="_g2ejv9wbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfQMDxE9EeGOffqMW1YiZA" name="update">
+        <ownedComment xmi:id="_VfQMEBE9EeGOffqMW1YiZA" annotatedElement="_VfQMDxE9EeGOffqMW1YiZA">
           <body>Indicates that the behavior updates values.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2ejwdwbEeCT5O2F6sGn5g" name="delete">
-        <ownedComment xmi:id="_g2ejwtwbEeCT5O2F6sGn5g" annotatedElement="_g2ejwdwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfQMERE9EeGOffqMW1YiZA" name="delete">
+        <ownedComment xmi:id="_VfQMEhE9EeGOffqMW1YiZA" annotatedElement="_VfQMERE9EeGOffqMW1YiZA">
           <body>Indicates that the behavior deletes values.</body>
         </ownedComment>
       </ownedLiteral>
     </packagedElement>
-    <packagedElement xmi:type="uml:Enumeration" xmi:id="_g2fKwNwbEeCT5O2F6sGn5g" name="PseudostateKind">
-      <ownedComment xmi:id="_g2fKwdwbEeCT5O2F6sGn5g" annotatedElement="_g2fKwNwbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Enumeration" xmi:id="_VfRaIBE9EeGOffqMW1YiZA" name="PseudostateKind">
+      <ownedComment xmi:id="_VfRaIRE9EeGOffqMW1YiZA" annotatedElement="_VfRaIBE9EeGOffqMW1YiZA">
         <body>PseudostateKind is an enumeration type.</body>
       </ownedComment>
-      <ownedLiteral xmi:id="_g2fKwtwbEeCT5O2F6sGn5g" name="initial">
-        <ownedComment xmi:id="_g2fKw9wbEeCT5O2F6sGn5g" annotatedElement="_g2fKwtwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfRaIhE9EeGOffqMW1YiZA" name="initial">
+        <ownedComment xmi:id="_VfRaIxE9EeGOffqMW1YiZA" annotatedElement="_VfRaIhE9EeGOffqMW1YiZA">
           <body>An initial pseudostate represents a default vertex that is the source for a single transition to the default state of a composite state. There can be at most one initial vertex in a region. The outgoing transition from the initial vertex may have a behavior, but not a trigger or guard.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2fKxNwbEeCT5O2F6sGn5g" name="deepHistory">
-        <ownedComment xmi:id="_g2fKxdwbEeCT5O2F6sGn5g" annotatedElement="_g2fKxNwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfRaJBE9EeGOffqMW1YiZA" name="deepHistory">
+        <ownedComment xmi:id="_VfRaJRE9EeGOffqMW1YiZA" annotatedElement="_VfRaJBE9EeGOffqMW1YiZA">
           <body>DeepHistory represents the most recent active configuration of the composite state that directly contains this pseudostate; e.g. the state configuration that was active when the composite state was last exited. A composite state can have at most one deep history vertex. At most one transition may originate from the history connector to the default deep history state. This transition is taken in case the composite state had never been active before. Entry actions of states entered on the path to the state represented by a deep history are performed.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2fKxtwbEeCT5O2F6sGn5g" name="shallowHistory">
-        <ownedComment xmi:id="_g2fKx9wbEeCT5O2F6sGn5g" annotatedElement="_g2fKxtwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfRaJhE9EeGOffqMW1YiZA" name="shallowHistory">
+        <ownedComment xmi:id="_VfRaJxE9EeGOffqMW1YiZA" annotatedElement="_VfRaJhE9EeGOffqMW1YiZA">
           <body>ShallowHistory represents the most recent active substate of its containing state (but not the substates of that substate). A composite state can have at most one shallow history vertex. A transition coming into the shallow history vertex is equivalent to a transition coming into the most recent active substate of a state. At most one transition may originate from the history connector to the default shallow history state. This transition is taken in case the composite state had never been active before. Entry actions of states entered on the path to the state represented by a shallow history are performed.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2fKyNwbEeCT5O2F6sGn5g" name="join">
-        <ownedComment xmi:id="_g2fKydwbEeCT5O2F6sGn5g" annotatedElement="_g2fKyNwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfRaKBE9EeGOffqMW1YiZA" name="join">
+        <ownedComment xmi:id="_VfRaKRE9EeGOffqMW1YiZA" annotatedElement="_VfRaKBE9EeGOffqMW1YiZA">
           <body>Join vertices serve to merge several transitions emanating from source vertices in different orthogonal regions. The transitions entering a join vertex cannot have guards or triggers.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2fKytwbEeCT5O2F6sGn5g" name="fork">
-        <ownedComment xmi:id="_g2fKy9wbEeCT5O2F6sGn5g" annotatedElement="_g2fKytwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfRaKhE9EeGOffqMW1YiZA" name="fork">
+        <ownedComment xmi:id="_VfRaKxE9EeGOffqMW1YiZA" annotatedElement="_VfRaKhE9EeGOffqMW1YiZA">
           <body>Fork vertices serve to split an incoming transition into two or more transitions terminating on orthogonal target vertices (i.e. vertices in different regions of a composite state). The segments outgoing from a fork vertex must not have guards or triggers.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2fKzNwbEeCT5O2F6sGn5g" name="junction">
-        <ownedComment xmi:id="_g2fKzdwbEeCT5O2F6sGn5g" annotatedElement="_g2fKzNwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfRaLBE9EeGOffqMW1YiZA" name="junction">
+        <ownedComment xmi:id="_VfRaLRE9EeGOffqMW1YiZA" annotatedElement="_VfRaLBE9EeGOffqMW1YiZA">
           <body>Junction vertices are semantic-free vertices that are used to chain together multiple transitions. They are used to construct compound transition paths between states. For example, a junction can be used to converge multiple incoming transitions into a single outgoing transition representing a shared transition path (this is known as an merge). Conversely, they can be used to split an incoming transition into multiple outgoing transition segments with different guard conditions. This realizes a static conditional branch. (In the latter case, outgoing transitions whose guard conditions evaluate to false are disabled. A predefined guard denoted 'else' may be defined for at most one outgoing transition. This transition is enabled if all the guards labeling the other transitions are false.) Static conditional branches are distinct from dynamic conditional branches that are realized by choice vertices (described below).</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2fKztwbEeCT5O2F6sGn5g" name="choice">
-        <ownedComment xmi:id="_g2fKz9wbEeCT5O2F6sGn5g" annotatedElement="_g2fKztwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfRaLhE9EeGOffqMW1YiZA" name="choice">
+        <ownedComment xmi:id="_VfRaLxE9EeGOffqMW1YiZA" annotatedElement="_VfRaLhE9EeGOffqMW1YiZA">
           <body>Choice vertices which, when reached, result in the dynamic evaluation of the guards of the triggers of its outgoing transitions. This realizes a dynamic conditional branch. It allows splitting of transitions into multiple outgoing paths such that the decision on which path to take may be a function of the results of prior actions performed in the same run-tocompletion step. If more than one of the guards evaluates to true, an arbitrary one is selected. If none of the guards evaluates to true, then the model is considered ill-formed. (To avoid this, it is recommended to define one outgoing transition with the predefined else guard for every choice vertex.) Choice vertices should be distinguished from static branch points that are based on junction points (described above).</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2fK0NwbEeCT5O2F6sGn5g" name="entryPoint">
-        <ownedComment xmi:id="_g2fK0dwbEeCT5O2F6sGn5g" annotatedElement="_g2fK0NwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfRaMBE9EeGOffqMW1YiZA" name="entryPoint">
+        <ownedComment xmi:id="_VfRaMRE9EeGOffqMW1YiZA" annotatedElement="_VfRaMBE9EeGOffqMW1YiZA">
           <body>An entry point pseudostate is an entry point of a state machine or composite state. In each region of the state machine or composite state it has a single transition to a vertex within the same region.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2fK0twbEeCT5O2F6sGn5g" name="exitPoint">
-        <ownedComment xmi:id="_g2fK09wbEeCT5O2F6sGn5g" annotatedElement="_g2fK0twbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfRaMhE9EeGOffqMW1YiZA" name="exitPoint">
+        <ownedComment xmi:id="_VfRaMxE9EeGOffqMW1YiZA" annotatedElement="_VfRaMhE9EeGOffqMW1YiZA">
           <body>An exit point pseudostate is an exit point of a state machine or composite state. Entering an exit point within any region of the composite state or state machine referenced by a submachine state implies the exit of this composite state or submachine state and the triggering of the transition that has this exit point as source in the state machine enclosing the submachine or composite state.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2fK1NwbEeCT5O2F6sGn5g" name="terminate">
-        <ownedComment xmi:id="_g2fK1dwbEeCT5O2F6sGn5g" annotatedElement="_g2fK1NwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfRaNBE9EeGOffqMW1YiZA" name="terminate">
+        <ownedComment xmi:id="_VfRaNRE9EeGOffqMW1YiZA" annotatedElement="_VfRaNBE9EeGOffqMW1YiZA">
           <body>Entering a terminate pseudostate implies that the execution of this state machine by means of its context object is terminated. The state machine does not exit any states nor does it perform any exit actions other than those associated with the transition leading to the terminate pseudostate. Entering a terminate pseudostate is equivalent to invoking a DestroyObjectAction.</body>
         </ownedComment>
       </ownedLiteral>
     </packagedElement>
-    <packagedElement xmi:type="uml:Enumeration" xmi:id="_g2fK1twbEeCT5O2F6sGn5g" name="TransitionKind">
-      <ownedComment xmi:id="_g2fK19wbEeCT5O2F6sGn5g" annotatedElement="_g2fK1twbEeCT5O2F6sGn5g">
+    <packagedElement xmi:type="uml:Enumeration" xmi:id="_VfRaNhE9EeGOffqMW1YiZA" name="TransitionKind">
+      <ownedComment xmi:id="_VfRaNxE9EeGOffqMW1YiZA" annotatedElement="_VfRaNhE9EeGOffqMW1YiZA">
         <body>TransitionKind is an enumeration type.</body>
       </ownedComment>
-      <ownedLiteral xmi:id="_g2fK2NwbEeCT5O2F6sGn5g" name="internal">
-        <ownedComment xmi:id="_g2fK2dwbEeCT5O2F6sGn5g" annotatedElement="_g2fK2NwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfRaOBE9EeGOffqMW1YiZA" name="internal">
+        <ownedComment xmi:id="_VfRaORE9EeGOffqMW1YiZA" annotatedElement="_VfRaOBE9EeGOffqMW1YiZA">
           <body>Implies that the transition, if triggered, occurs without exiting or entering the source state. Thus, it does not cause a state change. This means that the entry or exit condition of the source state will not be invoked. An internal transition can be taken even if the state machine is in one or more regions nested within this state.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2fK2twbEeCT5O2F6sGn5g" name="local">
-        <ownedComment xmi:id="_g2fK29wbEeCT5O2F6sGn5g" annotatedElement="_g2fK2twbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfRaOhE9EeGOffqMW1YiZA" name="local">
+        <ownedComment xmi:id="_VfRaOxE9EeGOffqMW1YiZA" annotatedElement="_VfRaOhE9EeGOffqMW1YiZA">
           <body>Implies that the transition, if triggered, will not exit the composite (source) state, but it will apply to any state within the composite state, and these will be exited and entered.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2fK3NwbEeCT5O2F6sGn5g" name="external">
-        <ownedComment xmi:id="_g2fK3dwbEeCT5O2F6sGn5g" annotatedElement="_g2fK3NwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfRaPBE9EeGOffqMW1YiZA" name="external">
+        <ownedComment xmi:id="_VfRaPRE9EeGOffqMW1YiZA" annotatedElement="_VfRaPBE9EeGOffqMW1YiZA">
           <body>Implies that the transition, if triggered, will exit the composite (source) state.</body>
         </ownedComment>
       </ownedLiteral>
     </packagedElement>
     <packagedElement xmi:type="uml:Enumeration" xmi:id="_AyM_oGwMEdq7X4sGURiZYA" name="VisibilityKind" visibility="private">
-      <ownedComment xmi:id="_g2fK3twbEeCT5O2F6sGn5g" annotatedElement="_AyM_oGwMEdq7X4sGURiZYA">
+      <ownedComment xmi:id="_VfRaPhE9EeGOffqMW1YiZA" annotatedElement="_AyM_oGwMEdq7X4sGURiZYA">
         <body>VisibilityKind is an enumeration type that defines literals to determine the visibility of elements in a model.</body>
       </ownedComment>
-      <ownedLiteral xmi:id="_g2fK39wbEeCT5O2F6sGn5g" name="public">
-        <ownedComment xmi:id="_g2fK4NwbEeCT5O2F6sGn5g" annotatedElement="_g2fK39wbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfSBMBE9EeGOffqMW1YiZA" name="public">
+        <ownedComment xmi:id="_VfSBMRE9EeGOffqMW1YiZA" annotatedElement="_VfSBMBE9EeGOffqMW1YiZA">
           <body>A public element is visible to all elements that can access the contents of the namespace that owns it.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2fx0NwbEeCT5O2F6sGn5g" name="private">
-        <ownedComment xmi:id="_g2fx0dwbEeCT5O2F6sGn5g" annotatedElement="_g2fx0NwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfSBMhE9EeGOffqMW1YiZA" name="private">
+        <ownedComment xmi:id="_VfSBMxE9EeGOffqMW1YiZA" annotatedElement="_VfSBMhE9EeGOffqMW1YiZA">
           <body>A private element is only visible inside the namespace that owns it.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2fx0twbEeCT5O2F6sGn5g" name="protected">
-        <ownedComment xmi:id="_g2fx09wbEeCT5O2F6sGn5g" annotatedElement="_g2fx0twbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfSBNBE9EeGOffqMW1YiZA" name="protected">
+        <ownedComment xmi:id="_VfSBNRE9EeGOffqMW1YiZA" annotatedElement="_VfSBNBE9EeGOffqMW1YiZA">
           <body>A protected element is visible to elements that have a generalization relationship to the namespace that owns it.</body>
         </ownedComment>
       </ownedLiteral>
-      <ownedLiteral xmi:id="_g2fx1NwbEeCT5O2F6sGn5g" name="package">
-        <ownedComment xmi:id="_g2fx1dwbEeCT5O2F6sGn5g" annotatedElement="_g2fx1NwbEeCT5O2F6sGn5g">
+      <ownedLiteral xmi:id="_VfSBNhE9EeGOffqMW1YiZA" name="package">
+        <ownedComment xmi:id="_VfSBNxE9EeGOffqMW1YiZA" annotatedElement="_VfSBNhE9EeGOffqMW1YiZA">
           <body>A package element is owned by a namespace that is not a package, and is visible to elements that are in the same package as its owning namespace. Only named elements that are not owned by packages can be marked as having package visibility. Any element marked as having package visibility is visible to all elements within the nearest enclosing package (given that other owning elements have proper visibility). Outside the nearest enclosing package, an element marked as having package visibility is not visible.</body>
         </ownedComment>
       </ownedLiteral>
@@ -16445,7 +16454,6 @@
   <Ecore:EAttribute xmi:id="_FL4LILG5EeCDe8CO90iVKQ" isUnsettable="true" base_Property="__pbPNLG4EeCDe8CO90iVKQ"/>
   <Ecore:EOperation xmi:id="_glNIILKHEeCwDd6B2NQzWA" base_Operation="_CytvwLKHEeCwDd6B2NQzWA" operationName="getType" visibility="None"/>
   <Ecore:EOperation xmi:id="_Lsf0QLLREeCsYvaJqFFivQ" base_Operation="_CroQsLLREeCsYvaJqFFivQ" operationName="getContext" visibility="None"/>
-  <Ecore:EOperation xmi:id="_o19dwLLREeCsYvaJqFFivQ" base_Operation="_gJvUgLLREeCsYvaJqFFivQ" operationName="getStructuredNodes" visibility="None"/>
   <Ecore:EOperation xmi:id="_CRhSILLSEeCsYvaJqFFivQ" base_Operation="_6VRNQLLREeCsYvaJqFFivQ" operationName="getEndTypes" visibility="None"/>
   <Ecore:EOperation xmi:id="_q1_mYLLSEeCsYvaJqFFivQ" base_Operation="_hIWcYLLSEeCsYvaJqFFivQ" operationName="getSuperClasses" visibility="None"/>
   <Ecore:EOperation xmi:id="_52-SQLLSEeCsYvaJqFFivQ" base_Operation="_wKRjcLLSEeCsYvaJqFFivQ" operationName="getGenerals" visibility="None"/>
@@ -16475,4 +16483,8 @@
   <Ecore:EOperation xmi:id="_BI5ZMLL-EeCBifIhhuFqZA" base_Operation="_982T8LL9EeCBifIhhuFqZA" operationName="getOutgoings" visibility="None"/>
   <Ecore:EOperation xmi:id="_dy4cULNJEeCT16-4OmDs9g" base_Operation="_WlaJALNJEeCT16-4OmDs9g" visibility="None"/>
   <Ecore:EAttribute xmi:id="_dFQKQNwaEeCT5O2F6sGn5g" isUnsettable="true" base_Property="_Q1JqkNwaEeCT5O2F6sGn5g"/>
+  <Ecore:EReference xmi:id="_JWtREAtDEeGcpbeCPJfCmw" xmlName="group" xmlFeatureKind="Element" base_Property="_zRopoAs9EeGcpbeCPJfCmw"/>
+  <Ecore:EReference xmi:id="_N4I04AtDEeGcpbeCPJfCmw" xmlName="node" xmlFeatureKind="Element" base_Property="_5DNmsAs9EeGcpbeCPJfCmw"/>
+  <Ecore:EReference xmi:id="_1XKowBCNEeG9F6n8Twp9jA" xmlFeatureKind="Attribute" base_Property="_RoJfoAs_EeGcpbeCPJfCmw"/>
+  <Ecore:EReference xmi:id="_4FNjYBCNEeG9F6n8Twp9jA" xmlFeatureKind="Attribute" base_Property="_PCvjoAs_EeGcpbeCPJfCmw"/>
 </xmi:XMI>
diff --git a/plugins/org.eclipse.uml2.uml/model/UML.uml b/plugins/org.eclipse.uml2.uml/model/UML.uml
index 299b559..daf82fa 100644
--- a/plugins/org.eclipse.uml2.uml/model/UML.uml
+++ b/plugins/org.eclipse.uml2.uml/model/UML.uml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<xmi:XMI xmi:version="20100901" xmlns:xmi="http://www.omg.org/spec/XMI/20100901" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/5" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
+<xmi:XMI xmi:version="20110701" xmlns:xmi="http://www.omg.org/spec/XMI/20110701" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/5" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
   <uml:Model xmi:id="_o8I_sGvaEdq4DLWZOhbdEA" name="UML">
     <packageImport xmi:id="__as3cGvaEdq4DLWZOhbdEA">
       <importedPackage xmi:type="uml:Model" href="Ecore.uml#_SeWiQMX_EduPJbEsMYXjUQ"/>
@@ -13,18 +13,31 @@
         <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_81UZhvnhEdunWsS3se92JQ" value="*"/>
       </ownedEnd>
     </packagedElement>
+    <packagedElement xmi:type="uml:Association" xmi:id="_DwV68AtCEeGcpbeCPJfCmw" name="A_group_inActivity" memberEnd="_PCvjoAs_EeGcpbeCPJfCmw _5V2SAAtBEeGcpbeCPJfCmw"/>
     <packagedElement xmi:type="uml:Association" xmi:id="_EhL8MPnmEdunWsS3se92JQ" name="A_incoming_target_vertex" memberEnd="_EhVtMPnmEdunWsS3se92JQ _EhVtM_nmEdunWsS3se92JQ">
       <ownedEnd xmi:id="_EhVtM_nmEdunWsS3se92JQ" name="incoming" visibility="private" type="_ykKV8PnlEdunWsS3se92JQ" association="_EhL8MPnmEdunWsS3se92JQ">
         <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_EhVtNPnmEdunWsS3se92JQ"/>
         <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_EhVtNfnmEdunWsS3se92JQ" value="*"/>
       </ownedEnd>
     </packagedElement>
+    <packagedElement xmi:type="uml:Association" xmi:id="_RFCrMAtCEeGcpbeCPJfCmw" name="A_node_activity" memberEnd="_RoJfoAs_EeGcpbeCPJfCmw _X0ZfIAtCEeGcpbeCPJfCmw"/>
     <packagedElement xmi:type="uml:Association" xmi:id="_JPYJoPnmEdunWsS3se92JQ" name="A_outgoing_source_vertex" memberEnd="_JPYJofnmEdunWsS3se92JQ _JPh6oPnmEdunWsS3se92JQ">
       <ownedEnd xmi:id="_JPh6oPnmEdunWsS3se92JQ" name="outgoing" visibility="private" type="_ykKV8PnlEdunWsS3se92JQ" association="_JPYJoPnmEdunWsS3se92JQ">
         <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JPh6ofnmEdunWsS3se92JQ"/>
         <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JPh6ovnmEdunWsS3se92JQ" value="*"/>
       </ownedEnd>
     </packagedElement>
+    <packagedElement xmi:type="uml:Association" xmi:id="_bU41QAtAEeGcpbeCPJfCmw" name="A_ownedElement_owner" isDerived="true" memberEnd="_GDD2YAtAEeGcpbeCPJfCmw _N3hRMAtAEeGcpbeCPJfCmw"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_3Ik3QAtDEeGcpbeCPJfCmw" name="A_partition_activity" memberEnd="_-_c7oAs9EeGcpbeCPJfCmw __DOZoAtDEeGcpbeCPJfCmw">
+      <ownedEnd xmi:id="__DOZoAtDEeGcpbeCPJfCmw" name="activity" type="_eGtFwLLREeCsYvaJqFFivQ" subsettedProperty="_5V2SAAtBEeGcpbeCPJfCmw" association="_3Ik3QAtDEeGcpbeCPJfCmw">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_J7ZdEAtEEeGcpbeCPJfCmw"/>
+      </ownedEnd>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Association" xmi:id="_w4820AtEEeGcpbeCPJfCmw" name="A_structuredNode_activity" memberEnd="_EOSYAAs-EeGcpbeCPJfCmw _bQeSgAtEEeGcpbeCPJfCmw">
+      <ownedEnd xmi:id="_bQeSgAtEEeGcpbeCPJfCmw" name="activity" visibility="private" type="_eGtFwLLREeCsYvaJqFFivQ" association="_w4820AtEEeGcpbeCPJfCmw">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_cva8wAtEEeGcpbeCPJfCmw"/>
+      </ownedEnd>
+    </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_6WKakLLQEeCsYvaJqFFivQ" name="Action" isAbstract="true">
       <ownedOperation xmi:id="_CroQsLLREeCsYvaJqFFivQ" name="context" visibility="protected">
         <ownedParameter xmi:id="_EGwx8LLREeCsYvaJqFFivQ" name="result" type="_6UV2QGwJEdq7X4sGURiZYA" direction="return">
@@ -33,13 +46,42 @@
       </ownedOperation>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_eGtFwLLREeCsYvaJqFFivQ" name="Activity">
-      <ownedOperation xmi:id="_gJvUgLLREeCsYvaJqFFivQ" name="structuredNode" visibility="protected">
-        <ownedParameter xmi:id="_ilEHcLLREeCsYvaJqFFivQ" name="result" type="_w1_2cLLREeCsYvaJqFFivQ" direction="return">
-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ilEHcbLREeCsYvaJqFFivQ"/>
-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jPj18LLREeCsYvaJqFFivQ" value="*"/>
-        </ownedParameter>
-      </ownedOperation>
+      <ownedAttribute xmi:id="_PCvjoAs_EeGcpbeCPJfCmw" name="group" visibility="protected" type="_aZICgAs-EeGcpbeCPJfCmw" isDerived="true" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_DwV68AtCEeGcpbeCPJfCmw">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PCvjoQs_EeGcpbeCPJfCmw"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_PCvjogs_EeGcpbeCPJfCmw" value="*"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_RoJfoAs_EeGcpbeCPJfCmw" name="node" visibility="protected" type="_WpiyYAs-EeGcpbeCPJfCmw" isDerived="true" subsettedProperty="_GDD2YAtAEeGcpbeCPJfCmw" association="_RFCrMAtCEeGcpbeCPJfCmw">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_RoJfoQs_EeGcpbeCPJfCmw"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_RoJfogs_EeGcpbeCPJfCmw" value="*"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_zRopoAs9EeGcpbeCPJfCmw" name="ownedGroup" visibility="protected" type="_aZICgAs-EeGcpbeCPJfCmw" aggregation="composite" subsettedProperty="_PCvjoAs_EeGcpbeCPJfCmw">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hecfYAs-EeGcpbeCPJfCmw"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_iNvOUAs-EeGcpbeCPJfCmw" value="*"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_5DNmsAs9EeGcpbeCPJfCmw" name="ownedNode" visibility="protected" type="_WpiyYAs-EeGcpbeCPJfCmw" aggregation="composite" subsettedProperty="_RoJfoAs_EeGcpbeCPJfCmw">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jIyhUAs-EeGcpbeCPJfCmw"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jsV6UAs-EeGcpbeCPJfCmw" value="*"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_-_c7oAs9EeGcpbeCPJfCmw" name="partition" visibility="protected" type="_MIhqsAs-EeGcpbeCPJfCmw" subsettedProperty="_zRopoAs9EeGcpbeCPJfCmw" association="_3Ik3QAtDEeGcpbeCPJfCmw">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kjlEUAs-EeGcpbeCPJfCmw"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_lA880As-EeGcpbeCPJfCmw" value="*"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_EOSYAAs-EeGcpbeCPJfCmw" name="structuredNode" visibility="protected" type="_w1_2cLLREeCsYvaJqFFivQ" aggregation="composite" subsettedProperty="_PCvjoAs_EeGcpbeCPJfCmw _RoJfoAs_EeGcpbeCPJfCmw" association="_w4820AtEEeGcpbeCPJfCmw">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_l3gKUAs-EeGcpbeCPJfCmw"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mZSowAs-EeGcpbeCPJfCmw" value="*"/>
+      </ownedAttribute>
     </packagedElement>
+    <packagedElement xmi:type="uml:Class" xmi:id="_aZICgAs-EeGcpbeCPJfCmw" name="ActivityGroup" isAbstract="true">
+      <ownedAttribute xmi:id="_5V2SAAtBEeGcpbeCPJfCmw" name="inActivity" visibility="protected" type="_eGtFwLLREeCsYvaJqFFivQ" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_DwV68AtCEeGcpbeCPJfCmw">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_7Ul2oAtBEeGcpbeCPJfCmw"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Class" xmi:id="_WpiyYAs-EeGcpbeCPJfCmw" name="ActivityNode" isAbstract="true">
+      <ownedAttribute xmi:id="_X0ZfIAtCEeGcpbeCPJfCmw" name="activity" visibility="protected" type="_eGtFwLLREeCsYvaJqFFivQ" subsettedProperty="_N3hRMAtAEeGcpbeCPJfCmw" association="_RFCrMAtCEeGcpbeCPJfCmw">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dnzBIAtCEeGcpbeCPJfCmw"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Class" xmi:id="_MIhqsAs-EeGcpbeCPJfCmw" name="ActivityPartition"/>
     <packagedElement xmi:type="uml:Class" xmi:id="_-lGRgHLzEdqziYxiZo0YtA" name="Artifact">
       <ownedAttribute xmi:id="_wvc1ILG2EeCDe8CO90iVKQ" name="fileName">
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
@@ -573,6 +615,13 @@
       <generalization xmi:id="_rcp_MGvbEdq4DLWZOhbdEA">
         <general xmi:type="uml:Class" href="Ecore.uml#_SeWihMX_EduPJbEsMYXjUQ"/>
       </generalization>
+      <ownedAttribute xmi:id="_GDD2YAtAEeGcpbeCPJfCmw" name="ownedElement" aggregation="composite" isDerived="true" isDerivedUnion="true" association="_bU41QAtAEeGcpbeCPJfCmw">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HleEUAtAEeGcpbeCPJfCmw"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXIx0AtAEeGcpbeCPJfCmw" value="*"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_N3hRMAtAEeGcpbeCPJfCmw" name="owner" isDerived="true" isDerivedUnion="true" association="_bU41QAtAEeGcpbeCPJfCmw">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PC6GQAtAEeGcpbeCPJfCmw"/>
+      </ownedAttribute>
       <ownedOperation xmi:id="_jlv7EGvgEdq4DLWZOhbdEA" name="addKeyword">
         <ownedComment xmi:id="_2oMhsOwbEdqYHf-imTcTdw" annotatedElement="_jlv7EGvgEdq4DLWZOhbdEA">
           <body>Adds the specified keyword to this element.</body>
@@ -2357,7 +2406,11 @@
         <ownedParameter xmi:id="_nkVEsLL7EeCBifIhhuFqZA" name="result" type="__pew8GvzEdq7X4sGURiZYA" direction="return"/>
       </ownedOperation>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_w1_2cLLREeCsYvaJqFFivQ" name="StructuredActivityNode"/>
+    <packagedElement xmi:type="uml:Class" xmi:id="_w1_2cLLREeCsYvaJqFFivQ" name="StructuredActivityNode">
+      <ownedAttribute xmi:id="_gnnw0AtZEeGV4NAcunjVqQ" name="activity" visibility="protected" type="_eGtFwLLREeCsYvaJqFFivQ" isDerived="true" redefinedProperty="_5V2SAAtBEeGcpbeCPJfCmw _X0ZfIAtCEeGcpbeCPJfCmw">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gnnw0QtZEeGV4NAcunjVqQ"/>
+      </ownedAttribute>
+    </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_FQiVsGwYEdqHKKVoxc0dlA" name="StructuredClassifier" isAbstract="true">
       <ownedOperation xmi:id="_YorvMHL0EdqziYxiZo0YtA" name="createOwnedAttribute">
         <ownedComment xmi:id="_9BZT4OwlEdqYHf-imTcTdw" annotatedElement="_YorvMHL0EdqziYxiZo0YtA">
@@ -2587,7 +2640,6 @@
   <Ecore:EAttribute xmi:id="_FL4LILG5EeCDe8CO90iVKQ" isUnsettable="true" base_Property="__pbPNLG4EeCDe8CO90iVKQ"/>
   <Ecore:EOperation xmi:id="_glNIILKHEeCwDd6B2NQzWA" base_Operation="_CytvwLKHEeCwDd6B2NQzWA" operationName="getType" visibility="None"/>
   <Ecore:EOperation xmi:id="_Lsf0QLLREeCsYvaJqFFivQ" base_Operation="_CroQsLLREeCsYvaJqFFivQ" operationName="getContext" visibility="None"/>
-  <Ecore:EOperation xmi:id="_o19dwLLREeCsYvaJqFFivQ" base_Operation="_gJvUgLLREeCsYvaJqFFivQ" operationName="getStructuredNodes" visibility="None"/>
   <Ecore:EOperation xmi:id="_CRhSILLSEeCsYvaJqFFivQ" base_Operation="_6VRNQLLREeCsYvaJqFFivQ" operationName="getEndTypes" visibility="None"/>
   <Ecore:EOperation xmi:id="_q1_mYLLSEeCsYvaJqFFivQ" base_Operation="_hIWcYLLSEeCsYvaJqFFivQ" operationName="getSuperClasses" visibility="None"/>
   <Ecore:EOperation xmi:id="_52-SQLLSEeCsYvaJqFFivQ" base_Operation="_wKRjcLLSEeCsYvaJqFFivQ" operationName="getGenerals" visibility="None"/>
@@ -2617,4 +2669,8 @@
   <Ecore:EOperation xmi:id="_BI5ZMLL-EeCBifIhhuFqZA" base_Operation="_982T8LL9EeCBifIhhuFqZA" operationName="getOutgoings" visibility="None"/>
   <Ecore:EOperation xmi:id="_dy4cULNJEeCT16-4OmDs9g" base_Operation="_WlaJALNJEeCT16-4OmDs9g" visibility="None"/>
   <Ecore:EAttribute xmi:id="_dFQKQNwaEeCT5O2F6sGn5g" isUnsettable="true" base_Property="_Q1JqkNwaEeCT5O2F6sGn5g"/>
+  <Ecore:EReference xmi:id="_JWtREAtDEeGcpbeCPJfCmw" xmlName="group" xmlFeatureKind="Element" base_Property="_zRopoAs9EeGcpbeCPJfCmw"/>
+  <Ecore:EReference xmi:id="_N4I04AtDEeGcpbeCPJfCmw" xmlName="node" xmlFeatureKind="Element" base_Property="_5DNmsAs9EeGcpbeCPJfCmw"/>
+  <Ecore:EReference xmi:id="_1XKowBCNEeG9F6n8Twp9jA" xmlFeatureKind="Attribute" base_Property="_RoJfoAs_EeGcpbeCPJfCmw"/>
+  <Ecore:EReference xmi:id="_4FNjYBCNEeG9F6n8Twp9jA" xmlFeatureKind="Attribute" base_Property="_PCvjoAs_EeGcpbeCPJfCmw"/>
 </xmi:XMI>
diff --git a/plugins/org.eclipse.uml2.uml/plugin.properties b/plugins/org.eclipse.uml2.uml/plugin.properties
index 9ab7553..fd14aeb 100644
--- a/plugins/org.eclipse.uml2.uml/plugin.properties
+++ b/plugins/org.eclipse.uml2.uml/plugin.properties
@@ -7,9 +7,8 @@
 # Contributors:
 #   IBM - initial API and implementation
 #   Kenn Hussey (Embarcadero Technologies) - 156879, 215488, 213218, 204200
-#   Kenn Hussey (CEA) - 327039
+#   Kenn Hussey (CEA) - 327039, 351774
 #
-# $Id: plugin.properties,v 1.25 2009/04/30 21:15:26 jbruck Exp $
 
 # NLS_MESSAGEFORMAT_VAR
 
@@ -218,10 +217,12 @@
 _UI_OMG_UML_2_2_content_type = OMG UML 2.2 File
 _UI_OMG_UML_2_3_content_type = OMG UML 2.3 File
 _UI_OMG_UML_2_4_content_type = OMG UML 2.4 File
+_UI_OMG_UML_2_4_1_content_type = OMG UML 2.4.1 File
 
 _UI_OMG_CMOF_content_type = OMG CMOF File
 _UI_OMG_CMOF_2_0_content_type = OMG CMOF 2.0 File
 _UI_OMG_CMOF_2_4_content_type = OMG CMOF 2.4 File
+_UI_OMG_CMOF_2_4_1_content_type = OMG CMOF 2.4.1 File
 
 _UI_GeneratedPackageRegistry_extensionpoint = Generated UML Package Registry
 _UI_DynamicPackageRegistry_extensionpoint = Dynamic UML Package Registry
diff --git a/plugins/org.eclipse.uml2.uml/plugin.xml b/plugins/org.eclipse.uml2.uml/plugin.xml
index 42aed10..73a8b56 100644
--- a/plugins/org.eclipse.uml2.uml/plugin.xml
+++ b/plugins/org.eclipse.uml2.uml/plugin.xml
@@ -11,7 +11,7 @@
  Contributors:
    IBM - initial API and implementation
    Kenn Hussey (Embarcadero Technologies) - 156879, 215488, 226397, 204200, 247980
-   Kenn Hussey (CEA) - 327039
+   Kenn Hussey (CEA) - 327039, 351774
 
 -->
 
@@ -171,7 +171,7 @@
               class="org.eclipse.emf.ecore.xmi.impl.RootXMLContentHandlerImpl$Describer">
            <parameter
                  name="namespacePattern"
-                 value="(http://schema\.omg\.org/spec/UML/(2\.1|2\.1\.1|2\.2)|http://www\.omg\.org/spec/UML/20100901)" />
+                 value="(http://schema\.omg\.org/spec/UML/(2\.1|2\.1\.1|2\.2)|http://www\.omg\.org/spec/UML/(20100901|20110701))" />
            <parameter
                  name="kind"
                  value="xmi" />
@@ -241,6 +241,22 @@
                  value="xmi" />
         </describer>
      </content-type>
+     <content-type
+           base-type="org.omg.uml"
+           file-extensions="xmi"
+           id="org.omg.uml_2_4_1"
+           name="%_UI_OMG_UML_2_4_1_content_type"
+           priority="normal">
+        <describer
+              class="org.eclipse.emf.ecore.xmi.impl.RootXMLContentHandlerImpl$Describer">
+           <parameter
+                 name="namespace"
+                 value="http://www.omg.org/spec/UML/20110701" />
+           <parameter
+                 name="kind"
+                 value="xmi" />
+        </describer>
+     </content-type>
 
      <content-type
            base-type="org.eclipse.emf.ecore.xmi"
@@ -252,7 +268,7 @@
               class="org.eclipse.emf.ecore.xmi.impl.RootXMLContentHandlerImpl$Describer">
            <parameter
                  name="namespacePattern"
-                 value="(http://schema\.omg\.org/spec/MOF/2\.0/cmof.xml|http://www\.omg\.org/spec/MOF/20100901/cmof.xmi)" />
+                 value="(http://schema\.omg\.org/spec/MOF/2\.0/cmof.xml|http://www\.omg\.org/spec/MOF/(20100901|20110701)/cmof.xmi)" />
            <parameter
                  name="kind"
                  value="xmi" />
@@ -290,6 +306,22 @@
                  value="xmi" />
         </describer>
      </content-type>
+     <content-type
+           base-type="org.omg.mof.cmof"
+           file-extensions="cmof,xmi"
+           id="org.omg.mof.cmof_2_4_1"
+           name="%_UI_OMG_CMOF_2_4_1_content_type"
+           priority="normal">
+        <describer
+              class="org.eclipse.emf.ecore.xmi.impl.RootXMLContentHandlerImpl$Describer">
+           <parameter
+                 name="namespace"
+                 value="http://www.omg.org/spec/MOF/20110701/cmof.xmi" />
+           <parameter
+                 name="kind"
+                 value="xmi" />
+        </describer>
+     </content-type>
   </extension>
 
 </plugin>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Action.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Action.java
index 7386f1d..b229fb8 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Action.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Action.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 205188
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: Action.java,v 1.15 2008/01/09 18:56:02 khussey Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -25,8 +24,8 @@
  *
  * <!-- begin-model-doc -->
  * An action has pre- and post-conditions.
- * An action is a named element that is the fundamental unit of executable functionality. The execution of an action represents some transformation or processing in the modeled system, be it a computer system or otherwise.
  * An action represents a single step within an activity, that is, one that is not further decomposed within the activity.
+ * An action is a named element that is the fundamental unit of executable functionality. The execution of an action represents some transformation or processing in the modeled system, be it a computer system or otherwise.
  * <!-- end-model-doc -->
  *
  * <p>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Activity.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Activity.java
index 149e7f0..ad9873f 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Activity.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Activity.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: Activity.java,v 1.18 2007/10/23 15:54:23 jbruck Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -33,13 +32,15 @@
  * <p>
  * The following features are supported:
  * <ul>
+ *   <li>{@link org.eclipse.uml2.uml.Activity#getOwnedGroups <em>Owned Group</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Activity#getEdges <em>Edge</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Activity#getGroups <em>Group</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Activity#getStructuredNodes <em>Structured Node</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Activity#getVariables <em>Variable</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Activity#getGroups <em>Group</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Activity#getOwnedNodes <em>Owned Node</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Activity#isReadOnly <em>Is Read Only</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Activity#isSingleExecution <em>Is Single Execution</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Activity#getPartitions <em>Partition</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Activity#getStructuredNodes <em>Structured Node</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Activity#getNodes <em>Node</em>}</li>
  * </ul>
  * </p>
@@ -52,6 +53,67 @@
 		extends Behavior {
 
 	/**
+	 * Returns the value of the '<em><b>Owned Group</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.uml2.uml.ActivityGroup}.
+	 * <p>
+	 * This feature subsets the following features:
+	 * <ul>
+	 *   <li>'{@link org.eclipse.uml2.uml.Activity#getGroups() <em>Group</em>}'</li>
+	 * </ul>
+	 * </p>
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Owned Group</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Owned Group</em>' containment reference list.
+	 * @see org.eclipse.uml2.uml.UMLPackage#getActivity_OwnedGroup()
+	 * @model containment="true" resolveProxies="true" ordered="false"
+	 *        extendedMetaData="name='group' kind='element'"
+	 * @generated
+	 */
+	EList<ActivityGroup> getOwnedGroups();
+
+	/**
+	 * Creates a new {@link org.eclipse.uml2.uml.ActivityGroup}, with the specified '<em><b>Name</b></em>', and appends it to the '<em><b>Owned Group</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param name The '<em><b>Name</b></em>' for the new {@link org.eclipse.uml2.uml.ActivityGroup}, or <code>null</code>.
+	 * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.ActivityGroup} to create.
+	 * @return The new {@link org.eclipse.uml2.uml.ActivityGroup}.
+	 * @see #getOwnedGroups()
+	 * @generated
+	 */
+	ActivityGroup createOwnedGroup(String name, EClass eClass);
+
+	/**
+	 * Retrieves the first {@link org.eclipse.uml2.uml.ActivityGroup} with the specified '<em><b>Name</b></em>' from the '<em><b>Owned Group</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.ActivityGroup} to retrieve, or <code>null</code>.
+	 * @return The first {@link org.eclipse.uml2.uml.ActivityGroup} with the specified '<em><b>Name</b></em>', or <code>null</code>.
+	 * @see #getOwnedGroups()
+	 * @generated
+	 */
+	ActivityGroup getOwnedGroup(String name);
+
+	/**
+	 * Retrieves the first {@link org.eclipse.uml2.uml.ActivityGroup} with the specified '<em><b>Name</b></em>' from the '<em><b>Owned Group</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.ActivityGroup} to retrieve, or <code>null</code>.
+	 * @param ignoreCase Whether to ignore case in {@link java.lang.String} comparisons.
+	 * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.ActivityGroup} to retrieve, or <code>null</code>.
+	 * @param createOnDemand Whether to create a {@link org.eclipse.uml2.uml.ActivityGroup} on demand if not found.
+	 * @return The first {@link org.eclipse.uml2.uml.ActivityGroup} with the specified '<em><b>Name</b></em>', or <code>null</code>.
+	 * @see #getOwnedGroups()
+	 * @generated
+	 */
+	ActivityGroup getOwnedGroup(String name, boolean ignoreCase, EClass eClass,
+			boolean createOnDemand);
+
+	/**
 	 * Returns the value of the '<em><b>Is Read Only</b></em>' attribute.
 	 * The default value is <code>"false"</code>.
 	 * <!-- begin-user-doc -->
@@ -78,7 +140,7 @@
 	void setIsReadOnly(boolean value);
 
 	/**
-	 * Returns the value of the '<em><b>Group</b></em>' containment reference list.
+	 * Returns the value of the '<em><b>Group</b></em>' reference list.
 	 * The list contents are of type {@link org.eclipse.uml2.uml.ActivityGroup}.
 	 * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ActivityGroup#getInActivity <em>In Activity</em>}'.
 	 * <p>
@@ -92,39 +154,17 @@
 	 * <!-- begin-model-doc -->
 	 * Top-level groups in the activity.
 	 * <!-- end-model-doc -->
-	 * @return the value of the '<em>Group</em>' containment reference list.
+	 * @return the value of the '<em>Group</em>' reference list.
 	 * @see org.eclipse.uml2.uml.UMLPackage#getActivity_Group()
 	 * @see org.eclipse.uml2.uml.ActivityGroup#getInActivity
-	 * @model opposite="inActivity" containment="true" resolveProxies="true" ordered="false"
+	 * @model opposite="inActivity" transient="true" volatile="true" derived="true" ordered="false"
+	 *        extendedMetaData="kind='attribute'"
 	 * @generated
 	 */
 	EList<ActivityGroup> getGroups();
 
 	/**
-	 * Creates a new {@link org.eclipse.uml2.uml.ActivityGroup} and appends it to the '<em><b>Group</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.ActivityGroup} to create.
-	 * @return The new {@link org.eclipse.uml2.uml.ActivityGroup}.
-	 * @see #getGroups()
-	 * @generated NOT
-	 */
-	ActivityGroup createGroup(EClass eClass);
-
-	/**
-	 * Creates a new {@link org.eclipse.uml2.uml.ActivityGroup}, with the specified '<em><b>Name</b></em>', and appends it to the '<em><b>Group</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param name The '<em><b>Name</b></em>' for the new {@link org.eclipse.uml2.uml.ActivityGroup}, or <code>null</code>.
-	 * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.ActivityGroup} to create.
-	 * @return The new {@link org.eclipse.uml2.uml.ActivityGroup}.
-	 * @see #getGroups()
-	 * @generated
-	 */
-	ActivityGroup createGroup(String name, EClass eClass);
-
-	/**
-	 * Retrieves the first {@link org.eclipse.uml2.uml.ActivityGroup} with the specified '<em><b>Name</b></em>' from the '<em><b>Group</b></em>' containment reference list.
+	 * Retrieves the first {@link org.eclipse.uml2.uml.ActivityGroup} with the specified '<em><b>Name</b></em>' from the '<em><b>Group</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.ActivityGroup} to retrieve, or <code>null</code>.
@@ -135,18 +175,77 @@
 	ActivityGroup getGroup(String name);
 
 	/**
-	 * Retrieves the first {@link org.eclipse.uml2.uml.ActivityGroup} with the specified '<em><b>Name</b></em>' from the '<em><b>Group</b></em>' containment reference list.
+	 * Retrieves the first {@link org.eclipse.uml2.uml.ActivityGroup} with the specified '<em><b>Name</b></em>' from the '<em><b>Group</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.ActivityGroup} to retrieve, or <code>null</code>.
 	 * @param ignoreCase Whether to ignore case in {@link java.lang.String} comparisons.
 	 * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.ActivityGroup} to retrieve, or <code>null</code>.
-	 * @param createOnDemand Whether to create a {@link org.eclipse.uml2.uml.ActivityGroup} on demand if not found.
 	 * @return The first {@link org.eclipse.uml2.uml.ActivityGroup} with the specified '<em><b>Name</b></em>', or <code>null</code>.
 	 * @see #getGroups()
 	 * @generated
 	 */
-	ActivityGroup getGroup(String name, boolean ignoreCase, EClass eClass,
+	ActivityGroup getGroup(String name, boolean ignoreCase, EClass eClass);
+
+	/**
+	 * Returns the value of the '<em><b>Owned Node</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.uml2.uml.ActivityNode}.
+	 * <p>
+	 * This feature subsets the following features:
+	 * <ul>
+	 *   <li>'{@link org.eclipse.uml2.uml.Activity#getNodes() <em>Node</em>}'</li>
+	 * </ul>
+	 * </p>
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Owned Node</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Owned Node</em>' containment reference list.
+	 * @see org.eclipse.uml2.uml.UMLPackage#getActivity_OwnedNode()
+	 * @model containment="true" resolveProxies="true" ordered="false"
+	 *        extendedMetaData="name='node' kind='element'"
+	 * @generated
+	 */
+	EList<ActivityNode> getOwnedNodes();
+
+	/**
+	 * Creates a new {@link org.eclipse.uml2.uml.ActivityNode}, with the specified '<em><b>Name</b></em>', and appends it to the '<em><b>Owned Node</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param name The '<em><b>Name</b></em>' for the new {@link org.eclipse.uml2.uml.ActivityNode}, or <code>null</code>.
+	 * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.ActivityNode} to create.
+	 * @return The new {@link org.eclipse.uml2.uml.ActivityNode}.
+	 * @see #getOwnedNodes()
+	 * @generated
+	 */
+	ActivityNode createOwnedNode(String name, EClass eClass);
+
+	/**
+	 * Retrieves the first {@link org.eclipse.uml2.uml.ActivityNode} with the specified '<em><b>Name</b></em>' from the '<em><b>Owned Node</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.ActivityNode} to retrieve, or <code>null</code>.
+	 * @return The first {@link org.eclipse.uml2.uml.ActivityNode} with the specified '<em><b>Name</b></em>', or <code>null</code>.
+	 * @see #getOwnedNodes()
+	 * @generated
+	 */
+	ActivityNode getOwnedNode(String name);
+
+	/**
+	 * Retrieves the first {@link org.eclipse.uml2.uml.ActivityNode} with the specified '<em><b>Name</b></em>' from the '<em><b>Owned Node</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.ActivityNode} to retrieve, or <code>null</code>.
+	 * @param ignoreCase Whether to ignore case in {@link java.lang.String} comparisons.
+	 * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.ActivityNode} to retrieve, or <code>null</code>.
+	 * @param createOnDemand Whether to create a {@link org.eclipse.uml2.uml.ActivityNode} on demand if not found.
+	 * @return The first {@link org.eclipse.uml2.uml.ActivityNode} with the specified '<em><b>Name</b></em>', or <code>null</code>.
+	 * @see #getOwnedNodes()
+	 * @generated
+	 */
+	ActivityNode getOwnedNode(String name, boolean ignoreCase, EClass eClass,
 			boolean createOnDemand);
 
 	/**
@@ -176,7 +275,7 @@
 	void setIsSingleExecution(boolean value);
 
 	/**
-	 * Returns the value of the '<em><b>Structured Node</b></em>' reference list.
+	 * Returns the value of the '<em><b>Structured Node</b></em>' containment reference list.
 	 * The list contents are of type {@link org.eclipse.uml2.uml.StructuredActivityNode}.
 	 * <p>
 	 * This feature subsets the following features:
@@ -190,15 +289,38 @@
 	 * <!-- begin-model-doc -->
 	 * Top-level structured nodes in the activity.
 	 * <!-- end-model-doc -->
-	 * @return the value of the '<em>Structured Node</em>' reference list.
+	 * @return the value of the '<em>Structured Node</em>' containment reference list.
 	 * @see org.eclipse.uml2.uml.UMLPackage#getActivity_StructuredNode()
-	 * @model transient="true" changeable="false" volatile="true" derived="true" ordered="false"
+	 * @model containment="true" resolveProxies="true" ordered="false"
 	 * @generated
 	 */
 	EList<StructuredActivityNode> getStructuredNodes();
 
 	/**
-	 * Retrieves the first {@link org.eclipse.uml2.uml.StructuredActivityNode} with the specified '<em><b>Name</b></em>' from the '<em><b>Structured Node</b></em>' reference list.
+	 * Creates a new {@link org.eclipse.uml2.uml.StructuredActivityNode}, with the specified '<em><b>Name</b></em>', and appends it to the '<em><b>Structured Node</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param name The '<em><b>Name</b></em>' for the new {@link org.eclipse.uml2.uml.StructuredActivityNode}, or <code>null</code>.
+	 * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.StructuredActivityNode} to create.
+	 * @return The new {@link org.eclipse.uml2.uml.StructuredActivityNode}.
+	 * @see #getStructuredNodes()
+	 * @generated
+	 */
+	StructuredActivityNode createStructuredNode(String name, EClass eClass);
+
+	/**
+	 * Creates a new {@link org.eclipse.uml2.uml.StructuredActivityNode}, with the specified '<em><b>Name</b></em>', and appends it to the '<em><b>Structured Node</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param name The '<em><b>Name</b></em>' for the new {@link org.eclipse.uml2.uml.StructuredActivityNode}, or <code>null</code>.
+	 * @return The new {@link org.eclipse.uml2.uml.StructuredActivityNode}.
+	 * @see #getStructuredNodes()
+	 * @generated
+	 */
+	StructuredActivityNode createStructuredNode(String name);
+
+	/**
+	 * Retrieves the first {@link org.eclipse.uml2.uml.StructuredActivityNode} with the specified '<em><b>Name</b></em>' from the '<em><b>Structured Node</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.StructuredActivityNode} to retrieve, or <code>null</code>.
@@ -209,6 +331,21 @@
 	StructuredActivityNode getStructuredNode(String name);
 
 	/**
+	 * Retrieves the first {@link org.eclipse.uml2.uml.StructuredActivityNode} with the specified '<em><b>Name</b></em>' from the '<em><b>Structured Node</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.StructuredActivityNode} to retrieve, or <code>null</code>.
+	 * @param ignoreCase Whether to ignore case in {@link java.lang.String} comparisons.
+	 * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.StructuredActivityNode} to retrieve, or <code>null</code>.
+	 * @param createOnDemand Whether to create a {@link org.eclipse.uml2.uml.StructuredActivityNode} on demand if not found.
+	 * @return The first {@link org.eclipse.uml2.uml.StructuredActivityNode} with the specified '<em><b>Name</b></em>', or <code>null</code>.
+	 * @see #getStructuredNodes()
+	 * @generated
+	 */
+	StructuredActivityNode getStructuredNode(String name, boolean ignoreCase,
+			EClass eClass, boolean createOnDemand);
+
+	/**
 	 * Retrieves the first {@link org.eclipse.uml2.uml.StructuredActivityNode} with the specified '<em><b>Name</b></em>' from the '<em><b>Structured Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -217,7 +354,7 @@
 	 * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.StructuredActivityNode} to retrieve, or <code>null</code>.
 	 * @return The first {@link org.eclipse.uml2.uml.StructuredActivityNode} with the specified '<em><b>Name</b></em>', or <code>null</code>.
 	 * @see #getStructuredNodes()
-	 * @generated
+	 * @generated NOT
 	 */
 	StructuredActivityNode getStructuredNode(String name, boolean ignoreCase,
 			EClass eClass);
@@ -285,7 +422,7 @@
 			boolean createOnDemand);
 
 	/**
-	 * Returns the value of the '<em><b>Node</b></em>' containment reference list.
+	 * Returns the value of the '<em><b>Node</b></em>' reference list.
 	 * The list contents are of type {@link org.eclipse.uml2.uml.ActivityNode}.
 	 * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ActivityNode#getActivity <em>Activity</em>}'.
 	 * <p>
@@ -299,28 +436,17 @@
 	 * <!-- begin-model-doc -->
 	 * Nodes coordinated by the activity.
 	 * <!-- end-model-doc -->
-	 * @return the value of the '<em>Node</em>' containment reference list.
+	 * @return the value of the '<em>Node</em>' reference list.
 	 * @see org.eclipse.uml2.uml.UMLPackage#getActivity_Node()
 	 * @see org.eclipse.uml2.uml.ActivityNode#getActivity
-	 * @model opposite="activity" containment="true" resolveProxies="true" ordered="false"
+	 * @model opposite="activity" transient="true" volatile="true" derived="true" ordered="false"
+	 *        extendedMetaData="kind='attribute'"
 	 * @generated
 	 */
 	EList<ActivityNode> getNodes();
 
 	/**
-	 * Creates a new {@link org.eclipse.uml2.uml.ActivityNode}, with the specified '<em><b>Name</b></em>', and appends it to the '<em><b>Node</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param name The '<em><b>Name</b></em>' for the new {@link org.eclipse.uml2.uml.ActivityNode}, or <code>null</code>.
-	 * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.ActivityNode} to create.
-	 * @return The new {@link org.eclipse.uml2.uml.ActivityNode}.
-	 * @see #getNodes()
-	 * @generated
-	 */
-	ActivityNode createNode(String name, EClass eClass);
-
-	/**
-	 * Retrieves the first {@link org.eclipse.uml2.uml.ActivityNode} with the specified '<em><b>Name</b></em>' from the '<em><b>Node</b></em>' containment reference list.
+	 * Retrieves the first {@link org.eclipse.uml2.uml.ActivityNode} with the specified '<em><b>Name</b></em>' from the '<em><b>Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.ActivityNode} to retrieve, or <code>null</code>.
@@ -331,19 +457,17 @@
 	ActivityNode getNode(String name);
 
 	/**
-	 * Retrieves the first {@link org.eclipse.uml2.uml.ActivityNode} with the specified '<em><b>Name</b></em>' from the '<em><b>Node</b></em>' containment reference list.
+	 * Retrieves the first {@link org.eclipse.uml2.uml.ActivityNode} with the specified '<em><b>Name</b></em>' from the '<em><b>Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.ActivityNode} to retrieve, or <code>null</code>.
 	 * @param ignoreCase Whether to ignore case in {@link java.lang.String} comparisons.
 	 * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.ActivityNode} to retrieve, or <code>null</code>.
-	 * @param createOnDemand Whether to create a {@link org.eclipse.uml2.uml.ActivityNode} on demand if not found.
 	 * @return The first {@link org.eclipse.uml2.uml.ActivityNode} with the specified '<em><b>Name</b></em>', or <code>null</code>.
 	 * @see #getNodes()
 	 * @generated
 	 */
-	ActivityNode getNode(String name, boolean ignoreCase, EClass eClass,
-			boolean createOnDemand);
+	ActivityNode getNode(String name, boolean ignoreCase, EClass eClass);
 
 	/**
 	 * Returns the value of the '<em><b>Edge</b></em>' containment reference list.
@@ -413,6 +537,7 @@
 	 * This feature subsets the following features:
 	 * <ul>
 	 *   <li>'{@link org.eclipse.uml2.uml.Activity#getGroups() <em>Group</em>}'</li>
+	 *   <li>'{@link org.eclipse.uml2.uml.Activity#getOwnedGroups() <em>Owned Group</em>}'</li>
 	 * </ul>
 	 * </p>
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActivityEdge.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActivityEdge.java
index 4e5f2aa..d2d5846 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActivityEdge.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActivityEdge.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 205188
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ActivityEdge.java,v 1.20 2008/10/02 20:56:23 jbruck Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -28,15 +27,15 @@
  * <!-- end-user-doc -->
  *
  * <!-- begin-model-doc -->
- * An activity edge is an abstract class for directed connections between two activity nodes.
  * Activity edges can be contained in interruptible regions.
+ * An activity edge is an abstract class for directed connections between two activity nodes.
  * <!-- end-model-doc -->
  *
  * <p>
  * The following features are supported:
  * <ul>
+ *   <li>{@link org.eclipse.uml2.uml.ActivityEdge#getActivity <em>Activity</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ActivityEdge#getGuard <em>Guard</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ActivityEdge#getInGroups <em>In Group</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ActivityEdge#getInPartitions <em>In Partition</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ActivityEdge#getInStructuredNode <em>In Structured Node</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ActivityEdge#getInterrupts <em>Interrupts</em>}</li>
@@ -44,7 +43,7 @@
  *   <li>{@link org.eclipse.uml2.uml.ActivityEdge#getSource <em>Source</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ActivityEdge#getTarget <em>Target</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ActivityEdge#getWeight <em>Weight</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ActivityEdge#getActivity <em>Activity</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ActivityEdge#getInGroups <em>In Group</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActivityGroup.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActivityGroup.java
index bc33c57..7df134e 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActivityGroup.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActivityGroup.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 205188
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ActivityGroup.java,v 1.17 2008/01/09 18:56:03 khussey Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -34,11 +33,11 @@
  * <p>
  * The following features are supported:
  * <ul>
+ *   <li>{@link org.eclipse.uml2.uml.ActivityGroup#getContainedEdges <em>Contained Edge</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ActivityGroup#getContainedNodes <em>Contained Node</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ActivityGroup#getInActivity <em>In Activity</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ActivityGroup#getSubgroups <em>Subgroup</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ActivityGroup#getSuperGroup <em>Super Group</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ActivityGroup#getContainedEdges <em>Contained Edge</em>}</li>
  * </ul>
  * </p>
  *
@@ -163,7 +162,7 @@
 	ActivityNode getContainedNode(String name, boolean ignoreCase, EClass eClass);
 
 	/**
-	 * Returns the value of the '<em><b>In Activity</b></em>' container reference.
+	 * Returns the value of the '<em><b>In Activity</b></em>' reference.
 	 * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Activity#getGroups <em>Group</em>}'.
 	 * <p>
 	 * This feature subsets the following features:
@@ -176,20 +175,20 @@
 	 * <!-- begin-model-doc -->
 	 * Activity containing the group.
 	 * <!-- end-model-doc -->
-	 * @return the value of the '<em>In Activity</em>' container reference.
+	 * @return the value of the '<em>In Activity</em>' reference.
 	 * @see #setInActivity(Activity)
 	 * @see org.eclipse.uml2.uml.UMLPackage#getActivityGroup_InActivity()
 	 * @see org.eclipse.uml2.uml.Activity#getGroups
-	 * @model opposite="group" transient="false" ordered="false"
+	 * @model opposite="group" transient="true" volatile="true" derived="true" ordered="false"
 	 * @generated
 	 */
 	Activity getInActivity();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.uml2.uml.ActivityGroup#getInActivity <em>In Activity</em>}' container reference.
+	 * Sets the value of the '{@link org.eclipse.uml2.uml.ActivityGroup#getInActivity <em>In Activity</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>In Activity</em>' container reference.
+	 * @param value the new value of the '<em>In Activity</em>' reference.
 	 * @see #getInActivity()
 	 * @generated
 	 */
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActivityNode.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActivityNode.java
index 615e422..d3db585 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActivityNode.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActivityNode.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 205188
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ActivityNode.java,v 1.16 2008/01/09 18:56:02 khussey Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -35,12 +34,12 @@
  * The following features are supported:
  * <ul>
  *   <li>{@link org.eclipse.uml2.uml.ActivityNode#getActivity <em>Activity</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ActivityNode#getInGroups <em>In Group</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ActivityNode#getInPartitions <em>In Partition</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ActivityNode#getInStructuredNode <em>In Structured Node</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ActivityNode#getInInterruptibleRegions <em>In Interruptible Region</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ActivityNode#getOutgoings <em>Outgoing</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ActivityNode#getIncomings <em>Incoming</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ActivityNode#getInGroups <em>In Group</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ActivityNode#getRedefinedNodes <em>Redefined Node</em>}</li>
  * </ul>
  * </p>
@@ -187,8 +186,8 @@
 	 * <p>
 	 * This feature subsets the following features:
 	 * <ul>
-	 *   <li>'{@link org.eclipse.uml2.uml.Element#getOwner() <em>Owner</em>}'</li>
 	 *   <li>'{@link org.eclipse.uml2.uml.ActivityNode#getInGroups() <em>In Group</em>}'</li>
+	 *   <li>'{@link org.eclipse.uml2.uml.Element#getOwner() <em>Owner</em>}'</li>
 	 * </ul>
 	 * </p>
 	 * <!-- begin-user-doc -->
@@ -216,7 +215,7 @@
 	void setInStructuredNode(StructuredActivityNode value);
 
 	/**
-	 * Returns the value of the '<em><b>Activity</b></em>' container reference.
+	 * Returns the value of the '<em><b>Activity</b></em>' reference.
 	 * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Activity#getNodes <em>Node</em>}'.
 	 * <p>
 	 * This feature subsets the following features:
@@ -229,20 +228,20 @@
 	 * <!-- begin-model-doc -->
 	 * Activity containing the node.
 	 * <!-- end-model-doc -->
-	 * @return the value of the '<em>Activity</em>' container reference.
+	 * @return the value of the '<em>Activity</em>' reference.
 	 * @see #setActivity(Activity)
 	 * @see org.eclipse.uml2.uml.UMLPackage#getActivityNode_Activity()
 	 * @see org.eclipse.uml2.uml.Activity#getNodes
-	 * @model opposite="node" transient="false" ordered="false"
+	 * @model opposite="node" transient="true" volatile="true" derived="true" ordered="false"
 	 * @generated
 	 */
 	Activity getActivity();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.uml2.uml.ActivityNode#getActivity <em>Activity</em>}' container reference.
+	 * Sets the value of the '{@link org.eclipse.uml2.uml.ActivityNode#getActivity <em>Activity</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Activity</em>' container reference.
+	 * @param value the new value of the '<em>Activity</em>' reference.
 	 * @see #getActivity()
 	 * @generated
 	 */
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Artifact.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Artifact.java
index ee193cc..ce324ee 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Artifact.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Artifact.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: Artifact.java,v 1.14 2007/10/23 15:54:22 jbruck Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -23,8 +22,8 @@
  * <!-- end-user-doc -->
  *
  * <!-- begin-model-doc -->
- * An artifact is the specification of a physical piece of information that is used or produced by a software development process, or by deployment and operation of a system. Examples of artifacts include model files, source files, scripts, and binary executable files, a table in a database system, a development deliverable, or a word-processing document, a mail message.
  * An artifact is the source of a deployment to a node.
+ * An artifact is the specification of a physical piece of information that is used or produced by a software development process, or by deployment and operation of a system. Examples of artifacts include model files, source files, scripts, and binary executable files, a table in a database system, a development deliverable, or a word-processing document, a mail message.
  * <!-- end-model-doc -->
  *
  * <p>
@@ -304,8 +303,8 @@
 	 * <p>
 	 * This feature subsets the following features:
 	 * <ul>
-	 *   <li>'{@link org.eclipse.uml2.uml.Classifier#getAttributes() <em>Attribute</em>}'</li>
 	 *   <li>'{@link org.eclipse.uml2.uml.Namespace#getOwnedMembers() <em>Owned Member</em>}'</li>
+	 *   <li>'{@link org.eclipse.uml2.uml.Classifier#getAttributes() <em>Attribute</em>}'</li>
 	 * </ul>
 	 * </p>
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Association.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Association.java
index b36ee58..71f49de 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Association.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Association.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: Association.java,v 1.16 2007/10/23 15:54:22 jbruck Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -27,6 +26,7 @@
  * <!-- end-user-doc -->
  *
  * <!-- begin-model-doc -->
+ * An association describes a set of tuples whose values refer to typed instances. An instance of an association is called a link.A link is a tuple with one value for each end of the association, where each value is an instance of the type of the end.
  * An association describes a set of tuples whose values refer to typed instances. An instance of an association is called a link. A link is a tuple with one value for each end of the association, where each value is an instance of the type of the end.
  * <!-- end-model-doc -->
  *
@@ -250,8 +250,8 @@
 	 * <p>
 	 * This feature subsets the following features:
 	 * <ul>
-	 *   <li>'{@link org.eclipse.uml2.uml.Classifier#getFeatures() <em>Feature</em>}'</li>
 	 *   <li>'{@link org.eclipse.uml2.uml.Association#getMemberEnds() <em>Member End</em>}'</li>
+	 *   <li>'{@link org.eclipse.uml2.uml.Classifier#getFeatures() <em>Feature</em>}'</li>
 	 *   <li>'{@link org.eclipse.uml2.uml.Namespace#getOwnedMembers() <em>Owned Member</em>}'</li>
 	 * </ul>
 	 * </p>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/BehavioralFeature.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/BehavioralFeature.java
index a53bde7..2b137b8 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/BehavioralFeature.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/BehavioralFeature.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: BehavioralFeature.java,v 1.16 2007/10/23 15:54:22 jbruck Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -24,8 +23,8 @@
  *
  * <!-- begin-model-doc -->
  * A behavioral feature is a feature of a classifier that specifies an aspect of the behavior of its instances.
- * A behavioral feature owns zero or more parameter sets.
  * A behavioral feature is implemented (realized) by a behavior. A behavioral feature specifies that a classifier will respond to a designated request by invoking its implementing method.
+ * A behavioral feature owns zero or more parameter sets.
  * <!-- end-model-doc -->
  *
  * <p>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Class.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Class.java
index 0f42a64..35409dd 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Class.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Class.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 205188
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: Class.java,v 1.18 2008/01/09 18:56:03 khussey Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -28,10 +27,10 @@
  * <!-- end-user-doc -->
  *
  * <!-- begin-model-doc -->
+ * A class may be designated as active (i.e., each of its instances having its own thread of control) or passive (i.e., each of its instances executing within the context of some other object). A class may also specify which signals the instances of this class handle.
  * A class describes a set of objects that share the same specifications of features, constraints, and semantics.
  * A class has the capability to have an internal structure and ports.
  * Class has derived association that indicates how it may be extended through one or more stereotypes. Stereotype is the only kind of metaclass that cannot be extended by stereotypes.
- * A class may be designated as active (i.e., each of its instances having its own thread of control) or passive (i.e., each of its instances executing within the context of some other object). A class may also specify which signals the instances of this class handle.
  * <!-- end-model-doc -->
  *
  * <p>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Classifier.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Classifier.java
index cdf932d..09877fa 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Classifier.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Classifier.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 205188
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: Classifier.java,v 1.24 2008/01/09 18:56:02 khussey Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -29,9 +28,9 @@
  *
  * <!-- begin-model-doc -->
  * A classifier is a classification of instances - it describes a set of instances that have features in common. A classifier can specify a generalization hierarchy by referencing its general classifiers.
- * A classifier has the capability to own collaboration uses. These collaboration uses link a collaboration with the classifier to give a description of the workings of the classifier.
- * Classifier is defined to be a kind of templateable element so that a classifier can be parameterized. It is also defined to be a kind of parameterable element so that a classifier can be a formal template parameter.
  * A classifier has the capability to own use cases. Although the owning classifier typically represents the subject to which the owned use cases apply, this is not necessarily the case. In principle, the same use case can be applied to multiple subjects, as identified by the subject association role of a use case.
+ * Classifier is defined to be a kind of templateable element so that a classifier can be parameterized. It is also defined to be a kind of parameterable element so that a classifier can be a formal template parameter.
+ * A classifier has the capability to own collaboration uses. These collaboration uses link a collaboration with the classifier to give a description of the workings of the classifier.
  * <!-- end-model-doc -->
  *
  * <p>
@@ -929,8 +928,8 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * <!-- begin-model-doc -->
-	 * The query inherit() defines how to inherit a set of elements. Here the operation is defined to inherit them all. It is intended to be redefined in circumstances where inheritance is affected by redefinition.
 	 * The inherit operation is overridden to exclude redefined properties.
+	 * The query inherit() defines how to inherit a set of elements. Here the operation is defined to inherit them all. It is intended to be redefined in circumstances where inheritance is affected by redefinition.
 	 * result = inhs
 	 * <!-- end-model-doc -->
 	 * @model ordered="false" inhsMany="true" inhsOrdered="false"
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Component.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Component.java
index d6415da..690f196 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Component.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Component.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: Component.java,v 1.27 2009/08/12 21:05:18 jbruck Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -25,8 +24,8 @@
  * <!-- end-user-doc -->
  *
  * <!-- begin-model-doc -->
- * A component represents a modular part of a system that encapsulates its contents and whose manifestation is replaceable within its environment.
  * In the namespace of a component, all model elements that are involved in or related to its definition are either owned or imported explicitly. This may include, for example, use cases and dependencies (e.g. mappings), packages, components, and artifacts.
+ * A component represents a modular part of a system that encapsulates its contents and whose manifestation is replaceable within its environment.
  * <!-- end-model-doc -->
  *
  * <p>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DataType.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DataType.java
index 2055fd6..a9ff47c 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DataType.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DataType.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: DataType.java,v 1.12 2007/10/23 15:54:22 jbruck Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -48,8 +47,8 @@
 	 * <p>
 	 * This feature subsets the following features:
 	 * <ul>
-	 *   <li>'{@link org.eclipse.uml2.uml.Classifier#getAttributes() <em>Attribute</em>}'</li>
 	 *   <li>'{@link org.eclipse.uml2.uml.Namespace#getOwnedMembers() <em>Owned Member</em>}'</li>
+	 *   <li>'{@link org.eclipse.uml2.uml.Classifier#getAttributes() <em>Attribute</em>}'</li>
 	 * </ul>
 	 * </p>
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Deployment.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Deployment.java
index 4318df9..cb08633 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Deployment.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Deployment.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: Deployment.java,v 1.11 2007/10/23 15:54:21 jbruck Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -154,8 +153,8 @@
 	 * <p>
 	 * This feature subsets the following features:
 	 * <ul>
-	 *   <li>'{@link org.eclipse.uml2.uml.Dependency#getClients() <em>Client</em>}'</li>
 	 *   <li>'{@link org.eclipse.uml2.uml.Element#getOwner() <em>Owner</em>}'</li>
+	 *   <li>'{@link org.eclipse.uml2.uml.Dependency#getClients() <em>Client</em>}'</li>
 	 * </ul>
 	 * </p>
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ElementImport.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ElementImport.java
index ed3a2dd..912856b 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ElementImport.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ElementImport.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ElementImport.java,v 1.11 2007/10/23 15:54:21 jbruck Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -161,8 +160,8 @@
 	 * <p>
 	 * This feature subsets the following features:
 	 * <ul>
-	 *   <li>'{@link org.eclipse.uml2.uml.DirectedRelationship#getSources() <em>Source</em>}'</li>
 	 *   <li>'{@link org.eclipse.uml2.uml.Element#getOwner() <em>Owner</em>}'</li>
+	 *   <li>'{@link org.eclipse.uml2.uml.DirectedRelationship#getSources() <em>Source</em>}'</li>
 	 * </ul>
 	 * </p>
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExecutableNode.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExecutableNode.java
index 207d477..5005fa7 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExecutableNode.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExecutableNode.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation, CEA, and others.
  * 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
@@ -7,8 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
+ *   Kenn Hussey (CEA) - 351774
  *
- * $Id: ExecutableNode.java,v 1.8 2007/10/23 15:54:22 jbruck Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -21,6 +21,7 @@
  *
  * <!-- begin-model-doc -->
  * An executable node is an abstract class for activity nodes that may be executed. It is used as an attachment point for exception handlers.
+ * An executable node is an abstract class for activity nodes that may be executed. It is used as an attachment point for exception handlers.
  * <!-- end-model-doc -->
  *
  * <p>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Expression.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Expression.java
index ccff130..755c4d4 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Expression.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Expression.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: Expression.java,v 1.10 2007/10/23 15:54:21 jbruck Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -23,8 +22,8 @@
  * <!-- end-user-doc -->
  *
  * <!-- begin-model-doc -->
- * An expression represents a node in an expression tree, which may be non-terminal or terminal. It defines a symbol, and has a possibly empty sequence of operands which are value specifications.
  * An expression is a structured tree of symbols that denotes a (possibly empty) set of values when evaluated in a context.
+ * An expression represents a node in an expression tree, which may be non-terminal or terminal. It defines a symbol, and has a possibly empty sequence of operands which are value specifications.
  * <!-- end-model-doc -->
  *
  * <p>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Extend.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Extend.java
index 47442a7..414b3de 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Extend.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Extend.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: Extend.java,v 1.14 2007/10/23 15:54:21 jbruck Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -176,8 +175,8 @@
 	 * <p>
 	 * This feature subsets the following features:
 	 * <ul>
-	 *   <li>'{@link org.eclipse.uml2.uml.NamedElement#getNamespace() <em>Namespace</em>}'</li>
 	 *   <li>'{@link org.eclipse.uml2.uml.DirectedRelationship#getSources() <em>Source</em>}'</li>
+	 *   <li>'{@link org.eclipse.uml2.uml.NamedElement#getNamespace() <em>Namespace</em>}'</li>
 	 * </ul>
 	 * </p>
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Generalization.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Generalization.java
index 873c865..a1149c7 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Generalization.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Generalization.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: Generalization.java,v 1.15 2008/10/02 20:56:22 jbruck Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -149,8 +148,8 @@
 	 * <p>
 	 * This feature subsets the following features:
 	 * <ul>
-	 *   <li>'{@link org.eclipse.uml2.uml.DirectedRelationship#getSources() <em>Source</em>}'</li>
 	 *   <li>'{@link org.eclipse.uml2.uml.Element#getOwner() <em>Owner</em>}'</li>
+	 *   <li>'{@link org.eclipse.uml2.uml.DirectedRelationship#getSources() <em>Source</em>}'</li>
 	 * </ul>
 	 * </p>
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Include.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Include.java
index 452d6f6..7ffe5d2 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Include.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Include.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: Include.java,v 1.7 2007/10/23 15:54:22 jbruck Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -74,8 +73,8 @@
 	 * <p>
 	 * This feature subsets the following features:
 	 * <ul>
-	 *   <li>'{@link org.eclipse.uml2.uml.NamedElement#getNamespace() <em>Namespace</em>}'</li>
 	 *   <li>'{@link org.eclipse.uml2.uml.DirectedRelationship#getSources() <em>Source</em>}'</li>
+	 *   <li>'{@link org.eclipse.uml2.uml.NamedElement#getNamespace() <em>Namespace</em>}'</li>
 	 * </ul>
 	 * </p>
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InstanceSpecification.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InstanceSpecification.java
index 718f2a2..2880581 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InstanceSpecification.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InstanceSpecification.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation, CEA, and others.
  * 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
@@ -7,8 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
+ *   Kenn Hussey (CEA) - 351774
  *
- * $Id: InstanceSpecification.java,v 1.11 2007/10/23 15:54:22 jbruck Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -26,8 +26,8 @@
  * <!-- end-user-doc -->
  *
  * <!-- begin-model-doc -->
- * An instance specification is a model element that represents an instance in a modeled system.
  * An instance specification has the capability of being a deployment target in a deployment relationship, in the case that it is an instance of a node. It is also has the capability of being a deployed artifact, if it is an instance of an artifact.
+ * An instance specification is a model element that represents an instance in a modeled system.
  * <!-- end-model-doc -->
  *
  * <p>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Interface.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Interface.java
index cd1c9ec..e3234b0 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Interface.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Interface.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: Interface.java,v 1.14 2007/10/23 15:54:21 jbruck Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -27,9 +26,9 @@
  * <!-- end-user-doc -->
  *
  * <!-- begin-model-doc -->
+ * Since an interface specifies conformance characteristics, it does not own detailed behavior specifications. Instead, interfaces may own a protocol state machine that specifies event sequences and pre/post conditions for the operations and receptions described by the interface.
  * Interfaces may include receptions (in addition to operations).
  * An interface is a kind of classifier that represents a declaration of a set of coherent public features and obligations. An interface specifies a contract; any instance of a classifier that realizes the interface must fulfill that contract. The obligations that may be associated with an interface are in the form of various kinds of constraints (such as pre- and post-conditions) or protocol specifications, which may impose ordering restrictions on interactions through the interface.
- * Since an interface specifies conformance characteristics, it does not own detailed behavior specifications. Instead, interfaces may own a protocol state machine that specifies event sequences and pre/post conditions for the operations and receptions described by the interface.
  * <!-- end-model-doc -->
  *
  * <p>
@@ -37,10 +36,10 @@
  * <ul>
  *   <li>{@link org.eclipse.uml2.uml.Interface#getNestedClassifiers <em>Nested Classifier</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Interface#getOwnedAttributes <em>Owned Attribute</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Interface#getOwnedOperations <em>Owned Operation</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Interface#getOwnedReceptions <em>Owned Reception</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Interface#getProtocol <em>Protocol</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Interface#getRedefinedInterfaces <em>Redefined Interface</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Interface#getOwnedOperations <em>Owned Operation</em>}</li>
  * </ul>
  * </p>
  *
@@ -58,8 +57,8 @@
 	 * <p>
 	 * This feature subsets the following features:
 	 * <ul>
-	 *   <li>'{@link org.eclipse.uml2.uml.Classifier#getAttributes() <em>Attribute</em>}'</li>
 	 *   <li>'{@link org.eclipse.uml2.uml.Namespace#getOwnedMembers() <em>Owned Member</em>}'</li>
+	 *   <li>'{@link org.eclipse.uml2.uml.Classifier#getAttributes() <em>Attribute</em>}'</li>
 	 * </ul>
 	 * </p>
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InterfaceRealization.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InterfaceRealization.java
index 4310b19..b51a85a 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InterfaceRealization.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InterfaceRealization.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: InterfaceRealization.java,v 1.4 2007/10/23 15:54:22 jbruck Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -74,8 +73,8 @@
 	 * <p>
 	 * This feature subsets the following features:
 	 * <ul>
-	 *   <li>'{@link org.eclipse.uml2.uml.Dependency#getClients() <em>Client</em>}'</li>
 	 *   <li>'{@link org.eclipse.uml2.uml.Element#getOwner() <em>Owner</em>}'</li>
+	 *   <li>'{@link org.eclipse.uml2.uml.Dependency#getClients() <em>Client</em>}'</li>
 	 * </ul>
 	 * </p>
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InvocationAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InvocationAction.java
index eb6d584..3b577bc 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InvocationAction.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InvocationAction.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: InvocationAction.java,v 1.11 2007/10/23 15:54:20 jbruck Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -27,8 +26,8 @@
  * <!-- end-user-doc -->
  *
  * <!-- begin-model-doc -->
- * In addition to targeting an object, invocation actions can also invoke behavioral features on ports from where the invocation requests are routed onwards on links deriving from attached connectors. Invocation actions may also be sent to a target via a given port, either on the sending object or on another object.
  * InvocationAction is an abstract class for the various actions that invoke behavior.
+ * In addition to targeting an object, invocation actions can also invoke behavioral features on ports from where the invocation requests are routed onwards on links deriving from attached connectors. Invocation actions may also be sent to a target via a given port, either on the sending object or on another object.
  * <!-- end-model-doc -->
  *
  * <p>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/MultiplicityElement.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/MultiplicityElement.java
index 6c18ba0..207ae96 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/MultiplicityElement.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/MultiplicityElement.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: MultiplicityElement.java,v 1.19 2008/10/02 20:56:22 jbruck Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -304,8 +303,8 @@
 	 * <!-- end-user-doc -->
 	 * <!-- begin-model-doc -->
 	 * The query isMultivalued() checks whether this multiplicity has an upper bound greater than one.
-	 * upperBound()->notEmpty()
 	 * result = upperBound() > 1
+	 * upperBound()->notEmpty()
 	 * <!-- end-model-doc -->
 	 * @model kind="operation" dataType="org.eclipse.uml2.types.Boolean" required="true" ordered="false"
 	 * @generated
@@ -330,8 +329,8 @@
 	 * <!-- end-user-doc -->
 	 * <!-- begin-model-doc -->
 	 * The query includesMultiplicity() checks whether this multiplicity includes all the cardinalities allowed by the specified multiplicity.
-	 * self.upperBound()->notEmpty() and self.lowerBound()->notEmpty() and M.upperBound()->notEmpty() and M.lowerBound()->notEmpty()
 	 * result = (self.lowerBound() <= M.lowerBound()) and (self.upperBound() >= M.upperBound())
+	 * self.upperBound()->notEmpty() and self.lowerBound()->notEmpty() and M.upperBound()->notEmpty() and M.lowerBound()->notEmpty()
 	 * <!-- end-model-doc -->
 	 * @model dataType="org.eclipse.uml2.types.Boolean" required="true" ordered="false" MRequired="true" MOrdered="false"
 	 * @generated
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Namespace.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Namespace.java
index 953be0c..b555662 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Namespace.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Namespace.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 205188
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: Namespace.java,v 1.18 2009/08/12 21:05:18 jbruck Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -443,8 +442,8 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * <!-- begin-model-doc -->
-	 * The query getNamesOfMember() takes importing into account. It gives back the set of names that an element would have in an importing namespace, either because it is owned, or if not owned then imported individually, or if not individually then from a package.
 	 * The query getNamesOfMember() gives a set of all of the names that a member would have in a Namespace. In general a member can have multiple names in a Namespace if it is imported more than once with different aliases. The query takes account of importing. It gives back the set of names that an element would have in an importing namespace, either because it is owned, or if not owned then imported individually, or if not individually then from a package.
+	 * The query getNamesOfMember() takes importing into account. It gives back the set of names that an element would have in an importing namespace, either because it is owned, or if not owned then imported individually, or if not individually then from a package.
 	 * result = if self.ownedMember ->includes(element)
 	 * then Set{}->include(element.name)
 	 * else let elementImports: ElementImport = self.elementImport->select(ei | ei.importedElement = element) in
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ObjectNode.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ObjectNode.java
index 59b110a..feedc3a 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ObjectNode.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ObjectNode.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ObjectNode.java,v 1.13 2007/10/23 15:54:21 jbruck Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -27,8 +26,8 @@
  * <!-- end-user-doc -->
  *
  * <!-- begin-model-doc -->
- * Object nodes have support for token selection, limitation on the number of tokens, specifying the state required for tokens, and carrying control values.
  * An object node is an abstract activity node that is part of defining object flow in an activity.
+ * Object nodes have support for token selection, limitation on the number of tokens, specifying the state required for tokens, and carrying control values.
  * <!-- end-model-doc -->
  *
  * <p>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/OpaqueExpression.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/OpaqueExpression.java
index c9f71e6..ded51a7 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/OpaqueExpression.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/OpaqueExpression.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: OpaqueExpression.java,v 1.14 2007/06/12 12:53:18 khussey Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -252,8 +251,8 @@
 	 * <!-- end-user-doc -->
 	 * <!-- begin-model-doc -->
 	 * The query isNonNegative() tells whether an integer expression has a non-negative value.
-	 * self.isIntegral()
 	 * result = false
+	 * self.isIntegral()
 	 * <!-- end-model-doc -->
 	 * @model kind="operation" dataType="org.eclipse.uml2.types.Boolean" required="true" ordered="false"
 	 * @generated
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Operation.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Operation.java
index 3c55e13..f9bc115 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Operation.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Operation.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: Operation.java,v 1.21 2009/08/12 21:05:18 jbruck Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -27,18 +26,18 @@
  * <!-- end-user-doc -->
  *
  * <!-- begin-model-doc -->
- * Operation specializes TemplateableElement in order to support specification of template operations and bound operations. Operation specializes ParameterableElement to specify that an operation can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template.
- * An operation may invoke both the execution of method behaviors as well as other behavioral responses.
  * An operation is a behavioral feature of a classifier that specifies the name, type, parameters, and constraints for invoking an associated behavior.
+ * An operation may invoke both the execution of method behaviors as well as other behavioral responses.
+ * Operation specializes TemplateableElement in order to support specification of template operations and bound operations. Operation specializes ParameterableElement to specify that an operation can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template.
  * <!-- end-model-doc -->
  *
  * <p>
  * The following features are supported:
  * <ul>
+ *   <li>{@link org.eclipse.uml2.uml.Operation#getInterface <em>Interface</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Operation#getBodyCondition <em>Body Condition</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Operation#getClass_ <em>Class</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Operation#getDatatype <em>Datatype</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Operation#getInterface <em>Interface</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Operation#isOrdered <em>Is Ordered</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Operation#isQuery <em>Is Query</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Operation#isUnique <em>Is Unique</em>}</li>
@@ -106,8 +105,8 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * <!-- begin-model-doc -->
-	 * This information is derived from the return result for this Operation.
 	 * Specifies whether the return parameter is unique or not, if present.
+	 * This information is derived from the return result for this Operation.
 	 * <!-- end-model-doc -->
 	 * @return the value of the '<em>Is Unique</em>' attribute.
 	 * @see org.eclipse.uml2.uml.UMLPackage#getOperation_IsUnique()
@@ -122,8 +121,8 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * <!-- begin-model-doc -->
-	 * Specifies the lower multiplicity of the return parameter, if present.
 	 * This information is derived from the return result for this Operation.
+	 * Specifies the lower multiplicity of the return parameter, if present.
 	 * <!-- end-model-doc -->
 	 * @return the value of the '<em>Lower</em>' attribute.
 	 * @see org.eclipse.uml2.uml.UMLPackage#getOperation_Lower()
@@ -138,8 +137,8 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * <!-- begin-model-doc -->
-	 * Specifies the upper multiplicity of the return parameter, if present.
 	 * This information is derived from the return result for this Operation.
+	 * Specifies the upper multiplicity of the return parameter, if present.
 	 * <!-- end-model-doc -->
 	 * @return the value of the '<em>Upper</em>' attribute.
 	 * @see org.eclipse.uml2.uml.UMLPackage#getOperation_Upper()
@@ -155,8 +154,8 @@
 	 * This feature subsets the following features:
 	 * <ul>
 	 *   <li>'{@link org.eclipse.uml2.uml.Feature#getFeaturingClassifiers() <em>Featuring Classifier</em>}'</li>
-	 *   <li>'{@link org.eclipse.uml2.uml.NamedElement#getNamespace() <em>Namespace</em>}'</li>
 	 *   <li>'{@link org.eclipse.uml2.uml.RedefinableElement#getRedefinitionContexts() <em>Redefinition Context</em>}'</li>
+	 *   <li>'{@link org.eclipse.uml2.uml.NamedElement#getNamespace() <em>Namespace</em>}'</li>
 	 * </ul>
 	 * </p>
 	 * <!-- begin-user-doc -->
@@ -381,8 +380,8 @@
 	 * This feature subsets the following features:
 	 * <ul>
 	 *   <li>'{@link org.eclipse.uml2.uml.Feature#getFeaturingClassifiers() <em>Featuring Classifier</em>}'</li>
-	 *   <li>'{@link org.eclipse.uml2.uml.NamedElement#getNamespace() <em>Namespace</em>}'</li>
 	 *   <li>'{@link org.eclipse.uml2.uml.RedefinableElement#getRedefinitionContexts() <em>Redefinition Context</em>}'</li>
+	 *   <li>'{@link org.eclipse.uml2.uml.NamedElement#getNamespace() <em>Namespace</em>}'</li>
 	 * </ul>
 	 * </p>
 	 * <!-- begin-user-doc -->
@@ -485,8 +484,8 @@
 	 * This feature subsets the following features:
 	 * <ul>
 	 *   <li>'{@link org.eclipse.uml2.uml.Feature#getFeaturingClassifiers() <em>Featuring Classifier</em>}'</li>
-	 *   <li>'{@link org.eclipse.uml2.uml.NamedElement#getNamespace() <em>Namespace</em>}'</li>
 	 *   <li>'{@link org.eclipse.uml2.uml.RedefinableElement#getRedefinitionContexts() <em>Redefinition Context</em>}'</li>
+	 *   <li>'{@link org.eclipse.uml2.uml.NamedElement#getNamespace() <em>Namespace</em>}'</li>
 	 * </ul>
 	 * </p>
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Package.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Package.java
index caf5c08..1df68a9 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Package.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Package.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: Package.java,v 1.23 2009/08/12 21:05:18 jbruck Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -693,10 +692,10 @@
 	 * <!-- end-user-doc -->
 	 * <!-- begin-model-doc -->
 	 * The query makesVisible() defines whether a Package makes an element visible outside itself. Elements with no visibility and elements with public visibility are made visible.
-	 * self.member->includes(el)
 	 * result = (ownedMember->includes(el)) or
 	 * (elementImport->select(ei|ei.importedElement = #public)->collect(ei|ei.importedElement)->includes(el)) or
 	 * (packageImport->select(pi|pi.visibility = #public)->collect(pi|pi.importedPackage.member->includes(el))->notEmpty())
+	 * self.member->includes(el)
 	 * <!-- end-model-doc -->
 	 * @model dataType="org.eclipse.uml2.types.Boolean" required="true" ordered="false" elRequired="true" elOrdered="false"
 	 * @generated
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/PackageImport.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/PackageImport.java
index a1b3511..a87857d 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/PackageImport.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/PackageImport.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: PackageImport.java,v 1.12 2009/08/12 21:05:18 jbruck Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -108,8 +107,8 @@
 	 * <p>
 	 * This feature subsets the following features:
 	 * <ul>
-	 *   <li>'{@link org.eclipse.uml2.uml.DirectedRelationship#getSources() <em>Source</em>}'</li>
 	 *   <li>'{@link org.eclipse.uml2.uml.Element#getOwner() <em>Owner</em>}'</li>
+	 *   <li>'{@link org.eclipse.uml2.uml.DirectedRelationship#getSources() <em>Source</em>}'</li>
 	 * </ul>
 	 * </p>
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/PackageMerge.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/PackageMerge.java
index 0c180e6..d7764b2 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/PackageMerge.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/PackageMerge.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2009 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation, CEA, and others.
  * 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
@@ -7,8 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
+ *   Kenn Hussey (CEA) - 351774
  *
- * $Id: PackageMerge.java,v 1.9 2009/08/12 21:05:19 jbruck Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -73,8 +73,8 @@
 	 * <p>
 	 * This feature subsets the following features:
 	 * <ul>
-	 *   <li>'{@link org.eclipse.uml2.uml.DirectedRelationship#getSources() <em>Source</em>}'</li>
 	 *   <li>'{@link org.eclipse.uml2.uml.Element#getOwner() <em>Owner</em>}'</li>
+	 *   <li>'{@link org.eclipse.uml2.uml.DirectedRelationship#getSources() <em>Source</em>}'</li>
 	 * </ul>
 	 * </p>
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/PackageableElement.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/PackageableElement.java
index fb50383..1392293 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/PackageableElement.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/PackageableElement.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation, CEA, and others.
  * 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
@@ -7,8 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
+ *   Kenn Hussey (CEA) - 351774
  *
- * $Id: PackageableElement.java,v 1.3 2007/02/14 19:57:26 khussey Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -18,8 +18,8 @@
  * <!-- end-user-doc -->
  *
  * <!-- begin-model-doc -->
- * A packageable element indicates a named element that may be owned directly by a package.
  * Packageable elements are able to serve as a template parameter.
+ * A packageable element indicates a named element that may be owned directly by a package.
  * <!-- end-model-doc -->
  *
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Parameter.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Parameter.java
index d9057dc..a6993b8 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Parameter.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Parameter.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: Parameter.java,v 1.21 2007/10/23 15:54:21 jbruck Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -27,9 +26,9 @@
  * <!-- end-user-doc -->
  *
  * <!-- begin-model-doc -->
+ * Parameters are allowed to be treated as connectable elements.
  * A parameter is a specification of an argument used to pass information into or out of an invocation of a behavioral feature.
  * Parameters have support for streaming, exceptions, and parameter sets.
- * Parameters are allowed to be treated as connectable elements.
  * <!-- end-model-doc -->
  *
  * <p>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Pin.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Pin.java
index 552379d..71e4295 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Pin.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Pin.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: Pin.java,v 1.6 2007/04/25 17:47:05 khussey Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -23,8 +22,8 @@
  * <!-- end-user-doc -->
  *
  * <!-- begin-model-doc -->
- * A pin is an object node for inputs and outputs to actions.
  * A pin is a typed element and multiplicity element that provides values to actions and accept result values from them.
+ * A pin is an object node for inputs and outputs to actions.
  * <!-- end-model-doc -->
  *
  * <p>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Port.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Port.java
index 3ab7f17..26770af 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Port.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Port.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: Port.java,v 1.11 2007/10/23 15:54:21 jbruck Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -25,8 +24,8 @@
  * <!-- end-user-doc -->
  *
  * <!-- begin-model-doc -->
- * A port is a property of a classifier that specifies a distinct interaction point between that classifier and its environment or between the (behavior of the) classifier and its internal parts. Ports are connected to properties of the classifier by connectors through which requests can be made to invoke the behavioral features of a classifier. A Port may specify the services a classifier provides (offers) to its environment as well as the services that a classifier expects (requires) of its environment.
  * A port has an associated protocol state machine.
+ * A port is a property of a classifier that specifies a distinct interaction point between that classifier and its environment or between the (behavior of the) classifier and its internal parts. Ports are connected to properties of the classifier by connectors through which requests can be made to invoke the behavioral features of a classifier. A Port may specify the services a classifier provides (offers) to its environment as well as the services that a classifier expects (requires) of its environment.
  * <!-- end-model-doc -->
  *
  * <p>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ProfileApplication.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ProfileApplication.java
index 7c76ccb..a523f85 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ProfileApplication.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ProfileApplication.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ProfileApplication.java,v 1.17 2009/08/12 21:05:18 jbruck Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -104,8 +103,8 @@
 	 * <p>
 	 * This feature subsets the following features:
 	 * <ul>
-	 *   <li>'{@link org.eclipse.uml2.uml.DirectedRelationship#getSources() <em>Source</em>}'</li>
 	 *   <li>'{@link org.eclipse.uml2.uml.Element#getOwner() <em>Owner</em>}'</li>
+	 *   <li>'{@link org.eclipse.uml2.uml.DirectedRelationship#getSources() <em>Source</em>}'</li>
 	 * </ul>
 	 * </p>
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Property.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Property.java
index 8e9aa2d..ca3e029 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Property.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Property.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: Property.java,v 1.30 2009/08/12 21:05:18 jbruck Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -28,17 +27,17 @@
  *
  * <!-- begin-model-doc -->
  * Property represents a declared state of one or more instances in terms of a named relationship to a value or values. When a property is an attribute of a classifier, the value or values are related to the instance of the classifier by being held in slots of the instance. When a property is an association end, the value or values are related to the instance or instances at the other end(s) of the association. The range of valid values represented by the property can be controlled by setting the property's type.
+ * A property is a structural feature of a classifier that characterizes instances of the classifier. A property related by ownedAttribute to a classifier (other than an association) represents an attribute and might also represent an association end. It relates an instance of the class to a value or set of values of the type of the attribute. A property related by memberEnd or its specializations to an association represents an end of the association. The type of the property is the type of the end of the association.
  * A property has the capability of being a deployment target in a deployment relationship. This enables modeling the deployment to hierarchical nodes that have properties functioning as internal parts.
  * Property specializes ParameterableElement to specify that a property can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template.
  * A property represents a set of instances that are owned by a containing classifier instance.
- * A property is a structural feature of a classifier that characterizes instances of the classifier. A property related by ownedAttribute to a classifier (other than an association) represents an attribute and might also represent an association end. It relates an instance of the class to a value or set of values of the type of the attribute. A property related by memberEnd or its specializations to an association represents an end of the association. The type of the property is the type of the end of the association.
  * <!-- end-model-doc -->
  *
  * <p>
  * The following features are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.Property#getDatatype <em>Datatype</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Property#getInterface <em>Interface</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Property#getDatatype <em>Datatype</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Property#getAggregation <em>Aggregation</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Property#getAssociationEnd <em>Association End</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Property#getQualifiers <em>Qualifier</em>}</li>
@@ -140,8 +139,8 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * <!-- begin-model-doc -->
-	 * Specifies whether the Property is derived, i.e., whether its value or values can be computed from other information.
 	 * If isDerived is true, the value of the attribute is derived from information elsewhere.
+	 * Specifies whether the Property is derived, i.e., whether its value or values can be computed from other information.
 	 * <!-- end-model-doc -->
 	 * @return the value of the '<em>Is Derived</em>' attribute.
 	 * @see #setIsDerived(boolean)
@@ -218,8 +217,8 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * <!-- begin-model-doc -->
-	 * A String that is evaluated to give a default value for the Property when an object of the owning Classifier is instantiated.
 	 * Specifies a String that represents a value to be used when no argument is supplied for the Property.
+	 * A String that is evaluated to give a default value for the Property when an object of the owning Classifier is instantiated.
 	 * <!-- end-model-doc -->
 	 * @return the value of the '<em>Default</em>' attribute.
 	 * @see #isSetDefault()
@@ -336,6 +335,7 @@
 	 * <!-- end-user-doc -->
 	 * <!-- begin-model-doc -->
 	 * References the Class that owns the Property.
+	 * References the Class that owns the Property.
 	 * <!-- end-model-doc -->
 	 * @return the value of the '<em>Class</em>' reference.
 	 * @see org.eclipse.uml2.uml.UMLPackage#getProperty_Class()
@@ -399,9 +399,9 @@
 	 * This feature subsets the following features:
 	 * <ul>
 	 *   <li>'{@link org.eclipse.uml2.uml.Feature#getFeaturingClassifiers() <em>Featuring Classifier</em>}'</li>
+	 *   <li>'{@link org.eclipse.uml2.uml.RedefinableElement#getRedefinitionContexts() <em>Redefinition Context</em>}'</li>
 	 *   <li>'{@link org.eclipse.uml2.uml.NamedElement#getNamespace() <em>Namespace</em>}'</li>
 	 *   <li>'{@link org.eclipse.uml2.uml.Property#getAssociation() <em>Association</em>}'</li>
-	 *   <li>'{@link org.eclipse.uml2.uml.RedefinableElement#getRedefinitionContexts() <em>Redefinition Context</em>}'</li>
 	 * </ul>
 	 * </p>
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ProtocolConformance.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ProtocolConformance.java
index 62385a6..679f155 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ProtocolConformance.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ProtocolConformance.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation, CEA, and others.
  * 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
@@ -7,8 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
+ *   Kenn Hussey (CEA) - 351774
  *
- * $Id: ProtocolConformance.java,v 1.7 2007/10/23 15:54:21 jbruck Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -73,8 +73,8 @@
 	 * <p>
 	 * This feature subsets the following features:
 	 * <ul>
-	 *   <li>'{@link org.eclipse.uml2.uml.DirectedRelationship#getSources() <em>Source</em>}'</li>
 	 *   <li>'{@link org.eclipse.uml2.uml.Element#getOwner() <em>Owner</em>}'</li>
+	 *   <li>'{@link org.eclipse.uml2.uml.DirectedRelationship#getSources() <em>Source</em>}'</li>
 	 * </ul>
 	 * </p>
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Signal.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Signal.java
index 7e58ea0..77275a6 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Signal.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Signal.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: Signal.java,v 1.10 2007/10/23 15:54:22 jbruck Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -46,8 +45,8 @@
 	 * <p>
 	 * This feature subsets the following features:
 	 * <ul>
-	 *   <li>'{@link org.eclipse.uml2.uml.Classifier#getAttributes() <em>Attribute</em>}'</li>
 	 *   <li>'{@link org.eclipse.uml2.uml.Namespace#getOwnedMembers() <em>Owned Member</em>}'</li>
+	 *   <li>'{@link org.eclipse.uml2.uml.Classifier#getAttributes() <em>Attribute</em>}'</li>
 	 * </ul>
 	 * </p>
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StructuralFeature.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StructuralFeature.java
index 3606e0f..8a950d4 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StructuralFeature.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StructuralFeature.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: StructuralFeature.java,v 1.4 2006/05/12 20:38:09 khussey Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -19,8 +18,8 @@
  * <!-- end-user-doc -->
  *
  * <!-- begin-model-doc -->
- * By specializing multiplicity element, it supports a multiplicity that specifies valid cardinalities for the collection of values associated with an instantiation of the structural feature.
  * A structural feature is a typed feature of a classifier that specifies the structure of instances of the classifier.
+ * By specializing multiplicity element, it supports a multiplicity that specifies valid cardinalities for the collection of values associated with an instantiation of the structural feature.
  * <!-- end-model-doc -->
  *
  * <p>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StructuredActivityNode.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StructuredActivityNode.java
index 2366890..f064225 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StructuredActivityNode.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StructuredActivityNode.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: StructuredActivityNode.java,v 1.17 2007/10/23 15:54:22 jbruck Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -27,8 +26,8 @@
  * <!-- end-user-doc -->
  *
  * <!-- begin-model-doc -->
- * Because of the concurrent nature of the execution of actions within and across activities, it can be difficult to guarantee the consistent access and modification of object memory. In order to avoid race conditions or other concurrency-related problems, it is sometimes necessary to isolate the effects of a group of actions from the effects of actions outside the group. This may be indicated by setting the mustIsolate attribute to true on a structured activity node. If a structured activity node is "isolated," then any object used by an action within the node cannot be accessed by any action outside the node until the structured activity node as a whole completes. Any concurrent actions that would result in accessing such objects are required to have their execution deferred until the completion of the node.
  * A structured activity node is an executable activity node that may have an expansion into subordinate nodes as an activity group. The subordinate nodes must belong to only one structured activity node, although they may be nested.
+ * Because of the concurrent nature of the execution of actions within and across activities, it can be difficult to guarantee the consistent access and modification of object memory. In order to avoid race conditions or other concurrency-related problems, it is sometimes necessary to isolate the effects of a group of actions from the effects of actions outside the group. This may be indicated by setting the mustIsolate attribute to true on a structured activity node. If a structured activity node is "isolated," then any object used by an action within the node cannot be accessed by any action outside the node until the structured activity node as a whole completes. Any concurrent actions that would result in accessing such objects are required to have their execution deferred until the completion of the node.
  * <!-- end-model-doc -->
  *
  * <p>
@@ -119,8 +118,8 @@
 	 * <p>
 	 * This feature subsets the following features:
 	 * <ul>
-	 *   <li>'{@link org.eclipse.uml2.uml.Element#getOwnedElements() <em>Owned Element</em>}'</li>
 	 *   <li>'{@link org.eclipse.uml2.uml.ActivityGroup#getContainedNodes() <em>Contained Node</em>}'</li>
+	 *   <li>'{@link org.eclipse.uml2.uml.Element#getOwnedElements() <em>Owned Element</em>}'</li>
 	 * </ul>
 	 * </p>
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StructuredClassifier.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StructuredClassifier.java
index 31ed595..6868f8e 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StructuredClassifier.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StructuredClassifier.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 205188
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: StructuredClassifier.java,v 1.12 2008/01/09 18:56:03 khussey Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -55,8 +54,8 @@
 	 * This feature subsets the following features:
 	 * <ul>
 	 *   <li>'{@link org.eclipse.uml2.uml.Classifier#getAttributes() <em>Attribute</em>}'</li>
-	 *   <li>'{@link org.eclipse.uml2.uml.StructuredClassifier#getRoles() <em>Role</em>}'</li>
 	 *   <li>'{@link org.eclipse.uml2.uml.Namespace#getOwnedMembers() <em>Owned Member</em>}'</li>
+	 *   <li>'{@link org.eclipse.uml2.uml.StructuredClassifier#getRoles() <em>Role</em>}'</li>
 	 * </ul>
 	 * </p>
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Substitution.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Substitution.java
index a747c72..f36bbc3 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Substitution.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Substitution.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: Substitution.java,v 1.5 2007/10/23 15:54:22 jbruck Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -74,8 +73,8 @@
 	 * <p>
 	 * This feature subsets the following features:
 	 * <ul>
-	 *   <li>'{@link org.eclipse.uml2.uml.Dependency#getClients() <em>Client</em>}'</li>
 	 *   <li>'{@link org.eclipse.uml2.uml.Element#getOwner() <em>Owner</em>}'</li>
+	 *   <li>'{@link org.eclipse.uml2.uml.Dependency#getClients() <em>Client</em>}'</li>
 	 * </ul>
 	 * </p>
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TemplateBinding.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TemplateBinding.java
index bbc067a..978bae6 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TemplateBinding.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TemplateBinding.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: TemplateBinding.java,v 1.14 2007/10/23 15:54:21 jbruck Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -114,8 +113,8 @@
 	 * <p>
 	 * This feature subsets the following features:
 	 * <ul>
-	 *   <li>'{@link org.eclipse.uml2.uml.DirectedRelationship#getSources() <em>Source</em>}'</li>
 	 *   <li>'{@link org.eclipse.uml2.uml.Element#getOwner() <em>Owner</em>}'</li>
+	 *   <li>'{@link org.eclipse.uml2.uml.DirectedRelationship#getSources() <em>Source</em>}'</li>
 	 * </ul>
 	 * </p>
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TemplateParameter.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TemplateParameter.java
index 955c2c1..0e17467 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TemplateParameter.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TemplateParameter.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: TemplateParameter.java,v 1.12 2007/10/23 15:54:20 jbruck Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -32,9 +31,9 @@
  * The following features are supported:
  * <ul>
  *   <li>{@link org.eclipse.uml2.uml.TemplateParameter#getDefault <em>Default</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.TemplateParameter#getOwnedDefault <em>Owned Default</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.TemplateParameter#getOwnedParameteredElement <em>Owned Parametered Element</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.TemplateParameter#getParameteredElement <em>Parametered Element</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.TemplateParameter#getOwnedDefault <em>Owned Default</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.TemplateParameter#getSignature <em>Signature</em>}</li>
  * </ul>
  * </p>
@@ -85,8 +84,8 @@
 	 * <p>
 	 * This feature subsets the following features:
 	 * <ul>
-	 *   <li>'{@link org.eclipse.uml2.uml.Element#getOwnedElements() <em>Owned Element</em>}'</li>
 	 *   <li>'{@link org.eclipse.uml2.uml.TemplateParameter#getParameteredElement() <em>Parametered Element</em>}'</li>
+	 *   <li>'{@link org.eclipse.uml2.uml.Element#getOwnedElements() <em>Owned Element</em>}'</li>
 	 * </ul>
 	 * </p>
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TemplateSignature.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TemplateSignature.java
index e92f28f..24dbdcb 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TemplateSignature.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TemplateSignature.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: TemplateSignature.java,v 1.14 2007/10/23 15:54:22 jbruck Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -101,8 +100,8 @@
 	 * <p>
 	 * This feature subsets the following features:
 	 * <ul>
-	 *   <li>'{@link org.eclipse.uml2.uml.Element#getOwnedElements() <em>Owned Element</em>}'</li>
 	 *   <li>'{@link org.eclipse.uml2.uml.TemplateSignature#getParameters() <em>Parameter</em>}'</li>
+	 *   <li>'{@link org.eclipse.uml2.uml.Element#getOwnedElements() <em>Owned Element</em>}'</li>
 	 * </ul>
 	 * </p>
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Trigger.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Trigger.java
index b367520..53ea69e 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Trigger.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Trigger.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation, CEA, and others.
  * 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
@@ -7,8 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
+ *   Kenn Hussey (CEA) - 351774
  *
- * $Id: Trigger.java,v 1.6 2007/06/12 12:53:16 khussey Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -20,8 +20,8 @@
  * <!-- end-user-doc -->
  *
  * <!-- begin-model-doc -->
- * A trigger relates an event to a behavior that may affect an instance of the classifier.
  * A trigger specification may be qualified by the port on which the event occurred.
+ * A trigger relates an event to a behavior that may affect an instance of the classifier.
  * <!-- end-model-doc -->
  *
  * <p>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TypedElement.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TypedElement.java
index 5dd132c..fefa92d 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TypedElement.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TypedElement.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: TypedElement.java,v 1.4 2006/06/07 21:39:13 khussey Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -19,8 +18,8 @@
  * <!-- end-user-doc -->
  *
  * <!-- begin-model-doc -->
- * A typed element has a type.
  * A typed element is a kind of named element that represents an element with a type.
+ * A typed element has a type.
  * <!-- end-model-doc -->
  *
  * <p>
@@ -42,8 +41,8 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * <!-- begin-model-doc -->
-	 * The type of the TypedElement.
 	 * This information is derived from the return result for this Operation.
+	 * The type of the TypedElement.
 	 * <!-- end-model-doc -->
 	 * @return the value of the '<em>Type</em>' reference.
 	 * @see #setType(Type)
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/UMLPackage.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/UMLPackage.java
index 477aba3..23fd7d2 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/UMLPackage.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/UMLPackage.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 208353, 205188, 204200
  *   Kenn Hussey - 286329
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: UMLPackage.java,v 1.32 2009/12/04 15:30:46 khussey Exp $
  */
 package org.eclipse.uml2.uml;
 
@@ -497,7 +496,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getRelationship()
 	 * @generated
 	 */
-	int RELATIONSHIP = 3;
+	int RELATIONSHIP = 24;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.DirectedRelationshipImpl <em>Directed Relationship</em>}' class.
@@ -507,7 +506,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getDirectedRelationship()
 	 * @generated
 	 */
-	int DIRECTED_RELATIONSHIP = 2;
+	int DIRECTED_RELATIONSHIP = 23;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.NamedElementImpl <em>Named Element</em>}' class.
@@ -517,7 +516,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getNamedElement()
 	 * @generated
 	 */
-	int NAMED_ELEMENT = 11;
+	int NAMED_ELEMENT = 12;
 
 	/**
 	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
@@ -952,22 +951,13 @@
 	int NAMED_ELEMENT___MUST_BE_OWNED = ELEMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 0;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int NAMED_ELEMENT___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 1;
+	int NAMED_ELEMENT___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 0;
 
 	/**
 	 * The operation id for the '<em>Validate Has No Qualified Name</em>' operation.
@@ -976,7 +966,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int NAMED_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 2;
+	int NAMED_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 2;
 
 	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
@@ -1085,7 +1084,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getPackageableElement()
 	 * @generated
 	 */
-	int PACKAGEABLE_ELEMENT = 23;
+	int PACKAGEABLE_ELEMENT = 2;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ValueSpecificationImpl <em>Value Specification</em>}' class.
@@ -1095,7 +1094,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getValueSpecification()
 	 * @generated
 	 */
-	int VALUE_SPECIFICATION = 20;
+	int VALUE_SPECIFICATION = 15;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.LiteralSpecificationImpl <em>Literal Specification</em>}' class.
@@ -1115,7 +1114,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getTypedElement()
 	 * @generated
 	 */
-	int TYPED_ELEMENT = 21;
+	int TYPED_ELEMENT = 16;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.DependencyImpl <em>Dependency</em>}' class.
@@ -1135,7 +1134,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getParameterableElement()
 	 * @generated
 	 */
-	int PARAMETERABLE_ELEMENT = 16;
+	int PARAMETERABLE_ELEMENT = 3;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.TemplateParameterImpl <em>Template Parameter</em>}' class.
@@ -1145,7 +1144,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getTemplateParameter()
 	 * @generated
 	 */
-	int TEMPLATE_PARAMETER = 15;
+	int TEMPLATE_PARAMETER = 21;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.TemplateSignatureImpl <em>Template Signature</em>}' class.
@@ -1155,7 +1154,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getTemplateSignature()
 	 * @generated
 	 */
-	int TEMPLATE_SIGNATURE = 14;
+	int TEMPLATE_SIGNATURE = 20;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.TemplateableElementImpl <em>Templateable Element</em>}' class.
@@ -1165,7 +1164,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getTemplateableElement()
 	 * @generated
 	 */
-	int TEMPLATEABLE_ELEMENT = 13;
+	int TEMPLATEABLE_ELEMENT = 19;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.TemplateBindingImpl <em>Template Binding</em>}' class.
@@ -1175,7 +1174,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getTemplateBinding()
 	 * @generated
 	 */
-	int TEMPLATE_BINDING = 17;
+	int TEMPLATE_BINDING = 22;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.TemplateParameterSubstitutionImpl <em>Template Parameter Substitution</em>}' class.
@@ -1185,7 +1184,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getTemplateParameterSubstitution()
 	 * @generated
 	 */
-	int TEMPLATE_PARAMETER_SUBSTITUTION = 18;
+	int TEMPLATE_PARAMETER_SUBSTITUTION = 25;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.NamespaceImpl <em>Namespace</em>}' class.
@@ -1195,7 +1194,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getNamespace()
 	 * @generated
 	 */
-	int NAMESPACE = 10;
+	int NAMESPACE = 11;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ElementImportImpl <em>Element Import</em>}' class.
@@ -1205,7 +1204,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getElementImport()
 	 * @generated
 	 */
-	int ELEMENT_IMPORT = 28;
+	int ELEMENT_IMPORT = 29;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.PackageImportImpl <em>Package Import</em>}' class.
@@ -1215,7 +1214,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getPackageImport()
 	 * @generated
 	 */
-	int PACKAGE_IMPORT = 29;
+	int PACKAGE_IMPORT = 30;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.PackageImpl <em>Package</em>}' class.
@@ -1225,7 +1224,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getPackage()
 	 * @generated
 	 */
-	int PACKAGE = 24;
+	int PACKAGE = 18;
 
 	/**
 	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
@@ -1678,15 +1677,6 @@
 	int PACKAGEABLE_ELEMENT___MUST_BE_OWNED = NAMED_ELEMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGEABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1705,6 +1695,15 @@
 	int PACKAGEABLE_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGEABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -2317,15 +2316,6 @@
 	int DEPENDENCY___MUST_BE_OWNED = PACKAGEABLE_ELEMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DEPENDENCY___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -2344,6 +2334,15 @@
 	int DEPENDENCY___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DEPENDENCY___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -2468,7 +2467,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getPackageMerge()
 	 * @generated
 	 */
-	int PACKAGE_MERGE = 25;
+	int PACKAGE_MERGE = 26;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.TypeImpl <em>Type</em>}' class.
@@ -2478,7 +2477,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getType()
 	 * @generated
 	 */
-	int TYPE = 22;
+	int TYPE = 17;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ProfileApplicationImpl <em>Profile Application</em>}' class.
@@ -2488,7 +2487,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getProfileApplication()
 	 * @generated
 	 */
-	int PROFILE_APPLICATION = 26;
+	int PROFILE_APPLICATION = 27;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ProfileImpl <em>Profile</em>}' class.
@@ -2498,7 +2497,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getProfile()
 	 * @generated
 	 */
-	int PROFILE = 27;
+	int PROFILE = 28;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl <em>Classifier</em>}' class.
@@ -2508,7 +2507,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getClassifier()
 	 * @generated
 	 */
-	int CLASSIFIER = 9;
+	int CLASSIFIER = 10;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.StructuredClassifierImpl <em>Structured Classifier</em>}' class.
@@ -2518,7 +2517,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getStructuredClassifier()
 	 * @generated
 	 */
-	int STRUCTURED_CLASSIFIER = 79;
+	int STRUCTURED_CLASSIFIER = 9;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.EncapsulatedClassifierImpl <em>Encapsulated Classifier</em>}' class.
@@ -2528,7 +2527,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getEncapsulatedClassifier()
 	 * @generated
 	 */
-	int ENCAPSULATED_CLASSIFIER = 92;
+	int ENCAPSULATED_CLASSIFIER = 8;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ClassImpl <em>Class</em>}' class.
@@ -2558,7 +2557,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getBehavioredClassifier()
 	 * @generated
 	 */
-	int BEHAVIORED_CLASSIFIER = 8;
+	int BEHAVIORED_CLASSIFIER = 50;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.RedefinableElementImpl <em>Redefinable Element</em>}' class.
@@ -2568,7 +2567,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getRedefinableElement()
 	 * @generated
 	 */
-	int REDEFINABLE_ELEMENT = 46;
+	int REDEFINABLE_ELEMENT = 37;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.GeneralizationImpl <em>Generalization</em>}' class.
@@ -2578,7 +2577,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getGeneralization()
 	 * @generated
 	 */
-	int GENERALIZATION = 81;
+	int GENERALIZATION = 83;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.GeneralizationSetImpl <em>Generalization Set</em>}' class.
@@ -2588,7 +2587,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getGeneralizationSet()
 	 * @generated
 	 */
-	int GENERALIZATION_SET = 82;
+	int GENERALIZATION_SET = 84;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.FeatureImpl <em>Feature</em>}' class.
@@ -2598,7 +2597,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getFeature()
 	 * @generated
 	 */
-	int FEATURE = 45;
+	int FEATURE = 36;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.UseCaseImpl <em>Use Case</em>}' class.
@@ -2608,7 +2607,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getUseCase()
 	 * @generated
 	 */
-	int USE_CASE = 84;
+	int USE_CASE = 86;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.IncludeImpl <em>Include</em>}' class.
@@ -2618,7 +2617,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInclude()
 	 * @generated
 	 */
-	int INCLUDE = 87;
+	int INCLUDE = 89;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ExtendImpl <em>Extend</em>}' class.
@@ -2628,7 +2627,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getExtend()
 	 * @generated
 	 */
-	int EXTEND = 85;
+	int EXTEND = 87;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ConstraintImpl <em>Constraint</em>}' class.
@@ -2638,7 +2637,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getConstraint()
 	 * @generated
 	 */
-	int CONSTRAINT = 50;
+	int CONSTRAINT = 66;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ExtensionPointImpl <em>Extension Point</em>}' class.
@@ -2648,7 +2647,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getExtensionPoint()
 	 * @generated
 	 */
-	int EXTENSION_POINT = 86;
+	int EXTENSION_POINT = 88;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.AbstractionImpl <em>Abstraction</em>}' class.
@@ -2668,7 +2667,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getRealization()
 	 * @generated
 	 */
-	int REALIZATION = 89;
+	int REALIZATION = 52;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.SubstitutionImpl <em>Substitution</em>}' class.
@@ -2678,7 +2677,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getSubstitution()
 	 * @generated
 	 */
-	int SUBSTITUTION = 88;
+	int SUBSTITUTION = 90;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.OpaqueExpressionImpl <em>Opaque Expression</em>}' class.
@@ -2698,7 +2697,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getConnectableElement()
 	 * @generated
 	 */
-	int CONNECTABLE_ELEMENT = 33;
+	int CONNECTABLE_ELEMENT = 38;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ParameterImpl <em>Parameter</em>}' class.
@@ -2708,7 +2707,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getParameter()
 	 * @generated
 	 */
-	int PARAMETER = 48;
+	int PARAMETER = 69;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.MultiplicityElementImpl <em>Multiplicity Element</em>}' class.
@@ -2728,7 +2727,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getConnectorEnd()
 	 * @generated
 	 */
-	int CONNECTOR_END = 34;
+	int CONNECTOR_END = 39;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.StructuralFeatureImpl <em>Structural Feature</em>}' class.
@@ -2738,7 +2737,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getStructuralFeature()
 	 * @generated
 	 */
-	int STRUCTURAL_FEATURE = 68;
+	int STRUCTURAL_FEATURE = 34;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.PropertyImpl <em>Property</em>}' class.
@@ -2748,7 +2747,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getProperty()
 	 * @generated
 	 */
-	int PROPERTY = 32;
+	int PROPERTY = 33;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.DeploymentTargetImpl <em>Deployment Target</em>}' class.
@@ -2758,7 +2757,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getDeploymentTarget()
 	 * @generated
 	 */
-	int DEPLOYMENT_TARGET = 37;
+	int DEPLOYMENT_TARGET = 41;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.DeploymentImpl <em>Deployment</em>}' class.
@@ -2768,7 +2767,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getDeployment()
 	 * @generated
 	 */
-	int DEPLOYMENT = 38;
+	int DEPLOYMENT = 42;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.DeployedArtifactImpl <em>Deployed Artifact</em>}' class.
@@ -2778,7 +2777,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getDeployedArtifact()
 	 * @generated
 	 */
-	int DEPLOYED_ARTIFACT = 41;
+	int DEPLOYED_ARTIFACT = 45;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ArtifactImpl <em>Artifact</em>}' class.
@@ -2788,7 +2787,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getArtifact()
 	 * @generated
 	 */
-	int ARTIFACT = 40;
+	int ARTIFACT = 44;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.DeploymentSpecificationImpl <em>Deployment Specification</em>}' class.
@@ -2798,7 +2797,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getDeploymentSpecification()
 	 * @generated
 	 */
-	int DEPLOYMENT_SPECIFICATION = 39;
+	int DEPLOYMENT_SPECIFICATION = 43;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ManifestationImpl <em>Manifestation</em>}' class.
@@ -2808,7 +2807,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getManifestation()
 	 * @generated
 	 */
-	int MANIFESTATION = 42;
+	int MANIFESTATION = 46;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.BehavioralFeatureImpl <em>Behavioral Feature</em>}' class.
@@ -2818,7 +2817,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getBehavioralFeature()
 	 * @generated
 	 */
-	int BEHAVIORAL_FEATURE = 44;
+	int BEHAVIORAL_FEATURE = 48;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.OperationImpl <em>Operation</em>}' class.
@@ -2828,7 +2827,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getOperation()
 	 * @generated
 	 */
-	int OPERATION = 43;
+	int OPERATION = 47;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.BehaviorImpl <em>Behavior</em>}' class.
@@ -2838,7 +2837,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getBehavior()
 	 * @generated
 	 */
-	int BEHAVIOR = 47;
+	int BEHAVIOR = 49;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ParameterSetImpl <em>Parameter Set</em>}' class.
@@ -2848,7 +2847,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getParameterSet()
 	 * @generated
 	 */
-	int PARAMETER_SET = 49;
+	int PARAMETER_SET = 70;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.DataTypeImpl <em>Data Type</em>}' class.
@@ -2858,7 +2857,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getDataType()
 	 * @generated
 	 */
-	int DATA_TYPE = 51;
+	int DATA_TYPE = 71;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InterfaceImpl <em>Interface</em>}' class.
@@ -2868,7 +2867,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInterface()
 	 * @generated
 	 */
-	int INTERFACE = 52;
+	int INTERFACE = 53;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ReceptionImpl <em>Reception</em>}' class.
@@ -2878,7 +2877,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getReception()
 	 * @generated
 	 */
-	int RECEPTION = 53;
+	int RECEPTION = 54;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.SignalImpl <em>Signal</em>}' class.
@@ -2888,7 +2887,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getSignal()
 	 * @generated
 	 */
-	int SIGNAL = 54;
+	int SIGNAL = 55;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.StateMachineImpl <em>State Machine</em>}' class.
@@ -2898,7 +2897,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getStateMachine()
 	 * @generated
 	 */
-	int STATE_MACHINE = 56;
+	int STATE_MACHINE = 57;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ProtocolStateMachineImpl <em>Protocol State Machine</em>}' class.
@@ -2908,7 +2907,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getProtocolStateMachine()
 	 * @generated
 	 */
-	int PROTOCOL_STATE_MACHINE = 55;
+	int PROTOCOL_STATE_MACHINE = 56;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.RegionImpl <em>Region</em>}' class.
@@ -2918,7 +2917,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getRegion()
 	 * @generated
 	 */
-	int REGION = 59;
+	int REGION = 60;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.VertexImpl <em>Vertex</em>}' class.
@@ -2928,7 +2927,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getVertex()
 	 * @generated
 	 */
-	int VERTEX = 58;
+	int VERTEX = 59;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.TransitionImpl <em>Transition</em>}' class.
@@ -2938,7 +2937,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getTransition()
 	 * @generated
 	 */
-	int TRANSITION = 65;
+	int TRANSITION = 67;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.TriggerImpl <em>Trigger</em>}' class.
@@ -2948,7 +2947,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getTrigger()
 	 * @generated
 	 */
-	int TRIGGER = 62;
+	int TRIGGER = 63;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.EventImpl <em>Event</em>}' class.
@@ -2958,7 +2957,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getEvent()
 	 * @generated
 	 */
-	int EVENT = 63;
+	int EVENT = 64;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.PortImpl <em>Port</em>}' class.
@@ -2968,7 +2967,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getPort()
 	 * @generated
 	 */
-	int PORT = 64;
+	int PORT = 65;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.StateImpl <em>State</em>}' class.
@@ -2978,7 +2977,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getState()
 	 * @generated
 	 */
-	int STATE = 60;
+	int STATE = 61;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ConnectionPointReferenceImpl <em>Connection Point Reference</em>}' class.
@@ -2988,7 +2987,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getConnectionPointReference()
 	 * @generated
 	 */
-	int CONNECTION_POINT_REFERENCE = 61;
+	int CONNECTION_POINT_REFERENCE = 62;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.PseudostateImpl <em>Pseudostate</em>}' class.
@@ -2998,7 +2997,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getPseudostate()
 	 * @generated
 	 */
-	int PSEUDOSTATE = 57;
+	int PSEUDOSTATE = 58;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ProtocolConformanceImpl <em>Protocol Conformance</em>}' class.
@@ -3008,7 +3007,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getProtocolConformance()
 	 * @generated
 	 */
-	int PROTOCOL_CONFORMANCE = 66;
+	int PROTOCOL_CONFORMANCE = 68;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.OperationTemplateParameterImpl <em>Operation Template Parameter</em>}' class.
@@ -3018,7 +3017,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getOperationTemplateParameter()
 	 * @generated
 	 */
-	int OPERATION_TEMPLATE_PARAMETER = 67;
+	int OPERATION_TEMPLATE_PARAMETER = 72;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.AssociationImpl <em>Association</em>}' class.
@@ -3028,7 +3027,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getAssociation()
 	 * @generated
 	 */
-	int ASSOCIATION = 31;
+	int ASSOCIATION = 32;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ConnectableElementTemplateParameterImpl <em>Connectable Element Template Parameter</em>}' class.
@@ -3038,7 +3037,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getConnectableElementTemplateParameter()
 	 * @generated
 	 */
-	int CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER = 36;
+	int CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER = 40;
 
 	/**
 	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
@@ -3545,15 +3544,6 @@
 	int ABSTRACTION___MUST_BE_OWNED = DEPENDENCY___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ABSTRACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = DEPENDENCY___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -3572,6 +3562,15 @@
 	int ABSTRACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = DEPENDENCY___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ABSTRACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = DEPENDENCY___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -3689,400 +3688,1084 @@
 	int ABSTRACTION_OPERATION_COUNT = DEPENDENCY_OPERATION_COUNT + 0;
 
 	/**
-	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.CollaborationUseImpl <em>Collaboration Use</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.CollaborationUseImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getCollaborationUse()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP__EANNOTATIONS = ELEMENT__EANNOTATIONS;
+	int COLLABORATION_USE = 81;
 
 	/**
-	 * The feature id for the '<em><b>Owned Comment</b></em>' containment reference list.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.CollaborationImpl <em>Collaboration</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.CollaborationImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getCollaboration()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP__OWNED_COMMENT = ELEMENT__OWNED_COMMENT;
+	int COLLABORATION = 82;
 
 	/**
-	 * The feature id for the '<em><b>Owned Element</b></em>' reference list.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ConnectorImpl <em>Connector</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.ConnectorImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getConnector()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP__OWNED_ELEMENT = ELEMENT__OWNED_ELEMENT;
+	int CONNECTOR = 92;
 
 	/**
-	 * The feature id for the '<em><b>Owner</b></em>' reference.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.RedefinableTemplateSignatureImpl <em>Redefinable Template Signature</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.RedefinableTemplateSignatureImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getRedefinableTemplateSignature()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP__OWNER = ELEMENT__OWNER;
+	int REDEFINABLE_TEMPLATE_SIGNATURE = 85;
 
 	/**
-	 * The feature id for the '<em><b>Related Element</b></em>' reference list.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ClassifierTemplateParameterImpl <em>Classifier Template Parameter</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.ClassifierTemplateParameterImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getClassifierTemplateParameter()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP__RELATED_ELEMENT = ELEMENT_FEATURE_COUNT + 0;
+	int CLASSIFIER_TEMPLATE_PARAMETER = 91;
 
 	/**
-	 * The number of structural features of the '<em>Relationship</em>' class.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InterfaceRealizationImpl <em>Interface Realization</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.InterfaceRealizationImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInterfaceRealization()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 1;
+	int INTERFACE_REALIZATION = 51;
 
 	/**
-	 * The operation id for the '<em>Get EAnnotation</em>' operation.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ExtensionImpl <em>Extension</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.ExtensionImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getExtension()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP___GET_EANNOTATION__STRING = ELEMENT___GET_EANNOTATION__STRING;
+	int EXTENSION = 31;
 
 	/**
-	 * The operation id for the '<em>Validate Has Owner</em>' operation.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ExtensionEndImpl <em>Extension End</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.ExtensionEndImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getExtensionEnd()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP = ELEMENT___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP;
+	int EXTENSION_END = 73;
 
 	/**
-	 * The operation id for the '<em>Validate Not Own Self</em>' operation.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ImageImpl <em>Image</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.ImageImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getImage()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP = ELEMENT___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP;
+	int IMAGE = 93;
 
 	/**
-	 * The operation id for the '<em>Add Keyword</em>' operation.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ExpressionImpl <em>Expression</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.ExpressionImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getExpression()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP___ADD_KEYWORD__STRING = ELEMENT___ADD_KEYWORD__STRING;
+	int EXPRESSION = 14;
 
 	/**
-	 * The operation id for the '<em>Apply Stereotype</em>' operation.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.StringExpressionImpl <em>String Expression</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.StringExpressionImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getStringExpression()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP___APPLY_STEREOTYPE__STEREOTYPE = ELEMENT___APPLY_STEREOTYPE__STEREOTYPE;
+	int STRING_EXPRESSION = 13;
 
 	/**
-	 * The operation id for the '<em>Create EAnnotation</em>' operation.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.LiteralIntegerImpl <em>Literal Integer</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.LiteralIntegerImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getLiteralInteger()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP___CREATE_EANNOTATION__STRING = ELEMENT___CREATE_EANNOTATION__STRING;
+	int LITERAL_INTEGER = 203;
 
 	/**
-	 * The operation id for the '<em>Destroy</em>' operation.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.LiteralStringImpl <em>Literal String</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.LiteralStringImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getLiteralString()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP___DESTROY = ELEMENT___DESTROY;
+	int LITERAL_STRING = 206;
 
 	/**
-	 * The operation id for the '<em>Get Keywords</em>' operation.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.LiteralBooleanImpl <em>Literal Boolean</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.LiteralBooleanImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getLiteralBoolean()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP___GET_KEYWORDS = ELEMENT___GET_KEYWORDS;
+	int LITERAL_BOOLEAN = 201;
 
 	/**
-	 * The operation id for the '<em>Get Applicable Stereotype</em>' operation.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.LiteralNullImpl <em>Literal Null</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.LiteralNullImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getLiteralNull()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP___GET_APPLICABLE_STEREOTYPE__STRING = ELEMENT___GET_APPLICABLE_STEREOTYPE__STRING;
+	int LITERAL_NULL = 204;
 
 	/**
-	 * The operation id for the '<em>Get Applicable Stereotypes</em>' operation.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.SlotImpl <em>Slot</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.SlotImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getSlot()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP___GET_APPLICABLE_STEREOTYPES = ELEMENT___GET_APPLICABLE_STEREOTYPES;
+	int SLOT = 78;
 
 	/**
-	 * The operation id for the '<em>Get Applied Stereotype</em>' operation.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InstanceSpecificationImpl <em>Instance Specification</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.InstanceSpecificationImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInstanceSpecification()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP___GET_APPLIED_STEREOTYPE__STRING = ELEMENT___GET_APPLIED_STEREOTYPE__STRING;
+	int INSTANCE_SPECIFICATION = 77;
 
 	/**
-	 * The operation id for the '<em>Get Applied Stereotypes</em>' operation.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.EnumerationImpl <em>Enumeration</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.EnumerationImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getEnumeration()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP___GET_APPLIED_STEREOTYPES = ELEMENT___GET_APPLIED_STEREOTYPES;
+	int ENUMERATION = 75;
 
 	/**
-	 * The operation id for the '<em>Get Applied Substereotype</em>' operation.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.EnumerationLiteralImpl <em>Enumeration Literal</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.EnumerationLiteralImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getEnumerationLiteral()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING = ELEMENT___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING;
+	int ENUMERATION_LITERAL = 76;
 
 	/**
-	 * The operation id for the '<em>Get Applied Substereotypes</em>' operation.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.PrimitiveTypeImpl <em>Primitive Type</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.PrimitiveTypeImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getPrimitiveType()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE = ELEMENT___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE;
+	int PRIMITIVE_TYPE = 79;
 
 	/**
-	 * The operation id for the '<em>Get Model</em>' operation.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InstanceValueImpl <em>Instance Value</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.InstanceValueImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInstanceValue()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP___GET_MODEL = ELEMENT___GET_MODEL;
+	int INSTANCE_VALUE = 199;
 
 	/**
-	 * The operation id for the '<em>Get Nearest Package</em>' operation.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.LiteralUnlimitedNaturalImpl <em>Literal Unlimited Natural</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.LiteralUnlimitedNaturalImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getLiteralUnlimitedNatural()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP___GET_NEAREST_PACKAGE = ELEMENT___GET_NEAREST_PACKAGE;
+	int LITERAL_UNLIMITED_NATURAL = 207;
 
 	/**
-	 * The operation id for the '<em>Get Relationships</em>' operation.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.OpaqueBehaviorImpl <em>Opaque Behavior</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.OpaqueBehaviorImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getOpaqueBehavior()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP___GET_RELATIONSHIPS = ELEMENT___GET_RELATIONSHIPS;
+	int OPAQUE_BEHAVIOR = 195;
 
 	/**
-	 * The operation id for the '<em>Get Relationships</em>' operation.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.FunctionBehaviorImpl <em>Function Behavior</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.FunctionBehaviorImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getFunctionBehavior()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP___GET_RELATIONSHIPS__ECLASS = ELEMENT___GET_RELATIONSHIPS__ECLASS;
+	int FUNCTION_BEHAVIOR = 194;
 
 	/**
-	 * The operation id for the '<em>Get Required Stereotype</em>' operation.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ActorImpl <em>Actor</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.ActorImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getActor()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP___GET_REQUIRED_STEREOTYPE__STRING = ELEMENT___GET_REQUIRED_STEREOTYPE__STRING;
+	int ACTOR = 131;
 
 	/**
-	 * The operation id for the '<em>Get Required Stereotypes</em>' operation.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.UsageImpl <em>Usage</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.UsageImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getUsage()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP___GET_REQUIRED_STEREOTYPES = ELEMENT___GET_REQUIRED_STEREOTYPES;
+	int USAGE = 80;
 
 	/**
-	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.MessageImpl <em>Message</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.MessageImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getMessage()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP___GET_SOURCE_DIRECTED_RELATIONSHIPS = ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS;
+	int MESSAGE = 120;
 
 	/**
-	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.MessageEndImpl <em>Message End</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.MessageEndImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getMessageEnd()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS = ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS;
+	int MESSAGE_END = 119;
 
 	/**
-	 * The operation id for the '<em>Get Stereotype Application</em>' operation.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InteractionImpl <em>Interaction</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.InteractionImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInteraction()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP___GET_STEREOTYPE_APPLICATION__STEREOTYPE = ELEMENT___GET_STEREOTYPE_APPLICATION__STEREOTYPE;
+	int INTERACTION = 121;
 
 	/**
-	 * The operation id for the '<em>Get Stereotype Applications</em>' operation.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InteractionFragmentImpl <em>Interaction Fragment</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.InteractionFragmentImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInteractionFragment()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP___GET_STEREOTYPE_APPLICATIONS = ELEMENT___GET_STEREOTYPE_APPLICATIONS;
+	int INTERACTION_FRAGMENT = 114;
 
 	/**
-	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.LifelineImpl <em>Lifeline</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.LifelineImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getLifeline()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP___GET_TARGET_DIRECTED_RELATIONSHIPS = ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS;
+	int LIFELINE = 115;
 
 	/**
-	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InteractionUseImpl <em>Interaction Use</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.InteractionUseImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInteractionUse()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS = ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS;
+	int INTERACTION_USE = 117;
 
 	/**
-	 * The operation id for the '<em>Get Value</em>' operation.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.PartDecompositionImpl <em>Part Decomposition</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.PartDecompositionImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getPartDecomposition()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP___GET_VALUE__STEREOTYPE_STRING = ELEMENT___GET_VALUE__STEREOTYPE_STRING;
+	int PART_DECOMPOSITION = 116;
 
 	/**
-	 * The operation id for the '<em>Has Keyword</em>' operation.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.GateImpl <em>Gate</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.GateImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getGate()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP___HAS_KEYWORD__STRING = ELEMENT___HAS_KEYWORD__STRING;
+	int GATE = 118;
 
 	/**
-	 * The operation id for the '<em>Has Value</em>' operation.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ActivityNodeImpl <em>Activity Node</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.ActivityNodeImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getActivityNode()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP___HAS_VALUE__STEREOTYPE_STRING = ELEMENT___HAS_VALUE__STEREOTYPE_STRING;
+	int ACTIVITY_NODE = 99;
 
 	/**
-	 * The operation id for the '<em>Is Stereotype Applicable</em>' operation.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ExecutableNodeImpl <em>Executable Node</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.ExecutableNodeImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getExecutableNode()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP___IS_STEREOTYPE_APPLICABLE__STEREOTYPE = ELEMENT___IS_STEREOTYPE_APPLICABLE__STEREOTYPE;
+	int EXECUTABLE_NODE = 98;
 
 	/**
-	 * The operation id for the '<em>Is Stereotype Applied</em>' operation.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ActionImpl <em>Action</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.ActionImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getAction()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP___IS_STEREOTYPE_APPLIED__STEREOTYPE = ELEMENT___IS_STEREOTYPE_APPLIED__STEREOTYPE;
+	int ACTION = 97;
 
 	/**
-	 * The operation id for the '<em>Is Stereotype Required</em>' operation.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl <em>Activity Edge</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getActivityEdge()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP___IS_STEREOTYPE_REQUIRED__STEREOTYPE = ELEMENT___IS_STEREOTYPE_REQUIRED__STEREOTYPE;
+	int ACTIVITY_EDGE = 102;
 
 	/**
-	 * The operation id for the '<em>Remove Keyword</em>' operation.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ActivityImpl <em>Activity</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.ActivityImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getActivity()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP___REMOVE_KEYWORD__STRING = ELEMENT___REMOVE_KEYWORD__STRING;
+	int ACTIVITY = 100;
 
 	/**
-	 * The operation id for the '<em>Set Value</em>' operation.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ActivityPartitionImpl <em>Activity Partition</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.ActivityPartitionImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getActivityPartition()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP___SET_VALUE__STEREOTYPE_STRING_OBJECT = ELEMENT___SET_VALUE__STEREOTYPE_STRING_OBJECT;
+	int ACTIVITY_PARTITION = 103;
 
 	/**
-	 * The operation id for the '<em>Unapply Stereotype</em>' operation.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ActivityGroupImpl <em>Activity Group</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.ActivityGroupImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getActivityGroup()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP___UNAPPLY_STEREOTYPE__STEREOTYPE = ELEMENT___UNAPPLY_STEREOTYPE__STEREOTYPE;
+	int ACTIVITY_GROUP = 101;
 
 	/**
-	 * The operation id for the '<em>All Owned Elements</em>' operation.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl <em>Structured Activity Node</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getStructuredActivityNode()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP___ALL_OWNED_ELEMENTS = ELEMENT___ALL_OWNED_ELEMENTS;
+	int STRUCTURED_ACTIVITY_NODE = 104;
 
 	/**
-	 * The operation id for the '<em>Must Be Owned</em>' operation.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.VariableImpl <em>Variable</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.VariableImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getVariable()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP___MUST_BE_OWNED = ELEMENT___MUST_BE_OWNED;
+	int VARIABLE = 109;
 
 	/**
-	 * The number of operations of the '<em>Relationship</em>' class.
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InterruptibleActivityRegionImpl <em>Interruptible Activity Region</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.InterruptibleActivityRegionImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInterruptibleActivityRegion()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIONSHIP_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0;
+	int INTERRUPTIBLE_ACTIVITY_REGION = 110;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ExceptionHandlerImpl <em>Exception Handler</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.ExceptionHandlerImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getExceptionHandler()
+	 * @generated
+	 */
+	int EXCEPTION_HANDLER = 111;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ObjectNodeImpl <em>Object Node</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.ObjectNodeImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getObjectNode()
+	 * @generated
+	 */
+	int OBJECT_NODE = 107;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.PinImpl <em>Pin</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.PinImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getPin()
+	 * @generated
+	 */
+	int PIN = 106;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.OutputPinImpl <em>Output Pin</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.OutputPinImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getOutputPin()
+	 * @generated
+	 */
+	int OUTPUT_PIN = 108;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InputPinImpl <em>Input Pin</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.InputPinImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInputPin()
+	 * @generated
+	 */
+	int INPUT_PIN = 105;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.GeneralOrderingImpl <em>General Ordering</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.GeneralOrderingImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getGeneralOrdering()
+	 * @generated
+	 */
+	int GENERAL_ORDERING = 124;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.OccurrenceSpecificationImpl <em>Occurrence Specification</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.OccurrenceSpecificationImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getOccurrenceSpecification()
+	 * @generated
+	 */
+	int OCCURRENCE_SPECIFICATION = 125;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InteractionOperandImpl <em>Interaction Operand</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.InteractionOperandImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInteractionOperand()
+	 * @generated
+	 */
+	int INTERACTION_OPERAND = 122;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InteractionConstraintImpl <em>Interaction Constraint</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.InteractionConstraintImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInteractionConstraint()
+	 * @generated
+	 */
+	int INTERACTION_CONSTRAINT = 123;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ExecutionSpecificationImpl <em>Execution Specification</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.ExecutionSpecificationImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getExecutionSpecification()
+	 * @generated
+	 */
+	int EXECUTION_SPECIFICATION = 113;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ExecutionOccurrenceSpecificationImpl <em>Execution Occurrence Specification</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.ExecutionOccurrenceSpecificationImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getExecutionOccurrenceSpecification()
+	 * @generated
+	 */
+	int EXECUTION_OCCURRENCE_SPECIFICATION = 188;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.StateInvariantImpl <em>State Invariant</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.StateInvariantImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getStateInvariant()
+	 * @generated
+	 */
+	int STATE_INVARIANT = 232;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ActionExecutionSpecificationImpl <em>Action Execution Specification</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.ActionExecutionSpecificationImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getActionExecutionSpecification()
+	 * @generated
+	 */
+	int ACTION_EXECUTION_SPECIFICATION = 112;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.BehaviorExecutionSpecificationImpl <em>Behavior Execution Specification</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.BehaviorExecutionSpecificationImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getBehaviorExecutionSpecification()
+	 * @generated
+	 */
+	int BEHAVIOR_EXECUTION_SPECIFICATION = 141;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.MessageEventImpl <em>Message Event</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.MessageEventImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getMessageEvent()
+	 * @generated
+	 */
+	int MESSAGE_EVENT = 139;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.MessageOccurrenceSpecificationImpl <em>Message Occurrence Specification</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.MessageOccurrenceSpecificationImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getMessageOccurrenceSpecification()
+	 * @generated
+	 */
+	int MESSAGE_OCCURRENCE_SPECIFICATION = 177;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.CombinedFragmentImpl <em>Combined Fragment</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.CombinedFragmentImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getCombinedFragment()
+	 * @generated
+	 */
+	int COMBINED_FRAGMENT = 154;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ContinuationImpl <em>Continuation</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.ContinuationImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getContinuation()
+	 * @generated
+	 */
+	int CONTINUATION = 160;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ConsiderIgnoreFragmentImpl <em>Consider Ignore Fragment</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.ConsiderIgnoreFragmentImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getConsiderIgnoreFragment()
+	 * @generated
+	 */
+	int CONSIDER_IGNORE_FRAGMENT = 159;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.CallEventImpl <em>Call Event</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.CallEventImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getCallEvent()
+	 * @generated
+	 */
+	int CALL_EVENT = 146;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ChangeEventImpl <em>Change Event</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.ChangeEventImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getChangeEvent()
+	 * @generated
+	 */
+	int CHANGE_EVENT = 149;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.SignalEventImpl <em>Signal Event</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.SignalEventImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getSignalEvent()
+	 * @generated
+	 */
+	int SIGNAL_EVENT = 229;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.AnyReceiveEventImpl <em>Any Receive Event</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.AnyReceiveEventImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getAnyReceiveEvent()
+	 * @generated
+	 */
+	int ANY_RECEIVE_EVENT = 138;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.CreateObjectActionImpl <em>Create Object Action</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.CreateObjectActionImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getCreateObjectAction()
+	 * @generated
+	 */
+	int CREATE_OBJECT_ACTION = 169;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.DestroyObjectActionImpl <em>Destroy Object Action</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.DestroyObjectActionImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getDestroyObjectAction()
+	 * @generated
+	 */
+	int DESTROY_OBJECT_ACTION = 175;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.TestIdentityActionImpl <em>Test Identity Action</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.TestIdentityActionImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getTestIdentityAction()
+	 * @generated
+	 */
+	int TEST_IDENTITY_ACTION = 233;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ReadSelfActionImpl <em>Read Self Action</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.ReadSelfActionImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getReadSelfAction()
+	 * @generated
+	 */
+	int READ_SELF_ACTION = 218;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.StructuralFeatureActionImpl <em>Structural Feature Action</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.StructuralFeatureActionImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getStructuralFeatureAction()
+	 * @generated
+	 */
+	int STRUCTURAL_FEATURE_ACTION = 134;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ReadStructuralFeatureActionImpl <em>Read Structural Feature Action</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.ReadStructuralFeatureActionImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getReadStructuralFeatureAction()
+	 * @generated
+	 */
+	int READ_STRUCTURAL_FEATURE_ACTION = 219;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.WriteStructuralFeatureActionImpl <em>Write Structural Feature Action</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.WriteStructuralFeatureActionImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getWriteStructuralFeatureAction()
+	 * @generated
+	 */
+	int WRITE_STRUCTURAL_FEATURE_ACTION = 133;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ClearStructuralFeatureActionImpl <em>Clear Structural Feature Action</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.ClearStructuralFeatureActionImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getClearStructuralFeatureAction()
+	 * @generated
+	 */
+	int CLEAR_STRUCTURAL_FEATURE_ACTION = 152;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.RemoveStructuralFeatureValueActionImpl <em>Remove Structural Feature Value Action</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.RemoveStructuralFeatureValueActionImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getRemoveStructuralFeatureValueAction()
+	 * @generated
+	 */
+	int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION = 223;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.AddStructuralFeatureValueActionImpl <em>Add Structural Feature Value Action</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.AddStructuralFeatureValueActionImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getAddStructuralFeatureValueAction()
+	 * @generated
+	 */
+	int ADD_STRUCTURAL_FEATURE_VALUE_ACTION = 132;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.LinkActionImpl <em>Link Action</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.LinkActionImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getLinkAction()
+	 * @generated
+	 */
+	int LINK_ACTION = 164;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.LinkEndDataImpl <em>Link End Data</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.LinkEndDataImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getLinkEndData()
+	 * @generated
+	 */
+	int LINK_END_DATA = 165;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.QualifierValueImpl <em>Qualifier Value</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.QualifierValueImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getQualifierValue()
+	 * @generated
+	 */
+	int QUALIFIER_VALUE = 166;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ReadLinkActionImpl <em>Read Link Action</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.ReadLinkActionImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getReadLinkAction()
+	 * @generated
+	 */
+	int READ_LINK_ACTION = 215;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.LinkEndCreationDataImpl <em>Link End Creation Data</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.LinkEndCreationDataImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getLinkEndCreationData()
+	 * @generated
+	 */
+	int LINK_END_CREATION_DATA = 167;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.WriteLinkActionImpl <em>Write Link Action</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.WriteLinkActionImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getWriteLinkAction()
+	 * @generated
+	 */
+	int WRITE_LINK_ACTION = 163;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.CreateLinkActionImpl <em>Create Link Action</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.CreateLinkActionImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getCreateLinkAction()
+	 * @generated
+	 */
+	int CREATE_LINK_ACTION = 162;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.DestroyLinkActionImpl <em>Destroy Link Action</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.DestroyLinkActionImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getDestroyLinkAction()
+	 * @generated
+	 */
+	int DESTROY_LINK_ACTION = 173;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.LinkEndDestructionDataImpl <em>Link End Destruction Data</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.LinkEndDestructionDataImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getLinkEndDestructionData()
+	 * @generated
+	 */
+	int LINK_END_DESTRUCTION_DATA = 174;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ClearAssociationActionImpl <em>Clear Association Action</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.ClearAssociationActionImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getClearAssociationAction()
+	 * @generated
+	 */
+	int CLEAR_ASSOCIATION_ACTION = 151;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InvocationActionImpl <em>Invocation Action</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.InvocationActionImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInvocationAction()
+	 * @generated
+	 */
+	int INVOCATION_ACTION = 143;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.BroadcastSignalActionImpl <em>Broadcast Signal Action</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.BroadcastSignalActionImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getBroadcastSignalAction()
+	 * @generated
+	 */
+	int BROADCAST_SIGNAL_ACTION = 142;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.SendObjectActionImpl <em>Send Object Action</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.SendObjectActionImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getSendObjectAction()
+	 * @generated
+	 */
+	int SEND_OBJECT_ACTION = 226;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ValueSpecificationActionImpl <em>Value Specification Action</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.ValueSpecificationActionImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getValueSpecificationAction()
+	 * @generated
+	 */
+	int VALUE_SPECIFICATION_ACTION = 241;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.TimeExpressionImpl <em>Time Expression</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.TimeExpressionImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getTimeExpression()
+	 * @generated
+	 */
+	int TIME_EXPRESSION = 236;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.DurationImpl <em>Duration</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.DurationImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getDuration()
+	 * @generated
+	 */
+	int DURATION = 180;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ValuePinImpl <em>Value Pin</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.ValuePinImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getValuePin()
+	 * @generated
+	 */
+	int VALUE_PIN = 240;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.IntervalImpl <em>Interval</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.IntervalImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInterval()
+	 * @generated
+	 */
+	int INTERVAL = 184;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.DurationIntervalImpl <em>Duration Interval</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.DurationIntervalImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getDurationInterval()
+	 * @generated
+	 */
+	int DURATION_INTERVAL = 185;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.IntervalConstraintImpl <em>Interval Constraint</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.IntervalConstraintImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getIntervalConstraint()
+	 * @generated
+	 */
+	int INTERVAL_CONSTRAINT = 183;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.TimeConstraintImpl <em>Time Constraint</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.TimeConstraintImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getTimeConstraint()
+	 * @generated
+	 */
+	int TIME_CONSTRAINT = 234;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.TimeIntervalImpl <em>Time Interval</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.TimeIntervalImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getTimeInterval()
+	 * @generated
+	 */
+	int TIME_INTERVAL = 235;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.DurationConstraintImpl <em>Duration Constraint</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.DurationConstraintImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getDurationConstraint()
+	 * @generated
+	 */
+	int DURATION_CONSTRAINT = 182;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.OpaqueActionImpl <em>Opaque Action</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.OpaqueActionImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getOpaqueAction()
+	 * @generated
+	 */
+	int OPAQUE_ACTION = 210;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.CallActionImpl <em>Call Action</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.CallActionImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getCallAction()
+	 * @generated
+	 */
+	int CALL_ACTION = 144;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.SendSignalActionImpl <em>Send Signal Action</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.SendSignalActionImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getSendSignalAction()
+	 * @generated
+	 */
+	int SEND_SIGNAL_ACTION = 227;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.CallOperationActionImpl <em>Call Operation Action</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.CallOperationActionImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getCallOperationAction()
+	 * @generated
+	 */
+	int CALL_OPERATION_ACTION = 147;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.CallBehaviorActionImpl <em>Call Behavior Action</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.CallBehaviorActionImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getCallBehaviorAction()
+	 * @generated
+	 */
+	int CALL_BEHAVIOR_ACTION = 145;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InformationItemImpl <em>Information Item</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.InformationItemImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInformationItem()
+	 * @generated
+	 */
+	int INFORMATION_ITEM = 197;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InformationFlowImpl <em>Information Flow</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.InformationFlowImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInformationFlow()
+	 * @generated
+	 */
+	int INFORMATION_FLOW = 196;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ModelImpl <em>Model</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.internal.impl.ModelImpl
+	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getModel()
+	 * @generated
+	 */
+	int MODEL = 74;
 
 	/**
 	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
@@ -4091,7 +4774,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP__EANNOTATIONS = RELATIONSHIP__EANNOTATIONS;
+	int PARAMETERABLE_ELEMENT__EANNOTATIONS = ELEMENT__EANNOTATIONS;
 
 	/**
 	 * The feature id for the '<em><b>Owned Comment</b></em>' containment reference list.
@@ -4100,7 +4783,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP__OWNED_COMMENT = RELATIONSHIP__OWNED_COMMENT;
+	int PARAMETERABLE_ELEMENT__OWNED_COMMENT = ELEMENT__OWNED_COMMENT;
 
 	/**
 	 * The feature id for the '<em><b>Owned Element</b></em>' reference list.
@@ -4109,7 +4792,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP__OWNED_ELEMENT = RELATIONSHIP__OWNED_ELEMENT;
+	int PARAMETERABLE_ELEMENT__OWNED_ELEMENT = ELEMENT__OWNED_ELEMENT;
 
 	/**
 	 * The feature id for the '<em><b>Owner</b></em>' reference.
@@ -4118,43 +4801,34 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP__OWNER = RELATIONSHIP__OWNER;
+	int PARAMETERABLE_ELEMENT__OWNER = ELEMENT__OWNER;
 
 	/**
-	 * The feature id for the '<em><b>Related Element</b></em>' reference list.
+	 * The feature id for the '<em><b>Owning Template Parameter</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP__RELATED_ELEMENT = RELATIONSHIP__RELATED_ELEMENT;
+	int PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER = ELEMENT_FEATURE_COUNT + 0;
 
 	/**
-	 * The feature id for the '<em><b>Source</b></em>' reference list.
+	 * The feature id for the '<em><b>Template Parameter</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP__SOURCE = RELATIONSHIP_FEATURE_COUNT + 0;
+	int PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER = ELEMENT_FEATURE_COUNT + 1;
 
 	/**
-	 * The feature id for the '<em><b>Target</b></em>' reference list.
+	 * The number of structural features of the '<em>Parameterable Element</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP__TARGET = RELATIONSHIP_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of structural features of the '<em>Directed Relationship</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DIRECTED_RELATIONSHIP_FEATURE_COUNT = RELATIONSHIP_FEATURE_COUNT + 2;
+	int PARAMETERABLE_ELEMENT_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 2;
 
 	/**
 	 * The operation id for the '<em>Get EAnnotation</em>' operation.
@@ -4163,7 +4837,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP___GET_EANNOTATION__STRING = RELATIONSHIP___GET_EANNOTATION__STRING;
+	int PARAMETERABLE_ELEMENT___GET_EANNOTATION__STRING = ELEMENT___GET_EANNOTATION__STRING;
 
 	/**
 	 * The operation id for the '<em>Validate Has Owner</em>' operation.
@@ -4172,7 +4846,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP = RELATIONSHIP___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP;
+	int PARAMETERABLE_ELEMENT___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP = ELEMENT___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Not Own Self</em>' operation.
@@ -4181,7 +4855,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP = RELATIONSHIP___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP;
+	int PARAMETERABLE_ELEMENT___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP = ELEMENT___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Add Keyword</em>' operation.
@@ -4190,7 +4864,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP___ADD_KEYWORD__STRING = RELATIONSHIP___ADD_KEYWORD__STRING;
+	int PARAMETERABLE_ELEMENT___ADD_KEYWORD__STRING = ELEMENT___ADD_KEYWORD__STRING;
 
 	/**
 	 * The operation id for the '<em>Apply Stereotype</em>' operation.
@@ -4199,7 +4873,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP___APPLY_STEREOTYPE__STEREOTYPE = RELATIONSHIP___APPLY_STEREOTYPE__STEREOTYPE;
+	int PARAMETERABLE_ELEMENT___APPLY_STEREOTYPE__STEREOTYPE = ELEMENT___APPLY_STEREOTYPE__STEREOTYPE;
 
 	/**
 	 * The operation id for the '<em>Create EAnnotation</em>' operation.
@@ -4208,7 +4882,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP___CREATE_EANNOTATION__STRING = RELATIONSHIP___CREATE_EANNOTATION__STRING;
+	int PARAMETERABLE_ELEMENT___CREATE_EANNOTATION__STRING = ELEMENT___CREATE_EANNOTATION__STRING;
 
 	/**
 	 * The operation id for the '<em>Destroy</em>' operation.
@@ -4217,7 +4891,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP___DESTROY = RELATIONSHIP___DESTROY;
+	int PARAMETERABLE_ELEMENT___DESTROY = ELEMENT___DESTROY;
 
 	/**
 	 * The operation id for the '<em>Get Keywords</em>' operation.
@@ -4226,7 +4900,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP___GET_KEYWORDS = RELATIONSHIP___GET_KEYWORDS;
+	int PARAMETERABLE_ELEMENT___GET_KEYWORDS = ELEMENT___GET_KEYWORDS;
 
 	/**
 	 * The operation id for the '<em>Get Applicable Stereotype</em>' operation.
@@ -4235,7 +4909,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP___GET_APPLICABLE_STEREOTYPE__STRING = RELATIONSHIP___GET_APPLICABLE_STEREOTYPE__STRING;
+	int PARAMETERABLE_ELEMENT___GET_APPLICABLE_STEREOTYPE__STRING = ELEMENT___GET_APPLICABLE_STEREOTYPE__STRING;
 
 	/**
 	 * The operation id for the '<em>Get Applicable Stereotypes</em>' operation.
@@ -4244,7 +4918,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP___GET_APPLICABLE_STEREOTYPES = RELATIONSHIP___GET_APPLICABLE_STEREOTYPES;
+	int PARAMETERABLE_ELEMENT___GET_APPLICABLE_STEREOTYPES = ELEMENT___GET_APPLICABLE_STEREOTYPES;
 
 	/**
 	 * The operation id for the '<em>Get Applied Stereotype</em>' operation.
@@ -4253,7 +4927,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP___GET_APPLIED_STEREOTYPE__STRING = RELATIONSHIP___GET_APPLIED_STEREOTYPE__STRING;
+	int PARAMETERABLE_ELEMENT___GET_APPLIED_STEREOTYPE__STRING = ELEMENT___GET_APPLIED_STEREOTYPE__STRING;
 
 	/**
 	 * The operation id for the '<em>Get Applied Stereotypes</em>' operation.
@@ -4262,7 +4936,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP___GET_APPLIED_STEREOTYPES = RELATIONSHIP___GET_APPLIED_STEREOTYPES;
+	int PARAMETERABLE_ELEMENT___GET_APPLIED_STEREOTYPES = ELEMENT___GET_APPLIED_STEREOTYPES;
 
 	/**
 	 * The operation id for the '<em>Get Applied Substereotype</em>' operation.
@@ -4271,7 +4945,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING = RELATIONSHIP___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING;
+	int PARAMETERABLE_ELEMENT___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING = ELEMENT___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING;
 
 	/**
 	 * The operation id for the '<em>Get Applied Substereotypes</em>' operation.
@@ -4280,7 +4954,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE = RELATIONSHIP___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE;
+	int PARAMETERABLE_ELEMENT___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE = ELEMENT___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE;
 
 	/**
 	 * The operation id for the '<em>Get Model</em>' operation.
@@ -4289,7 +4963,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP___GET_MODEL = RELATIONSHIP___GET_MODEL;
+	int PARAMETERABLE_ELEMENT___GET_MODEL = ELEMENT___GET_MODEL;
 
 	/**
 	 * The operation id for the '<em>Get Nearest Package</em>' operation.
@@ -4298,7 +4972,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP___GET_NEAREST_PACKAGE = RELATIONSHIP___GET_NEAREST_PACKAGE;
+	int PARAMETERABLE_ELEMENT___GET_NEAREST_PACKAGE = ELEMENT___GET_NEAREST_PACKAGE;
 
 	/**
 	 * The operation id for the '<em>Get Relationships</em>' operation.
@@ -4307,7 +4981,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP___GET_RELATIONSHIPS = RELATIONSHIP___GET_RELATIONSHIPS;
+	int PARAMETERABLE_ELEMENT___GET_RELATIONSHIPS = ELEMENT___GET_RELATIONSHIPS;
 
 	/**
 	 * The operation id for the '<em>Get Relationships</em>' operation.
@@ -4316,7 +4990,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP___GET_RELATIONSHIPS__ECLASS = RELATIONSHIP___GET_RELATIONSHIPS__ECLASS;
+	int PARAMETERABLE_ELEMENT___GET_RELATIONSHIPS__ECLASS = ELEMENT___GET_RELATIONSHIPS__ECLASS;
 
 	/**
 	 * The operation id for the '<em>Get Required Stereotype</em>' operation.
@@ -4325,7 +4999,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP___GET_REQUIRED_STEREOTYPE__STRING = RELATIONSHIP___GET_REQUIRED_STEREOTYPE__STRING;
+	int PARAMETERABLE_ELEMENT___GET_REQUIRED_STEREOTYPE__STRING = ELEMENT___GET_REQUIRED_STEREOTYPE__STRING;
 
 	/**
 	 * The operation id for the '<em>Get Required Stereotypes</em>' operation.
@@ -4334,7 +5008,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP___GET_REQUIRED_STEREOTYPES = RELATIONSHIP___GET_REQUIRED_STEREOTYPES;
+	int PARAMETERABLE_ELEMENT___GET_REQUIRED_STEREOTYPES = ELEMENT___GET_REQUIRED_STEREOTYPES;
 
 	/**
 	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
@@ -4343,7 +5017,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP___GET_SOURCE_DIRECTED_RELATIONSHIPS = RELATIONSHIP___GET_SOURCE_DIRECTED_RELATIONSHIPS;
+	int PARAMETERABLE_ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS = ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS;
 
 	/**
 	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
@@ -4352,7 +5026,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS = RELATIONSHIP___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS;
+	int PARAMETERABLE_ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS = ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS;
 
 	/**
 	 * The operation id for the '<em>Get Stereotype Application</em>' operation.
@@ -4361,7 +5035,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP___GET_STEREOTYPE_APPLICATION__STEREOTYPE = RELATIONSHIP___GET_STEREOTYPE_APPLICATION__STEREOTYPE;
+	int PARAMETERABLE_ELEMENT___GET_STEREOTYPE_APPLICATION__STEREOTYPE = ELEMENT___GET_STEREOTYPE_APPLICATION__STEREOTYPE;
 
 	/**
 	 * The operation id for the '<em>Get Stereotype Applications</em>' operation.
@@ -4370,7 +5044,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP___GET_STEREOTYPE_APPLICATIONS = RELATIONSHIP___GET_STEREOTYPE_APPLICATIONS;
+	int PARAMETERABLE_ELEMENT___GET_STEREOTYPE_APPLICATIONS = ELEMENT___GET_STEREOTYPE_APPLICATIONS;
 
 	/**
 	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
@@ -4379,7 +5053,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP___GET_TARGET_DIRECTED_RELATIONSHIPS = RELATIONSHIP___GET_TARGET_DIRECTED_RELATIONSHIPS;
+	int PARAMETERABLE_ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS = ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS;
 
 	/**
 	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
@@ -4388,7 +5062,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS = RELATIONSHIP___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS;
+	int PARAMETERABLE_ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS = ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS;
 
 	/**
 	 * The operation id for the '<em>Get Value</em>' operation.
@@ -4397,7 +5071,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP___GET_VALUE__STEREOTYPE_STRING = RELATIONSHIP___GET_VALUE__STEREOTYPE_STRING;
+	int PARAMETERABLE_ELEMENT___GET_VALUE__STEREOTYPE_STRING = ELEMENT___GET_VALUE__STEREOTYPE_STRING;
 
 	/**
 	 * The operation id for the '<em>Has Keyword</em>' operation.
@@ -4406,7 +5080,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP___HAS_KEYWORD__STRING = RELATIONSHIP___HAS_KEYWORD__STRING;
+	int PARAMETERABLE_ELEMENT___HAS_KEYWORD__STRING = ELEMENT___HAS_KEYWORD__STRING;
 
 	/**
 	 * The operation id for the '<em>Has Value</em>' operation.
@@ -4415,7 +5089,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP___HAS_VALUE__STEREOTYPE_STRING = RELATIONSHIP___HAS_VALUE__STEREOTYPE_STRING;
+	int PARAMETERABLE_ELEMENT___HAS_VALUE__STEREOTYPE_STRING = ELEMENT___HAS_VALUE__STEREOTYPE_STRING;
 
 	/**
 	 * The operation id for the '<em>Is Stereotype Applicable</em>' operation.
@@ -4424,7 +5098,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP___IS_STEREOTYPE_APPLICABLE__STEREOTYPE = RELATIONSHIP___IS_STEREOTYPE_APPLICABLE__STEREOTYPE;
+	int PARAMETERABLE_ELEMENT___IS_STEREOTYPE_APPLICABLE__STEREOTYPE = ELEMENT___IS_STEREOTYPE_APPLICABLE__STEREOTYPE;
 
 	/**
 	 * The operation id for the '<em>Is Stereotype Applied</em>' operation.
@@ -4433,7 +5107,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP___IS_STEREOTYPE_APPLIED__STEREOTYPE = RELATIONSHIP___IS_STEREOTYPE_APPLIED__STEREOTYPE;
+	int PARAMETERABLE_ELEMENT___IS_STEREOTYPE_APPLIED__STEREOTYPE = ELEMENT___IS_STEREOTYPE_APPLIED__STEREOTYPE;
 
 	/**
 	 * The operation id for the '<em>Is Stereotype Required</em>' operation.
@@ -4442,7 +5116,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP___IS_STEREOTYPE_REQUIRED__STEREOTYPE = RELATIONSHIP___IS_STEREOTYPE_REQUIRED__STEREOTYPE;
+	int PARAMETERABLE_ELEMENT___IS_STEREOTYPE_REQUIRED__STEREOTYPE = ELEMENT___IS_STEREOTYPE_REQUIRED__STEREOTYPE;
 
 	/**
 	 * The operation id for the '<em>Remove Keyword</em>' operation.
@@ -4451,7 +5125,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP___REMOVE_KEYWORD__STRING = RELATIONSHIP___REMOVE_KEYWORD__STRING;
+	int PARAMETERABLE_ELEMENT___REMOVE_KEYWORD__STRING = ELEMENT___REMOVE_KEYWORD__STRING;
 
 	/**
 	 * The operation id for the '<em>Set Value</em>' operation.
@@ -4460,7 +5134,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP___SET_VALUE__STEREOTYPE_STRING_OBJECT = RELATIONSHIP___SET_VALUE__STEREOTYPE_STRING_OBJECT;
+	int PARAMETERABLE_ELEMENT___SET_VALUE__STEREOTYPE_STRING_OBJECT = ELEMENT___SET_VALUE__STEREOTYPE_STRING_OBJECT;
 
 	/**
 	 * The operation id for the '<em>Unapply Stereotype</em>' operation.
@@ -4469,7 +5143,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP___UNAPPLY_STEREOTYPE__STEREOTYPE = RELATIONSHIP___UNAPPLY_STEREOTYPE__STEREOTYPE;
+	int PARAMETERABLE_ELEMENT___UNAPPLY_STEREOTYPE__STEREOTYPE = ELEMENT___UNAPPLY_STEREOTYPE__STEREOTYPE;
 
 	/**
 	 * The operation id for the '<em>All Owned Elements</em>' operation.
@@ -4478,7 +5152,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP___ALL_OWNED_ELEMENTS = RELATIONSHIP___ALL_OWNED_ELEMENTS;
+	int PARAMETERABLE_ELEMENT___ALL_OWNED_ELEMENTS = ELEMENT___ALL_OWNED_ELEMENTS;
 
 	/**
 	 * The operation id for the '<em>Must Be Owned</em>' operation.
@@ -4487,16 +5161,34 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP___MUST_BE_OWNED = RELATIONSHIP___MUST_BE_OWNED;
+	int PARAMETERABLE_ELEMENT___MUST_BE_OWNED = ELEMENT___MUST_BE_OWNED;
 
 	/**
-	 * The number of operations of the '<em>Directed Relationship</em>' class.
+	 * The operation id for the '<em>Is Compatible With</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int DIRECTED_RELATIONSHIP_OPERATION_COUNT = RELATIONSHIP_OPERATION_COUNT + 0;
+	int PARAMETERABLE_ELEMENT___IS_COMPATIBLE_WITH__PARAMETERABLEELEMENT = ELEMENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Is Template Parameter</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETERABLE_ELEMENT___IS_TEMPLATE_PARAMETER = ELEMENT_OPERATION_COUNT + 1;
+
+	/**
+	 * The number of operations of the '<em>Parameterable Element</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETERABLE_ELEMENT_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 2;
 
 	/**
 	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
@@ -5390,15 +6082,6 @@
 	int NAMESPACE___MUST_BE_OWNED = NAMED_ELEMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NAMESPACE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -5417,6 +6100,15 @@
 	int NAMESPACE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NAMESPACE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -6299,15 +6991,6 @@
 	int CLASSIFIER___MUST_BE_OWNED = NAMESPACE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMESPACE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -6326,6 +7009,15 @@
 	int CLASSIFIER___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = NAMESPACE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMESPACE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -6623,31 +7315,13 @@
 	int CLASSIFIER___PARAMETERABLE_ELEMENTS = NAMESPACE_OPERATION_COUNT + 11;
 
 	/**
-	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 12;
-
-	/**
-	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 13;
-
-	/**
 	 * The operation id for the '<em>Validate Non Final Parents</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CLASSIFIER___VALIDATE_NON_FINAL_PARENTS__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 14;
+	int CLASSIFIER___VALIDATE_NON_FINAL_PARENTS__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 12;
 
 	/**
 	 * The operation id for the '<em>Validate No Cycles In Generalization</em>' operation.
@@ -6656,7 +7330,25 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CLASSIFIER___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 15;
+	int CLASSIFIER___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 13;
+
+	/**
+	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 14;
+
+	/**
+	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 15;
 
 	/**
 	 * The operation id for the '<em>Get All Attributes</em>' operation.
@@ -6821,1086 +7513,6 @@
 	int CLASSIFIER_OPERATION_COUNT = NAMESPACE_OPERATION_COUNT + 33;
 
 	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.CollaborationUseImpl <em>Collaboration Use</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.CollaborationUseImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getCollaborationUse()
-	 * @generated
-	 */
-	int COLLABORATION_USE = 77;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.CollaborationImpl <em>Collaboration</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.CollaborationImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getCollaboration()
-	 * @generated
-	 */
-	int COLLABORATION = 78;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ConnectorImpl <em>Connector</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.ConnectorImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getConnector()
-	 * @generated
-	 */
-	int CONNECTOR = 80;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.RedefinableTemplateSignatureImpl <em>Redefinable Template Signature</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.RedefinableTemplateSignatureImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getRedefinableTemplateSignature()
-	 * @generated
-	 */
-	int REDEFINABLE_TEMPLATE_SIGNATURE = 83;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ClassifierTemplateParameterImpl <em>Classifier Template Parameter</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.ClassifierTemplateParameterImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getClassifierTemplateParameter()
-	 * @generated
-	 */
-	int CLASSIFIER_TEMPLATE_PARAMETER = 90;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InterfaceRealizationImpl <em>Interface Realization</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.InterfaceRealizationImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInterfaceRealization()
-	 * @generated
-	 */
-	int INTERFACE_REALIZATION = 91;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ExtensionImpl <em>Extension</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.ExtensionImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getExtension()
-	 * @generated
-	 */
-	int EXTENSION = 30;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ExtensionEndImpl <em>Extension End</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.ExtensionEndImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getExtensionEnd()
-	 * @generated
-	 */
-	int EXTENSION_END = 69;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ImageImpl <em>Image</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.ImageImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getImage()
-	 * @generated
-	 */
-	int IMAGE = 93;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ExpressionImpl <em>Expression</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.ExpressionImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getExpression()
-	 * @generated
-	 */
-	int EXPRESSION = 19;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.StringExpressionImpl <em>String Expression</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.StringExpressionImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getStringExpression()
-	 * @generated
-	 */
-	int STRING_EXPRESSION = 12;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.LiteralIntegerImpl <em>Literal Integer</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.LiteralIntegerImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getLiteralInteger()
-	 * @generated
-	 */
-	int LITERAL_INTEGER = 203;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.LiteralStringImpl <em>Literal String</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.LiteralStringImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getLiteralString()
-	 * @generated
-	 */
-	int LITERAL_STRING = 206;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.LiteralBooleanImpl <em>Literal Boolean</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.LiteralBooleanImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getLiteralBoolean()
-	 * @generated
-	 */
-	int LITERAL_BOOLEAN = 201;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.LiteralNullImpl <em>Literal Null</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.LiteralNullImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getLiteralNull()
-	 * @generated
-	 */
-	int LITERAL_NULL = 204;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.SlotImpl <em>Slot</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.SlotImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getSlot()
-	 * @generated
-	 */
-	int SLOT = 74;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InstanceSpecificationImpl <em>Instance Specification</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.InstanceSpecificationImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInstanceSpecification()
-	 * @generated
-	 */
-	int INSTANCE_SPECIFICATION = 73;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.EnumerationImpl <em>Enumeration</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.EnumerationImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getEnumeration()
-	 * @generated
-	 */
-	int ENUMERATION = 71;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.EnumerationLiteralImpl <em>Enumeration Literal</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.EnumerationLiteralImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getEnumerationLiteral()
-	 * @generated
-	 */
-	int ENUMERATION_LITERAL = 72;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.PrimitiveTypeImpl <em>Primitive Type</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.PrimitiveTypeImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getPrimitiveType()
-	 * @generated
-	 */
-	int PRIMITIVE_TYPE = 75;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InstanceValueImpl <em>Instance Value</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.InstanceValueImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInstanceValue()
-	 * @generated
-	 */
-	int INSTANCE_VALUE = 199;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.LiteralUnlimitedNaturalImpl <em>Literal Unlimited Natural</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.LiteralUnlimitedNaturalImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getLiteralUnlimitedNatural()
-	 * @generated
-	 */
-	int LITERAL_UNLIMITED_NATURAL = 207;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.OpaqueBehaviorImpl <em>Opaque Behavior</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.OpaqueBehaviorImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getOpaqueBehavior()
-	 * @generated
-	 */
-	int OPAQUE_BEHAVIOR = 195;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.FunctionBehaviorImpl <em>Function Behavior</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.FunctionBehaviorImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getFunctionBehavior()
-	 * @generated
-	 */
-	int FUNCTION_BEHAVIOR = 194;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ActorImpl <em>Actor</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.ActorImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getActor()
-	 * @generated
-	 */
-	int ACTOR = 131;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.UsageImpl <em>Usage</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.UsageImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getUsage()
-	 * @generated
-	 */
-	int USAGE = 76;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.MessageImpl <em>Message</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.MessageImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getMessage()
-	 * @generated
-	 */
-	int MESSAGE = 120;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.MessageEndImpl <em>Message End</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.MessageEndImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getMessageEnd()
-	 * @generated
-	 */
-	int MESSAGE_END = 119;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InteractionImpl <em>Interaction</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.InteractionImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInteraction()
-	 * @generated
-	 */
-	int INTERACTION = 121;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InteractionFragmentImpl <em>Interaction Fragment</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.InteractionFragmentImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInteractionFragment()
-	 * @generated
-	 */
-	int INTERACTION_FRAGMENT = 114;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.LifelineImpl <em>Lifeline</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.LifelineImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getLifeline()
-	 * @generated
-	 */
-	int LIFELINE = 115;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InteractionUseImpl <em>Interaction Use</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.InteractionUseImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInteractionUse()
-	 * @generated
-	 */
-	int INTERACTION_USE = 117;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.PartDecompositionImpl <em>Part Decomposition</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.PartDecompositionImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getPartDecomposition()
-	 * @generated
-	 */
-	int PART_DECOMPOSITION = 116;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.GateImpl <em>Gate</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.GateImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getGate()
-	 * @generated
-	 */
-	int GATE = 118;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ActivityNodeImpl <em>Activity Node</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.ActivityNodeImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getActivityNode()
-	 * @generated
-	 */
-	int ACTIVITY_NODE = 99;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ExecutableNodeImpl <em>Executable Node</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.ExecutableNodeImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getExecutableNode()
-	 * @generated
-	 */
-	int EXECUTABLE_NODE = 98;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ActionImpl <em>Action</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.ActionImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getAction()
-	 * @generated
-	 */
-	int ACTION = 97;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl <em>Activity Edge</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getActivityEdge()
-	 * @generated
-	 */
-	int ACTIVITY_EDGE = 101;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ActivityImpl <em>Activity</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.ActivityImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getActivity()
-	 * @generated
-	 */
-	int ACTIVITY = 100;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ActivityPartitionImpl <em>Activity Partition</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.ActivityPartitionImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getActivityPartition()
-	 * @generated
-	 */
-	int ACTIVITY_PARTITION = 103;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ActivityGroupImpl <em>Activity Group</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.ActivityGroupImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getActivityGroup()
-	 * @generated
-	 */
-	int ACTIVITY_GROUP = 102;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl <em>Structured Activity Node</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getStructuredActivityNode()
-	 * @generated
-	 */
-	int STRUCTURED_ACTIVITY_NODE = 104;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.VariableImpl <em>Variable</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.VariableImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getVariable()
-	 * @generated
-	 */
-	int VARIABLE = 109;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InterruptibleActivityRegionImpl <em>Interruptible Activity Region</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.InterruptibleActivityRegionImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInterruptibleActivityRegion()
-	 * @generated
-	 */
-	int INTERRUPTIBLE_ACTIVITY_REGION = 110;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ExceptionHandlerImpl <em>Exception Handler</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.ExceptionHandlerImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getExceptionHandler()
-	 * @generated
-	 */
-	int EXCEPTION_HANDLER = 111;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ObjectNodeImpl <em>Object Node</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.ObjectNodeImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getObjectNode()
-	 * @generated
-	 */
-	int OBJECT_NODE = 107;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.PinImpl <em>Pin</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.PinImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getPin()
-	 * @generated
-	 */
-	int PIN = 106;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.OutputPinImpl <em>Output Pin</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.OutputPinImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getOutputPin()
-	 * @generated
-	 */
-	int OUTPUT_PIN = 108;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InputPinImpl <em>Input Pin</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.InputPinImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInputPin()
-	 * @generated
-	 */
-	int INPUT_PIN = 105;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.GeneralOrderingImpl <em>General Ordering</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.GeneralOrderingImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getGeneralOrdering()
-	 * @generated
-	 */
-	int GENERAL_ORDERING = 124;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.OccurrenceSpecificationImpl <em>Occurrence Specification</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.OccurrenceSpecificationImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getOccurrenceSpecification()
-	 * @generated
-	 */
-	int OCCURRENCE_SPECIFICATION = 125;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InteractionOperandImpl <em>Interaction Operand</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.InteractionOperandImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInteractionOperand()
-	 * @generated
-	 */
-	int INTERACTION_OPERAND = 122;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InteractionConstraintImpl <em>Interaction Constraint</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.InteractionConstraintImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInteractionConstraint()
-	 * @generated
-	 */
-	int INTERACTION_CONSTRAINT = 123;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ExecutionSpecificationImpl <em>Execution Specification</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.ExecutionSpecificationImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getExecutionSpecification()
-	 * @generated
-	 */
-	int EXECUTION_SPECIFICATION = 113;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ExecutionOccurrenceSpecificationImpl <em>Execution Occurrence Specification</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.ExecutionOccurrenceSpecificationImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getExecutionOccurrenceSpecification()
-	 * @generated
-	 */
-	int EXECUTION_OCCURRENCE_SPECIFICATION = 188;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.StateInvariantImpl <em>State Invariant</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.StateInvariantImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getStateInvariant()
-	 * @generated
-	 */
-	int STATE_INVARIANT = 232;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ActionExecutionSpecificationImpl <em>Action Execution Specification</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.ActionExecutionSpecificationImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getActionExecutionSpecification()
-	 * @generated
-	 */
-	int ACTION_EXECUTION_SPECIFICATION = 112;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.BehaviorExecutionSpecificationImpl <em>Behavior Execution Specification</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.BehaviorExecutionSpecificationImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getBehaviorExecutionSpecification()
-	 * @generated
-	 */
-	int BEHAVIOR_EXECUTION_SPECIFICATION = 141;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.MessageEventImpl <em>Message Event</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.MessageEventImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getMessageEvent()
-	 * @generated
-	 */
-	int MESSAGE_EVENT = 139;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.MessageOccurrenceSpecificationImpl <em>Message Occurrence Specification</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.MessageOccurrenceSpecificationImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getMessageOccurrenceSpecification()
-	 * @generated
-	 */
-	int MESSAGE_OCCURRENCE_SPECIFICATION = 177;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.CombinedFragmentImpl <em>Combined Fragment</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.CombinedFragmentImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getCombinedFragment()
-	 * @generated
-	 */
-	int COMBINED_FRAGMENT = 154;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ContinuationImpl <em>Continuation</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.ContinuationImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getContinuation()
-	 * @generated
-	 */
-	int CONTINUATION = 160;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ConsiderIgnoreFragmentImpl <em>Consider Ignore Fragment</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.ConsiderIgnoreFragmentImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getConsiderIgnoreFragment()
-	 * @generated
-	 */
-	int CONSIDER_IGNORE_FRAGMENT = 159;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.CallEventImpl <em>Call Event</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.CallEventImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getCallEvent()
-	 * @generated
-	 */
-	int CALL_EVENT = 146;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ChangeEventImpl <em>Change Event</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.ChangeEventImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getChangeEvent()
-	 * @generated
-	 */
-	int CHANGE_EVENT = 149;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.SignalEventImpl <em>Signal Event</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.SignalEventImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getSignalEvent()
-	 * @generated
-	 */
-	int SIGNAL_EVENT = 229;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.AnyReceiveEventImpl <em>Any Receive Event</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.AnyReceiveEventImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getAnyReceiveEvent()
-	 * @generated
-	 */
-	int ANY_RECEIVE_EVENT = 138;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.CreateObjectActionImpl <em>Create Object Action</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.CreateObjectActionImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getCreateObjectAction()
-	 * @generated
-	 */
-	int CREATE_OBJECT_ACTION = 169;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.DestroyObjectActionImpl <em>Destroy Object Action</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.DestroyObjectActionImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getDestroyObjectAction()
-	 * @generated
-	 */
-	int DESTROY_OBJECT_ACTION = 175;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.TestIdentityActionImpl <em>Test Identity Action</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.TestIdentityActionImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getTestIdentityAction()
-	 * @generated
-	 */
-	int TEST_IDENTITY_ACTION = 233;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ReadSelfActionImpl <em>Read Self Action</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.ReadSelfActionImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getReadSelfAction()
-	 * @generated
-	 */
-	int READ_SELF_ACTION = 218;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.StructuralFeatureActionImpl <em>Structural Feature Action</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.StructuralFeatureActionImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getStructuralFeatureAction()
-	 * @generated
-	 */
-	int STRUCTURAL_FEATURE_ACTION = 134;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ReadStructuralFeatureActionImpl <em>Read Structural Feature Action</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.ReadStructuralFeatureActionImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getReadStructuralFeatureAction()
-	 * @generated
-	 */
-	int READ_STRUCTURAL_FEATURE_ACTION = 219;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.WriteStructuralFeatureActionImpl <em>Write Structural Feature Action</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.WriteStructuralFeatureActionImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getWriteStructuralFeatureAction()
-	 * @generated
-	 */
-	int WRITE_STRUCTURAL_FEATURE_ACTION = 133;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ClearStructuralFeatureActionImpl <em>Clear Structural Feature Action</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.ClearStructuralFeatureActionImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getClearStructuralFeatureAction()
-	 * @generated
-	 */
-	int CLEAR_STRUCTURAL_FEATURE_ACTION = 152;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.RemoveStructuralFeatureValueActionImpl <em>Remove Structural Feature Value Action</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.RemoveStructuralFeatureValueActionImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getRemoveStructuralFeatureValueAction()
-	 * @generated
-	 */
-	int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION = 223;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.AddStructuralFeatureValueActionImpl <em>Add Structural Feature Value Action</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.AddStructuralFeatureValueActionImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getAddStructuralFeatureValueAction()
-	 * @generated
-	 */
-	int ADD_STRUCTURAL_FEATURE_VALUE_ACTION = 132;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.LinkActionImpl <em>Link Action</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.LinkActionImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getLinkAction()
-	 * @generated
-	 */
-	int LINK_ACTION = 164;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.LinkEndDataImpl <em>Link End Data</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.LinkEndDataImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getLinkEndData()
-	 * @generated
-	 */
-	int LINK_END_DATA = 165;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.QualifierValueImpl <em>Qualifier Value</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.QualifierValueImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getQualifierValue()
-	 * @generated
-	 */
-	int QUALIFIER_VALUE = 166;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ReadLinkActionImpl <em>Read Link Action</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.ReadLinkActionImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getReadLinkAction()
-	 * @generated
-	 */
-	int READ_LINK_ACTION = 215;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.LinkEndCreationDataImpl <em>Link End Creation Data</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.LinkEndCreationDataImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getLinkEndCreationData()
-	 * @generated
-	 */
-	int LINK_END_CREATION_DATA = 167;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.WriteLinkActionImpl <em>Write Link Action</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.WriteLinkActionImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getWriteLinkAction()
-	 * @generated
-	 */
-	int WRITE_LINK_ACTION = 163;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.CreateLinkActionImpl <em>Create Link Action</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.CreateLinkActionImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getCreateLinkAction()
-	 * @generated
-	 */
-	int CREATE_LINK_ACTION = 162;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.DestroyLinkActionImpl <em>Destroy Link Action</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.DestroyLinkActionImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getDestroyLinkAction()
-	 * @generated
-	 */
-	int DESTROY_LINK_ACTION = 173;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.LinkEndDestructionDataImpl <em>Link End Destruction Data</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.LinkEndDestructionDataImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getLinkEndDestructionData()
-	 * @generated
-	 */
-	int LINK_END_DESTRUCTION_DATA = 174;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ClearAssociationActionImpl <em>Clear Association Action</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.ClearAssociationActionImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getClearAssociationAction()
-	 * @generated
-	 */
-	int CLEAR_ASSOCIATION_ACTION = 151;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InvocationActionImpl <em>Invocation Action</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.InvocationActionImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInvocationAction()
-	 * @generated
-	 */
-	int INVOCATION_ACTION = 143;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.BroadcastSignalActionImpl <em>Broadcast Signal Action</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.BroadcastSignalActionImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getBroadcastSignalAction()
-	 * @generated
-	 */
-	int BROADCAST_SIGNAL_ACTION = 142;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.SendObjectActionImpl <em>Send Object Action</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.SendObjectActionImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getSendObjectAction()
-	 * @generated
-	 */
-	int SEND_OBJECT_ACTION = 226;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ValueSpecificationActionImpl <em>Value Specification Action</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.ValueSpecificationActionImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getValueSpecificationAction()
-	 * @generated
-	 */
-	int VALUE_SPECIFICATION_ACTION = 241;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.TimeExpressionImpl <em>Time Expression</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.TimeExpressionImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getTimeExpression()
-	 * @generated
-	 */
-	int TIME_EXPRESSION = 236;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.DurationImpl <em>Duration</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.DurationImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getDuration()
-	 * @generated
-	 */
-	int DURATION = 180;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ValuePinImpl <em>Value Pin</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.ValuePinImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getValuePin()
-	 * @generated
-	 */
-	int VALUE_PIN = 240;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.IntervalImpl <em>Interval</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.IntervalImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInterval()
-	 * @generated
-	 */
-	int INTERVAL = 184;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.DurationIntervalImpl <em>Duration Interval</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.DurationIntervalImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getDurationInterval()
-	 * @generated
-	 */
-	int DURATION_INTERVAL = 185;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.IntervalConstraintImpl <em>Interval Constraint</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.IntervalConstraintImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getIntervalConstraint()
-	 * @generated
-	 */
-	int INTERVAL_CONSTRAINT = 183;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.TimeConstraintImpl <em>Time Constraint</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.TimeConstraintImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getTimeConstraint()
-	 * @generated
-	 */
-	int TIME_CONSTRAINT = 234;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.TimeIntervalImpl <em>Time Interval</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.TimeIntervalImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getTimeInterval()
-	 * @generated
-	 */
-	int TIME_INTERVAL = 235;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.DurationConstraintImpl <em>Duration Constraint</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.DurationConstraintImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getDurationConstraint()
-	 * @generated
-	 */
-	int DURATION_CONSTRAINT = 182;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.OpaqueActionImpl <em>Opaque Action</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.OpaqueActionImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getOpaqueAction()
-	 * @generated
-	 */
-	int OPAQUE_ACTION = 210;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.CallActionImpl <em>Call Action</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.CallActionImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getCallAction()
-	 * @generated
-	 */
-	int CALL_ACTION = 144;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.SendSignalActionImpl <em>Send Signal Action</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.SendSignalActionImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getSendSignalAction()
-	 * @generated
-	 */
-	int SEND_SIGNAL_ACTION = 227;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.CallOperationActionImpl <em>Call Operation Action</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.CallOperationActionImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getCallOperationAction()
-	 * @generated
-	 */
-	int CALL_OPERATION_ACTION = 147;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.CallBehaviorActionImpl <em>Call Behavior Action</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.CallBehaviorActionImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getCallBehaviorAction()
-	 * @generated
-	 */
-	int CALL_BEHAVIOR_ACTION = 145;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InformationItemImpl <em>Information Item</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.InformationItemImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInformationItem()
-	 * @generated
-	 */
-	int INFORMATION_ITEM = 197;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InformationFlowImpl <em>Information Flow</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.InformationFlowImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInformationFlow()
-	 * @generated
-	 */
-	int INFORMATION_FLOW = 196;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ModelImpl <em>Model</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.internal.impl.ModelImpl
-	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getModel()
-	 * @generated
-	 */
-	int MODEL = 70;
-
-	/**
 	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -8621,15 +8233,6 @@
 	int STRUCTURED_CLASSIFIER___MUST_BE_OWNED = CLASSIFIER___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STRUCTURED_CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -8648,6 +8251,15 @@
 	int STRUCTURED_CLASSIFIER___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCTURED_CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -8945,24 +8557,6 @@
 	int STRUCTURED_CLASSIFIER___PARAMETERABLE_ELEMENTS = CLASSIFIER___PARAMETERABLE_ELEMENTS;
 
 	/**
-	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STRUCTURED_CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STRUCTURED_CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Non Final Parents</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -8981,6 +8575,24 @@
 	int STRUCTURED_CLASSIFIER___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCTURED_CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCTURED_CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Get All Attributes</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -9899,15 +9511,6 @@
 	int ENCAPSULATED_CLASSIFIER___MUST_BE_OWNED = STRUCTURED_CLASSIFIER___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ENCAPSULATED_CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = STRUCTURED_CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -9926,6 +9529,15 @@
 	int ENCAPSULATED_CLASSIFIER___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = STRUCTURED_CLASSIFIER___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ENCAPSULATED_CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = STRUCTURED_CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -10223,24 +9835,6 @@
 	int ENCAPSULATED_CLASSIFIER___PARAMETERABLE_ELEMENTS = STRUCTURED_CLASSIFIER___PARAMETERABLE_ELEMENTS;
 
 	/**
-	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ENCAPSULATED_CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = STRUCTURED_CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ENCAPSULATED_CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = STRUCTURED_CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Non Final Parents</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -10259,6 +9853,24 @@
 	int ENCAPSULATED_CLASSIFIER___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP = STRUCTURED_CLASSIFIER___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ENCAPSULATED_CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = STRUCTURED_CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ENCAPSULATED_CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = STRUCTURED_CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Get All Attributes</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -11267,15 +10879,6 @@
 	int CLASS___MUST_BE_OWNED = ENCAPSULATED_CLASSIFIER___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CLASS___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ENCAPSULATED_CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -11294,6 +10897,15 @@
 	int CLASS___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ENCAPSULATED_CLASSIFIER___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLASS___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ENCAPSULATED_CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -11591,24 +11203,6 @@
 	int CLASS___PARAMETERABLE_ELEMENTS = ENCAPSULATED_CLASSIFIER___PARAMETERABLE_ELEMENTS;
 
 	/**
-	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CLASS___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = ENCAPSULATED_CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CLASS___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = ENCAPSULATED_CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Non Final Parents</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -11627,6 +11221,24 @@
 	int CLASS___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP = ENCAPSULATED_CLASSIFIER___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLASS___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = ENCAPSULATED_CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLASS___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = ENCAPSULATED_CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Get All Attributes</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -12725,15 +12337,6 @@
 	int STEREOTYPE___MUST_BE_OWNED = CLASS___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STEREOTYPE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -12752,6 +12355,15 @@
 	int STEREOTYPE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STEREOTYPE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -13049,24 +12661,6 @@
 	int STEREOTYPE___PARAMETERABLE_ELEMENTS = CLASS___PARAMETERABLE_ELEMENTS;
 
 	/**
-	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STEREOTYPE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STEREOTYPE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Non Final Parents</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -13085,6 +12679,24 @@
 	int STEREOTYPE___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STEREOTYPE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STEREOTYPE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Get All Attributes</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -13346,22 +12958,13 @@
 	int STEREOTYPE___GET_SUPER_CLASSES = CLASS___GET_SUPER_CLASSES;
 
 	/**
-	 * The operation id for the '<em>Validate Binary Associations Only</em>' operation.
+	 * The operation id for the '<em>Validate Association End Ownership</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int STEREOTYPE___VALIDATE_BINARY_ASSOCIATIONS_ONLY__DIAGNOSTICCHAIN_MAP = CLASS_OPERATION_COUNT + 0;
-
-	/**
-	 * The operation id for the '<em>Validate Generalize</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STEREOTYPE___VALIDATE_GENERALIZE__DIAGNOSTICCHAIN_MAP = CLASS_OPERATION_COUNT + 1;
+	int STEREOTYPE___VALIDATE_ASSOCIATION_END_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CLASS_OPERATION_COUNT + 0;
 
 	/**
 	 * The operation id for the '<em>Validate Name Not Clash</em>' operation.
@@ -13370,16 +12973,25 @@
 	 * @generated
 	 * @ordered
 	 */
-	int STEREOTYPE___VALIDATE_NAME_NOT_CLASH__DIAGNOSTICCHAIN_MAP = CLASS_OPERATION_COUNT + 2;
+	int STEREOTYPE___VALIDATE_NAME_NOT_CLASH__DIAGNOSTICCHAIN_MAP = CLASS_OPERATION_COUNT + 1;
 
 	/**
-	 * The operation id for the '<em>Validate Association End Ownership</em>' operation.
+	 * The operation id for the '<em>Validate Binary Associations Only</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int STEREOTYPE___VALIDATE_ASSOCIATION_END_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CLASS_OPERATION_COUNT + 3;
+	int STEREOTYPE___VALIDATE_BINARY_ASSOCIATIONS_ONLY__DIAGNOSTICCHAIN_MAP = CLASS_OPERATION_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>Validate Generalize</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STEREOTYPE___VALIDATE_GENERALIZE__DIAGNOSTICCHAIN_MAP = CLASS_OPERATION_COUNT + 3;
 
 	/**
 	 * The operation id for the '<em>Create Extension</em>' operation.
@@ -13487,1266 +13099,6 @@
 	 * @generated
 	 * @ordered
 	 */
-	int BEHAVIORED_CLASSIFIER__EANNOTATIONS = CLASSIFIER__EANNOTATIONS;
-
-	/**
-	 * The feature id for the '<em><b>Owned Comment</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__OWNED_COMMENT = CLASSIFIER__OWNED_COMMENT;
-
-	/**
-	 * The feature id for the '<em><b>Owned Element</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__OWNED_ELEMENT = CLASSIFIER__OWNED_ELEMENT;
-
-	/**
-	 * The feature id for the '<em><b>Owner</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__OWNER = CLASSIFIER__OWNER;
-
-	/**
-	 * The feature id for the '<em><b>Client Dependency</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__CLIENT_DEPENDENCY = CLASSIFIER__CLIENT_DEPENDENCY;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__NAME = CLASSIFIER__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Name Expression</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__NAME_EXPRESSION = CLASSIFIER__NAME_EXPRESSION;
-
-	/**
-	 * The feature id for the '<em><b>Namespace</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__NAMESPACE = CLASSIFIER__NAMESPACE;
-
-	/**
-	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__QUALIFIED_NAME = CLASSIFIER__QUALIFIED_NAME;
-
-	/**
-	 * The feature id for the '<em><b>Visibility</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__VISIBILITY = CLASSIFIER__VISIBILITY;
-
-	/**
-	 * The feature id for the '<em><b>Element Import</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__ELEMENT_IMPORT = CLASSIFIER__ELEMENT_IMPORT;
-
-	/**
-	 * The feature id for the '<em><b>Package Import</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__PACKAGE_IMPORT = CLASSIFIER__PACKAGE_IMPORT;
-
-	/**
-	 * The feature id for the '<em><b>Owned Rule</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__OWNED_RULE = CLASSIFIER__OWNED_RULE;
-
-	/**
-	 * The feature id for the '<em><b>Owned Member</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__OWNED_MEMBER = CLASSIFIER__OWNED_MEMBER;
-
-	/**
-	 * The feature id for the '<em><b>Imported Member</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__IMPORTED_MEMBER = CLASSIFIER__IMPORTED_MEMBER;
-
-	/**
-	 * The feature id for the '<em><b>Member</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__MEMBER = CLASSIFIER__MEMBER;
-
-	/**
-	 * The feature id for the '<em><b>Is Leaf</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__IS_LEAF = CLASSIFIER__IS_LEAF;
-
-	/**
-	 * The feature id for the '<em><b>Redefined Element</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__REDEFINED_ELEMENT = CLASSIFIER__REDEFINED_ELEMENT;
-
-	/**
-	 * The feature id for the '<em><b>Redefinition Context</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__REDEFINITION_CONTEXT = CLASSIFIER__REDEFINITION_CONTEXT;
-
-	/**
-	 * The feature id for the '<em><b>Owning Template Parameter</b></em>' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__OWNING_TEMPLATE_PARAMETER = CLASSIFIER__OWNING_TEMPLATE_PARAMETER;
-
-	/**
-	 * The feature id for the '<em><b>Template Parameter</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__TEMPLATE_PARAMETER = CLASSIFIER__TEMPLATE_PARAMETER;
-
-	/**
-	 * The feature id for the '<em><b>Package</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__PACKAGE = CLASSIFIER__PACKAGE;
-
-	/**
-	 * The feature id for the '<em><b>Owned Template Signature</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__OWNED_TEMPLATE_SIGNATURE = CLASSIFIER__OWNED_TEMPLATE_SIGNATURE;
-
-	/**
-	 * The feature id for the '<em><b>Template Binding</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__TEMPLATE_BINDING = CLASSIFIER__TEMPLATE_BINDING;
-
-	/**
-	 * The feature id for the '<em><b>Feature</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__FEATURE = CLASSIFIER__FEATURE;
-
-	/**
-	 * The feature id for the '<em><b>Attribute</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__ATTRIBUTE = CLASSIFIER__ATTRIBUTE;
-
-	/**
-	 * The feature id for the '<em><b>Collaboration Use</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__COLLABORATION_USE = CLASSIFIER__COLLABORATION_USE;
-
-	/**
-	 * The feature id for the '<em><b>General</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__GENERAL = CLASSIFIER__GENERAL;
-
-	/**
-	 * The feature id for the '<em><b>Generalization</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__GENERALIZATION = CLASSIFIER__GENERALIZATION;
-
-	/**
-	 * The feature id for the '<em><b>Powertype Extent</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__POWERTYPE_EXTENT = CLASSIFIER__POWERTYPE_EXTENT;
-
-	/**
-	 * The feature id for the '<em><b>Inherited Member</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__INHERITED_MEMBER = CLASSIFIER__INHERITED_MEMBER;
-
-	/**
-	 * The feature id for the '<em><b>Is Abstract</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__IS_ABSTRACT = CLASSIFIER__IS_ABSTRACT;
-
-	/**
-	 * The feature id for the '<em><b>Is Final Specialization</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__IS_FINAL_SPECIALIZATION = CLASSIFIER__IS_FINAL_SPECIALIZATION;
-
-	/**
-	 * The feature id for the '<em><b>Owned Use Case</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__OWNED_USE_CASE = CLASSIFIER__OWNED_USE_CASE;
-
-	/**
-	 * The feature id for the '<em><b>Use Case</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__USE_CASE = CLASSIFIER__USE_CASE;
-
-	/**
-	 * The feature id for the '<em><b>Redefined Classifier</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__REDEFINED_CLASSIFIER = CLASSIFIER__REDEFINED_CLASSIFIER;
-
-	/**
-	 * The feature id for the '<em><b>Representation</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__REPRESENTATION = CLASSIFIER__REPRESENTATION;
-
-	/**
-	 * The feature id for the '<em><b>Substitution</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__SUBSTITUTION = CLASSIFIER__SUBSTITUTION;
-
-	/**
-	 * The feature id for the '<em><b>Classifier Behavior</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__CLASSIFIER_BEHAVIOR = CLASSIFIER_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Interface Realization</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__INTERFACE_REALIZATION = CLASSIFIER_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Owned Behavior</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER__OWNED_BEHAVIOR = CLASSIFIER_FEATURE_COUNT + 2;
-
-	/**
-	 * The number of structural features of the '<em>Behaviored Classifier</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER_FEATURE_COUNT = CLASSIFIER_FEATURE_COUNT + 3;
-
-	/**
-	 * The operation id for the '<em>Get EAnnotation</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_EANNOTATION__STRING = CLASSIFIER___GET_EANNOTATION__STRING;
-
-	/**
-	 * The operation id for the '<em>Validate Has Owner</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Not Own Self</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Add Keyword</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___ADD_KEYWORD__STRING = CLASSIFIER___ADD_KEYWORD__STRING;
-
-	/**
-	 * The operation id for the '<em>Apply Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___APPLY_STEREOTYPE__STEREOTYPE = CLASSIFIER___APPLY_STEREOTYPE__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Create EAnnotation</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___CREATE_EANNOTATION__STRING = CLASSIFIER___CREATE_EANNOTATION__STRING;
-
-	/**
-	 * The operation id for the '<em>Destroy</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___DESTROY = CLASSIFIER___DESTROY;
-
-	/**
-	 * The operation id for the '<em>Get Keywords</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_KEYWORDS = CLASSIFIER___GET_KEYWORDS;
-
-	/**
-	 * The operation id for the '<em>Get Applicable Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_APPLICABLE_STEREOTYPE__STRING = CLASSIFIER___GET_APPLICABLE_STEREOTYPE__STRING;
-
-	/**
-	 * The operation id for the '<em>Get Applicable Stereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_APPLICABLE_STEREOTYPES = CLASSIFIER___GET_APPLICABLE_STEREOTYPES;
-
-	/**
-	 * The operation id for the '<em>Get Applied Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_APPLIED_STEREOTYPE__STRING = CLASSIFIER___GET_APPLIED_STEREOTYPE__STRING;
-
-	/**
-	 * The operation id for the '<em>Get Applied Stereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_APPLIED_STEREOTYPES = CLASSIFIER___GET_APPLIED_STEREOTYPES;
-
-	/**
-	 * The operation id for the '<em>Get Applied Substereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING = CLASSIFIER___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING;
-
-	/**
-	 * The operation id for the '<em>Get Applied Substereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE = CLASSIFIER___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Get Model</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_MODEL = CLASSIFIER___GET_MODEL;
-
-	/**
-	 * The operation id for the '<em>Get Nearest Package</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_NEAREST_PACKAGE = CLASSIFIER___GET_NEAREST_PACKAGE;
-
-	/**
-	 * The operation id for the '<em>Get Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_RELATIONSHIPS = CLASSIFIER___GET_RELATIONSHIPS;
-
-	/**
-	 * The operation id for the '<em>Get Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_RELATIONSHIPS__ECLASS = CLASSIFIER___GET_RELATIONSHIPS__ECLASS;
-
-	/**
-	 * The operation id for the '<em>Get Required Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_REQUIRED_STEREOTYPE__STRING = CLASSIFIER___GET_REQUIRED_STEREOTYPE__STRING;
-
-	/**
-	 * The operation id for the '<em>Get Required Stereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_REQUIRED_STEREOTYPES = CLASSIFIER___GET_REQUIRED_STEREOTYPES;
-
-	/**
-	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_SOURCE_DIRECTED_RELATIONSHIPS = CLASSIFIER___GET_SOURCE_DIRECTED_RELATIONSHIPS;
-
-	/**
-	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS = CLASSIFIER___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS;
-
-	/**
-	 * The operation id for the '<em>Get Stereotype Application</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_STEREOTYPE_APPLICATION__STEREOTYPE = CLASSIFIER___GET_STEREOTYPE_APPLICATION__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Get Stereotype Applications</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_STEREOTYPE_APPLICATIONS = CLASSIFIER___GET_STEREOTYPE_APPLICATIONS;
-
-	/**
-	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_TARGET_DIRECTED_RELATIONSHIPS = CLASSIFIER___GET_TARGET_DIRECTED_RELATIONSHIPS;
-
-	/**
-	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS = CLASSIFIER___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS;
-
-	/**
-	 * The operation id for the '<em>Get Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_VALUE__STEREOTYPE_STRING = CLASSIFIER___GET_VALUE__STEREOTYPE_STRING;
-
-	/**
-	 * The operation id for the '<em>Has Keyword</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___HAS_KEYWORD__STRING = CLASSIFIER___HAS_KEYWORD__STRING;
-
-	/**
-	 * The operation id for the '<em>Has Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___HAS_VALUE__STEREOTYPE_STRING = CLASSIFIER___HAS_VALUE__STEREOTYPE_STRING;
-
-	/**
-	 * The operation id for the '<em>Is Stereotype Applicable</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___IS_STEREOTYPE_APPLICABLE__STEREOTYPE = CLASSIFIER___IS_STEREOTYPE_APPLICABLE__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Is Stereotype Applied</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___IS_STEREOTYPE_APPLIED__STEREOTYPE = CLASSIFIER___IS_STEREOTYPE_APPLIED__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Is Stereotype Required</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___IS_STEREOTYPE_REQUIRED__STEREOTYPE = CLASSIFIER___IS_STEREOTYPE_REQUIRED__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Remove Keyword</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___REMOVE_KEYWORD__STRING = CLASSIFIER___REMOVE_KEYWORD__STRING;
-
-	/**
-	 * The operation id for the '<em>Set Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___SET_VALUE__STEREOTYPE_STRING_OBJECT = CLASSIFIER___SET_VALUE__STEREOTYPE_STRING_OBJECT;
-
-	/**
-	 * The operation id for the '<em>Unapply Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___UNAPPLY_STEREOTYPE__STEREOTYPE = CLASSIFIER___UNAPPLY_STEREOTYPE__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>All Owned Elements</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___ALL_OWNED_ELEMENTS = CLASSIFIER___ALL_OWNED_ELEMENTS;
-
-	/**
-	 * The operation id for the '<em>Must Be Owned</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___MUST_BE_OWNED = CLASSIFIER___MUST_BE_OWNED;
-
-	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Has No Qualified Name</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Create Dependency</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___CREATE_DEPENDENCY__NAMEDELEMENT = CLASSIFIER___CREATE_DEPENDENCY__NAMEDELEMENT;
-
-	/**
-	 * The operation id for the '<em>Create Usage</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___CREATE_USAGE__NAMEDELEMENT = CLASSIFIER___CREATE_USAGE__NAMEDELEMENT;
-
-	/**
-	 * The operation id for the '<em>Get Label</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_LABEL = CLASSIFIER___GET_LABEL;
-
-	/**
-	 * The operation id for the '<em>Get Label</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_LABEL__BOOLEAN = CLASSIFIER___GET_LABEL__BOOLEAN;
-
-	/**
-	 * The operation id for the '<em>All Namespaces</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___ALL_NAMESPACES = CLASSIFIER___ALL_NAMESPACES;
-
-	/**
-	 * The operation id for the '<em>All Owning Packages</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___ALL_OWNING_PACKAGES = CLASSIFIER___ALL_OWNING_PACKAGES;
-
-	/**
-	 * The operation id for the '<em>Is Distinguishable From</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE = CLASSIFIER___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE;
-
-	/**
-	 * The operation id for the '<em>Get Namespace</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_NAMESPACE = CLASSIFIER___GET_NAMESPACE;
-
-	/**
-	 * The operation id for the '<em>Get Qualified Name</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_QUALIFIED_NAME = CLASSIFIER___GET_QUALIFIED_NAME;
-
-	/**
-	 * The operation id for the '<em>Separator</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___SEPARATOR = CLASSIFIER___SEPARATOR;
-
-	/**
-	 * The operation id for the '<em>Validate Members Distinguishable</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___VALIDATE_MEMBERS_DISTINGUISHABLE__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_MEMBERS_DISTINGUISHABLE__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Create Element Import</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___CREATE_ELEMENT_IMPORT__PACKAGEABLEELEMENT_VISIBILITYKIND = CLASSIFIER___CREATE_ELEMENT_IMPORT__PACKAGEABLEELEMENT_VISIBILITYKIND;
-
-	/**
-	 * The operation id for the '<em>Create Package Import</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___CREATE_PACKAGE_IMPORT__PACKAGE_VISIBILITYKIND = CLASSIFIER___CREATE_PACKAGE_IMPORT__PACKAGE_VISIBILITYKIND;
-
-	/**
-	 * The operation id for the '<em>Get Imported Elements</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_IMPORTED_ELEMENTS = CLASSIFIER___GET_IMPORTED_ELEMENTS;
-
-	/**
-	 * The operation id for the '<em>Get Imported Packages</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_IMPORTED_PACKAGES = CLASSIFIER___GET_IMPORTED_PACKAGES;
-
-	/**
-	 * The operation id for the '<em>Exclude Collisions</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___EXCLUDE_COLLISIONS__ELIST = CLASSIFIER___EXCLUDE_COLLISIONS__ELIST;
-
-	/**
-	 * The operation id for the '<em>Get Names Of Member</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_NAMES_OF_MEMBER__NAMEDELEMENT = CLASSIFIER___GET_NAMES_OF_MEMBER__NAMEDELEMENT;
-
-	/**
-	 * The operation id for the '<em>Import Members</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___IMPORT_MEMBERS__ELIST = CLASSIFIER___IMPORT_MEMBERS__ELIST;
-
-	/**
-	 * The operation id for the '<em>Get Imported Members</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_IMPORTED_MEMBERS = CLASSIFIER___GET_IMPORTED_MEMBERS;
-
-	/**
-	 * The operation id for the '<em>Members Are Distinguishable</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___MEMBERS_ARE_DISTINGUISHABLE = CLASSIFIER___MEMBERS_ARE_DISTINGUISHABLE;
-
-	/**
-	 * The operation id for the '<em>Get Owned Members</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_OWNED_MEMBERS = CLASSIFIER___GET_OWNED_MEMBERS;
-
-	/**
-	 * The operation id for the '<em>Validate Redefinition Consistent</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___VALIDATE_REDEFINITION_CONSISTENT__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_REDEFINITION_CONSISTENT__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Non Leaf Redefinition</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___VALIDATE_NON_LEAF_REDEFINITION__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_NON_LEAF_REDEFINITION__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Redefinition Context Valid</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___VALIDATE_REDEFINITION_CONTEXT_VALID__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_REDEFINITION_CONTEXT_VALID__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Is Consistent With</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___IS_CONSISTENT_WITH__REDEFINABLEELEMENT = CLASSIFIER___IS_CONSISTENT_WITH__REDEFINABLEELEMENT;
-
-	/**
-	 * The operation id for the '<em>Is Redefinition Context Valid</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___IS_REDEFINITION_CONTEXT_VALID__REDEFINABLEELEMENT = CLASSIFIER___IS_REDEFINITION_CONTEXT_VALID__REDEFINABLEELEMENT;
-
-	/**
-	 * The operation id for the '<em>Is Compatible With</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___IS_COMPATIBLE_WITH__PARAMETERABLEELEMENT = CLASSIFIER___IS_COMPATIBLE_WITH__PARAMETERABLEELEMENT;
-
-	/**
-	 * The operation id for the '<em>Is Template Parameter</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___IS_TEMPLATE_PARAMETER = CLASSIFIER___IS_TEMPLATE_PARAMETER;
-
-	/**
-	 * The operation id for the '<em>Create Association</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___CREATE_ASSOCIATION__BOOLEAN_AGGREGATIONKIND_STRING_INT_INT_TYPE_BOOLEAN_AGGREGATIONKIND_STRING_INT_INT = CLASSIFIER___CREATE_ASSOCIATION__BOOLEAN_AGGREGATIONKIND_STRING_INT_INT_TYPE_BOOLEAN_AGGREGATIONKIND_STRING_INT_INT;
-
-	/**
-	 * The operation id for the '<em>Get Associations</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_ASSOCIATIONS = CLASSIFIER___GET_ASSOCIATIONS;
-
-	/**
-	 * The operation id for the '<em>Conforms To</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___CONFORMS_TO__TYPE = CLASSIFIER___CONFORMS_TO__TYPE;
-
-	/**
-	 * The operation id for the '<em>Is Template</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___IS_TEMPLATE = CLASSIFIER___IS_TEMPLATE;
-
-	/**
-	 * The operation id for the '<em>Parameterable Elements</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___PARAMETERABLE_ELEMENTS = CLASSIFIER___PARAMETERABLE_ELEMENTS;
-
-	/**
-	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Non Final Parents</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___VALIDATE_NON_FINAL_PARENTS__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_NON_FINAL_PARENTS__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate No Cycles In Generalization</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Get All Attributes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_ALL_ATTRIBUTES = CLASSIFIER___GET_ALL_ATTRIBUTES;
-
-	/**
-	 * The operation id for the '<em>Get All Operations</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_ALL_OPERATIONS = CLASSIFIER___GET_ALL_OPERATIONS;
-
-	/**
-	 * The operation id for the '<em>Get All Used Interfaces</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_ALL_USED_INTERFACES = CLASSIFIER___GET_ALL_USED_INTERFACES;
-
-	/**
-	 * The operation id for the '<em>Get Operation</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_OPERATION__STRING_ELIST_ELIST = CLASSIFIER___GET_OPERATION__STRING_ELIST_ELIST;
-
-	/**
-	 * The operation id for the '<em>Get Operation</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_OPERATION__STRING_ELIST_ELIST_BOOLEAN = CLASSIFIER___GET_OPERATION__STRING_ELIST_ELIST_BOOLEAN;
-
-	/**
-	 * The operation id for the '<em>Get Operations</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_OPERATIONS = CLASSIFIER___GET_OPERATIONS;
-
-	/**
-	 * The operation id for the '<em>Get Used Interfaces</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_USED_INTERFACES = CLASSIFIER___GET_USED_INTERFACES;
-
-	/**
-	 * The operation id for the '<em>All Features</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___ALL_FEATURES = CLASSIFIER___ALL_FEATURES;
-
-	/**
-	 * The operation id for the '<em>All Parents</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___ALL_PARENTS = CLASSIFIER___ALL_PARENTS;
-
-	/**
-	 * The operation id for the '<em>Conforms To</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___CONFORMS_TO__CLASSIFIER = CLASSIFIER___CONFORMS_TO__CLASSIFIER;
-
-	/**
-	 * The operation id for the '<em>Get Generals</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_GENERALS = CLASSIFIER___GET_GENERALS;
-
-	/**
-	 * The operation id for the '<em>Has Visibility Of</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___HAS_VISIBILITY_OF__NAMEDELEMENT = CLASSIFIER___HAS_VISIBILITY_OF__NAMEDELEMENT;
-
-	/**
-	 * The operation id for the '<em>Inherit</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___INHERIT__ELIST = CLASSIFIER___INHERIT__ELIST;
-
-	/**
-	 * The operation id for the '<em>Inheritable Members</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___INHERITABLE_MEMBERS__CLASSIFIER = CLASSIFIER___INHERITABLE_MEMBERS__CLASSIFIER;
-
-	/**
-	 * The operation id for the '<em>Get Inherited Members</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_INHERITED_MEMBERS = CLASSIFIER___GET_INHERITED_MEMBERS;
-
-	/**
-	 * The operation id for the '<em>May Specialize Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___MAY_SPECIALIZE_TYPE__CLASSIFIER = CLASSIFIER___MAY_SPECIALIZE_TYPE__CLASSIFIER;
-
-	/**
-	 * The operation id for the '<em>Parents</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___PARENTS = CLASSIFIER___PARENTS;
-
-	/**
-	 * The operation id for the '<em>Validate Class Behavior</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___VALIDATE_CLASS_BEHAVIOR__DIAGNOSTICCHAIN_MAP = CLASSIFIER_OPERATION_COUNT + 0;
-
-	/**
-	 * The operation id for the '<em>Get All Implemented Interfaces</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_ALL_IMPLEMENTED_INTERFACES = CLASSIFIER_OPERATION_COUNT + 1;
-
-	/**
-	 * The operation id for the '<em>Get Implemented Interfaces</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER___GET_IMPLEMENTED_INTERFACES = CLASSIFIER_OPERATION_COUNT + 2;
-
-	/**
-	 * The number of operations of the '<em>Behaviored Classifier</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORED_CLASSIFIER_OPERATION_COUNT = CLASSIFIER_OPERATION_COUNT + 3;
-
-	/**
-	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
 	int VALUE_SPECIFICATION__EANNOTATIONS = PACKAGEABLE_ELEMENT__EANNOTATIONS;
 
 	/**
@@ -15200,15 +13552,6 @@
 	int VALUE_SPECIFICATION___MUST_BE_OWNED = PACKAGEABLE_ELEMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int VALUE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -15227,6 +13570,15 @@
 	int VALUE_SPECIFICATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VALUE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -15884,15 +14236,6 @@
 	int EXPRESSION___MUST_BE_OWNED = VALUE_SPECIFICATION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXPRESSION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = VALUE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -15911,6 +14254,15 @@
 	int EXPRESSION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = VALUE_SPECIFICATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXPRESSION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = VALUE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -16604,15 +14956,6 @@
 	int STRING_EXPRESSION___MUST_BE_OWNED = EXPRESSION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STRING_EXPRESSION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = EXPRESSION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -16631,6 +14974,15 @@
 	int STRING_EXPRESSION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = EXPRESSION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRING_EXPRESSION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = EXPRESSION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -16820,22 +15172,22 @@
 	int STRING_EXPRESSION___PARAMETERABLE_ELEMENTS = EXPRESSION_OPERATION_COUNT + 1;
 
 	/**
-	 * The operation id for the '<em>Validate Operands</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STRING_EXPRESSION___VALIDATE_OPERANDS__DIAGNOSTICCHAIN_MAP = EXPRESSION_OPERATION_COUNT + 2;
-
-	/**
 	 * The operation id for the '<em>Validate Subexpressions</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int STRING_EXPRESSION___VALIDATE_SUBEXPRESSIONS__DIAGNOSTICCHAIN_MAP = EXPRESSION_OPERATION_COUNT + 3;
+	int STRING_EXPRESSION___VALIDATE_SUBEXPRESSIONS__DIAGNOSTICCHAIN_MAP = EXPRESSION_OPERATION_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>Validate Operands</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRING_EXPRESSION___VALIDATE_OPERANDS__DIAGNOSTICCHAIN_MAP = EXPRESSION_OPERATION_COUNT + 3;
 
 	/**
 	 * The number of operations of the '<em>String Expression</em>' class.
@@ -16853,6 +15205,2274 @@
 	 * @generated
 	 * @ordered
 	 */
+	int TYPED_ELEMENT__EANNOTATIONS = NAMED_ELEMENT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Owned Comment</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT__OWNED_COMMENT = NAMED_ELEMENT__OWNED_COMMENT;
+
+	/**
+	 * The feature id for the '<em><b>Owned Element</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT__OWNED_ELEMENT = NAMED_ELEMENT__OWNED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Owner</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT__OWNER = NAMED_ELEMENT__OWNER;
+
+	/**
+	 * The feature id for the '<em><b>Client Dependency</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT__CLIENT_DEPENDENCY = NAMED_ELEMENT__CLIENT_DEPENDENCY;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT__NAME = NAMED_ELEMENT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Name Expression</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT__NAME_EXPRESSION = NAMED_ELEMENT__NAME_EXPRESSION;
+
+	/**
+	 * The feature id for the '<em><b>Namespace</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT__NAMESPACE = NAMED_ELEMENT__NAMESPACE;
+
+	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT__QUALIFIED_NAME = NAMED_ELEMENT__QUALIFIED_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Visibility</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT__VISIBILITY = NAMED_ELEMENT__VISIBILITY;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT__TYPE = NAMED_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Typed Element</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Get EAnnotation</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___GET_EANNOTATION__STRING = NAMED_ELEMENT___GET_EANNOTATION__STRING;
+
+	/**
+	 * The operation id for the '<em>Validate Has Owner</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Not Own Self</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Add Keyword</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___ADD_KEYWORD__STRING = NAMED_ELEMENT___ADD_KEYWORD__STRING;
+
+	/**
+	 * The operation id for the '<em>Apply Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___APPLY_STEREOTYPE__STEREOTYPE = NAMED_ELEMENT___APPLY_STEREOTYPE__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Create EAnnotation</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___CREATE_EANNOTATION__STRING = NAMED_ELEMENT___CREATE_EANNOTATION__STRING;
+
+	/**
+	 * The operation id for the '<em>Destroy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___DESTROY = NAMED_ELEMENT___DESTROY;
+
+	/**
+	 * The operation id for the '<em>Get Keywords</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___GET_KEYWORDS = NAMED_ELEMENT___GET_KEYWORDS;
+
+	/**
+	 * The operation id for the '<em>Get Applicable Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___GET_APPLICABLE_STEREOTYPE__STRING = NAMED_ELEMENT___GET_APPLICABLE_STEREOTYPE__STRING;
+
+	/**
+	 * The operation id for the '<em>Get Applicable Stereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___GET_APPLICABLE_STEREOTYPES = NAMED_ELEMENT___GET_APPLICABLE_STEREOTYPES;
+
+	/**
+	 * The operation id for the '<em>Get Applied Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___GET_APPLIED_STEREOTYPE__STRING = NAMED_ELEMENT___GET_APPLIED_STEREOTYPE__STRING;
+
+	/**
+	 * The operation id for the '<em>Get Applied Stereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___GET_APPLIED_STEREOTYPES = NAMED_ELEMENT___GET_APPLIED_STEREOTYPES;
+
+	/**
+	 * The operation id for the '<em>Get Applied Substereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING = NAMED_ELEMENT___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING;
+
+	/**
+	 * The operation id for the '<em>Get Applied Substereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE = NAMED_ELEMENT___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Get Model</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___GET_MODEL = NAMED_ELEMENT___GET_MODEL;
+
+	/**
+	 * The operation id for the '<em>Get Nearest Package</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___GET_NEAREST_PACKAGE = NAMED_ELEMENT___GET_NEAREST_PACKAGE;
+
+	/**
+	 * The operation id for the '<em>Get Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___GET_RELATIONSHIPS = NAMED_ELEMENT___GET_RELATIONSHIPS;
+
+	/**
+	 * The operation id for the '<em>Get Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___GET_RELATIONSHIPS__ECLASS = NAMED_ELEMENT___GET_RELATIONSHIPS__ECLASS;
+
+	/**
+	 * The operation id for the '<em>Get Required Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___GET_REQUIRED_STEREOTYPE__STRING = NAMED_ELEMENT___GET_REQUIRED_STEREOTYPE__STRING;
+
+	/**
+	 * The operation id for the '<em>Get Required Stereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___GET_REQUIRED_STEREOTYPES = NAMED_ELEMENT___GET_REQUIRED_STEREOTYPES;
+
+	/**
+	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS = NAMED_ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS;
+
+	/**
+	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS = NAMED_ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS;
+
+	/**
+	 * The operation id for the '<em>Get Stereotype Application</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___GET_STEREOTYPE_APPLICATION__STEREOTYPE = NAMED_ELEMENT___GET_STEREOTYPE_APPLICATION__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Get Stereotype Applications</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___GET_STEREOTYPE_APPLICATIONS = NAMED_ELEMENT___GET_STEREOTYPE_APPLICATIONS;
+
+	/**
+	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS = NAMED_ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS;
+
+	/**
+	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS = NAMED_ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS;
+
+	/**
+	 * The operation id for the '<em>Get Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___GET_VALUE__STEREOTYPE_STRING = NAMED_ELEMENT___GET_VALUE__STEREOTYPE_STRING;
+
+	/**
+	 * The operation id for the '<em>Has Keyword</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___HAS_KEYWORD__STRING = NAMED_ELEMENT___HAS_KEYWORD__STRING;
+
+	/**
+	 * The operation id for the '<em>Has Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___HAS_VALUE__STEREOTYPE_STRING = NAMED_ELEMENT___HAS_VALUE__STEREOTYPE_STRING;
+
+	/**
+	 * The operation id for the '<em>Is Stereotype Applicable</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___IS_STEREOTYPE_APPLICABLE__STEREOTYPE = NAMED_ELEMENT___IS_STEREOTYPE_APPLICABLE__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Is Stereotype Applied</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___IS_STEREOTYPE_APPLIED__STEREOTYPE = NAMED_ELEMENT___IS_STEREOTYPE_APPLIED__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Is Stereotype Required</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___IS_STEREOTYPE_REQUIRED__STEREOTYPE = NAMED_ELEMENT___IS_STEREOTYPE_REQUIRED__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Remove Keyword</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___REMOVE_KEYWORD__STRING = NAMED_ELEMENT___REMOVE_KEYWORD__STRING;
+
+	/**
+	 * The operation id for the '<em>Set Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___SET_VALUE__STEREOTYPE_STRING_OBJECT = NAMED_ELEMENT___SET_VALUE__STEREOTYPE_STRING_OBJECT;
+
+	/**
+	 * The operation id for the '<em>Unapply Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___UNAPPLY_STEREOTYPE__STEREOTYPE = NAMED_ELEMENT___UNAPPLY_STEREOTYPE__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>All Owned Elements</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___ALL_OWNED_ELEMENTS = NAMED_ELEMENT___ALL_OWNED_ELEMENTS;
+
+	/**
+	 * The operation id for the '<em>Must Be Owned</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___MUST_BE_OWNED = NAMED_ELEMENT___MUST_BE_OWNED;
+
+	/**
+	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Has No Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Create Dependency</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___CREATE_DEPENDENCY__NAMEDELEMENT = NAMED_ELEMENT___CREATE_DEPENDENCY__NAMEDELEMENT;
+
+	/**
+	 * The operation id for the '<em>Create Usage</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___CREATE_USAGE__NAMEDELEMENT = NAMED_ELEMENT___CREATE_USAGE__NAMEDELEMENT;
+
+	/**
+	 * The operation id for the '<em>Get Label</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___GET_LABEL = NAMED_ELEMENT___GET_LABEL;
+
+	/**
+	 * The operation id for the '<em>Get Label</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___GET_LABEL__BOOLEAN = NAMED_ELEMENT___GET_LABEL__BOOLEAN;
+
+	/**
+	 * The operation id for the '<em>All Namespaces</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___ALL_NAMESPACES = NAMED_ELEMENT___ALL_NAMESPACES;
+
+	/**
+	 * The operation id for the '<em>All Owning Packages</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___ALL_OWNING_PACKAGES = NAMED_ELEMENT___ALL_OWNING_PACKAGES;
+
+	/**
+	 * The operation id for the '<em>Is Distinguishable From</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE = NAMED_ELEMENT___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___GET_NAMESPACE = NAMED_ELEMENT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___GET_QUALIFIED_NAME = NAMED_ELEMENT___GET_QUALIFIED_NAME;
+
+	/**
+	 * The operation id for the '<em>Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT___SEPARATOR = NAMED_ELEMENT___SEPARATOR;
+
+	/**
+	 * The number of operations of the '<em>Typed Element</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT_OPERATION_COUNT = NAMED_ELEMENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE__EANNOTATIONS = PACKAGEABLE_ELEMENT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Owned Comment</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE__OWNED_COMMENT = PACKAGEABLE_ELEMENT__OWNED_COMMENT;
+
+	/**
+	 * The feature id for the '<em><b>Owned Element</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE__OWNED_ELEMENT = PACKAGEABLE_ELEMENT__OWNED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Owner</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE__OWNER = PACKAGEABLE_ELEMENT__OWNER;
+
+	/**
+	 * The feature id for the '<em><b>Client Dependency</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE__CLIENT_DEPENDENCY = PACKAGEABLE_ELEMENT__CLIENT_DEPENDENCY;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE__NAME = PACKAGEABLE_ELEMENT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Name Expression</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE__NAME_EXPRESSION = PACKAGEABLE_ELEMENT__NAME_EXPRESSION;
+
+	/**
+	 * The feature id for the '<em><b>Namespace</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE__NAMESPACE = PACKAGEABLE_ELEMENT__NAMESPACE;
+
+	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE__QUALIFIED_NAME = PACKAGEABLE_ELEMENT__QUALIFIED_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Visibility</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE__VISIBILITY = PACKAGEABLE_ELEMENT__VISIBILITY;
+
+	/**
+	 * The feature id for the '<em><b>Owning Template Parameter</b></em>' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE__OWNING_TEMPLATE_PARAMETER = PACKAGEABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER;
+
+	/**
+	 * The feature id for the '<em><b>Template Parameter</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE__TEMPLATE_PARAMETER = PACKAGEABLE_ELEMENT__TEMPLATE_PARAMETER;
+
+	/**
+	 * The feature id for the '<em><b>Package</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE__PACKAGE = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Type</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE_FEATURE_COUNT = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Get EAnnotation</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___GET_EANNOTATION__STRING = PACKAGEABLE_ELEMENT___GET_EANNOTATION__STRING;
+
+	/**
+	 * The operation id for the '<em>Validate Has Owner</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Not Own Self</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Add Keyword</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___ADD_KEYWORD__STRING = PACKAGEABLE_ELEMENT___ADD_KEYWORD__STRING;
+
+	/**
+	 * The operation id for the '<em>Apply Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___APPLY_STEREOTYPE__STEREOTYPE = PACKAGEABLE_ELEMENT___APPLY_STEREOTYPE__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Create EAnnotation</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___CREATE_EANNOTATION__STRING = PACKAGEABLE_ELEMENT___CREATE_EANNOTATION__STRING;
+
+	/**
+	 * The operation id for the '<em>Destroy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___DESTROY = PACKAGEABLE_ELEMENT___DESTROY;
+
+	/**
+	 * The operation id for the '<em>Get Keywords</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___GET_KEYWORDS = PACKAGEABLE_ELEMENT___GET_KEYWORDS;
+
+	/**
+	 * The operation id for the '<em>Get Applicable Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___GET_APPLICABLE_STEREOTYPE__STRING = PACKAGEABLE_ELEMENT___GET_APPLICABLE_STEREOTYPE__STRING;
+
+	/**
+	 * The operation id for the '<em>Get Applicable Stereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___GET_APPLICABLE_STEREOTYPES = PACKAGEABLE_ELEMENT___GET_APPLICABLE_STEREOTYPES;
+
+	/**
+	 * The operation id for the '<em>Get Applied Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___GET_APPLIED_STEREOTYPE__STRING = PACKAGEABLE_ELEMENT___GET_APPLIED_STEREOTYPE__STRING;
+
+	/**
+	 * The operation id for the '<em>Get Applied Stereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___GET_APPLIED_STEREOTYPES = PACKAGEABLE_ELEMENT___GET_APPLIED_STEREOTYPES;
+
+	/**
+	 * The operation id for the '<em>Get Applied Substereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING = PACKAGEABLE_ELEMENT___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING;
+
+	/**
+	 * The operation id for the '<em>Get Applied Substereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE = PACKAGEABLE_ELEMENT___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Get Model</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___GET_MODEL = PACKAGEABLE_ELEMENT___GET_MODEL;
+
+	/**
+	 * The operation id for the '<em>Get Nearest Package</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___GET_NEAREST_PACKAGE = PACKAGEABLE_ELEMENT___GET_NEAREST_PACKAGE;
+
+	/**
+	 * The operation id for the '<em>Get Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___GET_RELATIONSHIPS = PACKAGEABLE_ELEMENT___GET_RELATIONSHIPS;
+
+	/**
+	 * The operation id for the '<em>Get Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___GET_RELATIONSHIPS__ECLASS = PACKAGEABLE_ELEMENT___GET_RELATIONSHIPS__ECLASS;
+
+	/**
+	 * The operation id for the '<em>Get Required Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___GET_REQUIRED_STEREOTYPE__STRING = PACKAGEABLE_ELEMENT___GET_REQUIRED_STEREOTYPE__STRING;
+
+	/**
+	 * The operation id for the '<em>Get Required Stereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___GET_REQUIRED_STEREOTYPES = PACKAGEABLE_ELEMENT___GET_REQUIRED_STEREOTYPES;
+
+	/**
+	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___GET_SOURCE_DIRECTED_RELATIONSHIPS = PACKAGEABLE_ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS;
+
+	/**
+	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS = PACKAGEABLE_ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS;
+
+	/**
+	 * The operation id for the '<em>Get Stereotype Application</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___GET_STEREOTYPE_APPLICATION__STEREOTYPE = PACKAGEABLE_ELEMENT___GET_STEREOTYPE_APPLICATION__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Get Stereotype Applications</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___GET_STEREOTYPE_APPLICATIONS = PACKAGEABLE_ELEMENT___GET_STEREOTYPE_APPLICATIONS;
+
+	/**
+	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___GET_TARGET_DIRECTED_RELATIONSHIPS = PACKAGEABLE_ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS;
+
+	/**
+	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS = PACKAGEABLE_ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS;
+
+	/**
+	 * The operation id for the '<em>Get Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___GET_VALUE__STEREOTYPE_STRING = PACKAGEABLE_ELEMENT___GET_VALUE__STEREOTYPE_STRING;
+
+	/**
+	 * The operation id for the '<em>Has Keyword</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___HAS_KEYWORD__STRING = PACKAGEABLE_ELEMENT___HAS_KEYWORD__STRING;
+
+	/**
+	 * The operation id for the '<em>Has Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___HAS_VALUE__STEREOTYPE_STRING = PACKAGEABLE_ELEMENT___HAS_VALUE__STEREOTYPE_STRING;
+
+	/**
+	 * The operation id for the '<em>Is Stereotype Applicable</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___IS_STEREOTYPE_APPLICABLE__STEREOTYPE = PACKAGEABLE_ELEMENT___IS_STEREOTYPE_APPLICABLE__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Is Stereotype Applied</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___IS_STEREOTYPE_APPLIED__STEREOTYPE = PACKAGEABLE_ELEMENT___IS_STEREOTYPE_APPLIED__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Is Stereotype Required</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___IS_STEREOTYPE_REQUIRED__STEREOTYPE = PACKAGEABLE_ELEMENT___IS_STEREOTYPE_REQUIRED__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Remove Keyword</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___REMOVE_KEYWORD__STRING = PACKAGEABLE_ELEMENT___REMOVE_KEYWORD__STRING;
+
+	/**
+	 * The operation id for the '<em>Set Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___SET_VALUE__STEREOTYPE_STRING_OBJECT = PACKAGEABLE_ELEMENT___SET_VALUE__STEREOTYPE_STRING_OBJECT;
+
+	/**
+	 * The operation id for the '<em>Unapply Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___UNAPPLY_STEREOTYPE__STEREOTYPE = PACKAGEABLE_ELEMENT___UNAPPLY_STEREOTYPE__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>All Owned Elements</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___ALL_OWNED_ELEMENTS = PACKAGEABLE_ELEMENT___ALL_OWNED_ELEMENTS;
+
+	/**
+	 * The operation id for the '<em>Must Be Owned</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___MUST_BE_OWNED = PACKAGEABLE_ELEMENT___MUST_BE_OWNED;
+
+	/**
+	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Has No Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Create Dependency</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___CREATE_DEPENDENCY__NAMEDELEMENT = PACKAGEABLE_ELEMENT___CREATE_DEPENDENCY__NAMEDELEMENT;
+
+	/**
+	 * The operation id for the '<em>Create Usage</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___CREATE_USAGE__NAMEDELEMENT = PACKAGEABLE_ELEMENT___CREATE_USAGE__NAMEDELEMENT;
+
+	/**
+	 * The operation id for the '<em>Get Label</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___GET_LABEL = PACKAGEABLE_ELEMENT___GET_LABEL;
+
+	/**
+	 * The operation id for the '<em>Get Label</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___GET_LABEL__BOOLEAN = PACKAGEABLE_ELEMENT___GET_LABEL__BOOLEAN;
+
+	/**
+	 * The operation id for the '<em>All Namespaces</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___ALL_NAMESPACES = PACKAGEABLE_ELEMENT___ALL_NAMESPACES;
+
+	/**
+	 * The operation id for the '<em>All Owning Packages</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___ALL_OWNING_PACKAGES = PACKAGEABLE_ELEMENT___ALL_OWNING_PACKAGES;
+
+	/**
+	 * The operation id for the '<em>Is Distinguishable From</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE = PACKAGEABLE_ELEMENT___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___GET_NAMESPACE = PACKAGEABLE_ELEMENT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___GET_QUALIFIED_NAME = PACKAGEABLE_ELEMENT___GET_QUALIFIED_NAME;
+
+	/**
+	 * The operation id for the '<em>Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___SEPARATOR = PACKAGEABLE_ELEMENT___SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Is Compatible With</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___IS_COMPATIBLE_WITH__PARAMETERABLEELEMENT = PACKAGEABLE_ELEMENT___IS_COMPATIBLE_WITH__PARAMETERABLEELEMENT;
+
+	/**
+	 * The operation id for the '<em>Is Template Parameter</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___IS_TEMPLATE_PARAMETER = PACKAGEABLE_ELEMENT___IS_TEMPLATE_PARAMETER;
+
+	/**
+	 * The operation id for the '<em>Create Association</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___CREATE_ASSOCIATION__BOOLEAN_AGGREGATIONKIND_STRING_INT_INT_TYPE_BOOLEAN_AGGREGATIONKIND_STRING_INT_INT = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Get Associations</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___GET_ASSOCIATIONS = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Conforms To</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE___CONFORMS_TO__TYPE = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 2;
+
+	/**
+	 * The number of operations of the '<em>Type</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE_OPERATION_COUNT = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE__EANNOTATIONS = NAMESPACE__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Owned Comment</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE__OWNED_COMMENT = NAMESPACE__OWNED_COMMENT;
+
+	/**
+	 * The feature id for the '<em><b>Owned Element</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE__OWNED_ELEMENT = NAMESPACE__OWNED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Owner</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE__OWNER = NAMESPACE__OWNER;
+
+	/**
+	 * The feature id for the '<em><b>Client Dependency</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE__CLIENT_DEPENDENCY = NAMESPACE__CLIENT_DEPENDENCY;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE__NAME = NAMESPACE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Name Expression</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE__NAME_EXPRESSION = NAMESPACE__NAME_EXPRESSION;
+
+	/**
+	 * The feature id for the '<em><b>Namespace</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE__NAMESPACE = NAMESPACE__NAMESPACE;
+
+	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE__QUALIFIED_NAME = NAMESPACE__QUALIFIED_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Visibility</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE__VISIBILITY = NAMESPACE__VISIBILITY;
+
+	/**
+	 * The feature id for the '<em><b>Element Import</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE__ELEMENT_IMPORT = NAMESPACE__ELEMENT_IMPORT;
+
+	/**
+	 * The feature id for the '<em><b>Package Import</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE__PACKAGE_IMPORT = NAMESPACE__PACKAGE_IMPORT;
+
+	/**
+	 * The feature id for the '<em><b>Owned Rule</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE__OWNED_RULE = NAMESPACE__OWNED_RULE;
+
+	/**
+	 * The feature id for the '<em><b>Owned Member</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE__OWNED_MEMBER = NAMESPACE__OWNED_MEMBER;
+
+	/**
+	 * The feature id for the '<em><b>Imported Member</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE__IMPORTED_MEMBER = NAMESPACE__IMPORTED_MEMBER;
+
+	/**
+	 * The feature id for the '<em><b>Member</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE__MEMBER = NAMESPACE__MEMBER;
+
+	/**
+	 * The feature id for the '<em><b>Owning Template Parameter</b></em>' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE__OWNING_TEMPLATE_PARAMETER = NAMESPACE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Template Parameter</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE__TEMPLATE_PARAMETER = NAMESPACE_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Owned Template Signature</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE__OWNED_TEMPLATE_SIGNATURE = NAMESPACE_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Template Binding</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE__TEMPLATE_BINDING = NAMESPACE_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE__URI = NAMESPACE_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Nested Package</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE__NESTED_PACKAGE = NAMESPACE_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Nesting Package</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE__NESTING_PACKAGE = NAMESPACE_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Owned Stereotype</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE__OWNED_STEREOTYPE = NAMESPACE_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>Package Merge</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE__PACKAGE_MERGE = NAMESPACE_FEATURE_COUNT + 8;
+
+	/**
+	 * The feature id for the '<em><b>Packaged Element</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE__PACKAGED_ELEMENT = NAMESPACE_FEATURE_COUNT + 9;
+
+	/**
+	 * The feature id for the '<em><b>Profile Application</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE__PROFILE_APPLICATION = NAMESPACE_FEATURE_COUNT + 10;
+
+	/**
+	 * The feature id for the '<em><b>Owned Type</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE__OWNED_TYPE = NAMESPACE_FEATURE_COUNT + 11;
+
+	/**
+	 * The number of structural features of the '<em>Package</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE_FEATURE_COUNT = NAMESPACE_FEATURE_COUNT + 12;
+
+	/**
+	 * The operation id for the '<em>Get EAnnotation</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_EANNOTATION__STRING = NAMESPACE___GET_EANNOTATION__STRING;
+
+	/**
+	 * The operation id for the '<em>Validate Has Owner</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP = NAMESPACE___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Not Own Self</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP = NAMESPACE___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Add Keyword</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___ADD_KEYWORD__STRING = NAMESPACE___ADD_KEYWORD__STRING;
+
+	/**
+	 * The operation id for the '<em>Apply Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___APPLY_STEREOTYPE__STEREOTYPE = NAMESPACE___APPLY_STEREOTYPE__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Create EAnnotation</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___CREATE_EANNOTATION__STRING = NAMESPACE___CREATE_EANNOTATION__STRING;
+
+	/**
+	 * The operation id for the '<em>Destroy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___DESTROY = NAMESPACE___DESTROY;
+
+	/**
+	 * The operation id for the '<em>Get Keywords</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_KEYWORDS = NAMESPACE___GET_KEYWORDS;
+
+	/**
+	 * The operation id for the '<em>Get Applicable Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_APPLICABLE_STEREOTYPE__STRING = NAMESPACE___GET_APPLICABLE_STEREOTYPE__STRING;
+
+	/**
+	 * The operation id for the '<em>Get Applicable Stereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_APPLICABLE_STEREOTYPES = NAMESPACE___GET_APPLICABLE_STEREOTYPES;
+
+	/**
+	 * The operation id for the '<em>Get Applied Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_APPLIED_STEREOTYPE__STRING = NAMESPACE___GET_APPLIED_STEREOTYPE__STRING;
+
+	/**
+	 * The operation id for the '<em>Get Applied Stereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_APPLIED_STEREOTYPES = NAMESPACE___GET_APPLIED_STEREOTYPES;
+
+	/**
+	 * The operation id for the '<em>Get Applied Substereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING = NAMESPACE___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING;
+
+	/**
+	 * The operation id for the '<em>Get Applied Substereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE = NAMESPACE___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Get Model</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_MODEL = NAMESPACE___GET_MODEL;
+
+	/**
+	 * The operation id for the '<em>Get Nearest Package</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_NEAREST_PACKAGE = NAMESPACE___GET_NEAREST_PACKAGE;
+
+	/**
+	 * The operation id for the '<em>Get Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_RELATIONSHIPS = NAMESPACE___GET_RELATIONSHIPS;
+
+	/**
+	 * The operation id for the '<em>Get Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_RELATIONSHIPS__ECLASS = NAMESPACE___GET_RELATIONSHIPS__ECLASS;
+
+	/**
+	 * The operation id for the '<em>Get Required Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_REQUIRED_STEREOTYPE__STRING = NAMESPACE___GET_REQUIRED_STEREOTYPE__STRING;
+
+	/**
+	 * The operation id for the '<em>Get Required Stereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_REQUIRED_STEREOTYPES = NAMESPACE___GET_REQUIRED_STEREOTYPES;
+
+	/**
+	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_SOURCE_DIRECTED_RELATIONSHIPS = NAMESPACE___GET_SOURCE_DIRECTED_RELATIONSHIPS;
+
+	/**
+	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS = NAMESPACE___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS;
+
+	/**
+	 * The operation id for the '<em>Get Stereotype Application</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_STEREOTYPE_APPLICATION__STEREOTYPE = NAMESPACE___GET_STEREOTYPE_APPLICATION__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Get Stereotype Applications</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_STEREOTYPE_APPLICATIONS = NAMESPACE___GET_STEREOTYPE_APPLICATIONS;
+
+	/**
+	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_TARGET_DIRECTED_RELATIONSHIPS = NAMESPACE___GET_TARGET_DIRECTED_RELATIONSHIPS;
+
+	/**
+	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS = NAMESPACE___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS;
+
+	/**
+	 * The operation id for the '<em>Get Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_VALUE__STEREOTYPE_STRING = NAMESPACE___GET_VALUE__STEREOTYPE_STRING;
+
+	/**
+	 * The operation id for the '<em>Has Keyword</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___HAS_KEYWORD__STRING = NAMESPACE___HAS_KEYWORD__STRING;
+
+	/**
+	 * The operation id for the '<em>Has Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___HAS_VALUE__STEREOTYPE_STRING = NAMESPACE___HAS_VALUE__STEREOTYPE_STRING;
+
+	/**
+	 * The operation id for the '<em>Is Stereotype Applicable</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___IS_STEREOTYPE_APPLICABLE__STEREOTYPE = NAMESPACE___IS_STEREOTYPE_APPLICABLE__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Is Stereotype Applied</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___IS_STEREOTYPE_APPLIED__STEREOTYPE = NAMESPACE___IS_STEREOTYPE_APPLIED__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Is Stereotype Required</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___IS_STEREOTYPE_REQUIRED__STEREOTYPE = NAMESPACE___IS_STEREOTYPE_REQUIRED__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Remove Keyword</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___REMOVE_KEYWORD__STRING = NAMESPACE___REMOVE_KEYWORD__STRING;
+
+	/**
+	 * The operation id for the '<em>Set Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___SET_VALUE__STEREOTYPE_STRING_OBJECT = NAMESPACE___SET_VALUE__STEREOTYPE_STRING_OBJECT;
+
+	/**
+	 * The operation id for the '<em>Unapply Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___UNAPPLY_STEREOTYPE__STEREOTYPE = NAMESPACE___UNAPPLY_STEREOTYPE__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>All Owned Elements</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___ALL_OWNED_ELEMENTS = NAMESPACE___ALL_OWNED_ELEMENTS;
+
+	/**
+	 * The operation id for the '<em>Must Be Owned</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___MUST_BE_OWNED = NAMESPACE___MUST_BE_OWNED;
+
+	/**
+	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = NAMESPACE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Has No Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = NAMESPACE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMESPACE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Create Dependency</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___CREATE_DEPENDENCY__NAMEDELEMENT = NAMESPACE___CREATE_DEPENDENCY__NAMEDELEMENT;
+
+	/**
+	 * The operation id for the '<em>Create Usage</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___CREATE_USAGE__NAMEDELEMENT = NAMESPACE___CREATE_USAGE__NAMEDELEMENT;
+
+	/**
+	 * The operation id for the '<em>Get Label</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_LABEL = NAMESPACE___GET_LABEL;
+
+	/**
+	 * The operation id for the '<em>Get Label</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_LABEL__BOOLEAN = NAMESPACE___GET_LABEL__BOOLEAN;
+
+	/**
+	 * The operation id for the '<em>All Namespaces</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___ALL_NAMESPACES = NAMESPACE___ALL_NAMESPACES;
+
+	/**
+	 * The operation id for the '<em>All Owning Packages</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___ALL_OWNING_PACKAGES = NAMESPACE___ALL_OWNING_PACKAGES;
+
+	/**
+	 * The operation id for the '<em>Is Distinguishable From</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE = NAMESPACE___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_NAMESPACE = NAMESPACE___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_QUALIFIED_NAME = NAMESPACE___GET_QUALIFIED_NAME;
+
+	/**
+	 * The operation id for the '<em>Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___SEPARATOR = NAMESPACE___SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Validate Members Distinguishable</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___VALIDATE_MEMBERS_DISTINGUISHABLE__DIAGNOSTICCHAIN_MAP = NAMESPACE___VALIDATE_MEMBERS_DISTINGUISHABLE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Create Element Import</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___CREATE_ELEMENT_IMPORT__PACKAGEABLEELEMENT_VISIBILITYKIND = NAMESPACE___CREATE_ELEMENT_IMPORT__PACKAGEABLEELEMENT_VISIBILITYKIND;
+
+	/**
+	 * The operation id for the '<em>Create Package Import</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___CREATE_PACKAGE_IMPORT__PACKAGE_VISIBILITYKIND = NAMESPACE___CREATE_PACKAGE_IMPORT__PACKAGE_VISIBILITYKIND;
+
+	/**
+	 * The operation id for the '<em>Get Imported Elements</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_IMPORTED_ELEMENTS = NAMESPACE___GET_IMPORTED_ELEMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Imported Packages</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_IMPORTED_PACKAGES = NAMESPACE___GET_IMPORTED_PACKAGES;
+
+	/**
+	 * The operation id for the '<em>Exclude Collisions</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___EXCLUDE_COLLISIONS__ELIST = NAMESPACE___EXCLUDE_COLLISIONS__ELIST;
+
+	/**
+	 * The operation id for the '<em>Get Names Of Member</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_NAMES_OF_MEMBER__NAMEDELEMENT = NAMESPACE___GET_NAMES_OF_MEMBER__NAMEDELEMENT;
+
+	/**
+	 * The operation id for the '<em>Import Members</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___IMPORT_MEMBERS__ELIST = NAMESPACE___IMPORT_MEMBERS__ELIST;
+
+	/**
+	 * The operation id for the '<em>Get Imported Members</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_IMPORTED_MEMBERS = NAMESPACE___GET_IMPORTED_MEMBERS;
+
+	/**
+	 * The operation id for the '<em>Members Are Distinguishable</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___MEMBERS_ARE_DISTINGUISHABLE = NAMESPACE___MEMBERS_ARE_DISTINGUISHABLE;
+
+	/**
+	 * The operation id for the '<em>Get Owned Members</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_OWNED_MEMBERS = NAMESPACE___GET_OWNED_MEMBERS;
+
+	/**
+	 * The operation id for the '<em>Is Compatible With</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___IS_COMPATIBLE_WITH__PARAMETERABLEELEMENT = NAMESPACE_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Is Template Parameter</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___IS_TEMPLATE_PARAMETER = NAMESPACE_OPERATION_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Is Template</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___IS_TEMPLATE = NAMESPACE_OPERATION_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>Parameterable Elements</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___PARAMETERABLE_ELEMENTS = NAMESPACE_OPERATION_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>Validate Elements Public Or Private</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___VALIDATE_ELEMENTS_PUBLIC_OR_PRIVATE__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 4;
+
+	/**
+	 * The operation id for the '<em>Apply Profile</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___APPLY_PROFILE__PROFILE = NAMESPACE_OPERATION_COUNT + 5;
+
+	/**
+	 * The operation id for the '<em>Create Owned Class</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___CREATE_OWNED_CLASS__STRING_BOOLEAN = NAMESPACE_OPERATION_COUNT + 6;
+
+	/**
+	 * The operation id for the '<em>Create Owned Enumeration</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___CREATE_OWNED_ENUMERATION__STRING = NAMESPACE_OPERATION_COUNT + 7;
+
+	/**
+	 * The operation id for the '<em>Create Owned Interface</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___CREATE_OWNED_INTERFACE__STRING = NAMESPACE_OPERATION_COUNT + 8;
+
+	/**
+	 * The operation id for the '<em>Create Owned Primitive Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___CREATE_OWNED_PRIMITIVE_TYPE__STRING = NAMESPACE_OPERATION_COUNT + 9;
+
+	/**
+	 * The operation id for the '<em>Create Owned Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___CREATE_OWNED_STEREOTYPE__STRING_BOOLEAN = NAMESPACE_OPERATION_COUNT + 10;
+
+	/**
+	 * The operation id for the '<em>Get All Applied Profiles</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_ALL_APPLIED_PROFILES = NAMESPACE_OPERATION_COUNT + 11;
+
+	/**
+	 * The operation id for the '<em>Get All Profile Applications</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_ALL_PROFILE_APPLICATIONS = NAMESPACE_OPERATION_COUNT + 12;
+
+	/**
+	 * The operation id for the '<em>Get Applied Profile</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_APPLIED_PROFILE__STRING = NAMESPACE_OPERATION_COUNT + 13;
+
+	/**
+	 * The operation id for the '<em>Get Applied Profile</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_APPLIED_PROFILE__STRING_BOOLEAN = NAMESPACE_OPERATION_COUNT + 14;
+
+	/**
+	 * The operation id for the '<em>Get Applied Profiles</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_APPLIED_PROFILES = NAMESPACE_OPERATION_COUNT + 15;
+
+	/**
+	 * The operation id for the '<em>Get Profile Application</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_PROFILE_APPLICATION__PROFILE = NAMESPACE_OPERATION_COUNT + 16;
+
+	/**
+	 * The operation id for the '<em>Get Profile Application</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_PROFILE_APPLICATION__PROFILE_BOOLEAN = NAMESPACE_OPERATION_COUNT + 17;
+
+	/**
+	 * The operation id for the '<em>Is Model Library</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___IS_MODEL_LIBRARY = NAMESPACE_OPERATION_COUNT + 18;
+
+	/**
+	 * The operation id for the '<em>Is Profile Applied</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___IS_PROFILE_APPLIED__PROFILE = NAMESPACE_OPERATION_COUNT + 19;
+
+	/**
+	 * The operation id for the '<em>Unapply Profile</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___UNAPPLY_PROFILE__PROFILE = NAMESPACE_OPERATION_COUNT + 20;
+
+	/**
+	 * The operation id for the '<em>All Applicable Stereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___ALL_APPLICABLE_STEREOTYPES = NAMESPACE_OPERATION_COUNT + 21;
+
+	/**
+	 * The operation id for the '<em>Containing Profile</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___CONTAINING_PROFILE = NAMESPACE_OPERATION_COUNT + 22;
+
+	/**
+	 * The operation id for the '<em>Makes Visible</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___MAKES_VISIBLE__NAMEDELEMENT = NAMESPACE_OPERATION_COUNT + 23;
+
+	/**
+	 * The operation id for the '<em>Get Nested Packages</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_NESTED_PACKAGES = NAMESPACE_OPERATION_COUNT + 24;
+
+	/**
+	 * The operation id for the '<em>Get Owned Stereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_OWNED_STEREOTYPES = NAMESPACE_OPERATION_COUNT + 25;
+
+	/**
+	 * The operation id for the '<em>Get Owned Types</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___GET_OWNED_TYPES = NAMESPACE_OPERATION_COUNT + 26;
+
+	/**
+	 * The operation id for the '<em>Visible Members</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE___VISIBLE_MEMBERS = NAMESPACE_OPERATION_COUNT + 27;
+
+	/**
+	 * The number of operations of the '<em>Package</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE_OPERATION_COUNT = NAMESPACE_OPERATION_COUNT + 28;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
 	int TEMPLATEABLE_ELEMENT__EANNOTATIONS = ELEMENT__EANNOTATIONS;
 
 	/**
@@ -17738,13 +18358,22 @@
 	int TEMPLATE_PARAMETER__DEFAULT = ELEMENT_FEATURE_COUNT + 0;
 
 	/**
+	 * The feature id for the '<em><b>Owned Default</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEMPLATE_PARAMETER__OWNED_DEFAULT = ELEMENT_FEATURE_COUNT + 1;
+
+	/**
 	 * The feature id for the '<em><b>Owned Parametered Element</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT = ELEMENT_FEATURE_COUNT + 1;
+	int TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT = ELEMENT_FEATURE_COUNT + 2;
 
 	/**
 	 * The feature id for the '<em><b>Parametered Element</b></em>' reference.
@@ -17753,16 +18382,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int TEMPLATE_PARAMETER__PARAMETERED_ELEMENT = ELEMENT_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Owned Default</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TEMPLATE_PARAMETER__OWNED_DEFAULT = ELEMENT_FEATURE_COUNT + 3;
+	int TEMPLATE_PARAMETER__PARAMETERED_ELEMENT = ELEMENT_FEATURE_COUNT + 3;
 
 	/**
 	 * The feature id for the '<em><b>Signature</b></em>' container reference.
@@ -18140,7 +18760,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT__EANNOTATIONS = ELEMENT__EANNOTATIONS;
+	int RELATIONSHIP__EANNOTATIONS = ELEMENT__EANNOTATIONS;
 
 	/**
 	 * The feature id for the '<em><b>Owned Comment</b></em>' containment reference list.
@@ -18149,7 +18769,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT__OWNED_COMMENT = ELEMENT__OWNED_COMMENT;
+	int RELATIONSHIP__OWNED_COMMENT = ELEMENT__OWNED_COMMENT;
 
 	/**
 	 * The feature id for the '<em><b>Owned Element</b></em>' reference list.
@@ -18158,7 +18778,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT__OWNED_ELEMENT = ELEMENT__OWNED_ELEMENT;
+	int RELATIONSHIP__OWNED_ELEMENT = ELEMENT__OWNED_ELEMENT;
 
 	/**
 	 * The feature id for the '<em><b>Owner</b></em>' reference.
@@ -18167,34 +18787,25 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT__OWNER = ELEMENT__OWNER;
+	int RELATIONSHIP__OWNER = ELEMENT__OWNER;
 
 	/**
-	 * The feature id for the '<em><b>Owning Template Parameter</b></em>' container reference.
+	 * The feature id for the '<em><b>Related Element</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER = ELEMENT_FEATURE_COUNT + 0;
+	int RELATIONSHIP__RELATED_ELEMENT = ELEMENT_FEATURE_COUNT + 0;
 
 	/**
-	 * The feature id for the '<em><b>Template Parameter</b></em>' reference.
+	 * The number of structural features of the '<em>Relationship</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER = ELEMENT_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of structural features of the '<em>Parameterable Element</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETERABLE_ELEMENT_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 2;
+	int RELATIONSHIP_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 1;
 
 	/**
 	 * The operation id for the '<em>Get EAnnotation</em>' operation.
@@ -18203,7 +18814,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT___GET_EANNOTATION__STRING = ELEMENT___GET_EANNOTATION__STRING;
+	int RELATIONSHIP___GET_EANNOTATION__STRING = ELEMENT___GET_EANNOTATION__STRING;
 
 	/**
 	 * The operation id for the '<em>Validate Has Owner</em>' operation.
@@ -18212,7 +18823,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP = ELEMENT___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP;
+	int RELATIONSHIP___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP = ELEMENT___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Not Own Self</em>' operation.
@@ -18221,7 +18832,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP = ELEMENT___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP;
+	int RELATIONSHIP___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP = ELEMENT___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Add Keyword</em>' operation.
@@ -18230,7 +18841,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT___ADD_KEYWORD__STRING = ELEMENT___ADD_KEYWORD__STRING;
+	int RELATIONSHIP___ADD_KEYWORD__STRING = ELEMENT___ADD_KEYWORD__STRING;
 
 	/**
 	 * The operation id for the '<em>Apply Stereotype</em>' operation.
@@ -18239,7 +18850,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT___APPLY_STEREOTYPE__STEREOTYPE = ELEMENT___APPLY_STEREOTYPE__STEREOTYPE;
+	int RELATIONSHIP___APPLY_STEREOTYPE__STEREOTYPE = ELEMENT___APPLY_STEREOTYPE__STEREOTYPE;
 
 	/**
 	 * The operation id for the '<em>Create EAnnotation</em>' operation.
@@ -18248,7 +18859,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT___CREATE_EANNOTATION__STRING = ELEMENT___CREATE_EANNOTATION__STRING;
+	int RELATIONSHIP___CREATE_EANNOTATION__STRING = ELEMENT___CREATE_EANNOTATION__STRING;
 
 	/**
 	 * The operation id for the '<em>Destroy</em>' operation.
@@ -18257,7 +18868,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT___DESTROY = ELEMENT___DESTROY;
+	int RELATIONSHIP___DESTROY = ELEMENT___DESTROY;
 
 	/**
 	 * The operation id for the '<em>Get Keywords</em>' operation.
@@ -18266,7 +18877,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT___GET_KEYWORDS = ELEMENT___GET_KEYWORDS;
+	int RELATIONSHIP___GET_KEYWORDS = ELEMENT___GET_KEYWORDS;
 
 	/**
 	 * The operation id for the '<em>Get Applicable Stereotype</em>' operation.
@@ -18275,7 +18886,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT___GET_APPLICABLE_STEREOTYPE__STRING = ELEMENT___GET_APPLICABLE_STEREOTYPE__STRING;
+	int RELATIONSHIP___GET_APPLICABLE_STEREOTYPE__STRING = ELEMENT___GET_APPLICABLE_STEREOTYPE__STRING;
 
 	/**
 	 * The operation id for the '<em>Get Applicable Stereotypes</em>' operation.
@@ -18284,7 +18895,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT___GET_APPLICABLE_STEREOTYPES = ELEMENT___GET_APPLICABLE_STEREOTYPES;
+	int RELATIONSHIP___GET_APPLICABLE_STEREOTYPES = ELEMENT___GET_APPLICABLE_STEREOTYPES;
 
 	/**
 	 * The operation id for the '<em>Get Applied Stereotype</em>' operation.
@@ -18293,7 +18904,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT___GET_APPLIED_STEREOTYPE__STRING = ELEMENT___GET_APPLIED_STEREOTYPE__STRING;
+	int RELATIONSHIP___GET_APPLIED_STEREOTYPE__STRING = ELEMENT___GET_APPLIED_STEREOTYPE__STRING;
 
 	/**
 	 * The operation id for the '<em>Get Applied Stereotypes</em>' operation.
@@ -18302,7 +18913,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT___GET_APPLIED_STEREOTYPES = ELEMENT___GET_APPLIED_STEREOTYPES;
+	int RELATIONSHIP___GET_APPLIED_STEREOTYPES = ELEMENT___GET_APPLIED_STEREOTYPES;
 
 	/**
 	 * The operation id for the '<em>Get Applied Substereotype</em>' operation.
@@ -18311,7 +18922,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING = ELEMENT___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING;
+	int RELATIONSHIP___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING = ELEMENT___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING;
 
 	/**
 	 * The operation id for the '<em>Get Applied Substereotypes</em>' operation.
@@ -18320,7 +18931,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE = ELEMENT___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE;
+	int RELATIONSHIP___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE = ELEMENT___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE;
 
 	/**
 	 * The operation id for the '<em>Get Model</em>' operation.
@@ -18329,7 +18940,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT___GET_MODEL = ELEMENT___GET_MODEL;
+	int RELATIONSHIP___GET_MODEL = ELEMENT___GET_MODEL;
 
 	/**
 	 * The operation id for the '<em>Get Nearest Package</em>' operation.
@@ -18338,7 +18949,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT___GET_NEAREST_PACKAGE = ELEMENT___GET_NEAREST_PACKAGE;
+	int RELATIONSHIP___GET_NEAREST_PACKAGE = ELEMENT___GET_NEAREST_PACKAGE;
 
 	/**
 	 * The operation id for the '<em>Get Relationships</em>' operation.
@@ -18347,7 +18958,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT___GET_RELATIONSHIPS = ELEMENT___GET_RELATIONSHIPS;
+	int RELATIONSHIP___GET_RELATIONSHIPS = ELEMENT___GET_RELATIONSHIPS;
 
 	/**
 	 * The operation id for the '<em>Get Relationships</em>' operation.
@@ -18356,7 +18967,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT___GET_RELATIONSHIPS__ECLASS = ELEMENT___GET_RELATIONSHIPS__ECLASS;
+	int RELATIONSHIP___GET_RELATIONSHIPS__ECLASS = ELEMENT___GET_RELATIONSHIPS__ECLASS;
 
 	/**
 	 * The operation id for the '<em>Get Required Stereotype</em>' operation.
@@ -18365,7 +18976,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT___GET_REQUIRED_STEREOTYPE__STRING = ELEMENT___GET_REQUIRED_STEREOTYPE__STRING;
+	int RELATIONSHIP___GET_REQUIRED_STEREOTYPE__STRING = ELEMENT___GET_REQUIRED_STEREOTYPE__STRING;
 
 	/**
 	 * The operation id for the '<em>Get Required Stereotypes</em>' operation.
@@ -18374,7 +18985,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT___GET_REQUIRED_STEREOTYPES = ELEMENT___GET_REQUIRED_STEREOTYPES;
+	int RELATIONSHIP___GET_REQUIRED_STEREOTYPES = ELEMENT___GET_REQUIRED_STEREOTYPES;
 
 	/**
 	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
@@ -18383,7 +18994,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS = ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS;
+	int RELATIONSHIP___GET_SOURCE_DIRECTED_RELATIONSHIPS = ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS;
 
 	/**
 	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
@@ -18392,7 +19003,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS = ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS;
+	int RELATIONSHIP___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS = ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS;
 
 	/**
 	 * The operation id for the '<em>Get Stereotype Application</em>' operation.
@@ -18401,7 +19012,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT___GET_STEREOTYPE_APPLICATION__STEREOTYPE = ELEMENT___GET_STEREOTYPE_APPLICATION__STEREOTYPE;
+	int RELATIONSHIP___GET_STEREOTYPE_APPLICATION__STEREOTYPE = ELEMENT___GET_STEREOTYPE_APPLICATION__STEREOTYPE;
 
 	/**
 	 * The operation id for the '<em>Get Stereotype Applications</em>' operation.
@@ -18410,7 +19021,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT___GET_STEREOTYPE_APPLICATIONS = ELEMENT___GET_STEREOTYPE_APPLICATIONS;
+	int RELATIONSHIP___GET_STEREOTYPE_APPLICATIONS = ELEMENT___GET_STEREOTYPE_APPLICATIONS;
 
 	/**
 	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
@@ -18419,7 +19030,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS = ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS;
+	int RELATIONSHIP___GET_TARGET_DIRECTED_RELATIONSHIPS = ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS;
 
 	/**
 	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
@@ -18428,7 +19039,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS = ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS;
+	int RELATIONSHIP___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS = ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS;
 
 	/**
 	 * The operation id for the '<em>Get Value</em>' operation.
@@ -18437,7 +19048,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT___GET_VALUE__STEREOTYPE_STRING = ELEMENT___GET_VALUE__STEREOTYPE_STRING;
+	int RELATIONSHIP___GET_VALUE__STEREOTYPE_STRING = ELEMENT___GET_VALUE__STEREOTYPE_STRING;
 
 	/**
 	 * The operation id for the '<em>Has Keyword</em>' operation.
@@ -18446,7 +19057,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT___HAS_KEYWORD__STRING = ELEMENT___HAS_KEYWORD__STRING;
+	int RELATIONSHIP___HAS_KEYWORD__STRING = ELEMENT___HAS_KEYWORD__STRING;
 
 	/**
 	 * The operation id for the '<em>Has Value</em>' operation.
@@ -18455,7 +19066,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT___HAS_VALUE__STEREOTYPE_STRING = ELEMENT___HAS_VALUE__STEREOTYPE_STRING;
+	int RELATIONSHIP___HAS_VALUE__STEREOTYPE_STRING = ELEMENT___HAS_VALUE__STEREOTYPE_STRING;
 
 	/**
 	 * The operation id for the '<em>Is Stereotype Applicable</em>' operation.
@@ -18464,7 +19075,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT___IS_STEREOTYPE_APPLICABLE__STEREOTYPE = ELEMENT___IS_STEREOTYPE_APPLICABLE__STEREOTYPE;
+	int RELATIONSHIP___IS_STEREOTYPE_APPLICABLE__STEREOTYPE = ELEMENT___IS_STEREOTYPE_APPLICABLE__STEREOTYPE;
 
 	/**
 	 * The operation id for the '<em>Is Stereotype Applied</em>' operation.
@@ -18473,7 +19084,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT___IS_STEREOTYPE_APPLIED__STEREOTYPE = ELEMENT___IS_STEREOTYPE_APPLIED__STEREOTYPE;
+	int RELATIONSHIP___IS_STEREOTYPE_APPLIED__STEREOTYPE = ELEMENT___IS_STEREOTYPE_APPLIED__STEREOTYPE;
 
 	/**
 	 * The operation id for the '<em>Is Stereotype Required</em>' operation.
@@ -18482,7 +19093,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT___IS_STEREOTYPE_REQUIRED__STEREOTYPE = ELEMENT___IS_STEREOTYPE_REQUIRED__STEREOTYPE;
+	int RELATIONSHIP___IS_STEREOTYPE_REQUIRED__STEREOTYPE = ELEMENT___IS_STEREOTYPE_REQUIRED__STEREOTYPE;
 
 	/**
 	 * The operation id for the '<em>Remove Keyword</em>' operation.
@@ -18491,7 +19102,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT___REMOVE_KEYWORD__STRING = ELEMENT___REMOVE_KEYWORD__STRING;
+	int RELATIONSHIP___REMOVE_KEYWORD__STRING = ELEMENT___REMOVE_KEYWORD__STRING;
 
 	/**
 	 * The operation id for the '<em>Set Value</em>' operation.
@@ -18500,7 +19111,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT___SET_VALUE__STEREOTYPE_STRING_OBJECT = ELEMENT___SET_VALUE__STEREOTYPE_STRING_OBJECT;
+	int RELATIONSHIP___SET_VALUE__STEREOTYPE_STRING_OBJECT = ELEMENT___SET_VALUE__STEREOTYPE_STRING_OBJECT;
 
 	/**
 	 * The operation id for the '<em>Unapply Stereotype</em>' operation.
@@ -18509,7 +19120,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT___UNAPPLY_STEREOTYPE__STEREOTYPE = ELEMENT___UNAPPLY_STEREOTYPE__STEREOTYPE;
+	int RELATIONSHIP___UNAPPLY_STEREOTYPE__STEREOTYPE = ELEMENT___UNAPPLY_STEREOTYPE__STEREOTYPE;
 
 	/**
 	 * The operation id for the '<em>All Owned Elements</em>' operation.
@@ -18518,7 +19129,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT___ALL_OWNED_ELEMENTS = ELEMENT___ALL_OWNED_ELEMENTS;
+	int RELATIONSHIP___ALL_OWNED_ELEMENTS = ELEMENT___ALL_OWNED_ELEMENTS;
 
 	/**
 	 * The operation id for the '<em>Must Be Owned</em>' operation.
@@ -18527,34 +19138,430 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT___MUST_BE_OWNED = ELEMENT___MUST_BE_OWNED;
+	int RELATIONSHIP___MUST_BE_OWNED = ELEMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Is Compatible With</em>' operation.
+	 * The number of operations of the '<em>Relationship</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT___IS_COMPATIBLE_WITH__PARAMETERABLEELEMENT = ELEMENT_OPERATION_COUNT + 0;
+	int RELATIONSHIP_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0;
 
 	/**
-	 * The operation id for the '<em>Is Template Parameter</em>' operation.
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT___IS_TEMPLATE_PARAMETER = ELEMENT_OPERATION_COUNT + 1;
+	int DIRECTED_RELATIONSHIP__EANNOTATIONS = RELATIONSHIP__EANNOTATIONS;
 
 	/**
-	 * The number of operations of the '<em>Parameterable Element</em>' class.
+	 * The feature id for the '<em><b>Owned Comment</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETERABLE_ELEMENT_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 2;
+	int DIRECTED_RELATIONSHIP__OWNED_COMMENT = RELATIONSHIP__OWNED_COMMENT;
+
+	/**
+	 * The feature id for the '<em><b>Owned Element</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP__OWNED_ELEMENT = RELATIONSHIP__OWNED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Owner</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP__OWNER = RELATIONSHIP__OWNER;
+
+	/**
+	 * The feature id for the '<em><b>Related Element</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP__RELATED_ELEMENT = RELATIONSHIP__RELATED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Source</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP__SOURCE = RELATIONSHIP_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Target</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP__TARGET = RELATIONSHIP_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Directed Relationship</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP_FEATURE_COUNT = RELATIONSHIP_FEATURE_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>Get EAnnotation</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP___GET_EANNOTATION__STRING = RELATIONSHIP___GET_EANNOTATION__STRING;
+
+	/**
+	 * The operation id for the '<em>Validate Has Owner</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP = RELATIONSHIP___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Not Own Self</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP = RELATIONSHIP___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Add Keyword</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP___ADD_KEYWORD__STRING = RELATIONSHIP___ADD_KEYWORD__STRING;
+
+	/**
+	 * The operation id for the '<em>Apply Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP___APPLY_STEREOTYPE__STEREOTYPE = RELATIONSHIP___APPLY_STEREOTYPE__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Create EAnnotation</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP___CREATE_EANNOTATION__STRING = RELATIONSHIP___CREATE_EANNOTATION__STRING;
+
+	/**
+	 * The operation id for the '<em>Destroy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP___DESTROY = RELATIONSHIP___DESTROY;
+
+	/**
+	 * The operation id for the '<em>Get Keywords</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP___GET_KEYWORDS = RELATIONSHIP___GET_KEYWORDS;
+
+	/**
+	 * The operation id for the '<em>Get Applicable Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP___GET_APPLICABLE_STEREOTYPE__STRING = RELATIONSHIP___GET_APPLICABLE_STEREOTYPE__STRING;
+
+	/**
+	 * The operation id for the '<em>Get Applicable Stereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP___GET_APPLICABLE_STEREOTYPES = RELATIONSHIP___GET_APPLICABLE_STEREOTYPES;
+
+	/**
+	 * The operation id for the '<em>Get Applied Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP___GET_APPLIED_STEREOTYPE__STRING = RELATIONSHIP___GET_APPLIED_STEREOTYPE__STRING;
+
+	/**
+	 * The operation id for the '<em>Get Applied Stereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP___GET_APPLIED_STEREOTYPES = RELATIONSHIP___GET_APPLIED_STEREOTYPES;
+
+	/**
+	 * The operation id for the '<em>Get Applied Substereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING = RELATIONSHIP___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING;
+
+	/**
+	 * The operation id for the '<em>Get Applied Substereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE = RELATIONSHIP___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Get Model</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP___GET_MODEL = RELATIONSHIP___GET_MODEL;
+
+	/**
+	 * The operation id for the '<em>Get Nearest Package</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP___GET_NEAREST_PACKAGE = RELATIONSHIP___GET_NEAREST_PACKAGE;
+
+	/**
+	 * The operation id for the '<em>Get Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP___GET_RELATIONSHIPS = RELATIONSHIP___GET_RELATIONSHIPS;
+
+	/**
+	 * The operation id for the '<em>Get Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP___GET_RELATIONSHIPS__ECLASS = RELATIONSHIP___GET_RELATIONSHIPS__ECLASS;
+
+	/**
+	 * The operation id for the '<em>Get Required Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP___GET_REQUIRED_STEREOTYPE__STRING = RELATIONSHIP___GET_REQUIRED_STEREOTYPE__STRING;
+
+	/**
+	 * The operation id for the '<em>Get Required Stereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP___GET_REQUIRED_STEREOTYPES = RELATIONSHIP___GET_REQUIRED_STEREOTYPES;
+
+	/**
+	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP___GET_SOURCE_DIRECTED_RELATIONSHIPS = RELATIONSHIP___GET_SOURCE_DIRECTED_RELATIONSHIPS;
+
+	/**
+	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS = RELATIONSHIP___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS;
+
+	/**
+	 * The operation id for the '<em>Get Stereotype Application</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP___GET_STEREOTYPE_APPLICATION__STEREOTYPE = RELATIONSHIP___GET_STEREOTYPE_APPLICATION__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Get Stereotype Applications</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP___GET_STEREOTYPE_APPLICATIONS = RELATIONSHIP___GET_STEREOTYPE_APPLICATIONS;
+
+	/**
+	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP___GET_TARGET_DIRECTED_RELATIONSHIPS = RELATIONSHIP___GET_TARGET_DIRECTED_RELATIONSHIPS;
+
+	/**
+	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS = RELATIONSHIP___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS;
+
+	/**
+	 * The operation id for the '<em>Get Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP___GET_VALUE__STEREOTYPE_STRING = RELATIONSHIP___GET_VALUE__STEREOTYPE_STRING;
+
+	/**
+	 * The operation id for the '<em>Has Keyword</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP___HAS_KEYWORD__STRING = RELATIONSHIP___HAS_KEYWORD__STRING;
+
+	/**
+	 * The operation id for the '<em>Has Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP___HAS_VALUE__STEREOTYPE_STRING = RELATIONSHIP___HAS_VALUE__STEREOTYPE_STRING;
+
+	/**
+	 * The operation id for the '<em>Is Stereotype Applicable</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP___IS_STEREOTYPE_APPLICABLE__STEREOTYPE = RELATIONSHIP___IS_STEREOTYPE_APPLICABLE__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Is Stereotype Applied</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP___IS_STEREOTYPE_APPLIED__STEREOTYPE = RELATIONSHIP___IS_STEREOTYPE_APPLIED__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Is Stereotype Required</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP___IS_STEREOTYPE_REQUIRED__STEREOTYPE = RELATIONSHIP___IS_STEREOTYPE_REQUIRED__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Remove Keyword</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP___REMOVE_KEYWORD__STRING = RELATIONSHIP___REMOVE_KEYWORD__STRING;
+
+	/**
+	 * The operation id for the '<em>Set Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP___SET_VALUE__STEREOTYPE_STRING_OBJECT = RELATIONSHIP___SET_VALUE__STEREOTYPE_STRING_OBJECT;
+
+	/**
+	 * The operation id for the '<em>Unapply Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP___UNAPPLY_STEREOTYPE__STEREOTYPE = RELATIONSHIP___UNAPPLY_STEREOTYPE__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>All Owned Elements</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP___ALL_OWNED_ELEMENTS = RELATIONSHIP___ALL_OWNED_ELEMENTS;
+
+	/**
+	 * The operation id for the '<em>Must Be Owned</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP___MUST_BE_OWNED = RELATIONSHIP___MUST_BE_OWNED;
+
+	/**
+	 * The number of operations of the '<em>Directed Relationship</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DIRECTED_RELATIONSHIP_OPERATION_COUNT = RELATIONSHIP_OPERATION_COUNT + 0;
 
 	/**
 	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
@@ -19448,2274 +20455,6 @@
 	int TEMPLATE_PARAMETER_SUBSTITUTION_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 1;
 
 	/**
-	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT__EANNOTATIONS = NAMED_ELEMENT__EANNOTATIONS;
-
-	/**
-	 * The feature id for the '<em><b>Owned Comment</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT__OWNED_COMMENT = NAMED_ELEMENT__OWNED_COMMENT;
-
-	/**
-	 * The feature id for the '<em><b>Owned Element</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT__OWNED_ELEMENT = NAMED_ELEMENT__OWNED_ELEMENT;
-
-	/**
-	 * The feature id for the '<em><b>Owner</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT__OWNER = NAMED_ELEMENT__OWNER;
-
-	/**
-	 * The feature id for the '<em><b>Client Dependency</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT__CLIENT_DEPENDENCY = NAMED_ELEMENT__CLIENT_DEPENDENCY;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT__NAME = NAMED_ELEMENT__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Name Expression</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT__NAME_EXPRESSION = NAMED_ELEMENT__NAME_EXPRESSION;
-
-	/**
-	 * The feature id for the '<em><b>Namespace</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT__NAMESPACE = NAMED_ELEMENT__NAMESPACE;
-
-	/**
-	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT__QUALIFIED_NAME = NAMED_ELEMENT__QUALIFIED_NAME;
-
-	/**
-	 * The feature id for the '<em><b>Visibility</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT__VISIBILITY = NAMED_ELEMENT__VISIBILITY;
-
-	/**
-	 * The feature id for the '<em><b>Type</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT__TYPE = NAMED_ELEMENT_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Typed Element</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 1;
-
-	/**
-	 * The operation id for the '<em>Get EAnnotation</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___GET_EANNOTATION__STRING = NAMED_ELEMENT___GET_EANNOTATION__STRING;
-
-	/**
-	 * The operation id for the '<em>Validate Has Owner</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Not Own Self</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Add Keyword</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___ADD_KEYWORD__STRING = NAMED_ELEMENT___ADD_KEYWORD__STRING;
-
-	/**
-	 * The operation id for the '<em>Apply Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___APPLY_STEREOTYPE__STEREOTYPE = NAMED_ELEMENT___APPLY_STEREOTYPE__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Create EAnnotation</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___CREATE_EANNOTATION__STRING = NAMED_ELEMENT___CREATE_EANNOTATION__STRING;
-
-	/**
-	 * The operation id for the '<em>Destroy</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___DESTROY = NAMED_ELEMENT___DESTROY;
-
-	/**
-	 * The operation id for the '<em>Get Keywords</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___GET_KEYWORDS = NAMED_ELEMENT___GET_KEYWORDS;
-
-	/**
-	 * The operation id for the '<em>Get Applicable Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___GET_APPLICABLE_STEREOTYPE__STRING = NAMED_ELEMENT___GET_APPLICABLE_STEREOTYPE__STRING;
-
-	/**
-	 * The operation id for the '<em>Get Applicable Stereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___GET_APPLICABLE_STEREOTYPES = NAMED_ELEMENT___GET_APPLICABLE_STEREOTYPES;
-
-	/**
-	 * The operation id for the '<em>Get Applied Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___GET_APPLIED_STEREOTYPE__STRING = NAMED_ELEMENT___GET_APPLIED_STEREOTYPE__STRING;
-
-	/**
-	 * The operation id for the '<em>Get Applied Stereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___GET_APPLIED_STEREOTYPES = NAMED_ELEMENT___GET_APPLIED_STEREOTYPES;
-
-	/**
-	 * The operation id for the '<em>Get Applied Substereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING = NAMED_ELEMENT___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING;
-
-	/**
-	 * The operation id for the '<em>Get Applied Substereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE = NAMED_ELEMENT___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Get Model</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___GET_MODEL = NAMED_ELEMENT___GET_MODEL;
-
-	/**
-	 * The operation id for the '<em>Get Nearest Package</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___GET_NEAREST_PACKAGE = NAMED_ELEMENT___GET_NEAREST_PACKAGE;
-
-	/**
-	 * The operation id for the '<em>Get Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___GET_RELATIONSHIPS = NAMED_ELEMENT___GET_RELATIONSHIPS;
-
-	/**
-	 * The operation id for the '<em>Get Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___GET_RELATIONSHIPS__ECLASS = NAMED_ELEMENT___GET_RELATIONSHIPS__ECLASS;
-
-	/**
-	 * The operation id for the '<em>Get Required Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___GET_REQUIRED_STEREOTYPE__STRING = NAMED_ELEMENT___GET_REQUIRED_STEREOTYPE__STRING;
-
-	/**
-	 * The operation id for the '<em>Get Required Stereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___GET_REQUIRED_STEREOTYPES = NAMED_ELEMENT___GET_REQUIRED_STEREOTYPES;
-
-	/**
-	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS = NAMED_ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS;
-
-	/**
-	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS = NAMED_ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS;
-
-	/**
-	 * The operation id for the '<em>Get Stereotype Application</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___GET_STEREOTYPE_APPLICATION__STEREOTYPE = NAMED_ELEMENT___GET_STEREOTYPE_APPLICATION__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Get Stereotype Applications</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___GET_STEREOTYPE_APPLICATIONS = NAMED_ELEMENT___GET_STEREOTYPE_APPLICATIONS;
-
-	/**
-	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS = NAMED_ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS;
-
-	/**
-	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS = NAMED_ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS;
-
-	/**
-	 * The operation id for the '<em>Get Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___GET_VALUE__STEREOTYPE_STRING = NAMED_ELEMENT___GET_VALUE__STEREOTYPE_STRING;
-
-	/**
-	 * The operation id for the '<em>Has Keyword</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___HAS_KEYWORD__STRING = NAMED_ELEMENT___HAS_KEYWORD__STRING;
-
-	/**
-	 * The operation id for the '<em>Has Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___HAS_VALUE__STEREOTYPE_STRING = NAMED_ELEMENT___HAS_VALUE__STEREOTYPE_STRING;
-
-	/**
-	 * The operation id for the '<em>Is Stereotype Applicable</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___IS_STEREOTYPE_APPLICABLE__STEREOTYPE = NAMED_ELEMENT___IS_STEREOTYPE_APPLICABLE__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Is Stereotype Applied</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___IS_STEREOTYPE_APPLIED__STEREOTYPE = NAMED_ELEMENT___IS_STEREOTYPE_APPLIED__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Is Stereotype Required</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___IS_STEREOTYPE_REQUIRED__STEREOTYPE = NAMED_ELEMENT___IS_STEREOTYPE_REQUIRED__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Remove Keyword</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___REMOVE_KEYWORD__STRING = NAMED_ELEMENT___REMOVE_KEYWORD__STRING;
-
-	/**
-	 * The operation id for the '<em>Set Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___SET_VALUE__STEREOTYPE_STRING_OBJECT = NAMED_ELEMENT___SET_VALUE__STEREOTYPE_STRING_OBJECT;
-
-	/**
-	 * The operation id for the '<em>Unapply Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___UNAPPLY_STEREOTYPE__STEREOTYPE = NAMED_ELEMENT___UNAPPLY_STEREOTYPE__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>All Owned Elements</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___ALL_OWNED_ELEMENTS = NAMED_ELEMENT___ALL_OWNED_ELEMENTS;
-
-	/**
-	 * The operation id for the '<em>Must Be Owned</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___MUST_BE_OWNED = NAMED_ELEMENT___MUST_BE_OWNED;
-
-	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Has No Qualified Name</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Create Dependency</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___CREATE_DEPENDENCY__NAMEDELEMENT = NAMED_ELEMENT___CREATE_DEPENDENCY__NAMEDELEMENT;
-
-	/**
-	 * The operation id for the '<em>Create Usage</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___CREATE_USAGE__NAMEDELEMENT = NAMED_ELEMENT___CREATE_USAGE__NAMEDELEMENT;
-
-	/**
-	 * The operation id for the '<em>Get Label</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___GET_LABEL = NAMED_ELEMENT___GET_LABEL;
-
-	/**
-	 * The operation id for the '<em>Get Label</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___GET_LABEL__BOOLEAN = NAMED_ELEMENT___GET_LABEL__BOOLEAN;
-
-	/**
-	 * The operation id for the '<em>All Namespaces</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___ALL_NAMESPACES = NAMED_ELEMENT___ALL_NAMESPACES;
-
-	/**
-	 * The operation id for the '<em>All Owning Packages</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___ALL_OWNING_PACKAGES = NAMED_ELEMENT___ALL_OWNING_PACKAGES;
-
-	/**
-	 * The operation id for the '<em>Is Distinguishable From</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE = NAMED_ELEMENT___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE;
-
-	/**
-	 * The operation id for the '<em>Get Namespace</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___GET_NAMESPACE = NAMED_ELEMENT___GET_NAMESPACE;
-
-	/**
-	 * The operation id for the '<em>Get Qualified Name</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___GET_QUALIFIED_NAME = NAMED_ELEMENT___GET_QUALIFIED_NAME;
-
-	/**
-	 * The operation id for the '<em>Separator</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT___SEPARATOR = NAMED_ELEMENT___SEPARATOR;
-
-	/**
-	 * The number of operations of the '<em>Typed Element</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT_OPERATION_COUNT = NAMED_ELEMENT_OPERATION_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE__EANNOTATIONS = PACKAGEABLE_ELEMENT__EANNOTATIONS;
-
-	/**
-	 * The feature id for the '<em><b>Owned Comment</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE__OWNED_COMMENT = PACKAGEABLE_ELEMENT__OWNED_COMMENT;
-
-	/**
-	 * The feature id for the '<em><b>Owned Element</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE__OWNED_ELEMENT = PACKAGEABLE_ELEMENT__OWNED_ELEMENT;
-
-	/**
-	 * The feature id for the '<em><b>Owner</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE__OWNER = PACKAGEABLE_ELEMENT__OWNER;
-
-	/**
-	 * The feature id for the '<em><b>Client Dependency</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE__CLIENT_DEPENDENCY = PACKAGEABLE_ELEMENT__CLIENT_DEPENDENCY;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE__NAME = PACKAGEABLE_ELEMENT__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Name Expression</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE__NAME_EXPRESSION = PACKAGEABLE_ELEMENT__NAME_EXPRESSION;
-
-	/**
-	 * The feature id for the '<em><b>Namespace</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE__NAMESPACE = PACKAGEABLE_ELEMENT__NAMESPACE;
-
-	/**
-	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE__QUALIFIED_NAME = PACKAGEABLE_ELEMENT__QUALIFIED_NAME;
-
-	/**
-	 * The feature id for the '<em><b>Visibility</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE__VISIBILITY = PACKAGEABLE_ELEMENT__VISIBILITY;
-
-	/**
-	 * The feature id for the '<em><b>Owning Template Parameter</b></em>' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE__OWNING_TEMPLATE_PARAMETER = PACKAGEABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER;
-
-	/**
-	 * The feature id for the '<em><b>Template Parameter</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE__TEMPLATE_PARAMETER = PACKAGEABLE_ELEMENT__TEMPLATE_PARAMETER;
-
-	/**
-	 * The feature id for the '<em><b>Package</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE__PACKAGE = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Type</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE_FEATURE_COUNT = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 1;
-
-	/**
-	 * The operation id for the '<em>Get EAnnotation</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___GET_EANNOTATION__STRING = PACKAGEABLE_ELEMENT___GET_EANNOTATION__STRING;
-
-	/**
-	 * The operation id for the '<em>Validate Has Owner</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Not Own Self</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Add Keyword</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___ADD_KEYWORD__STRING = PACKAGEABLE_ELEMENT___ADD_KEYWORD__STRING;
-
-	/**
-	 * The operation id for the '<em>Apply Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___APPLY_STEREOTYPE__STEREOTYPE = PACKAGEABLE_ELEMENT___APPLY_STEREOTYPE__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Create EAnnotation</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___CREATE_EANNOTATION__STRING = PACKAGEABLE_ELEMENT___CREATE_EANNOTATION__STRING;
-
-	/**
-	 * The operation id for the '<em>Destroy</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___DESTROY = PACKAGEABLE_ELEMENT___DESTROY;
-
-	/**
-	 * The operation id for the '<em>Get Keywords</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___GET_KEYWORDS = PACKAGEABLE_ELEMENT___GET_KEYWORDS;
-
-	/**
-	 * The operation id for the '<em>Get Applicable Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___GET_APPLICABLE_STEREOTYPE__STRING = PACKAGEABLE_ELEMENT___GET_APPLICABLE_STEREOTYPE__STRING;
-
-	/**
-	 * The operation id for the '<em>Get Applicable Stereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___GET_APPLICABLE_STEREOTYPES = PACKAGEABLE_ELEMENT___GET_APPLICABLE_STEREOTYPES;
-
-	/**
-	 * The operation id for the '<em>Get Applied Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___GET_APPLIED_STEREOTYPE__STRING = PACKAGEABLE_ELEMENT___GET_APPLIED_STEREOTYPE__STRING;
-
-	/**
-	 * The operation id for the '<em>Get Applied Stereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___GET_APPLIED_STEREOTYPES = PACKAGEABLE_ELEMENT___GET_APPLIED_STEREOTYPES;
-
-	/**
-	 * The operation id for the '<em>Get Applied Substereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING = PACKAGEABLE_ELEMENT___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING;
-
-	/**
-	 * The operation id for the '<em>Get Applied Substereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE = PACKAGEABLE_ELEMENT___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Get Model</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___GET_MODEL = PACKAGEABLE_ELEMENT___GET_MODEL;
-
-	/**
-	 * The operation id for the '<em>Get Nearest Package</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___GET_NEAREST_PACKAGE = PACKAGEABLE_ELEMENT___GET_NEAREST_PACKAGE;
-
-	/**
-	 * The operation id for the '<em>Get Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___GET_RELATIONSHIPS = PACKAGEABLE_ELEMENT___GET_RELATIONSHIPS;
-
-	/**
-	 * The operation id for the '<em>Get Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___GET_RELATIONSHIPS__ECLASS = PACKAGEABLE_ELEMENT___GET_RELATIONSHIPS__ECLASS;
-
-	/**
-	 * The operation id for the '<em>Get Required Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___GET_REQUIRED_STEREOTYPE__STRING = PACKAGEABLE_ELEMENT___GET_REQUIRED_STEREOTYPE__STRING;
-
-	/**
-	 * The operation id for the '<em>Get Required Stereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___GET_REQUIRED_STEREOTYPES = PACKAGEABLE_ELEMENT___GET_REQUIRED_STEREOTYPES;
-
-	/**
-	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___GET_SOURCE_DIRECTED_RELATIONSHIPS = PACKAGEABLE_ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS;
-
-	/**
-	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS = PACKAGEABLE_ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS;
-
-	/**
-	 * The operation id for the '<em>Get Stereotype Application</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___GET_STEREOTYPE_APPLICATION__STEREOTYPE = PACKAGEABLE_ELEMENT___GET_STEREOTYPE_APPLICATION__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Get Stereotype Applications</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___GET_STEREOTYPE_APPLICATIONS = PACKAGEABLE_ELEMENT___GET_STEREOTYPE_APPLICATIONS;
-
-	/**
-	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___GET_TARGET_DIRECTED_RELATIONSHIPS = PACKAGEABLE_ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS;
-
-	/**
-	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS = PACKAGEABLE_ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS;
-
-	/**
-	 * The operation id for the '<em>Get Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___GET_VALUE__STEREOTYPE_STRING = PACKAGEABLE_ELEMENT___GET_VALUE__STEREOTYPE_STRING;
-
-	/**
-	 * The operation id for the '<em>Has Keyword</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___HAS_KEYWORD__STRING = PACKAGEABLE_ELEMENT___HAS_KEYWORD__STRING;
-
-	/**
-	 * The operation id for the '<em>Has Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___HAS_VALUE__STEREOTYPE_STRING = PACKAGEABLE_ELEMENT___HAS_VALUE__STEREOTYPE_STRING;
-
-	/**
-	 * The operation id for the '<em>Is Stereotype Applicable</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___IS_STEREOTYPE_APPLICABLE__STEREOTYPE = PACKAGEABLE_ELEMENT___IS_STEREOTYPE_APPLICABLE__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Is Stereotype Applied</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___IS_STEREOTYPE_APPLIED__STEREOTYPE = PACKAGEABLE_ELEMENT___IS_STEREOTYPE_APPLIED__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Is Stereotype Required</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___IS_STEREOTYPE_REQUIRED__STEREOTYPE = PACKAGEABLE_ELEMENT___IS_STEREOTYPE_REQUIRED__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Remove Keyword</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___REMOVE_KEYWORD__STRING = PACKAGEABLE_ELEMENT___REMOVE_KEYWORD__STRING;
-
-	/**
-	 * The operation id for the '<em>Set Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___SET_VALUE__STEREOTYPE_STRING_OBJECT = PACKAGEABLE_ELEMENT___SET_VALUE__STEREOTYPE_STRING_OBJECT;
-
-	/**
-	 * The operation id for the '<em>Unapply Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___UNAPPLY_STEREOTYPE__STEREOTYPE = PACKAGEABLE_ELEMENT___UNAPPLY_STEREOTYPE__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>All Owned Elements</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___ALL_OWNED_ELEMENTS = PACKAGEABLE_ELEMENT___ALL_OWNED_ELEMENTS;
-
-	/**
-	 * The operation id for the '<em>Must Be Owned</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___MUST_BE_OWNED = PACKAGEABLE_ELEMENT___MUST_BE_OWNED;
-
-	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Has No Qualified Name</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Create Dependency</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___CREATE_DEPENDENCY__NAMEDELEMENT = PACKAGEABLE_ELEMENT___CREATE_DEPENDENCY__NAMEDELEMENT;
-
-	/**
-	 * The operation id for the '<em>Create Usage</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___CREATE_USAGE__NAMEDELEMENT = PACKAGEABLE_ELEMENT___CREATE_USAGE__NAMEDELEMENT;
-
-	/**
-	 * The operation id for the '<em>Get Label</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___GET_LABEL = PACKAGEABLE_ELEMENT___GET_LABEL;
-
-	/**
-	 * The operation id for the '<em>Get Label</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___GET_LABEL__BOOLEAN = PACKAGEABLE_ELEMENT___GET_LABEL__BOOLEAN;
-
-	/**
-	 * The operation id for the '<em>All Namespaces</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___ALL_NAMESPACES = PACKAGEABLE_ELEMENT___ALL_NAMESPACES;
-
-	/**
-	 * The operation id for the '<em>All Owning Packages</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___ALL_OWNING_PACKAGES = PACKAGEABLE_ELEMENT___ALL_OWNING_PACKAGES;
-
-	/**
-	 * The operation id for the '<em>Is Distinguishable From</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE = PACKAGEABLE_ELEMENT___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE;
-
-	/**
-	 * The operation id for the '<em>Get Namespace</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___GET_NAMESPACE = PACKAGEABLE_ELEMENT___GET_NAMESPACE;
-
-	/**
-	 * The operation id for the '<em>Get Qualified Name</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___GET_QUALIFIED_NAME = PACKAGEABLE_ELEMENT___GET_QUALIFIED_NAME;
-
-	/**
-	 * The operation id for the '<em>Separator</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___SEPARATOR = PACKAGEABLE_ELEMENT___SEPARATOR;
-
-	/**
-	 * The operation id for the '<em>Is Compatible With</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___IS_COMPATIBLE_WITH__PARAMETERABLEELEMENT = PACKAGEABLE_ELEMENT___IS_COMPATIBLE_WITH__PARAMETERABLEELEMENT;
-
-	/**
-	 * The operation id for the '<em>Is Template Parameter</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___IS_TEMPLATE_PARAMETER = PACKAGEABLE_ELEMENT___IS_TEMPLATE_PARAMETER;
-
-	/**
-	 * The operation id for the '<em>Create Association</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___CREATE_ASSOCIATION__BOOLEAN_AGGREGATIONKIND_STRING_INT_INT_TYPE_BOOLEAN_AGGREGATIONKIND_STRING_INT_INT = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 0;
-
-	/**
-	 * The operation id for the '<em>Get Associations</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___GET_ASSOCIATIONS = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 1;
-
-	/**
-	 * The operation id for the '<em>Conforms To</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE___CONFORMS_TO__TYPE = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 2;
-
-	/**
-	 * The number of operations of the '<em>Type</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPE_OPERATION_COUNT = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 3;
-
-	/**
-	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE__EANNOTATIONS = NAMESPACE__EANNOTATIONS;
-
-	/**
-	 * The feature id for the '<em><b>Owned Comment</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE__OWNED_COMMENT = NAMESPACE__OWNED_COMMENT;
-
-	/**
-	 * The feature id for the '<em><b>Owned Element</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE__OWNED_ELEMENT = NAMESPACE__OWNED_ELEMENT;
-
-	/**
-	 * The feature id for the '<em><b>Owner</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE__OWNER = NAMESPACE__OWNER;
-
-	/**
-	 * The feature id for the '<em><b>Client Dependency</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE__CLIENT_DEPENDENCY = NAMESPACE__CLIENT_DEPENDENCY;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE__NAME = NAMESPACE__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Name Expression</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE__NAME_EXPRESSION = NAMESPACE__NAME_EXPRESSION;
-
-	/**
-	 * The feature id for the '<em><b>Namespace</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE__NAMESPACE = NAMESPACE__NAMESPACE;
-
-	/**
-	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE__QUALIFIED_NAME = NAMESPACE__QUALIFIED_NAME;
-
-	/**
-	 * The feature id for the '<em><b>Visibility</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE__VISIBILITY = NAMESPACE__VISIBILITY;
-
-	/**
-	 * The feature id for the '<em><b>Element Import</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE__ELEMENT_IMPORT = NAMESPACE__ELEMENT_IMPORT;
-
-	/**
-	 * The feature id for the '<em><b>Package Import</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE__PACKAGE_IMPORT = NAMESPACE__PACKAGE_IMPORT;
-
-	/**
-	 * The feature id for the '<em><b>Owned Rule</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE__OWNED_RULE = NAMESPACE__OWNED_RULE;
-
-	/**
-	 * The feature id for the '<em><b>Owned Member</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE__OWNED_MEMBER = NAMESPACE__OWNED_MEMBER;
-
-	/**
-	 * The feature id for the '<em><b>Imported Member</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE__IMPORTED_MEMBER = NAMESPACE__IMPORTED_MEMBER;
-
-	/**
-	 * The feature id for the '<em><b>Member</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE__MEMBER = NAMESPACE__MEMBER;
-
-	/**
-	 * The feature id for the '<em><b>Owning Template Parameter</b></em>' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE__OWNING_TEMPLATE_PARAMETER = NAMESPACE_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Template Parameter</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE__TEMPLATE_PARAMETER = NAMESPACE_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Owned Template Signature</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE__OWNED_TEMPLATE_SIGNATURE = NAMESPACE_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Template Binding</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE__TEMPLATE_BINDING = NAMESPACE_FEATURE_COUNT + 3;
-
-	/**
-	 * The feature id for the '<em><b>URI</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE__URI = NAMESPACE_FEATURE_COUNT + 4;
-
-	/**
-	 * The feature id for the '<em><b>Nested Package</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE__NESTED_PACKAGE = NAMESPACE_FEATURE_COUNT + 5;
-
-	/**
-	 * The feature id for the '<em><b>Nesting Package</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE__NESTING_PACKAGE = NAMESPACE_FEATURE_COUNT + 6;
-
-	/**
-	 * The feature id for the '<em><b>Owned Stereotype</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE__OWNED_STEREOTYPE = NAMESPACE_FEATURE_COUNT + 7;
-
-	/**
-	 * The feature id for the '<em><b>Package Merge</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE__PACKAGE_MERGE = NAMESPACE_FEATURE_COUNT + 8;
-
-	/**
-	 * The feature id for the '<em><b>Packaged Element</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE__PACKAGED_ELEMENT = NAMESPACE_FEATURE_COUNT + 9;
-
-	/**
-	 * The feature id for the '<em><b>Profile Application</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE__PROFILE_APPLICATION = NAMESPACE_FEATURE_COUNT + 10;
-
-	/**
-	 * The feature id for the '<em><b>Owned Type</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE__OWNED_TYPE = NAMESPACE_FEATURE_COUNT + 11;
-
-	/**
-	 * The number of structural features of the '<em>Package</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE_FEATURE_COUNT = NAMESPACE_FEATURE_COUNT + 12;
-
-	/**
-	 * The operation id for the '<em>Get EAnnotation</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_EANNOTATION__STRING = NAMESPACE___GET_EANNOTATION__STRING;
-
-	/**
-	 * The operation id for the '<em>Validate Has Owner</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP = NAMESPACE___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Not Own Self</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP = NAMESPACE___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Add Keyword</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___ADD_KEYWORD__STRING = NAMESPACE___ADD_KEYWORD__STRING;
-
-	/**
-	 * The operation id for the '<em>Apply Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___APPLY_STEREOTYPE__STEREOTYPE = NAMESPACE___APPLY_STEREOTYPE__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Create EAnnotation</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___CREATE_EANNOTATION__STRING = NAMESPACE___CREATE_EANNOTATION__STRING;
-
-	/**
-	 * The operation id for the '<em>Destroy</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___DESTROY = NAMESPACE___DESTROY;
-
-	/**
-	 * The operation id for the '<em>Get Keywords</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_KEYWORDS = NAMESPACE___GET_KEYWORDS;
-
-	/**
-	 * The operation id for the '<em>Get Applicable Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_APPLICABLE_STEREOTYPE__STRING = NAMESPACE___GET_APPLICABLE_STEREOTYPE__STRING;
-
-	/**
-	 * The operation id for the '<em>Get Applicable Stereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_APPLICABLE_STEREOTYPES = NAMESPACE___GET_APPLICABLE_STEREOTYPES;
-
-	/**
-	 * The operation id for the '<em>Get Applied Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_APPLIED_STEREOTYPE__STRING = NAMESPACE___GET_APPLIED_STEREOTYPE__STRING;
-
-	/**
-	 * The operation id for the '<em>Get Applied Stereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_APPLIED_STEREOTYPES = NAMESPACE___GET_APPLIED_STEREOTYPES;
-
-	/**
-	 * The operation id for the '<em>Get Applied Substereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING = NAMESPACE___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING;
-
-	/**
-	 * The operation id for the '<em>Get Applied Substereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE = NAMESPACE___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Get Model</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_MODEL = NAMESPACE___GET_MODEL;
-
-	/**
-	 * The operation id for the '<em>Get Nearest Package</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_NEAREST_PACKAGE = NAMESPACE___GET_NEAREST_PACKAGE;
-
-	/**
-	 * The operation id for the '<em>Get Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_RELATIONSHIPS = NAMESPACE___GET_RELATIONSHIPS;
-
-	/**
-	 * The operation id for the '<em>Get Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_RELATIONSHIPS__ECLASS = NAMESPACE___GET_RELATIONSHIPS__ECLASS;
-
-	/**
-	 * The operation id for the '<em>Get Required Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_REQUIRED_STEREOTYPE__STRING = NAMESPACE___GET_REQUIRED_STEREOTYPE__STRING;
-
-	/**
-	 * The operation id for the '<em>Get Required Stereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_REQUIRED_STEREOTYPES = NAMESPACE___GET_REQUIRED_STEREOTYPES;
-
-	/**
-	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_SOURCE_DIRECTED_RELATIONSHIPS = NAMESPACE___GET_SOURCE_DIRECTED_RELATIONSHIPS;
-
-	/**
-	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS = NAMESPACE___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS;
-
-	/**
-	 * The operation id for the '<em>Get Stereotype Application</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_STEREOTYPE_APPLICATION__STEREOTYPE = NAMESPACE___GET_STEREOTYPE_APPLICATION__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Get Stereotype Applications</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_STEREOTYPE_APPLICATIONS = NAMESPACE___GET_STEREOTYPE_APPLICATIONS;
-
-	/**
-	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_TARGET_DIRECTED_RELATIONSHIPS = NAMESPACE___GET_TARGET_DIRECTED_RELATIONSHIPS;
-
-	/**
-	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS = NAMESPACE___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS;
-
-	/**
-	 * The operation id for the '<em>Get Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_VALUE__STEREOTYPE_STRING = NAMESPACE___GET_VALUE__STEREOTYPE_STRING;
-
-	/**
-	 * The operation id for the '<em>Has Keyword</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___HAS_KEYWORD__STRING = NAMESPACE___HAS_KEYWORD__STRING;
-
-	/**
-	 * The operation id for the '<em>Has Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___HAS_VALUE__STEREOTYPE_STRING = NAMESPACE___HAS_VALUE__STEREOTYPE_STRING;
-
-	/**
-	 * The operation id for the '<em>Is Stereotype Applicable</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___IS_STEREOTYPE_APPLICABLE__STEREOTYPE = NAMESPACE___IS_STEREOTYPE_APPLICABLE__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Is Stereotype Applied</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___IS_STEREOTYPE_APPLIED__STEREOTYPE = NAMESPACE___IS_STEREOTYPE_APPLIED__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Is Stereotype Required</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___IS_STEREOTYPE_REQUIRED__STEREOTYPE = NAMESPACE___IS_STEREOTYPE_REQUIRED__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Remove Keyword</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___REMOVE_KEYWORD__STRING = NAMESPACE___REMOVE_KEYWORD__STRING;
-
-	/**
-	 * The operation id for the '<em>Set Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___SET_VALUE__STEREOTYPE_STRING_OBJECT = NAMESPACE___SET_VALUE__STEREOTYPE_STRING_OBJECT;
-
-	/**
-	 * The operation id for the '<em>Unapply Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___UNAPPLY_STEREOTYPE__STEREOTYPE = NAMESPACE___UNAPPLY_STEREOTYPE__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>All Owned Elements</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___ALL_OWNED_ELEMENTS = NAMESPACE___ALL_OWNED_ELEMENTS;
-
-	/**
-	 * The operation id for the '<em>Must Be Owned</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___MUST_BE_OWNED = NAMESPACE___MUST_BE_OWNED;
-
-	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMESPACE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = NAMESPACE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Has No Qualified Name</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = NAMESPACE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Create Dependency</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___CREATE_DEPENDENCY__NAMEDELEMENT = NAMESPACE___CREATE_DEPENDENCY__NAMEDELEMENT;
-
-	/**
-	 * The operation id for the '<em>Create Usage</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___CREATE_USAGE__NAMEDELEMENT = NAMESPACE___CREATE_USAGE__NAMEDELEMENT;
-
-	/**
-	 * The operation id for the '<em>Get Label</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_LABEL = NAMESPACE___GET_LABEL;
-
-	/**
-	 * The operation id for the '<em>Get Label</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_LABEL__BOOLEAN = NAMESPACE___GET_LABEL__BOOLEAN;
-
-	/**
-	 * The operation id for the '<em>All Namespaces</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___ALL_NAMESPACES = NAMESPACE___ALL_NAMESPACES;
-
-	/**
-	 * The operation id for the '<em>All Owning Packages</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___ALL_OWNING_PACKAGES = NAMESPACE___ALL_OWNING_PACKAGES;
-
-	/**
-	 * The operation id for the '<em>Is Distinguishable From</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE = NAMESPACE___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE;
-
-	/**
-	 * The operation id for the '<em>Get Namespace</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_NAMESPACE = NAMESPACE___GET_NAMESPACE;
-
-	/**
-	 * The operation id for the '<em>Get Qualified Name</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_QUALIFIED_NAME = NAMESPACE___GET_QUALIFIED_NAME;
-
-	/**
-	 * The operation id for the '<em>Separator</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___SEPARATOR = NAMESPACE___SEPARATOR;
-
-	/**
-	 * The operation id for the '<em>Validate Members Distinguishable</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___VALIDATE_MEMBERS_DISTINGUISHABLE__DIAGNOSTICCHAIN_MAP = NAMESPACE___VALIDATE_MEMBERS_DISTINGUISHABLE__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Create Element Import</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___CREATE_ELEMENT_IMPORT__PACKAGEABLEELEMENT_VISIBILITYKIND = NAMESPACE___CREATE_ELEMENT_IMPORT__PACKAGEABLEELEMENT_VISIBILITYKIND;
-
-	/**
-	 * The operation id for the '<em>Create Package Import</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___CREATE_PACKAGE_IMPORT__PACKAGE_VISIBILITYKIND = NAMESPACE___CREATE_PACKAGE_IMPORT__PACKAGE_VISIBILITYKIND;
-
-	/**
-	 * The operation id for the '<em>Get Imported Elements</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_IMPORTED_ELEMENTS = NAMESPACE___GET_IMPORTED_ELEMENTS;
-
-	/**
-	 * The operation id for the '<em>Get Imported Packages</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_IMPORTED_PACKAGES = NAMESPACE___GET_IMPORTED_PACKAGES;
-
-	/**
-	 * The operation id for the '<em>Exclude Collisions</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___EXCLUDE_COLLISIONS__ELIST = NAMESPACE___EXCLUDE_COLLISIONS__ELIST;
-
-	/**
-	 * The operation id for the '<em>Get Names Of Member</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_NAMES_OF_MEMBER__NAMEDELEMENT = NAMESPACE___GET_NAMES_OF_MEMBER__NAMEDELEMENT;
-
-	/**
-	 * The operation id for the '<em>Import Members</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___IMPORT_MEMBERS__ELIST = NAMESPACE___IMPORT_MEMBERS__ELIST;
-
-	/**
-	 * The operation id for the '<em>Get Imported Members</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_IMPORTED_MEMBERS = NAMESPACE___GET_IMPORTED_MEMBERS;
-
-	/**
-	 * The operation id for the '<em>Members Are Distinguishable</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___MEMBERS_ARE_DISTINGUISHABLE = NAMESPACE___MEMBERS_ARE_DISTINGUISHABLE;
-
-	/**
-	 * The operation id for the '<em>Get Owned Members</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_OWNED_MEMBERS = NAMESPACE___GET_OWNED_MEMBERS;
-
-	/**
-	 * The operation id for the '<em>Is Compatible With</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___IS_COMPATIBLE_WITH__PARAMETERABLEELEMENT = NAMESPACE_OPERATION_COUNT + 0;
-
-	/**
-	 * The operation id for the '<em>Is Template Parameter</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___IS_TEMPLATE_PARAMETER = NAMESPACE_OPERATION_COUNT + 1;
-
-	/**
-	 * The operation id for the '<em>Is Template</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___IS_TEMPLATE = NAMESPACE_OPERATION_COUNT + 2;
-
-	/**
-	 * The operation id for the '<em>Parameterable Elements</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___PARAMETERABLE_ELEMENTS = NAMESPACE_OPERATION_COUNT + 3;
-
-	/**
-	 * The operation id for the '<em>Validate Elements Public Or Private</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___VALIDATE_ELEMENTS_PUBLIC_OR_PRIVATE__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 4;
-
-	/**
-	 * The operation id for the '<em>Apply Profile</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___APPLY_PROFILE__PROFILE = NAMESPACE_OPERATION_COUNT + 5;
-
-	/**
-	 * The operation id for the '<em>Create Owned Class</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___CREATE_OWNED_CLASS__STRING_BOOLEAN = NAMESPACE_OPERATION_COUNT + 6;
-
-	/**
-	 * The operation id for the '<em>Create Owned Enumeration</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___CREATE_OWNED_ENUMERATION__STRING = NAMESPACE_OPERATION_COUNT + 7;
-
-	/**
-	 * The operation id for the '<em>Create Owned Interface</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___CREATE_OWNED_INTERFACE__STRING = NAMESPACE_OPERATION_COUNT + 8;
-
-	/**
-	 * The operation id for the '<em>Create Owned Primitive Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___CREATE_OWNED_PRIMITIVE_TYPE__STRING = NAMESPACE_OPERATION_COUNT + 9;
-
-	/**
-	 * The operation id for the '<em>Create Owned Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___CREATE_OWNED_STEREOTYPE__STRING_BOOLEAN = NAMESPACE_OPERATION_COUNT + 10;
-
-	/**
-	 * The operation id for the '<em>Get All Applied Profiles</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_ALL_APPLIED_PROFILES = NAMESPACE_OPERATION_COUNT + 11;
-
-	/**
-	 * The operation id for the '<em>Get All Profile Applications</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_ALL_PROFILE_APPLICATIONS = NAMESPACE_OPERATION_COUNT + 12;
-
-	/**
-	 * The operation id for the '<em>Get Applied Profile</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_APPLIED_PROFILE__STRING = NAMESPACE_OPERATION_COUNT + 13;
-
-	/**
-	 * The operation id for the '<em>Get Applied Profile</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_APPLIED_PROFILE__STRING_BOOLEAN = NAMESPACE_OPERATION_COUNT + 14;
-
-	/**
-	 * The operation id for the '<em>Get Applied Profiles</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_APPLIED_PROFILES = NAMESPACE_OPERATION_COUNT + 15;
-
-	/**
-	 * The operation id for the '<em>Get Profile Application</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_PROFILE_APPLICATION__PROFILE = NAMESPACE_OPERATION_COUNT + 16;
-
-	/**
-	 * The operation id for the '<em>Get Profile Application</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_PROFILE_APPLICATION__PROFILE_BOOLEAN = NAMESPACE_OPERATION_COUNT + 17;
-
-	/**
-	 * The operation id for the '<em>Is Model Library</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___IS_MODEL_LIBRARY = NAMESPACE_OPERATION_COUNT + 18;
-
-	/**
-	 * The operation id for the '<em>Is Profile Applied</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___IS_PROFILE_APPLIED__PROFILE = NAMESPACE_OPERATION_COUNT + 19;
-
-	/**
-	 * The operation id for the '<em>Unapply Profile</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___UNAPPLY_PROFILE__PROFILE = NAMESPACE_OPERATION_COUNT + 20;
-
-	/**
-	 * The operation id for the '<em>All Applicable Stereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___ALL_APPLICABLE_STEREOTYPES = NAMESPACE_OPERATION_COUNT + 21;
-
-	/**
-	 * The operation id for the '<em>Containing Profile</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___CONTAINING_PROFILE = NAMESPACE_OPERATION_COUNT + 22;
-
-	/**
-	 * The operation id for the '<em>Makes Visible</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___MAKES_VISIBLE__NAMEDELEMENT = NAMESPACE_OPERATION_COUNT + 23;
-
-	/**
-	 * The operation id for the '<em>Get Nested Packages</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_NESTED_PACKAGES = NAMESPACE_OPERATION_COUNT + 24;
-
-	/**
-	 * The operation id for the '<em>Get Owned Stereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_OWNED_STEREOTYPES = NAMESPACE_OPERATION_COUNT + 25;
-
-	/**
-	 * The operation id for the '<em>Get Owned Types</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___GET_OWNED_TYPES = NAMESPACE_OPERATION_COUNT + 26;
-
-	/**
-	 * The operation id for the '<em>Visible Members</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE___VISIBLE_MEMBERS = NAMESPACE_OPERATION_COUNT + 27;
-
-	/**
-	 * The number of operations of the '<em>Package</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PACKAGE_OPERATION_COUNT = NAMESPACE_OPERATION_COUNT + 28;
-
-	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ObservationImpl <em>Observation</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -23599,15 +22338,6 @@
 	int PROFILE___MUST_BE_OWNED = PACKAGE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROFILE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = PACKAGE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -23626,6 +22356,15 @@
 	int PROFILE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = PACKAGE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROFILE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = PACKAGE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -24616,22 +23355,22 @@
 	int ELEMENT_IMPORT___MUST_BE_OWNED = DIRECTED_RELATIONSHIP___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Imported Element Is Public</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ELEMENT_IMPORT___VALIDATE_IMPORTED_ELEMENT_IS_PUBLIC__DIAGNOSTICCHAIN_MAP = DIRECTED_RELATIONSHIP_OPERATION_COUNT + 0;
-
-	/**
 	 * The operation id for the '<em>Validate Visibility Public Or Private</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ELEMENT_IMPORT___VALIDATE_VISIBILITY_PUBLIC_OR_PRIVATE__DIAGNOSTICCHAIN_MAP = DIRECTED_RELATIONSHIP_OPERATION_COUNT + 1;
+	int ELEMENT_IMPORT___VALIDATE_VISIBILITY_PUBLIC_OR_PRIVATE__DIAGNOSTICCHAIN_MAP = DIRECTED_RELATIONSHIP_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Validate Imported Element Is Public</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ELEMENT_IMPORT___VALIDATE_IMPORTED_ELEMENT_IS_PUBLIC__DIAGNOSTICCHAIN_MAP = DIRECTED_RELATIONSHIP_OPERATION_COUNT + 1;
 
 	/**
 	 * The operation id for the '<em>Get Name</em>' operation.
@@ -25840,15 +24579,6 @@
 	int ASSOCIATION___MUST_BE_OWNED = CLASSIFIER___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ASSOCIATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -25867,6 +24597,15 @@
 	int ASSOCIATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ASSOCIATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -26164,24 +24903,6 @@
 	int ASSOCIATION___PARAMETERABLE_ELEMENTS = CLASSIFIER___PARAMETERABLE_ELEMENTS;
 
 	/**
-	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ASSOCIATION___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ASSOCIATION___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Non Final Parents</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -26200,6 +24921,24 @@
 	int ASSOCIATION___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ASSOCIATION___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ASSOCIATION___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Get All Attributes</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -26362,13 +25101,13 @@
 	int ASSOCIATION___VALIDATE_SPECIALIZED_END_NUMBER__DIAGNOSTICCHAIN_MAP = CLASSIFIER_OPERATION_COUNT + 0;
 
 	/**
-	 * The operation id for the '<em>Validate Specialized End Types</em>' operation.
+	 * The operation id for the '<em>Validate Association Ends</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ASSOCIATION___VALIDATE_SPECIALIZED_END_TYPES__DIAGNOSTICCHAIN_MAP = CLASSIFIER_OPERATION_COUNT + 1;
+	int ASSOCIATION___VALIDATE_ASSOCIATION_ENDS__DIAGNOSTICCHAIN_MAP = CLASSIFIER_OPERATION_COUNT + 1;
 
 	/**
 	 * The operation id for the '<em>Validate Binary Associations</em>' operation.
@@ -26380,13 +25119,13 @@
 	int ASSOCIATION___VALIDATE_BINARY_ASSOCIATIONS__DIAGNOSTICCHAIN_MAP = CLASSIFIER_OPERATION_COUNT + 2;
 
 	/**
-	 * The operation id for the '<em>Validate Association Ends</em>' operation.
+	 * The operation id for the '<em>Validate Specialized End Types</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ASSOCIATION___VALIDATE_ASSOCIATION_ENDS__DIAGNOSTICCHAIN_MAP = CLASSIFIER_OPERATION_COUNT + 3;
+	int ASSOCIATION___VALIDATE_SPECIALIZED_END_TYPES__DIAGNOSTICCHAIN_MAP = CLASSIFIER_OPERATION_COUNT + 3;
 
 	/**
 	 * The operation id for the '<em>Is Binary</em>' operation.
@@ -27172,15 +25911,6 @@
 	int EXTENSION___MUST_BE_OWNED = ASSOCIATION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXTENSION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ASSOCIATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -27199,6 +25929,15 @@
 	int EXTENSION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ASSOCIATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXTENSION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ASSOCIATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -27496,24 +26235,6 @@
 	int EXTENSION___PARAMETERABLE_ELEMENTS = ASSOCIATION___PARAMETERABLE_ELEMENTS;
 
 	/**
-	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXTENSION___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = ASSOCIATION___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXTENSION___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = ASSOCIATION___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Non Final Parents</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -27532,6 +26253,24 @@
 	int EXTENSION___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP = ASSOCIATION___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXTENSION___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = ASSOCIATION___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXTENSION___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = ASSOCIATION___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Get All Attributes</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -27694,13 +26433,13 @@
 	int EXTENSION___VALIDATE_SPECIALIZED_END_NUMBER__DIAGNOSTICCHAIN_MAP = ASSOCIATION___VALIDATE_SPECIALIZED_END_NUMBER__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Specialized End Types</em>' operation.
+	 * The operation id for the '<em>Validate Association Ends</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EXTENSION___VALIDATE_SPECIALIZED_END_TYPES__DIAGNOSTICCHAIN_MAP = ASSOCIATION___VALIDATE_SPECIALIZED_END_TYPES__DIAGNOSTICCHAIN_MAP;
+	int EXTENSION___VALIDATE_ASSOCIATION_ENDS__DIAGNOSTICCHAIN_MAP = ASSOCIATION___VALIDATE_ASSOCIATION_ENDS__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Binary Associations</em>' operation.
@@ -27712,13 +26451,13 @@
 	int EXTENSION___VALIDATE_BINARY_ASSOCIATIONS__DIAGNOSTICCHAIN_MAP = ASSOCIATION___VALIDATE_BINARY_ASSOCIATIONS__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Association Ends</em>' operation.
+	 * The operation id for the '<em>Validate Specialized End Types</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EXTENSION___VALIDATE_ASSOCIATION_ENDS__DIAGNOSTICCHAIN_MAP = ASSOCIATION___VALIDATE_ASSOCIATION_ENDS__DIAGNOSTICCHAIN_MAP;
+	int EXTENSION___VALIDATE_SPECIALIZED_END_TYPES__DIAGNOSTICCHAIN_MAP = ASSOCIATION___VALIDATE_SPECIALIZED_END_TYPES__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Is Binary</em>' operation.
@@ -28270,15 +27009,6 @@
 	int REDEFINABLE_ELEMENT___MUST_BE_OWNED = NAMED_ELEMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REDEFINABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -28297,6 +27027,15 @@
 	int REDEFINABLE_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REDEFINABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -28918,15 +27657,6 @@
 	int FEATURE___MUST_BE_OWNED = REDEFINABLE_ELEMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FEATURE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = REDEFINABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -28945,6 +27675,15 @@
 	int FEATURE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = REDEFINABLE_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FEATURE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = REDEFINABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -29638,15 +28377,6 @@
 	int STRUCTURAL_FEATURE___MUST_BE_OWNED = FEATURE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STRUCTURAL_FEATURE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = FEATURE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -29665,6 +28395,15 @@
 	int STRUCTURAL_FEATURE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = FEATURE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCTURAL_FEATURE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = FEATURE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -29800,31 +28539,22 @@
 	int STRUCTURAL_FEATURE___IS_REDEFINITION_CONTEXT_VALID__REDEFINABLEELEMENT = FEATURE___IS_REDEFINITION_CONTEXT_VALID__REDEFINABLEELEMENT;
 
 	/**
-	 * The operation id for the '<em>Validate Upper Ge Lower</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STRUCTURAL_FEATURE___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP = FEATURE_OPERATION_COUNT + 0;
-
-	/**
 	 * The operation id for the '<em>Validate Lower Ge0</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int STRUCTURAL_FEATURE___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP = FEATURE_OPERATION_COUNT + 1;
+	int STRUCTURAL_FEATURE___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP = FEATURE_OPERATION_COUNT + 0;
 
 	/**
-	 * The operation id for the '<em>Validate Value Specification No Side Effects</em>' operation.
+	 * The operation id for the '<em>Validate Upper Ge Lower</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int STRUCTURAL_FEATURE___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP = FEATURE_OPERATION_COUNT + 2;
+	int STRUCTURAL_FEATURE___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP = FEATURE_OPERATION_COUNT + 1;
 
 	/**
 	 * The operation id for the '<em>Validate Value Specification Constant</em>' operation.
@@ -29833,7 +28563,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int STRUCTURAL_FEATURE___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP = FEATURE_OPERATION_COUNT + 3;
+	int STRUCTURAL_FEATURE___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP = FEATURE_OPERATION_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>Validate Value Specification No Side Effects</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCTURAL_FEATURE___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP = FEATURE_OPERATION_COUNT + 3;
 
 	/**
 	 * The operation id for the '<em>Set Lower</em>' operation.
@@ -30196,22 +28935,22 @@
 	int PROPERTY__DEPLOYMENT = STRUCTURAL_FEATURE_FEATURE_COUNT + 4;
 
 	/**
-	 * The feature id for the '<em><b>Datatype</b></em>' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROPERTY__DATATYPE = STRUCTURAL_FEATURE_FEATURE_COUNT + 5;
-
-	/**
 	 * The feature id for the '<em><b>Interface</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PROPERTY__INTERFACE = STRUCTURAL_FEATURE_FEATURE_COUNT + 6;
+	int PROPERTY__INTERFACE = STRUCTURAL_FEATURE_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Datatype</b></em>' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROPERTY__DATATYPE = STRUCTURAL_FEATURE_FEATURE_COUNT + 6;
 
 	/**
 	 * The feature id for the '<em><b>Aggregation</b></em>' attribute.
@@ -30691,15 +29430,6 @@
 	int PROPERTY___MUST_BE_OWNED = STRUCTURAL_FEATURE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROPERTY___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -30718,6 +29448,15 @@
 	int PROPERTY___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROPERTY___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -30853,15 +29592,6 @@
 	int PROPERTY___IS_REDEFINITION_CONTEXT_VALID__REDEFINABLEELEMENT = STRUCTURAL_FEATURE___IS_REDEFINITION_CONTEXT_VALID__REDEFINABLEELEMENT;
 
 	/**
-	 * The operation id for the '<em>Validate Upper Ge Lower</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROPERTY___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Lower Ge0</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -30871,13 +29601,13 @@
 	int PROPERTY___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Value Specification No Side Effects</em>' operation.
+	 * The operation id for the '<em>Validate Upper Ge Lower</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PROPERTY___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP;
+	int PROPERTY___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Value Specification Constant</em>' operation.
@@ -30889,6 +29619,15 @@
 	int PROPERTY___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Value Specification No Side Effects</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROPERTY___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Set Lower</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -31024,22 +29763,22 @@
 	int PROPERTY___GET_DEPLOYED_ELEMENTS = STRUCTURAL_FEATURE_OPERATION_COUNT + 3;
 
 	/**
-	 * The operation id for the '<em>Validate Subsetting Context Conforms</em>' operation.
+	 * The operation id for the '<em>Validate Subsetted Property Names</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PROPERTY___VALIDATE_SUBSETTING_CONTEXT_CONFORMS__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_OPERATION_COUNT + 4;
+	int PROPERTY___VALIDATE_SUBSETTED_PROPERTY_NAMES__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_OPERATION_COUNT + 4;
 
 	/**
-	 * The operation id for the '<em>Validate Derived Union Is Read Only</em>' operation.
+	 * The operation id for the '<em>Validate Subsetting Rules</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PROPERTY___VALIDATE_DERIVED_UNION_IS_READ_ONLY__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_OPERATION_COUNT + 5;
+	int PROPERTY___VALIDATE_SUBSETTING_RULES__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_OPERATION_COUNT + 5;
 
 	/**
 	 * The operation id for the '<em>Validate Multiplicity Of Composite</em>' operation.
@@ -31051,40 +29790,31 @@
 	int PROPERTY___VALIDATE_MULTIPLICITY_OF_COMPOSITE__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_OPERATION_COUNT + 6;
 
 	/**
-	 * The operation id for the '<em>Validate Redefined Property Inherited</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROPERTY___VALIDATE_REDEFINED_PROPERTY_INHERITED__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_OPERATION_COUNT + 7;
-
-	/**
-	 * The operation id for the '<em>Validate Subsetting Rules</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROPERTY___VALIDATE_SUBSETTING_RULES__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_OPERATION_COUNT + 8;
-
-	/**
 	 * The operation id for the '<em>Validate Binding To Attribute</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PROPERTY___VALIDATE_BINDING_TO_ATTRIBUTE__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_OPERATION_COUNT + 9;
+	int PROPERTY___VALIDATE_BINDING_TO_ATTRIBUTE__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_OPERATION_COUNT + 7;
 
 	/**
-	 * The operation id for the '<em>Validate Derived Union Is Derived</em>' operation.
+	 * The operation id for the '<em>Validate Redefined Property Inherited</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PROPERTY___VALIDATE_DERIVED_UNION_IS_DERIVED__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_OPERATION_COUNT + 10;
+	int PROPERTY___VALIDATE_REDEFINED_PROPERTY_INHERITED__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_OPERATION_COUNT + 8;
+
+	/**
+	 * The operation id for the '<em>Validate Subsetting Context Conforms</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROPERTY___VALIDATE_SUBSETTING_CONTEXT_CONFORMS__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_OPERATION_COUNT + 9;
 
 	/**
 	 * The operation id for the '<em>Validate Deployment Target</em>' operation.
@@ -31093,16 +29823,25 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PROPERTY___VALIDATE_DEPLOYMENT_TARGET__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_OPERATION_COUNT + 11;
+	int PROPERTY___VALIDATE_DEPLOYMENT_TARGET__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_OPERATION_COUNT + 10;
 
 	/**
-	 * The operation id for the '<em>Validate Subsetted Property Names</em>' operation.
+	 * The operation id for the '<em>Validate Derived Union Is Derived</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PROPERTY___VALIDATE_SUBSETTED_PROPERTY_NAMES__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_OPERATION_COUNT + 12;
+	int PROPERTY___VALIDATE_DERIVED_UNION_IS_DERIVED__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_OPERATION_COUNT + 11;
+
+	/**
+	 * The operation id for the '<em>Validate Derived Union Is Read Only</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROPERTY___VALIDATE_DERIVED_UNION_IS_READ_ONLY__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_OPERATION_COUNT + 12;
 
 	/**
 	 * The operation id for the '<em>Get Other End</em>' operation.
@@ -31291,6 +30030,582 @@
 	 * @generated
 	 * @ordered
 	 */
+	int MULTIPLICITY_ELEMENT__EANNOTATIONS = ELEMENT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Owned Comment</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT__OWNED_COMMENT = ELEMENT__OWNED_COMMENT;
+
+	/**
+	 * The feature id for the '<em><b>Owned Element</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT__OWNED_ELEMENT = ELEMENT__OWNED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Owner</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT__OWNER = ELEMENT__OWNER;
+
+	/**
+	 * The feature id for the '<em><b>Is Ordered</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT__IS_ORDERED = ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Is Unique</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT__IS_UNIQUE = ELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Lower</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT__LOWER = ELEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Lower Value</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT__LOWER_VALUE = ELEMENT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Upper</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT__UPPER = ELEMENT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Upper Value</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT__UPPER_VALUE = ELEMENT_FEATURE_COUNT + 5;
+
+	/**
+	 * The number of structural features of the '<em>Multiplicity Element</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 6;
+
+	/**
+	 * The operation id for the '<em>Get EAnnotation</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___GET_EANNOTATION__STRING = ELEMENT___GET_EANNOTATION__STRING;
+
+	/**
+	 * The operation id for the '<em>Validate Has Owner</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP = ELEMENT___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Not Own Self</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP = ELEMENT___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Add Keyword</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___ADD_KEYWORD__STRING = ELEMENT___ADD_KEYWORD__STRING;
+
+	/**
+	 * The operation id for the '<em>Apply Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___APPLY_STEREOTYPE__STEREOTYPE = ELEMENT___APPLY_STEREOTYPE__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Create EAnnotation</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___CREATE_EANNOTATION__STRING = ELEMENT___CREATE_EANNOTATION__STRING;
+
+	/**
+	 * The operation id for the '<em>Destroy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___DESTROY = ELEMENT___DESTROY;
+
+	/**
+	 * The operation id for the '<em>Get Keywords</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___GET_KEYWORDS = ELEMENT___GET_KEYWORDS;
+
+	/**
+	 * The operation id for the '<em>Get Applicable Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___GET_APPLICABLE_STEREOTYPE__STRING = ELEMENT___GET_APPLICABLE_STEREOTYPE__STRING;
+
+	/**
+	 * The operation id for the '<em>Get Applicable Stereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___GET_APPLICABLE_STEREOTYPES = ELEMENT___GET_APPLICABLE_STEREOTYPES;
+
+	/**
+	 * The operation id for the '<em>Get Applied Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___GET_APPLIED_STEREOTYPE__STRING = ELEMENT___GET_APPLIED_STEREOTYPE__STRING;
+
+	/**
+	 * The operation id for the '<em>Get Applied Stereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___GET_APPLIED_STEREOTYPES = ELEMENT___GET_APPLIED_STEREOTYPES;
+
+	/**
+	 * The operation id for the '<em>Get Applied Substereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING = ELEMENT___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING;
+
+	/**
+	 * The operation id for the '<em>Get Applied Substereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE = ELEMENT___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Get Model</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___GET_MODEL = ELEMENT___GET_MODEL;
+
+	/**
+	 * The operation id for the '<em>Get Nearest Package</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___GET_NEAREST_PACKAGE = ELEMENT___GET_NEAREST_PACKAGE;
+
+	/**
+	 * The operation id for the '<em>Get Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___GET_RELATIONSHIPS = ELEMENT___GET_RELATIONSHIPS;
+
+	/**
+	 * The operation id for the '<em>Get Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___GET_RELATIONSHIPS__ECLASS = ELEMENT___GET_RELATIONSHIPS__ECLASS;
+
+	/**
+	 * The operation id for the '<em>Get Required Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___GET_REQUIRED_STEREOTYPE__STRING = ELEMENT___GET_REQUIRED_STEREOTYPE__STRING;
+
+	/**
+	 * The operation id for the '<em>Get Required Stereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___GET_REQUIRED_STEREOTYPES = ELEMENT___GET_REQUIRED_STEREOTYPES;
+
+	/**
+	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS = ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS;
+
+	/**
+	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS = ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS;
+
+	/**
+	 * The operation id for the '<em>Get Stereotype Application</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___GET_STEREOTYPE_APPLICATION__STEREOTYPE = ELEMENT___GET_STEREOTYPE_APPLICATION__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Get Stereotype Applications</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___GET_STEREOTYPE_APPLICATIONS = ELEMENT___GET_STEREOTYPE_APPLICATIONS;
+
+	/**
+	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS = ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS;
+
+	/**
+	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS = ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS;
+
+	/**
+	 * The operation id for the '<em>Get Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___GET_VALUE__STEREOTYPE_STRING = ELEMENT___GET_VALUE__STEREOTYPE_STRING;
+
+	/**
+	 * The operation id for the '<em>Has Keyword</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___HAS_KEYWORD__STRING = ELEMENT___HAS_KEYWORD__STRING;
+
+	/**
+	 * The operation id for the '<em>Has Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___HAS_VALUE__STEREOTYPE_STRING = ELEMENT___HAS_VALUE__STEREOTYPE_STRING;
+
+	/**
+	 * The operation id for the '<em>Is Stereotype Applicable</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___IS_STEREOTYPE_APPLICABLE__STEREOTYPE = ELEMENT___IS_STEREOTYPE_APPLICABLE__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Is Stereotype Applied</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___IS_STEREOTYPE_APPLIED__STEREOTYPE = ELEMENT___IS_STEREOTYPE_APPLIED__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Is Stereotype Required</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___IS_STEREOTYPE_REQUIRED__STEREOTYPE = ELEMENT___IS_STEREOTYPE_REQUIRED__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Remove Keyword</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___REMOVE_KEYWORD__STRING = ELEMENT___REMOVE_KEYWORD__STRING;
+
+	/**
+	 * The operation id for the '<em>Set Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___SET_VALUE__STEREOTYPE_STRING_OBJECT = ELEMENT___SET_VALUE__STEREOTYPE_STRING_OBJECT;
+
+	/**
+	 * The operation id for the '<em>Unapply Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___UNAPPLY_STEREOTYPE__STEREOTYPE = ELEMENT___UNAPPLY_STEREOTYPE__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>All Owned Elements</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___ALL_OWNED_ELEMENTS = ELEMENT___ALL_OWNED_ELEMENTS;
+
+	/**
+	 * The operation id for the '<em>Must Be Owned</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___MUST_BE_OWNED = ELEMENT___MUST_BE_OWNED;
+
+	/**
+	 * The operation id for the '<em>Validate Lower Ge0</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Validate Upper Ge Lower</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Validate Value Specification Constant</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>Validate Value Specification No Side Effects</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>Set Lower</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___SET_LOWER__INT = ELEMENT_OPERATION_COUNT + 4;
+
+	/**
+	 * The operation id for the '<em>Set Upper</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___SET_UPPER__INT = ELEMENT_OPERATION_COUNT + 5;
+
+	/**
+	 * The operation id for the '<em>Compatible With</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___COMPATIBLE_WITH__MULTIPLICITYELEMENT = ELEMENT_OPERATION_COUNT + 6;
+
+	/**
+	 * The operation id for the '<em>Includes Cardinality</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___INCLUDES_CARDINALITY__INT = ELEMENT_OPERATION_COUNT + 7;
+
+	/**
+	 * The operation id for the '<em>Includes Multiplicity</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___INCLUDES_MULTIPLICITY__MULTIPLICITYELEMENT = ELEMENT_OPERATION_COUNT + 8;
+
+	/**
+	 * The operation id for the '<em>Is</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___IS__INT_INT = ELEMENT_OPERATION_COUNT + 9;
+
+	/**
+	 * The operation id for the '<em>Is Multivalued</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___IS_MULTIVALUED = ELEMENT_OPERATION_COUNT + 10;
+
+	/**
+	 * The operation id for the '<em>Get Lower</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___GET_LOWER = ELEMENT_OPERATION_COUNT + 11;
+
+	/**
+	 * The operation id for the '<em>Lower Bound</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___LOWER_BOUND = ELEMENT_OPERATION_COUNT + 12;
+
+	/**
+	 * The operation id for the '<em>Get Upper</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___GET_UPPER = ELEMENT_OPERATION_COUNT + 13;
+
+	/**
+	 * The operation id for the '<em>Upper Bound</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT___UPPER_BOUND = ELEMENT_OPERATION_COUNT + 14;
+
+	/**
+	 * The number of operations of the '<em>Multiplicity Element</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTIPLICITY_ELEMENT_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 15;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
 	int CONNECTABLE_ELEMENT__EANNOTATIONS = TYPED_ELEMENT__EANNOTATIONS;
 
 	/**
@@ -31753,15 +31068,6 @@
 	int CONNECTABLE_ELEMENT___MUST_BE_OWNED = TYPED_ELEMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = TYPED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -31780,6 +31086,15 @@
 	int CONNECTABLE_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = TYPED_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONNECTABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = TYPED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -31912,582 +31227,6 @@
 	 * @generated
 	 * @ordered
 	 */
-	int MULTIPLICITY_ELEMENT__EANNOTATIONS = ELEMENT__EANNOTATIONS;
-
-	/**
-	 * The feature id for the '<em><b>Owned Comment</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT__OWNED_COMMENT = ELEMENT__OWNED_COMMENT;
-
-	/**
-	 * The feature id for the '<em><b>Owned Element</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT__OWNED_ELEMENT = ELEMENT__OWNED_ELEMENT;
-
-	/**
-	 * The feature id for the '<em><b>Owner</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT__OWNER = ELEMENT__OWNER;
-
-	/**
-	 * The feature id for the '<em><b>Is Ordered</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT__IS_ORDERED = ELEMENT_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Is Unique</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT__IS_UNIQUE = ELEMENT_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Lower</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT__LOWER = ELEMENT_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Lower Value</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT__LOWER_VALUE = ELEMENT_FEATURE_COUNT + 3;
-
-	/**
-	 * The feature id for the '<em><b>Upper</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT__UPPER = ELEMENT_FEATURE_COUNT + 4;
-
-	/**
-	 * The feature id for the '<em><b>Upper Value</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT__UPPER_VALUE = ELEMENT_FEATURE_COUNT + 5;
-
-	/**
-	 * The number of structural features of the '<em>Multiplicity Element</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 6;
-
-	/**
-	 * The operation id for the '<em>Get EAnnotation</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___GET_EANNOTATION__STRING = ELEMENT___GET_EANNOTATION__STRING;
-
-	/**
-	 * The operation id for the '<em>Validate Has Owner</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP = ELEMENT___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Not Own Self</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP = ELEMENT___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Add Keyword</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___ADD_KEYWORD__STRING = ELEMENT___ADD_KEYWORD__STRING;
-
-	/**
-	 * The operation id for the '<em>Apply Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___APPLY_STEREOTYPE__STEREOTYPE = ELEMENT___APPLY_STEREOTYPE__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Create EAnnotation</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___CREATE_EANNOTATION__STRING = ELEMENT___CREATE_EANNOTATION__STRING;
-
-	/**
-	 * The operation id for the '<em>Destroy</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___DESTROY = ELEMENT___DESTROY;
-
-	/**
-	 * The operation id for the '<em>Get Keywords</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___GET_KEYWORDS = ELEMENT___GET_KEYWORDS;
-
-	/**
-	 * The operation id for the '<em>Get Applicable Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___GET_APPLICABLE_STEREOTYPE__STRING = ELEMENT___GET_APPLICABLE_STEREOTYPE__STRING;
-
-	/**
-	 * The operation id for the '<em>Get Applicable Stereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___GET_APPLICABLE_STEREOTYPES = ELEMENT___GET_APPLICABLE_STEREOTYPES;
-
-	/**
-	 * The operation id for the '<em>Get Applied Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___GET_APPLIED_STEREOTYPE__STRING = ELEMENT___GET_APPLIED_STEREOTYPE__STRING;
-
-	/**
-	 * The operation id for the '<em>Get Applied Stereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___GET_APPLIED_STEREOTYPES = ELEMENT___GET_APPLIED_STEREOTYPES;
-
-	/**
-	 * The operation id for the '<em>Get Applied Substereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING = ELEMENT___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING;
-
-	/**
-	 * The operation id for the '<em>Get Applied Substereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE = ELEMENT___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Get Model</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___GET_MODEL = ELEMENT___GET_MODEL;
-
-	/**
-	 * The operation id for the '<em>Get Nearest Package</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___GET_NEAREST_PACKAGE = ELEMENT___GET_NEAREST_PACKAGE;
-
-	/**
-	 * The operation id for the '<em>Get Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___GET_RELATIONSHIPS = ELEMENT___GET_RELATIONSHIPS;
-
-	/**
-	 * The operation id for the '<em>Get Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___GET_RELATIONSHIPS__ECLASS = ELEMENT___GET_RELATIONSHIPS__ECLASS;
-
-	/**
-	 * The operation id for the '<em>Get Required Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___GET_REQUIRED_STEREOTYPE__STRING = ELEMENT___GET_REQUIRED_STEREOTYPE__STRING;
-
-	/**
-	 * The operation id for the '<em>Get Required Stereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___GET_REQUIRED_STEREOTYPES = ELEMENT___GET_REQUIRED_STEREOTYPES;
-
-	/**
-	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS = ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS;
-
-	/**
-	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS = ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS;
-
-	/**
-	 * The operation id for the '<em>Get Stereotype Application</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___GET_STEREOTYPE_APPLICATION__STEREOTYPE = ELEMENT___GET_STEREOTYPE_APPLICATION__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Get Stereotype Applications</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___GET_STEREOTYPE_APPLICATIONS = ELEMENT___GET_STEREOTYPE_APPLICATIONS;
-
-	/**
-	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS = ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS;
-
-	/**
-	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS = ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS;
-
-	/**
-	 * The operation id for the '<em>Get Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___GET_VALUE__STEREOTYPE_STRING = ELEMENT___GET_VALUE__STEREOTYPE_STRING;
-
-	/**
-	 * The operation id for the '<em>Has Keyword</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___HAS_KEYWORD__STRING = ELEMENT___HAS_KEYWORD__STRING;
-
-	/**
-	 * The operation id for the '<em>Has Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___HAS_VALUE__STEREOTYPE_STRING = ELEMENT___HAS_VALUE__STEREOTYPE_STRING;
-
-	/**
-	 * The operation id for the '<em>Is Stereotype Applicable</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___IS_STEREOTYPE_APPLICABLE__STEREOTYPE = ELEMENT___IS_STEREOTYPE_APPLICABLE__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Is Stereotype Applied</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___IS_STEREOTYPE_APPLIED__STEREOTYPE = ELEMENT___IS_STEREOTYPE_APPLIED__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Is Stereotype Required</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___IS_STEREOTYPE_REQUIRED__STEREOTYPE = ELEMENT___IS_STEREOTYPE_REQUIRED__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Remove Keyword</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___REMOVE_KEYWORD__STRING = ELEMENT___REMOVE_KEYWORD__STRING;
-
-	/**
-	 * The operation id for the '<em>Set Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___SET_VALUE__STEREOTYPE_STRING_OBJECT = ELEMENT___SET_VALUE__STEREOTYPE_STRING_OBJECT;
-
-	/**
-	 * The operation id for the '<em>Unapply Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___UNAPPLY_STEREOTYPE__STEREOTYPE = ELEMENT___UNAPPLY_STEREOTYPE__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>All Owned Elements</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___ALL_OWNED_ELEMENTS = ELEMENT___ALL_OWNED_ELEMENTS;
-
-	/**
-	 * The operation id for the '<em>Must Be Owned</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___MUST_BE_OWNED = ELEMENT___MUST_BE_OWNED;
-
-	/**
-	 * The operation id for the '<em>Validate Upper Ge Lower</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 0;
-
-	/**
-	 * The operation id for the '<em>Validate Lower Ge0</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 1;
-
-	/**
-	 * The operation id for the '<em>Validate Value Specification No Side Effects</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 2;
-
-	/**
-	 * The operation id for the '<em>Validate Value Specification Constant</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 3;
-
-	/**
-	 * The operation id for the '<em>Set Lower</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___SET_LOWER__INT = ELEMENT_OPERATION_COUNT + 4;
-
-	/**
-	 * The operation id for the '<em>Set Upper</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___SET_UPPER__INT = ELEMENT_OPERATION_COUNT + 5;
-
-	/**
-	 * The operation id for the '<em>Compatible With</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___COMPATIBLE_WITH__MULTIPLICITYELEMENT = ELEMENT_OPERATION_COUNT + 6;
-
-	/**
-	 * The operation id for the '<em>Includes Cardinality</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___INCLUDES_CARDINALITY__INT = ELEMENT_OPERATION_COUNT + 7;
-
-	/**
-	 * The operation id for the '<em>Includes Multiplicity</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___INCLUDES_MULTIPLICITY__MULTIPLICITYELEMENT = ELEMENT_OPERATION_COUNT + 8;
-
-	/**
-	 * The operation id for the '<em>Is</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___IS__INT_INT = ELEMENT_OPERATION_COUNT + 9;
-
-	/**
-	 * The operation id for the '<em>Is Multivalued</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___IS_MULTIVALUED = ELEMENT_OPERATION_COUNT + 10;
-
-	/**
-	 * The operation id for the '<em>Get Lower</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___GET_LOWER = ELEMENT_OPERATION_COUNT + 11;
-
-	/**
-	 * The operation id for the '<em>Lower Bound</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___LOWER_BOUND = ELEMENT_OPERATION_COUNT + 12;
-
-	/**
-	 * The operation id for the '<em>Get Upper</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___GET_UPPER = ELEMENT_OPERATION_COUNT + 13;
-
-	/**
-	 * The operation id for the '<em>Upper Bound</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT___UPPER_BOUND = ELEMENT_OPERATION_COUNT + 14;
-
-	/**
-	 * The number of operations of the '<em>Multiplicity Element</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MULTIPLICITY_ELEMENT_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 15;
-
-	/**
-	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
 	int CONNECTOR_END__EANNOTATIONS = MULTIPLICITY_ELEMENT__EANNOTATIONS;
 
 	/**
@@ -32941,15 +31680,6 @@
 	int CONNECTOR_END___MUST_BE_OWNED = MULTIPLICITY_ELEMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Upper Ge Lower</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR_END___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP = MULTIPLICITY_ELEMENT___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Lower Ge0</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -32959,13 +31689,13 @@
 	int CONNECTOR_END___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP = MULTIPLICITY_ELEMENT___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Value Specification No Side Effects</em>' operation.
+	 * The operation id for the '<em>Validate Upper Ge Lower</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CONNECTOR_END___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP = MULTIPLICITY_ELEMENT___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP;
+	int CONNECTOR_END___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP = MULTIPLICITY_ELEMENT___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Value Specification Constant</em>' operation.
@@ -32977,6 +31707,15 @@
 	int CONNECTOR_END___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP = MULTIPLICITY_ELEMENT___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Value Specification No Side Effects</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONNECTOR_END___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP = MULTIPLICITY_ELEMENT___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Set Lower</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -33085,13 +31824,13 @@
 	int CONNECTOR_END___VALIDATE_ROLE_AND_PART_WITH_PORT__DIAGNOSTICCHAIN_MAP = MULTIPLICITY_ELEMENT_OPERATION_COUNT + 0;
 
 	/**
-	 * The operation id for the '<em>Validate Part With Port Empty</em>' operation.
+	 * The operation id for the '<em>Validate Self Part With Port</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CONNECTOR_END___VALIDATE_PART_WITH_PORT_EMPTY__DIAGNOSTICCHAIN_MAP = MULTIPLICITY_ELEMENT_OPERATION_COUNT + 1;
+	int CONNECTOR_END___VALIDATE_SELF_PART_WITH_PORT__DIAGNOSTICCHAIN_MAP = MULTIPLICITY_ELEMENT_OPERATION_COUNT + 1;
 
 	/**
 	 * The operation id for the '<em>Validate Multiplicity</em>' operation.
@@ -33103,13 +31842,13 @@
 	int CONNECTOR_END___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = MULTIPLICITY_ELEMENT_OPERATION_COUNT + 2;
 
 	/**
-	 * The operation id for the '<em>Validate Self Part With Port</em>' operation.
+	 * The operation id for the '<em>Validate Part With Port Empty</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CONNECTOR_END___VALIDATE_SELF_PART_WITH_PORT__DIAGNOSTICCHAIN_MAP = MULTIPLICITY_ELEMENT_OPERATION_COUNT + 3;
+	int CONNECTOR_END___VALIDATE_PART_WITH_PORT_EMPTY__DIAGNOSTICCHAIN_MAP = MULTIPLICITY_ELEMENT_OPERATION_COUNT + 3;
 
 	/**
 	 * The operation id for the '<em>Get Defining End</em>' operation.
@@ -33175,6 +31914,15 @@
 	int CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__DEFAULT = TEMPLATE_PARAMETER__DEFAULT;
 
 	/**
+	 * The feature id for the '<em><b>Owned Default</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__OWNED_DEFAULT = TEMPLATE_PARAMETER__OWNED_DEFAULT;
+
+	/**
 	 * The feature id for the '<em><b>Owned Parametered Element</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -33193,15 +31941,6 @@
 	int CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT = TEMPLATE_PARAMETER__PARAMETERED_ELEMENT;
 
 	/**
-	 * The feature id for the '<em><b>Owned Default</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__OWNED_DEFAULT = TEMPLATE_PARAMETER__OWNED_DEFAULT;
-
-	/**
 	 * The feature id for the '<em><b>Signature</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -34021,15 +32760,6 @@
 	int DEPLOYMENT_TARGET___MUST_BE_OWNED = NAMED_ELEMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DEPLOYMENT_TARGET___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -34048,6 +32778,15 @@
 	int DEPLOYMENT_TARGET___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DEPLOYMENT_TARGET___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -34678,15 +33417,6 @@
 	int DEPLOYMENT___MUST_BE_OWNED = DEPENDENCY___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DEPLOYMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = DEPENDENCY___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -34705,6 +33435,15 @@
 	int DEPLOYMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = DEPENDENCY___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DEPLOYMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = DEPENDENCY___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -35551,15 +34290,6 @@
 	int ARTIFACT___MUST_BE_OWNED = CLASSIFIER___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ARTIFACT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -35578,6 +34308,15 @@
 	int ARTIFACT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ARTIFACT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -35875,24 +34614,6 @@
 	int ARTIFACT___PARAMETERABLE_ELEMENTS = CLASSIFIER___PARAMETERABLE_ELEMENTS;
 
 	/**
-	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ARTIFACT___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ARTIFACT___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Non Final Parents</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -35911,6 +34632,24 @@
 	int ARTIFACT___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ARTIFACT___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ARTIFACT___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Get All Attributes</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -36847,15 +35586,6 @@
 	int DEPLOYMENT_SPECIFICATION___MUST_BE_OWNED = ARTIFACT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DEPLOYMENT_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ARTIFACT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -36874,6 +35604,15 @@
 	int DEPLOYMENT_SPECIFICATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ARTIFACT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DEPLOYMENT_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ARTIFACT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -37171,24 +35910,6 @@
 	int DEPLOYMENT_SPECIFICATION___PARAMETERABLE_ELEMENTS = ARTIFACT___PARAMETERABLE_ELEMENTS;
 
 	/**
-	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DEPLOYMENT_SPECIFICATION___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = ARTIFACT___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DEPLOYMENT_SPECIFICATION___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = ARTIFACT___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Non Final Parents</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -37207,6 +35928,24 @@
 	int DEPLOYMENT_SPECIFICATION___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP = ARTIFACT___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DEPLOYMENT_SPECIFICATION___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = ARTIFACT___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DEPLOYMENT_SPECIFICATION___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = ARTIFACT___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Get All Attributes</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -37378,22 +36117,22 @@
 	int DEPLOYMENT_SPECIFICATION___CREATE_OWNED_OPERATION__STRING_ELIST_ELIST_TYPE = ARTIFACT___CREATE_OWNED_OPERATION__STRING_ELIST_ELIST_TYPE;
 
 	/**
-	 * The operation id for the '<em>Validate Deployment Target</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DEPLOYMENT_SPECIFICATION___VALIDATE_DEPLOYMENT_TARGET__DIAGNOSTICCHAIN_MAP = ARTIFACT_OPERATION_COUNT + 0;
-
-	/**
 	 * The operation id for the '<em>Validate Deployed Elements</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int DEPLOYMENT_SPECIFICATION___VALIDATE_DEPLOYED_ELEMENTS__DIAGNOSTICCHAIN_MAP = ARTIFACT_OPERATION_COUNT + 1;
+	int DEPLOYMENT_SPECIFICATION___VALIDATE_DEPLOYED_ELEMENTS__DIAGNOSTICCHAIN_MAP = ARTIFACT_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Validate Deployment Target</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DEPLOYMENT_SPECIFICATION___VALIDATE_DEPLOYMENT_TARGET__DIAGNOSTICCHAIN_MAP = ARTIFACT_OPERATION_COUNT + 1;
 
 	/**
 	 * The number of operations of the '<em>Deployment Specification</em>' class.
@@ -37837,15 +36576,6 @@
 	int DEPLOYED_ARTIFACT___MUST_BE_OWNED = NAMED_ELEMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DEPLOYED_ARTIFACT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -37864,6 +36594,15 @@
 	int DEPLOYED_ARTIFACT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DEPLOYED_ARTIFACT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -38476,15 +37215,6 @@
 	int MANIFESTATION___MUST_BE_OWNED = ABSTRACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MANIFESTATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ABSTRACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -38503,6 +37233,15 @@
 	int MANIFESTATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ABSTRACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MANIFESTATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ABSTRACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -39205,15 +37944,6 @@
 	int BEHAVIORAL_FEATURE___MUST_BE_OWNED = NAMESPACE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIORAL_FEATURE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMESPACE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -39232,6 +37962,15 @@
 	int BEHAVIORAL_FEATURE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = NAMESPACE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BEHAVIORAL_FEATURE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMESPACE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -39763,13 +38502,22 @@
 	int OPERATION__TEMPLATE_BINDING = BEHAVIORAL_FEATURE_FEATURE_COUNT + 3;
 
 	/**
+	 * The feature id for the '<em><b>Interface</b></em>' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OPERATION__INTERFACE = BEHAVIORAL_FEATURE_FEATURE_COUNT + 4;
+
+	/**
 	 * The feature id for the '<em><b>Body Condition</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int OPERATION__BODY_CONDITION = BEHAVIORAL_FEATURE_FEATURE_COUNT + 4;
+	int OPERATION__BODY_CONDITION = BEHAVIORAL_FEATURE_FEATURE_COUNT + 5;
 
 	/**
 	 * The feature id for the '<em><b>Class</b></em>' container reference.
@@ -39778,7 +38526,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int OPERATION__CLASS = BEHAVIORAL_FEATURE_FEATURE_COUNT + 5;
+	int OPERATION__CLASS = BEHAVIORAL_FEATURE_FEATURE_COUNT + 6;
 
 	/**
 	 * The feature id for the '<em><b>Datatype</b></em>' container reference.
@@ -39787,16 +38535,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int OPERATION__DATATYPE = BEHAVIORAL_FEATURE_FEATURE_COUNT + 6;
-
-	/**
-	 * The feature id for the '<em><b>Interface</b></em>' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int OPERATION__INTERFACE = BEHAVIORAL_FEATURE_FEATURE_COUNT + 7;
+	int OPERATION__DATATYPE = BEHAVIORAL_FEATURE_FEATURE_COUNT + 7;
 
 	/**
 	 * The feature id for the '<em><b>Is Ordered</b></em>' attribute.
@@ -40222,15 +38961,6 @@
 	int OPERATION___MUST_BE_OWNED = BEHAVIORAL_FEATURE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int OPERATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = BEHAVIORAL_FEATURE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -40249,6 +38979,15 @@
 	int OPERATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = BEHAVIORAL_FEATURE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OPERATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = BEHAVIORAL_FEATURE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -41545,15 +40284,6 @@
 	int BEHAVIOR___MUST_BE_OWNED = CLASS___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIOR___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -41572,6 +40302,15 @@
 	int BEHAVIOR___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BEHAVIOR___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -41869,24 +40608,6 @@
 	int BEHAVIOR___PARAMETERABLE_ELEMENTS = CLASS___PARAMETERABLE_ELEMENTS;
 
 	/**
-	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIOR___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIOR___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Non Final Parents</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -41905,6 +40626,24 @@
 	int BEHAVIOR___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BEHAVIOR___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BEHAVIOR___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Get All Attributes</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -42166,31 +40905,13 @@
 	int BEHAVIOR___GET_SUPER_CLASSES = CLASS___GET_SUPER_CLASSES;
 
 	/**
-	 * The operation id for the '<em>Validate Most One Behaviour</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIOR___VALIDATE_MOST_ONE_BEHAVIOUR__DIAGNOSTICCHAIN_MAP = CLASS_OPERATION_COUNT + 0;
-
-	/**
-	 * The operation id for the '<em>Validate Must Realize</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIOR___VALIDATE_MUST_REALIZE__DIAGNOSTICCHAIN_MAP = CLASS_OPERATION_COUNT + 1;
-
-	/**
 	 * The operation id for the '<em>Validate Parameters Match</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int BEHAVIOR___VALIDATE_PARAMETERS_MATCH__DIAGNOSTICCHAIN_MAP = CLASS_OPERATION_COUNT + 2;
+	int BEHAVIOR___VALIDATE_PARAMETERS_MATCH__DIAGNOSTICCHAIN_MAP = CLASS_OPERATION_COUNT + 0;
 
 	/**
 	 * The operation id for the '<em>Validate Feature Of Context Classifier</em>' operation.
@@ -42199,7 +40920,25 @@
 	 * @generated
 	 * @ordered
 	 */
-	int BEHAVIOR___VALIDATE_FEATURE_OF_CONTEXT_CLASSIFIER__DIAGNOSTICCHAIN_MAP = CLASS_OPERATION_COUNT + 3;
+	int BEHAVIOR___VALIDATE_FEATURE_OF_CONTEXT_CLASSIFIER__DIAGNOSTICCHAIN_MAP = CLASS_OPERATION_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Validate Must Realize</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BEHAVIOR___VALIDATE_MUST_REALIZE__DIAGNOSTICCHAIN_MAP = CLASS_OPERATION_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>Validate Most One Behaviour</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BEHAVIOR___VALIDATE_MOST_ONE_BEHAVIOUR__DIAGNOSTICCHAIN_MAP = CLASS_OPERATION_COUNT + 3;
 
 	/**
 	 * The operation id for the '<em>Get Context</em>' operation.
@@ -42226,7 +40965,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETER__EANNOTATIONS = CONNECTABLE_ELEMENT__EANNOTATIONS;
+	int BEHAVIORED_CLASSIFIER__EANNOTATIONS = CLASSIFIER__EANNOTATIONS;
 
 	/**
 	 * The feature id for the '<em><b>Owned Comment</b></em>' containment reference list.
@@ -42235,7 +40974,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETER__OWNED_COMMENT = CONNECTABLE_ELEMENT__OWNED_COMMENT;
+	int BEHAVIORED_CLASSIFIER__OWNED_COMMENT = CLASSIFIER__OWNED_COMMENT;
 
 	/**
 	 * The feature id for the '<em><b>Owned Element</b></em>' reference list.
@@ -42244,7 +40983,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETER__OWNED_ELEMENT = CONNECTABLE_ELEMENT__OWNED_ELEMENT;
+	int BEHAVIORED_CLASSIFIER__OWNED_ELEMENT = CLASSIFIER__OWNED_ELEMENT;
 
 	/**
 	 * The feature id for the '<em><b>Owner</b></em>' reference.
@@ -42253,7 +40992,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETER__OWNER = CONNECTABLE_ELEMENT__OWNER;
+	int BEHAVIORED_CLASSIFIER__OWNER = CLASSIFIER__OWNER;
 
 	/**
 	 * The feature id for the '<em><b>Client Dependency</b></em>' reference list.
@@ -42262,7 +41001,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETER__CLIENT_DEPENDENCY = CONNECTABLE_ELEMENT__CLIENT_DEPENDENCY;
+	int BEHAVIORED_CLASSIFIER__CLIENT_DEPENDENCY = CLASSIFIER__CLIENT_DEPENDENCY;
 
 	/**
 	 * The feature id for the '<em><b>Name</b></em>' attribute.
@@ -42271,7 +41010,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETER__NAME = CONNECTABLE_ELEMENT__NAME;
+	int BEHAVIORED_CLASSIFIER__NAME = CLASSIFIER__NAME;
 
 	/**
 	 * The feature id for the '<em><b>Name Expression</b></em>' containment reference.
@@ -42280,7 +41019,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETER__NAME_EXPRESSION = CONNECTABLE_ELEMENT__NAME_EXPRESSION;
+	int BEHAVIORED_CLASSIFIER__NAME_EXPRESSION = CLASSIFIER__NAME_EXPRESSION;
 
 	/**
 	 * The feature id for the '<em><b>Namespace</b></em>' reference.
@@ -42289,7 +41028,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETER__NAMESPACE = CONNECTABLE_ELEMENT__NAMESPACE;
+	int BEHAVIORED_CLASSIFIER__NAMESPACE = CLASSIFIER__NAMESPACE;
 
 	/**
 	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
@@ -42298,7 +41037,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETER__QUALIFIED_NAME = CONNECTABLE_ELEMENT__QUALIFIED_NAME;
+	int BEHAVIORED_CLASSIFIER__QUALIFIED_NAME = CLASSIFIER__QUALIFIED_NAME;
 
 	/**
 	 * The feature id for the '<em><b>Visibility</b></em>' attribute.
@@ -42307,2284 +41046,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETER__VISIBILITY = CONNECTABLE_ELEMENT__VISIBILITY;
-
-	/**
-	 * The feature id for the '<em><b>Type</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER__TYPE = CONNECTABLE_ELEMENT__TYPE;
-
-	/**
-	 * The feature id for the '<em><b>Owning Template Parameter</b></em>' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER__OWNING_TEMPLATE_PARAMETER = CONNECTABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER;
-
-	/**
-	 * The feature id for the '<em><b>Template Parameter</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER__TEMPLATE_PARAMETER = CONNECTABLE_ELEMENT__TEMPLATE_PARAMETER;
-
-	/**
-	 * The feature id for the '<em><b>End</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER__END = CONNECTABLE_ELEMENT__END;
-
-	/**
-	 * The feature id for the '<em><b>Is Ordered</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER__IS_ORDERED = CONNECTABLE_ELEMENT_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Is Unique</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER__IS_UNIQUE = CONNECTABLE_ELEMENT_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Lower</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER__LOWER = CONNECTABLE_ELEMENT_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Lower Value</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER__LOWER_VALUE = CONNECTABLE_ELEMENT_FEATURE_COUNT + 3;
-
-	/**
-	 * The feature id for the '<em><b>Upper</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER__UPPER = CONNECTABLE_ELEMENT_FEATURE_COUNT + 4;
-
-	/**
-	 * The feature id for the '<em><b>Upper Value</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER__UPPER_VALUE = CONNECTABLE_ELEMENT_FEATURE_COUNT + 5;
-
-	/**
-	 * The feature id for the '<em><b>Default</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER__DEFAULT = CONNECTABLE_ELEMENT_FEATURE_COUNT + 6;
-
-	/**
-	 * The feature id for the '<em><b>Default Value</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER__DEFAULT_VALUE = CONNECTABLE_ELEMENT_FEATURE_COUNT + 7;
-
-	/**
-	 * The feature id for the '<em><b>Direction</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER__DIRECTION = CONNECTABLE_ELEMENT_FEATURE_COUNT + 8;
-
-	/**
-	 * The feature id for the '<em><b>Effect</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER__EFFECT = CONNECTABLE_ELEMENT_FEATURE_COUNT + 9;
-
-	/**
-	 * The feature id for the '<em><b>Is Exception</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER__IS_EXCEPTION = CONNECTABLE_ELEMENT_FEATURE_COUNT + 10;
-
-	/**
-	 * The feature id for the '<em><b>Is Stream</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER__IS_STREAM = CONNECTABLE_ELEMENT_FEATURE_COUNT + 11;
-
-	/**
-	 * The feature id for the '<em><b>Operation</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER__OPERATION = CONNECTABLE_ELEMENT_FEATURE_COUNT + 12;
-
-	/**
-	 * The feature id for the '<em><b>Parameter Set</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER__PARAMETER_SET = CONNECTABLE_ELEMENT_FEATURE_COUNT + 13;
-
-	/**
-	 * The number of structural features of the '<em>Parameter</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_FEATURE_COUNT = CONNECTABLE_ELEMENT_FEATURE_COUNT + 14;
-
-	/**
-	 * The operation id for the '<em>Get EAnnotation</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___GET_EANNOTATION__STRING = CONNECTABLE_ELEMENT___GET_EANNOTATION__STRING;
-
-	/**
-	 * The operation id for the '<em>Validate Has Owner</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP = CONNECTABLE_ELEMENT___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Not Own Self</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP = CONNECTABLE_ELEMENT___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Add Keyword</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___ADD_KEYWORD__STRING = CONNECTABLE_ELEMENT___ADD_KEYWORD__STRING;
-
-	/**
-	 * The operation id for the '<em>Apply Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___APPLY_STEREOTYPE__STEREOTYPE = CONNECTABLE_ELEMENT___APPLY_STEREOTYPE__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Create EAnnotation</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___CREATE_EANNOTATION__STRING = CONNECTABLE_ELEMENT___CREATE_EANNOTATION__STRING;
-
-	/**
-	 * The operation id for the '<em>Destroy</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___DESTROY = CONNECTABLE_ELEMENT___DESTROY;
-
-	/**
-	 * The operation id for the '<em>Get Keywords</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___GET_KEYWORDS = CONNECTABLE_ELEMENT___GET_KEYWORDS;
-
-	/**
-	 * The operation id for the '<em>Get Applicable Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___GET_APPLICABLE_STEREOTYPE__STRING = CONNECTABLE_ELEMENT___GET_APPLICABLE_STEREOTYPE__STRING;
-
-	/**
-	 * The operation id for the '<em>Get Applicable Stereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___GET_APPLICABLE_STEREOTYPES = CONNECTABLE_ELEMENT___GET_APPLICABLE_STEREOTYPES;
-
-	/**
-	 * The operation id for the '<em>Get Applied Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___GET_APPLIED_STEREOTYPE__STRING = CONNECTABLE_ELEMENT___GET_APPLIED_STEREOTYPE__STRING;
-
-	/**
-	 * The operation id for the '<em>Get Applied Stereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___GET_APPLIED_STEREOTYPES = CONNECTABLE_ELEMENT___GET_APPLIED_STEREOTYPES;
-
-	/**
-	 * The operation id for the '<em>Get Applied Substereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING = CONNECTABLE_ELEMENT___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING;
-
-	/**
-	 * The operation id for the '<em>Get Applied Substereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE = CONNECTABLE_ELEMENT___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Get Model</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___GET_MODEL = CONNECTABLE_ELEMENT___GET_MODEL;
-
-	/**
-	 * The operation id for the '<em>Get Nearest Package</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___GET_NEAREST_PACKAGE = CONNECTABLE_ELEMENT___GET_NEAREST_PACKAGE;
-
-	/**
-	 * The operation id for the '<em>Get Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___GET_RELATIONSHIPS = CONNECTABLE_ELEMENT___GET_RELATIONSHIPS;
-
-	/**
-	 * The operation id for the '<em>Get Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___GET_RELATIONSHIPS__ECLASS = CONNECTABLE_ELEMENT___GET_RELATIONSHIPS__ECLASS;
-
-	/**
-	 * The operation id for the '<em>Get Required Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___GET_REQUIRED_STEREOTYPE__STRING = CONNECTABLE_ELEMENT___GET_REQUIRED_STEREOTYPE__STRING;
-
-	/**
-	 * The operation id for the '<em>Get Required Stereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___GET_REQUIRED_STEREOTYPES = CONNECTABLE_ELEMENT___GET_REQUIRED_STEREOTYPES;
-
-	/**
-	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___GET_SOURCE_DIRECTED_RELATIONSHIPS = CONNECTABLE_ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS;
-
-	/**
-	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS = CONNECTABLE_ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS;
-
-	/**
-	 * The operation id for the '<em>Get Stereotype Application</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___GET_STEREOTYPE_APPLICATION__STEREOTYPE = CONNECTABLE_ELEMENT___GET_STEREOTYPE_APPLICATION__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Get Stereotype Applications</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___GET_STEREOTYPE_APPLICATIONS = CONNECTABLE_ELEMENT___GET_STEREOTYPE_APPLICATIONS;
-
-	/**
-	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___GET_TARGET_DIRECTED_RELATIONSHIPS = CONNECTABLE_ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS;
-
-	/**
-	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS = CONNECTABLE_ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS;
-
-	/**
-	 * The operation id for the '<em>Get Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___GET_VALUE__STEREOTYPE_STRING = CONNECTABLE_ELEMENT___GET_VALUE__STEREOTYPE_STRING;
-
-	/**
-	 * The operation id for the '<em>Has Keyword</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___HAS_KEYWORD__STRING = CONNECTABLE_ELEMENT___HAS_KEYWORD__STRING;
-
-	/**
-	 * The operation id for the '<em>Has Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___HAS_VALUE__STEREOTYPE_STRING = CONNECTABLE_ELEMENT___HAS_VALUE__STEREOTYPE_STRING;
-
-	/**
-	 * The operation id for the '<em>Is Stereotype Applicable</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___IS_STEREOTYPE_APPLICABLE__STEREOTYPE = CONNECTABLE_ELEMENT___IS_STEREOTYPE_APPLICABLE__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Is Stereotype Applied</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___IS_STEREOTYPE_APPLIED__STEREOTYPE = CONNECTABLE_ELEMENT___IS_STEREOTYPE_APPLIED__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Is Stereotype Required</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___IS_STEREOTYPE_REQUIRED__STEREOTYPE = CONNECTABLE_ELEMENT___IS_STEREOTYPE_REQUIRED__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Remove Keyword</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___REMOVE_KEYWORD__STRING = CONNECTABLE_ELEMENT___REMOVE_KEYWORD__STRING;
-
-	/**
-	 * The operation id for the '<em>Set Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___SET_VALUE__STEREOTYPE_STRING_OBJECT = CONNECTABLE_ELEMENT___SET_VALUE__STEREOTYPE_STRING_OBJECT;
-
-	/**
-	 * The operation id for the '<em>Unapply Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___UNAPPLY_STEREOTYPE__STEREOTYPE = CONNECTABLE_ELEMENT___UNAPPLY_STEREOTYPE__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>All Owned Elements</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___ALL_OWNED_ELEMENTS = CONNECTABLE_ELEMENT___ALL_OWNED_ELEMENTS;
-
-	/**
-	 * The operation id for the '<em>Must Be Owned</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___MUST_BE_OWNED = CONNECTABLE_ELEMENT___MUST_BE_OWNED;
-
-	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CONNECTABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = CONNECTABLE_ELEMENT___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Has No Qualified Name</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = CONNECTABLE_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Create Dependency</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___CREATE_DEPENDENCY__NAMEDELEMENT = CONNECTABLE_ELEMENT___CREATE_DEPENDENCY__NAMEDELEMENT;
-
-	/**
-	 * The operation id for the '<em>Create Usage</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___CREATE_USAGE__NAMEDELEMENT = CONNECTABLE_ELEMENT___CREATE_USAGE__NAMEDELEMENT;
-
-	/**
-	 * The operation id for the '<em>Get Label</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___GET_LABEL = CONNECTABLE_ELEMENT___GET_LABEL;
-
-	/**
-	 * The operation id for the '<em>Get Label</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___GET_LABEL__BOOLEAN = CONNECTABLE_ELEMENT___GET_LABEL__BOOLEAN;
-
-	/**
-	 * The operation id for the '<em>All Namespaces</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___ALL_NAMESPACES = CONNECTABLE_ELEMENT___ALL_NAMESPACES;
-
-	/**
-	 * The operation id for the '<em>All Owning Packages</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___ALL_OWNING_PACKAGES = CONNECTABLE_ELEMENT___ALL_OWNING_PACKAGES;
-
-	/**
-	 * The operation id for the '<em>Is Distinguishable From</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE = CONNECTABLE_ELEMENT___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE;
-
-	/**
-	 * The operation id for the '<em>Get Namespace</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___GET_NAMESPACE = CONNECTABLE_ELEMENT___GET_NAMESPACE;
-
-	/**
-	 * The operation id for the '<em>Get Qualified Name</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___GET_QUALIFIED_NAME = CONNECTABLE_ELEMENT___GET_QUALIFIED_NAME;
-
-	/**
-	 * The operation id for the '<em>Separator</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___SEPARATOR = CONNECTABLE_ELEMENT___SEPARATOR;
-
-	/**
-	 * The operation id for the '<em>Is Compatible With</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___IS_COMPATIBLE_WITH__PARAMETERABLEELEMENT = CONNECTABLE_ELEMENT___IS_COMPATIBLE_WITH__PARAMETERABLEELEMENT;
-
-	/**
-	 * The operation id for the '<em>Is Template Parameter</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___IS_TEMPLATE_PARAMETER = CONNECTABLE_ELEMENT___IS_TEMPLATE_PARAMETER;
-
-	/**
-	 * The operation id for the '<em>Get Ends</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___GET_ENDS = CONNECTABLE_ELEMENT___GET_ENDS;
-
-	/**
-	 * The operation id for the '<em>Validate Upper Ge Lower</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP = CONNECTABLE_ELEMENT_OPERATION_COUNT + 0;
-
-	/**
-	 * The operation id for the '<em>Validate Lower Ge0</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP = CONNECTABLE_ELEMENT_OPERATION_COUNT + 1;
-
-	/**
-	 * The operation id for the '<em>Validate Value Specification No Side Effects</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP = CONNECTABLE_ELEMENT_OPERATION_COUNT + 2;
-
-	/**
-	 * The operation id for the '<em>Validate Value Specification Constant</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP = CONNECTABLE_ELEMENT_OPERATION_COUNT + 3;
-
-	/**
-	 * The operation id for the '<em>Set Lower</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___SET_LOWER__INT = CONNECTABLE_ELEMENT_OPERATION_COUNT + 4;
-
-	/**
-	 * The operation id for the '<em>Set Upper</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___SET_UPPER__INT = CONNECTABLE_ELEMENT_OPERATION_COUNT + 5;
-
-	/**
-	 * The operation id for the '<em>Compatible With</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___COMPATIBLE_WITH__MULTIPLICITYELEMENT = CONNECTABLE_ELEMENT_OPERATION_COUNT + 6;
-
-	/**
-	 * The operation id for the '<em>Includes Cardinality</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___INCLUDES_CARDINALITY__INT = CONNECTABLE_ELEMENT_OPERATION_COUNT + 7;
-
-	/**
-	 * The operation id for the '<em>Includes Multiplicity</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___INCLUDES_MULTIPLICITY__MULTIPLICITYELEMENT = CONNECTABLE_ELEMENT_OPERATION_COUNT + 8;
-
-	/**
-	 * The operation id for the '<em>Is</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___IS__INT_INT = CONNECTABLE_ELEMENT_OPERATION_COUNT + 9;
-
-	/**
-	 * The operation id for the '<em>Is Multivalued</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___IS_MULTIVALUED = CONNECTABLE_ELEMENT_OPERATION_COUNT + 10;
-
-	/**
-	 * The operation id for the '<em>Get Lower</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___GET_LOWER = CONNECTABLE_ELEMENT_OPERATION_COUNT + 11;
-
-	/**
-	 * The operation id for the '<em>Lower Bound</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___LOWER_BOUND = CONNECTABLE_ELEMENT_OPERATION_COUNT + 12;
-
-	/**
-	 * The operation id for the '<em>Get Upper</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___GET_UPPER = CONNECTABLE_ELEMENT_OPERATION_COUNT + 13;
-
-	/**
-	 * The operation id for the '<em>Upper Bound</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___UPPER_BOUND = CONNECTABLE_ELEMENT_OPERATION_COUNT + 14;
-
-	/**
-	 * The operation id for the '<em>Validate In And Out</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___VALIDATE_IN_AND_OUT__DIAGNOSTICCHAIN_MAP = CONNECTABLE_ELEMENT_OPERATION_COUNT + 15;
-
-	/**
-	 * The operation id for the '<em>Validate Not Exception</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___VALIDATE_NOT_EXCEPTION__DIAGNOSTICCHAIN_MAP = CONNECTABLE_ELEMENT_OPERATION_COUNT + 16;
-
-	/**
-	 * The operation id for the '<em>Validate Connector End</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___VALIDATE_CONNECTOR_END__DIAGNOSTICCHAIN_MAP = CONNECTABLE_ELEMENT_OPERATION_COUNT + 17;
-
-	/**
-	 * The operation id for the '<em>Validate Reentrant Behaviors</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___VALIDATE_REENTRANT_BEHAVIORS__DIAGNOSTICCHAIN_MAP = CONNECTABLE_ELEMENT_OPERATION_COUNT + 18;
-
-	/**
-	 * The operation id for the '<em>Validate Stream And Exception</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___VALIDATE_STREAM_AND_EXCEPTION__DIAGNOSTICCHAIN_MAP = CONNECTABLE_ELEMENT_OPERATION_COUNT + 19;
-
-	/**
-	 * The operation id for the '<em>Is Set Default</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___IS_SET_DEFAULT = CONNECTABLE_ELEMENT_OPERATION_COUNT + 20;
-
-	/**
-	 * The operation id for the '<em>Set Boolean Default Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___SET_BOOLEAN_DEFAULT_VALUE__BOOLEAN = CONNECTABLE_ELEMENT_OPERATION_COUNT + 21;
-
-	/**
-	 * The operation id for the '<em>Set Default</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___SET_DEFAULT__STRING = CONNECTABLE_ELEMENT_OPERATION_COUNT + 22;
-
-	/**
-	 * The operation id for the '<em>Set Integer Default Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___SET_INTEGER_DEFAULT_VALUE__INT = CONNECTABLE_ELEMENT_OPERATION_COUNT + 23;
-
-	/**
-	 * The operation id for the '<em>Set Null Default Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___SET_NULL_DEFAULT_VALUE = CONNECTABLE_ELEMENT_OPERATION_COUNT + 24;
-
-	/**
-	 * The operation id for the '<em>Set Real Default Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___SET_REAL_DEFAULT_VALUE__DOUBLE = CONNECTABLE_ELEMENT_OPERATION_COUNT + 25;
-
-	/**
-	 * The operation id for the '<em>Set String Default Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___SET_STRING_DEFAULT_VALUE__STRING = CONNECTABLE_ELEMENT_OPERATION_COUNT + 26;
-
-	/**
-	 * The operation id for the '<em>Set Unlimited Natural Default Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___SET_UNLIMITED_NATURAL_DEFAULT_VALUE__INT = CONNECTABLE_ELEMENT_OPERATION_COUNT + 27;
-
-	/**
-	 * The operation id for the '<em>Unset Default</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___UNSET_DEFAULT = CONNECTABLE_ELEMENT_OPERATION_COUNT + 28;
-
-	/**
-	 * The operation id for the '<em>Get Default</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER___GET_DEFAULT = CONNECTABLE_ELEMENT_OPERATION_COUNT + 29;
-
-	/**
-	 * The number of operations of the '<em>Parameter</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_OPERATION_COUNT = CONNECTABLE_ELEMENT_OPERATION_COUNT + 30;
-
-	/**
-	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET__EANNOTATIONS = NAMED_ELEMENT__EANNOTATIONS;
-
-	/**
-	 * The feature id for the '<em><b>Owned Comment</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET__OWNED_COMMENT = NAMED_ELEMENT__OWNED_COMMENT;
-
-	/**
-	 * The feature id for the '<em><b>Owned Element</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET__OWNED_ELEMENT = NAMED_ELEMENT__OWNED_ELEMENT;
-
-	/**
-	 * The feature id for the '<em><b>Owner</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET__OWNER = NAMED_ELEMENT__OWNER;
-
-	/**
-	 * The feature id for the '<em><b>Client Dependency</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET__CLIENT_DEPENDENCY = NAMED_ELEMENT__CLIENT_DEPENDENCY;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET__NAME = NAMED_ELEMENT__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Name Expression</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET__NAME_EXPRESSION = NAMED_ELEMENT__NAME_EXPRESSION;
-
-	/**
-	 * The feature id for the '<em><b>Namespace</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET__NAMESPACE = NAMED_ELEMENT__NAMESPACE;
-
-	/**
-	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET__QUALIFIED_NAME = NAMED_ELEMENT__QUALIFIED_NAME;
-
-	/**
-	 * The feature id for the '<em><b>Visibility</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET__VISIBILITY = NAMED_ELEMENT__VISIBILITY;
-
-	/**
-	 * The feature id for the '<em><b>Condition</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET__CONDITION = NAMED_ELEMENT_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Parameter</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET__PARAMETER = NAMED_ELEMENT_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of structural features of the '<em>Parameter Set</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 2;
-
-	/**
-	 * The operation id for the '<em>Get EAnnotation</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___GET_EANNOTATION__STRING = NAMED_ELEMENT___GET_EANNOTATION__STRING;
-
-	/**
-	 * The operation id for the '<em>Validate Has Owner</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Not Own Self</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Add Keyword</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___ADD_KEYWORD__STRING = NAMED_ELEMENT___ADD_KEYWORD__STRING;
-
-	/**
-	 * The operation id for the '<em>Apply Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___APPLY_STEREOTYPE__STEREOTYPE = NAMED_ELEMENT___APPLY_STEREOTYPE__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Create EAnnotation</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___CREATE_EANNOTATION__STRING = NAMED_ELEMENT___CREATE_EANNOTATION__STRING;
-
-	/**
-	 * The operation id for the '<em>Destroy</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___DESTROY = NAMED_ELEMENT___DESTROY;
-
-	/**
-	 * The operation id for the '<em>Get Keywords</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___GET_KEYWORDS = NAMED_ELEMENT___GET_KEYWORDS;
-
-	/**
-	 * The operation id for the '<em>Get Applicable Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___GET_APPLICABLE_STEREOTYPE__STRING = NAMED_ELEMENT___GET_APPLICABLE_STEREOTYPE__STRING;
-
-	/**
-	 * The operation id for the '<em>Get Applicable Stereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___GET_APPLICABLE_STEREOTYPES = NAMED_ELEMENT___GET_APPLICABLE_STEREOTYPES;
-
-	/**
-	 * The operation id for the '<em>Get Applied Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___GET_APPLIED_STEREOTYPE__STRING = NAMED_ELEMENT___GET_APPLIED_STEREOTYPE__STRING;
-
-	/**
-	 * The operation id for the '<em>Get Applied Stereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___GET_APPLIED_STEREOTYPES = NAMED_ELEMENT___GET_APPLIED_STEREOTYPES;
-
-	/**
-	 * The operation id for the '<em>Get Applied Substereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING = NAMED_ELEMENT___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING;
-
-	/**
-	 * The operation id for the '<em>Get Applied Substereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE = NAMED_ELEMENT___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Get Model</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___GET_MODEL = NAMED_ELEMENT___GET_MODEL;
-
-	/**
-	 * The operation id for the '<em>Get Nearest Package</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___GET_NEAREST_PACKAGE = NAMED_ELEMENT___GET_NEAREST_PACKAGE;
-
-	/**
-	 * The operation id for the '<em>Get Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___GET_RELATIONSHIPS = NAMED_ELEMENT___GET_RELATIONSHIPS;
-
-	/**
-	 * The operation id for the '<em>Get Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___GET_RELATIONSHIPS__ECLASS = NAMED_ELEMENT___GET_RELATIONSHIPS__ECLASS;
-
-	/**
-	 * The operation id for the '<em>Get Required Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___GET_REQUIRED_STEREOTYPE__STRING = NAMED_ELEMENT___GET_REQUIRED_STEREOTYPE__STRING;
-
-	/**
-	 * The operation id for the '<em>Get Required Stereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___GET_REQUIRED_STEREOTYPES = NAMED_ELEMENT___GET_REQUIRED_STEREOTYPES;
-
-	/**
-	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___GET_SOURCE_DIRECTED_RELATIONSHIPS = NAMED_ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS;
-
-	/**
-	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS = NAMED_ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS;
-
-	/**
-	 * The operation id for the '<em>Get Stereotype Application</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___GET_STEREOTYPE_APPLICATION__STEREOTYPE = NAMED_ELEMENT___GET_STEREOTYPE_APPLICATION__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Get Stereotype Applications</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___GET_STEREOTYPE_APPLICATIONS = NAMED_ELEMENT___GET_STEREOTYPE_APPLICATIONS;
-
-	/**
-	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___GET_TARGET_DIRECTED_RELATIONSHIPS = NAMED_ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS;
-
-	/**
-	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS = NAMED_ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS;
-
-	/**
-	 * The operation id for the '<em>Get Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___GET_VALUE__STEREOTYPE_STRING = NAMED_ELEMENT___GET_VALUE__STEREOTYPE_STRING;
-
-	/**
-	 * The operation id for the '<em>Has Keyword</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___HAS_KEYWORD__STRING = NAMED_ELEMENT___HAS_KEYWORD__STRING;
-
-	/**
-	 * The operation id for the '<em>Has Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___HAS_VALUE__STEREOTYPE_STRING = NAMED_ELEMENT___HAS_VALUE__STEREOTYPE_STRING;
-
-	/**
-	 * The operation id for the '<em>Is Stereotype Applicable</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___IS_STEREOTYPE_APPLICABLE__STEREOTYPE = NAMED_ELEMENT___IS_STEREOTYPE_APPLICABLE__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Is Stereotype Applied</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___IS_STEREOTYPE_APPLIED__STEREOTYPE = NAMED_ELEMENT___IS_STEREOTYPE_APPLIED__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Is Stereotype Required</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___IS_STEREOTYPE_REQUIRED__STEREOTYPE = NAMED_ELEMENT___IS_STEREOTYPE_REQUIRED__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Remove Keyword</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___REMOVE_KEYWORD__STRING = NAMED_ELEMENT___REMOVE_KEYWORD__STRING;
-
-	/**
-	 * The operation id for the '<em>Set Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___SET_VALUE__STEREOTYPE_STRING_OBJECT = NAMED_ELEMENT___SET_VALUE__STEREOTYPE_STRING_OBJECT;
-
-	/**
-	 * The operation id for the '<em>Unapply Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___UNAPPLY_STEREOTYPE__STEREOTYPE = NAMED_ELEMENT___UNAPPLY_STEREOTYPE__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>All Owned Elements</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___ALL_OWNED_ELEMENTS = NAMED_ELEMENT___ALL_OWNED_ELEMENTS;
-
-	/**
-	 * The operation id for the '<em>Must Be Owned</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___MUST_BE_OWNED = NAMED_ELEMENT___MUST_BE_OWNED;
-
-	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Has No Qualified Name</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Create Dependency</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___CREATE_DEPENDENCY__NAMEDELEMENT = NAMED_ELEMENT___CREATE_DEPENDENCY__NAMEDELEMENT;
-
-	/**
-	 * The operation id for the '<em>Create Usage</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___CREATE_USAGE__NAMEDELEMENT = NAMED_ELEMENT___CREATE_USAGE__NAMEDELEMENT;
-
-	/**
-	 * The operation id for the '<em>Get Label</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___GET_LABEL = NAMED_ELEMENT___GET_LABEL;
-
-	/**
-	 * The operation id for the '<em>Get Label</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___GET_LABEL__BOOLEAN = NAMED_ELEMENT___GET_LABEL__BOOLEAN;
-
-	/**
-	 * The operation id for the '<em>All Namespaces</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___ALL_NAMESPACES = NAMED_ELEMENT___ALL_NAMESPACES;
-
-	/**
-	 * The operation id for the '<em>All Owning Packages</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___ALL_OWNING_PACKAGES = NAMED_ELEMENT___ALL_OWNING_PACKAGES;
-
-	/**
-	 * The operation id for the '<em>Is Distinguishable From</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE = NAMED_ELEMENT___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE;
-
-	/**
-	 * The operation id for the '<em>Get Namespace</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___GET_NAMESPACE = NAMED_ELEMENT___GET_NAMESPACE;
-
-	/**
-	 * The operation id for the '<em>Get Qualified Name</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___GET_QUALIFIED_NAME = NAMED_ELEMENT___GET_QUALIFIED_NAME;
-
-	/**
-	 * The operation id for the '<em>Separator</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___SEPARATOR = NAMED_ELEMENT___SEPARATOR;
-
-	/**
-	 * The operation id for the '<em>Validate Same Parameterized Entity</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___VALIDATE_SAME_PARAMETERIZED_ENTITY__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT_OPERATION_COUNT + 0;
-
-	/**
-	 * The operation id for the '<em>Validate Input</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___VALIDATE_INPUT__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT_OPERATION_COUNT + 1;
-
-	/**
-	 * The operation id for the '<em>Validate Two Parameter Sets</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET___VALIDATE_TWO_PARAMETER_SETS__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT_OPERATION_COUNT + 2;
-
-	/**
-	 * The number of operations of the '<em>Parameter Set</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_SET_OPERATION_COUNT = NAMED_ELEMENT_OPERATION_COUNT + 3;
-
-	/**
-	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT__EANNOTATIONS = PACKAGEABLE_ELEMENT__EANNOTATIONS;
-
-	/**
-	 * The feature id for the '<em><b>Owned Comment</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT__OWNED_COMMENT = PACKAGEABLE_ELEMENT__OWNED_COMMENT;
-
-	/**
-	 * The feature id for the '<em><b>Owned Element</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT__OWNED_ELEMENT = PACKAGEABLE_ELEMENT__OWNED_ELEMENT;
-
-	/**
-	 * The feature id for the '<em><b>Owner</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT__OWNER = PACKAGEABLE_ELEMENT__OWNER;
-
-	/**
-	 * The feature id for the '<em><b>Client Dependency</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT__CLIENT_DEPENDENCY = PACKAGEABLE_ELEMENT__CLIENT_DEPENDENCY;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT__NAME = PACKAGEABLE_ELEMENT__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Name Expression</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT__NAME_EXPRESSION = PACKAGEABLE_ELEMENT__NAME_EXPRESSION;
-
-	/**
-	 * The feature id for the '<em><b>Namespace</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT__NAMESPACE = PACKAGEABLE_ELEMENT__NAMESPACE;
-
-	/**
-	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT__QUALIFIED_NAME = PACKAGEABLE_ELEMENT__QUALIFIED_NAME;
-
-	/**
-	 * The feature id for the '<em><b>Visibility</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT__VISIBILITY = PACKAGEABLE_ELEMENT__VISIBILITY;
-
-	/**
-	 * The feature id for the '<em><b>Owning Template Parameter</b></em>' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT__OWNING_TEMPLATE_PARAMETER = PACKAGEABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER;
-
-	/**
-	 * The feature id for the '<em><b>Template Parameter</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT__TEMPLATE_PARAMETER = PACKAGEABLE_ELEMENT__TEMPLATE_PARAMETER;
-
-	/**
-	 * The feature id for the '<em><b>Constrained Element</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT__CONSTRAINED_ELEMENT = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Context</b></em>' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT__CONTEXT = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Specification</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT__SPECIFICATION = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 2;
-
-	/**
-	 * The number of structural features of the '<em>Constraint</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT_FEATURE_COUNT = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 3;
-
-	/**
-	 * The operation id for the '<em>Get EAnnotation</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___GET_EANNOTATION__STRING = PACKAGEABLE_ELEMENT___GET_EANNOTATION__STRING;
-
-	/**
-	 * The operation id for the '<em>Validate Has Owner</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Not Own Self</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Add Keyword</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___ADD_KEYWORD__STRING = PACKAGEABLE_ELEMENT___ADD_KEYWORD__STRING;
-
-	/**
-	 * The operation id for the '<em>Apply Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___APPLY_STEREOTYPE__STEREOTYPE = PACKAGEABLE_ELEMENT___APPLY_STEREOTYPE__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Create EAnnotation</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___CREATE_EANNOTATION__STRING = PACKAGEABLE_ELEMENT___CREATE_EANNOTATION__STRING;
-
-	/**
-	 * The operation id for the '<em>Destroy</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___DESTROY = PACKAGEABLE_ELEMENT___DESTROY;
-
-	/**
-	 * The operation id for the '<em>Get Keywords</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___GET_KEYWORDS = PACKAGEABLE_ELEMENT___GET_KEYWORDS;
-
-	/**
-	 * The operation id for the '<em>Get Applicable Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___GET_APPLICABLE_STEREOTYPE__STRING = PACKAGEABLE_ELEMENT___GET_APPLICABLE_STEREOTYPE__STRING;
-
-	/**
-	 * The operation id for the '<em>Get Applicable Stereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___GET_APPLICABLE_STEREOTYPES = PACKAGEABLE_ELEMENT___GET_APPLICABLE_STEREOTYPES;
-
-	/**
-	 * The operation id for the '<em>Get Applied Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___GET_APPLIED_STEREOTYPE__STRING = PACKAGEABLE_ELEMENT___GET_APPLIED_STEREOTYPE__STRING;
-
-	/**
-	 * The operation id for the '<em>Get Applied Stereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___GET_APPLIED_STEREOTYPES = PACKAGEABLE_ELEMENT___GET_APPLIED_STEREOTYPES;
-
-	/**
-	 * The operation id for the '<em>Get Applied Substereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING = PACKAGEABLE_ELEMENT___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING;
-
-	/**
-	 * The operation id for the '<em>Get Applied Substereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE = PACKAGEABLE_ELEMENT___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Get Model</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___GET_MODEL = PACKAGEABLE_ELEMENT___GET_MODEL;
-
-	/**
-	 * The operation id for the '<em>Get Nearest Package</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___GET_NEAREST_PACKAGE = PACKAGEABLE_ELEMENT___GET_NEAREST_PACKAGE;
-
-	/**
-	 * The operation id for the '<em>Get Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___GET_RELATIONSHIPS = PACKAGEABLE_ELEMENT___GET_RELATIONSHIPS;
-
-	/**
-	 * The operation id for the '<em>Get Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___GET_RELATIONSHIPS__ECLASS = PACKAGEABLE_ELEMENT___GET_RELATIONSHIPS__ECLASS;
-
-	/**
-	 * The operation id for the '<em>Get Required Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___GET_REQUIRED_STEREOTYPE__STRING = PACKAGEABLE_ELEMENT___GET_REQUIRED_STEREOTYPE__STRING;
-
-	/**
-	 * The operation id for the '<em>Get Required Stereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___GET_REQUIRED_STEREOTYPES = PACKAGEABLE_ELEMENT___GET_REQUIRED_STEREOTYPES;
-
-	/**
-	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___GET_SOURCE_DIRECTED_RELATIONSHIPS = PACKAGEABLE_ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS;
-
-	/**
-	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS = PACKAGEABLE_ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS;
-
-	/**
-	 * The operation id for the '<em>Get Stereotype Application</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___GET_STEREOTYPE_APPLICATION__STEREOTYPE = PACKAGEABLE_ELEMENT___GET_STEREOTYPE_APPLICATION__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Get Stereotype Applications</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___GET_STEREOTYPE_APPLICATIONS = PACKAGEABLE_ELEMENT___GET_STEREOTYPE_APPLICATIONS;
-
-	/**
-	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___GET_TARGET_DIRECTED_RELATIONSHIPS = PACKAGEABLE_ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS;
-
-	/**
-	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS = PACKAGEABLE_ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS;
-
-	/**
-	 * The operation id for the '<em>Get Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___GET_VALUE__STEREOTYPE_STRING = PACKAGEABLE_ELEMENT___GET_VALUE__STEREOTYPE_STRING;
-
-	/**
-	 * The operation id for the '<em>Has Keyword</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___HAS_KEYWORD__STRING = PACKAGEABLE_ELEMENT___HAS_KEYWORD__STRING;
-
-	/**
-	 * The operation id for the '<em>Has Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___HAS_VALUE__STEREOTYPE_STRING = PACKAGEABLE_ELEMENT___HAS_VALUE__STEREOTYPE_STRING;
-
-	/**
-	 * The operation id for the '<em>Is Stereotype Applicable</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___IS_STEREOTYPE_APPLICABLE__STEREOTYPE = PACKAGEABLE_ELEMENT___IS_STEREOTYPE_APPLICABLE__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Is Stereotype Applied</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___IS_STEREOTYPE_APPLIED__STEREOTYPE = PACKAGEABLE_ELEMENT___IS_STEREOTYPE_APPLIED__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Is Stereotype Required</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___IS_STEREOTYPE_REQUIRED__STEREOTYPE = PACKAGEABLE_ELEMENT___IS_STEREOTYPE_REQUIRED__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Remove Keyword</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___REMOVE_KEYWORD__STRING = PACKAGEABLE_ELEMENT___REMOVE_KEYWORD__STRING;
-
-	/**
-	 * The operation id for the '<em>Set Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___SET_VALUE__STEREOTYPE_STRING_OBJECT = PACKAGEABLE_ELEMENT___SET_VALUE__STEREOTYPE_STRING_OBJECT;
-
-	/**
-	 * The operation id for the '<em>Unapply Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___UNAPPLY_STEREOTYPE__STEREOTYPE = PACKAGEABLE_ELEMENT___UNAPPLY_STEREOTYPE__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>All Owned Elements</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___ALL_OWNED_ELEMENTS = PACKAGEABLE_ELEMENT___ALL_OWNED_ELEMENTS;
-
-	/**
-	 * The operation id for the '<em>Must Be Owned</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___MUST_BE_OWNED = PACKAGEABLE_ELEMENT___MUST_BE_OWNED;
-
-	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Has No Qualified Name</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Create Dependency</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___CREATE_DEPENDENCY__NAMEDELEMENT = PACKAGEABLE_ELEMENT___CREATE_DEPENDENCY__NAMEDELEMENT;
-
-	/**
-	 * The operation id for the '<em>Create Usage</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___CREATE_USAGE__NAMEDELEMENT = PACKAGEABLE_ELEMENT___CREATE_USAGE__NAMEDELEMENT;
-
-	/**
-	 * The operation id for the '<em>Get Label</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___GET_LABEL = PACKAGEABLE_ELEMENT___GET_LABEL;
-
-	/**
-	 * The operation id for the '<em>Get Label</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___GET_LABEL__BOOLEAN = PACKAGEABLE_ELEMENT___GET_LABEL__BOOLEAN;
-
-	/**
-	 * The operation id for the '<em>All Namespaces</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___ALL_NAMESPACES = PACKAGEABLE_ELEMENT___ALL_NAMESPACES;
-
-	/**
-	 * The operation id for the '<em>All Owning Packages</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___ALL_OWNING_PACKAGES = PACKAGEABLE_ELEMENT___ALL_OWNING_PACKAGES;
-
-	/**
-	 * The operation id for the '<em>Is Distinguishable From</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE = PACKAGEABLE_ELEMENT___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE;
-
-	/**
-	 * The operation id for the '<em>Get Namespace</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___GET_NAMESPACE = PACKAGEABLE_ELEMENT___GET_NAMESPACE;
-
-	/**
-	 * The operation id for the '<em>Get Qualified Name</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___GET_QUALIFIED_NAME = PACKAGEABLE_ELEMENT___GET_QUALIFIED_NAME;
-
-	/**
-	 * The operation id for the '<em>Separator</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___SEPARATOR = PACKAGEABLE_ELEMENT___SEPARATOR;
-
-	/**
-	 * The operation id for the '<em>Is Compatible With</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___IS_COMPATIBLE_WITH__PARAMETERABLEELEMENT = PACKAGEABLE_ELEMENT___IS_COMPATIBLE_WITH__PARAMETERABLEELEMENT;
-
-	/**
-	 * The operation id for the '<em>Is Template Parameter</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___IS_TEMPLATE_PARAMETER = PACKAGEABLE_ELEMENT___IS_TEMPLATE_PARAMETER;
-
-	/**
-	 * The operation id for the '<em>Validate Boolean Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___VALIDATE_BOOLEAN_VALUE__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 0;
-
-	/**
-	 * The operation id for the '<em>Validate No Side Effects</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___VALIDATE_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 1;
-
-	/**
-	 * The operation id for the '<em>Validate Not Apply To Self</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___VALIDATE_NOT_APPLY_TO_SELF__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 2;
-
-	/**
-	 * The operation id for the '<em>Validate Value Specification Boolean</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT___VALIDATE_VALUE_SPECIFICATION_BOOLEAN__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 3;
-
-	/**
-	 * The number of operations of the '<em>Constraint</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTRAINT_OPERATION_COUNT = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 4;
-
-	/**
-	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DATA_TYPE__EANNOTATIONS = CLASSIFIER__EANNOTATIONS;
-
-	/**
-	 * The feature id for the '<em><b>Owned Comment</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DATA_TYPE__OWNED_COMMENT = CLASSIFIER__OWNED_COMMENT;
-
-	/**
-	 * The feature id for the '<em><b>Owned Element</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DATA_TYPE__OWNED_ELEMENT = CLASSIFIER__OWNED_ELEMENT;
-
-	/**
-	 * The feature id for the '<em><b>Owner</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DATA_TYPE__OWNER = CLASSIFIER__OWNER;
-
-	/**
-	 * The feature id for the '<em><b>Client Dependency</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DATA_TYPE__CLIENT_DEPENDENCY = CLASSIFIER__CLIENT_DEPENDENCY;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DATA_TYPE__NAME = CLASSIFIER__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Name Expression</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DATA_TYPE__NAME_EXPRESSION = CLASSIFIER__NAME_EXPRESSION;
-
-	/**
-	 * The feature id for the '<em><b>Namespace</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DATA_TYPE__NAMESPACE = CLASSIFIER__NAMESPACE;
-
-	/**
-	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DATA_TYPE__QUALIFIED_NAME = CLASSIFIER__QUALIFIED_NAME;
-
-	/**
-	 * The feature id for the '<em><b>Visibility</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DATA_TYPE__VISIBILITY = CLASSIFIER__VISIBILITY;
+	int BEHAVIORED_CLASSIFIER__VISIBILITY = CLASSIFIER__VISIBILITY;
 
 	/**
 	 * The feature id for the '<em><b>Element Import</b></em>' containment reference list.
@@ -44593,7 +41055,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE__ELEMENT_IMPORT = CLASSIFIER__ELEMENT_IMPORT;
+	int BEHAVIORED_CLASSIFIER__ELEMENT_IMPORT = CLASSIFIER__ELEMENT_IMPORT;
 
 	/**
 	 * The feature id for the '<em><b>Package Import</b></em>' containment reference list.
@@ -44602,7 +41064,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE__PACKAGE_IMPORT = CLASSIFIER__PACKAGE_IMPORT;
+	int BEHAVIORED_CLASSIFIER__PACKAGE_IMPORT = CLASSIFIER__PACKAGE_IMPORT;
 
 	/**
 	 * The feature id for the '<em><b>Owned Rule</b></em>' containment reference list.
@@ -44611,7 +41073,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE__OWNED_RULE = CLASSIFIER__OWNED_RULE;
+	int BEHAVIORED_CLASSIFIER__OWNED_RULE = CLASSIFIER__OWNED_RULE;
 
 	/**
 	 * The feature id for the '<em><b>Owned Member</b></em>' reference list.
@@ -44620,7 +41082,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE__OWNED_MEMBER = CLASSIFIER__OWNED_MEMBER;
+	int BEHAVIORED_CLASSIFIER__OWNED_MEMBER = CLASSIFIER__OWNED_MEMBER;
 
 	/**
 	 * The feature id for the '<em><b>Imported Member</b></em>' reference list.
@@ -44629,7 +41091,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE__IMPORTED_MEMBER = CLASSIFIER__IMPORTED_MEMBER;
+	int BEHAVIORED_CLASSIFIER__IMPORTED_MEMBER = CLASSIFIER__IMPORTED_MEMBER;
 
 	/**
 	 * The feature id for the '<em><b>Member</b></em>' reference list.
@@ -44638,7 +41100,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE__MEMBER = CLASSIFIER__MEMBER;
+	int BEHAVIORED_CLASSIFIER__MEMBER = CLASSIFIER__MEMBER;
 
 	/**
 	 * The feature id for the '<em><b>Is Leaf</b></em>' attribute.
@@ -44647,7 +41109,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE__IS_LEAF = CLASSIFIER__IS_LEAF;
+	int BEHAVIORED_CLASSIFIER__IS_LEAF = CLASSIFIER__IS_LEAF;
 
 	/**
 	 * The feature id for the '<em><b>Redefined Element</b></em>' reference list.
@@ -44656,7 +41118,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE__REDEFINED_ELEMENT = CLASSIFIER__REDEFINED_ELEMENT;
+	int BEHAVIORED_CLASSIFIER__REDEFINED_ELEMENT = CLASSIFIER__REDEFINED_ELEMENT;
 
 	/**
 	 * The feature id for the '<em><b>Redefinition Context</b></em>' reference list.
@@ -44665,7 +41127,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE__REDEFINITION_CONTEXT = CLASSIFIER__REDEFINITION_CONTEXT;
+	int BEHAVIORED_CLASSIFIER__REDEFINITION_CONTEXT = CLASSIFIER__REDEFINITION_CONTEXT;
 
 	/**
 	 * The feature id for the '<em><b>Owning Template Parameter</b></em>' container reference.
@@ -44674,7 +41136,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE__OWNING_TEMPLATE_PARAMETER = CLASSIFIER__OWNING_TEMPLATE_PARAMETER;
+	int BEHAVIORED_CLASSIFIER__OWNING_TEMPLATE_PARAMETER = CLASSIFIER__OWNING_TEMPLATE_PARAMETER;
 
 	/**
 	 * The feature id for the '<em><b>Template Parameter</b></em>' reference.
@@ -44683,7 +41145,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE__TEMPLATE_PARAMETER = CLASSIFIER__TEMPLATE_PARAMETER;
+	int BEHAVIORED_CLASSIFIER__TEMPLATE_PARAMETER = CLASSIFIER__TEMPLATE_PARAMETER;
 
 	/**
 	 * The feature id for the '<em><b>Package</b></em>' reference.
@@ -44692,7 +41154,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE__PACKAGE = CLASSIFIER__PACKAGE;
+	int BEHAVIORED_CLASSIFIER__PACKAGE = CLASSIFIER__PACKAGE;
 
 	/**
 	 * The feature id for the '<em><b>Owned Template Signature</b></em>' containment reference.
@@ -44701,7 +41163,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE__OWNED_TEMPLATE_SIGNATURE = CLASSIFIER__OWNED_TEMPLATE_SIGNATURE;
+	int BEHAVIORED_CLASSIFIER__OWNED_TEMPLATE_SIGNATURE = CLASSIFIER__OWNED_TEMPLATE_SIGNATURE;
 
 	/**
 	 * The feature id for the '<em><b>Template Binding</b></em>' containment reference list.
@@ -44710,7 +41172,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE__TEMPLATE_BINDING = CLASSIFIER__TEMPLATE_BINDING;
+	int BEHAVIORED_CLASSIFIER__TEMPLATE_BINDING = CLASSIFIER__TEMPLATE_BINDING;
 
 	/**
 	 * The feature id for the '<em><b>Feature</b></em>' reference list.
@@ -44719,7 +41181,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE__FEATURE = CLASSIFIER__FEATURE;
+	int BEHAVIORED_CLASSIFIER__FEATURE = CLASSIFIER__FEATURE;
 
 	/**
 	 * The feature id for the '<em><b>Attribute</b></em>' reference list.
@@ -44728,7 +41190,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE__ATTRIBUTE = CLASSIFIER__ATTRIBUTE;
+	int BEHAVIORED_CLASSIFIER__ATTRIBUTE = CLASSIFIER__ATTRIBUTE;
 
 	/**
 	 * The feature id for the '<em><b>Collaboration Use</b></em>' containment reference list.
@@ -44737,7 +41199,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE__COLLABORATION_USE = CLASSIFIER__COLLABORATION_USE;
+	int BEHAVIORED_CLASSIFIER__COLLABORATION_USE = CLASSIFIER__COLLABORATION_USE;
 
 	/**
 	 * The feature id for the '<em><b>General</b></em>' reference list.
@@ -44746,7 +41208,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE__GENERAL = CLASSIFIER__GENERAL;
+	int BEHAVIORED_CLASSIFIER__GENERAL = CLASSIFIER__GENERAL;
 
 	/**
 	 * The feature id for the '<em><b>Generalization</b></em>' containment reference list.
@@ -44755,7 +41217,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE__GENERALIZATION = CLASSIFIER__GENERALIZATION;
+	int BEHAVIORED_CLASSIFIER__GENERALIZATION = CLASSIFIER__GENERALIZATION;
 
 	/**
 	 * The feature id for the '<em><b>Powertype Extent</b></em>' reference list.
@@ -44764,7 +41226,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE__POWERTYPE_EXTENT = CLASSIFIER__POWERTYPE_EXTENT;
+	int BEHAVIORED_CLASSIFIER__POWERTYPE_EXTENT = CLASSIFIER__POWERTYPE_EXTENT;
 
 	/**
 	 * The feature id for the '<em><b>Inherited Member</b></em>' reference list.
@@ -44773,7 +41235,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE__INHERITED_MEMBER = CLASSIFIER__INHERITED_MEMBER;
+	int BEHAVIORED_CLASSIFIER__INHERITED_MEMBER = CLASSIFIER__INHERITED_MEMBER;
 
 	/**
 	 * The feature id for the '<em><b>Is Abstract</b></em>' attribute.
@@ -44782,7 +41244,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE__IS_ABSTRACT = CLASSIFIER__IS_ABSTRACT;
+	int BEHAVIORED_CLASSIFIER__IS_ABSTRACT = CLASSIFIER__IS_ABSTRACT;
 
 	/**
 	 * The feature id for the '<em><b>Is Final Specialization</b></em>' attribute.
@@ -44791,7 +41253,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE__IS_FINAL_SPECIALIZATION = CLASSIFIER__IS_FINAL_SPECIALIZATION;
+	int BEHAVIORED_CLASSIFIER__IS_FINAL_SPECIALIZATION = CLASSIFIER__IS_FINAL_SPECIALIZATION;
 
 	/**
 	 * The feature id for the '<em><b>Owned Use Case</b></em>' containment reference list.
@@ -44800,7 +41262,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE__OWNED_USE_CASE = CLASSIFIER__OWNED_USE_CASE;
+	int BEHAVIORED_CLASSIFIER__OWNED_USE_CASE = CLASSIFIER__OWNED_USE_CASE;
 
 	/**
 	 * The feature id for the '<em><b>Use Case</b></em>' reference list.
@@ -44809,7 +41271,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE__USE_CASE = CLASSIFIER__USE_CASE;
+	int BEHAVIORED_CLASSIFIER__USE_CASE = CLASSIFIER__USE_CASE;
 
 	/**
 	 * The feature id for the '<em><b>Redefined Classifier</b></em>' reference list.
@@ -44818,7 +41280,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE__REDEFINED_CLASSIFIER = CLASSIFIER__REDEFINED_CLASSIFIER;
+	int BEHAVIORED_CLASSIFIER__REDEFINED_CLASSIFIER = CLASSIFIER__REDEFINED_CLASSIFIER;
 
 	/**
 	 * The feature id for the '<em><b>Representation</b></em>' reference.
@@ -44827,7 +41289,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE__REPRESENTATION = CLASSIFIER__REPRESENTATION;
+	int BEHAVIORED_CLASSIFIER__REPRESENTATION = CLASSIFIER__REPRESENTATION;
 
 	/**
 	 * The feature id for the '<em><b>Substitution</b></em>' containment reference list.
@@ -44836,34 +41298,43 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE__SUBSTITUTION = CLASSIFIER__SUBSTITUTION;
+	int BEHAVIORED_CLASSIFIER__SUBSTITUTION = CLASSIFIER__SUBSTITUTION;
 
 	/**
-	 * The feature id for the '<em><b>Owned Attribute</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Classifier Behavior</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE__OWNED_ATTRIBUTE = CLASSIFIER_FEATURE_COUNT + 0;
+	int BEHAVIORED_CLASSIFIER__CLASSIFIER_BEHAVIOR = CLASSIFIER_FEATURE_COUNT + 0;
 
 	/**
-	 * The feature id for the '<em><b>Owned Operation</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Interface Realization</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE__OWNED_OPERATION = CLASSIFIER_FEATURE_COUNT + 1;
+	int BEHAVIORED_CLASSIFIER__INTERFACE_REALIZATION = CLASSIFIER_FEATURE_COUNT + 1;
 
 	/**
-	 * The number of structural features of the '<em>Data Type</em>' class.
+	 * The feature id for the '<em><b>Owned Behavior</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE_FEATURE_COUNT = CLASSIFIER_FEATURE_COUNT + 2;
+	int BEHAVIORED_CLASSIFIER__OWNED_BEHAVIOR = CLASSIFIER_FEATURE_COUNT + 2;
+
+	/**
+	 * The number of structural features of the '<em>Behaviored Classifier</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BEHAVIORED_CLASSIFIER_FEATURE_COUNT = CLASSIFIER_FEATURE_COUNT + 3;
 
 	/**
 	 * The operation id for the '<em>Get EAnnotation</em>' operation.
@@ -44872,7 +41343,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_EANNOTATION__STRING = CLASSIFIER___GET_EANNOTATION__STRING;
+	int BEHAVIORED_CLASSIFIER___GET_EANNOTATION__STRING = CLASSIFIER___GET_EANNOTATION__STRING;
 
 	/**
 	 * The operation id for the '<em>Validate Has Owner</em>' operation.
@@ -44881,7 +41352,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP;
+	int BEHAVIORED_CLASSIFIER___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Not Own Self</em>' operation.
@@ -44890,7 +41361,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP;
+	int BEHAVIORED_CLASSIFIER___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Add Keyword</em>' operation.
@@ -44899,7 +41370,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___ADD_KEYWORD__STRING = CLASSIFIER___ADD_KEYWORD__STRING;
+	int BEHAVIORED_CLASSIFIER___ADD_KEYWORD__STRING = CLASSIFIER___ADD_KEYWORD__STRING;
 
 	/**
 	 * The operation id for the '<em>Apply Stereotype</em>' operation.
@@ -44908,7 +41379,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___APPLY_STEREOTYPE__STEREOTYPE = CLASSIFIER___APPLY_STEREOTYPE__STEREOTYPE;
+	int BEHAVIORED_CLASSIFIER___APPLY_STEREOTYPE__STEREOTYPE = CLASSIFIER___APPLY_STEREOTYPE__STEREOTYPE;
 
 	/**
 	 * The operation id for the '<em>Create EAnnotation</em>' operation.
@@ -44917,7 +41388,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___CREATE_EANNOTATION__STRING = CLASSIFIER___CREATE_EANNOTATION__STRING;
+	int BEHAVIORED_CLASSIFIER___CREATE_EANNOTATION__STRING = CLASSIFIER___CREATE_EANNOTATION__STRING;
 
 	/**
 	 * The operation id for the '<em>Destroy</em>' operation.
@@ -44926,7 +41397,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___DESTROY = CLASSIFIER___DESTROY;
+	int BEHAVIORED_CLASSIFIER___DESTROY = CLASSIFIER___DESTROY;
 
 	/**
 	 * The operation id for the '<em>Get Keywords</em>' operation.
@@ -44935,7 +41406,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_KEYWORDS = CLASSIFIER___GET_KEYWORDS;
+	int BEHAVIORED_CLASSIFIER___GET_KEYWORDS = CLASSIFIER___GET_KEYWORDS;
 
 	/**
 	 * The operation id for the '<em>Get Applicable Stereotype</em>' operation.
@@ -44944,7 +41415,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_APPLICABLE_STEREOTYPE__STRING = CLASSIFIER___GET_APPLICABLE_STEREOTYPE__STRING;
+	int BEHAVIORED_CLASSIFIER___GET_APPLICABLE_STEREOTYPE__STRING = CLASSIFIER___GET_APPLICABLE_STEREOTYPE__STRING;
 
 	/**
 	 * The operation id for the '<em>Get Applicable Stereotypes</em>' operation.
@@ -44953,7 +41424,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_APPLICABLE_STEREOTYPES = CLASSIFIER___GET_APPLICABLE_STEREOTYPES;
+	int BEHAVIORED_CLASSIFIER___GET_APPLICABLE_STEREOTYPES = CLASSIFIER___GET_APPLICABLE_STEREOTYPES;
 
 	/**
 	 * The operation id for the '<em>Get Applied Stereotype</em>' operation.
@@ -44962,7 +41433,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_APPLIED_STEREOTYPE__STRING = CLASSIFIER___GET_APPLIED_STEREOTYPE__STRING;
+	int BEHAVIORED_CLASSIFIER___GET_APPLIED_STEREOTYPE__STRING = CLASSIFIER___GET_APPLIED_STEREOTYPE__STRING;
 
 	/**
 	 * The operation id for the '<em>Get Applied Stereotypes</em>' operation.
@@ -44971,7 +41442,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_APPLIED_STEREOTYPES = CLASSIFIER___GET_APPLIED_STEREOTYPES;
+	int BEHAVIORED_CLASSIFIER___GET_APPLIED_STEREOTYPES = CLASSIFIER___GET_APPLIED_STEREOTYPES;
 
 	/**
 	 * The operation id for the '<em>Get Applied Substereotype</em>' operation.
@@ -44980,7 +41451,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING = CLASSIFIER___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING;
+	int BEHAVIORED_CLASSIFIER___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING = CLASSIFIER___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING;
 
 	/**
 	 * The operation id for the '<em>Get Applied Substereotypes</em>' operation.
@@ -44989,7 +41460,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE = CLASSIFIER___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE;
+	int BEHAVIORED_CLASSIFIER___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE = CLASSIFIER___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE;
 
 	/**
 	 * The operation id for the '<em>Get Model</em>' operation.
@@ -44998,7 +41469,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_MODEL = CLASSIFIER___GET_MODEL;
+	int BEHAVIORED_CLASSIFIER___GET_MODEL = CLASSIFIER___GET_MODEL;
 
 	/**
 	 * The operation id for the '<em>Get Nearest Package</em>' operation.
@@ -45007,7 +41478,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_NEAREST_PACKAGE = CLASSIFIER___GET_NEAREST_PACKAGE;
+	int BEHAVIORED_CLASSIFIER___GET_NEAREST_PACKAGE = CLASSIFIER___GET_NEAREST_PACKAGE;
 
 	/**
 	 * The operation id for the '<em>Get Relationships</em>' operation.
@@ -45016,7 +41487,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_RELATIONSHIPS = CLASSIFIER___GET_RELATIONSHIPS;
+	int BEHAVIORED_CLASSIFIER___GET_RELATIONSHIPS = CLASSIFIER___GET_RELATIONSHIPS;
 
 	/**
 	 * The operation id for the '<em>Get Relationships</em>' operation.
@@ -45025,7 +41496,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_RELATIONSHIPS__ECLASS = CLASSIFIER___GET_RELATIONSHIPS__ECLASS;
+	int BEHAVIORED_CLASSIFIER___GET_RELATIONSHIPS__ECLASS = CLASSIFIER___GET_RELATIONSHIPS__ECLASS;
 
 	/**
 	 * The operation id for the '<em>Get Required Stereotype</em>' operation.
@@ -45034,7 +41505,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_REQUIRED_STEREOTYPE__STRING = CLASSIFIER___GET_REQUIRED_STEREOTYPE__STRING;
+	int BEHAVIORED_CLASSIFIER___GET_REQUIRED_STEREOTYPE__STRING = CLASSIFIER___GET_REQUIRED_STEREOTYPE__STRING;
 
 	/**
 	 * The operation id for the '<em>Get Required Stereotypes</em>' operation.
@@ -45043,7 +41514,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_REQUIRED_STEREOTYPES = CLASSIFIER___GET_REQUIRED_STEREOTYPES;
+	int BEHAVIORED_CLASSIFIER___GET_REQUIRED_STEREOTYPES = CLASSIFIER___GET_REQUIRED_STEREOTYPES;
 
 	/**
 	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
@@ -45052,7 +41523,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_SOURCE_DIRECTED_RELATIONSHIPS = CLASSIFIER___GET_SOURCE_DIRECTED_RELATIONSHIPS;
+	int BEHAVIORED_CLASSIFIER___GET_SOURCE_DIRECTED_RELATIONSHIPS = CLASSIFIER___GET_SOURCE_DIRECTED_RELATIONSHIPS;
 
 	/**
 	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
@@ -45061,7 +41532,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS = CLASSIFIER___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS;
+	int BEHAVIORED_CLASSIFIER___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS = CLASSIFIER___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS;
 
 	/**
 	 * The operation id for the '<em>Get Stereotype Application</em>' operation.
@@ -45070,7 +41541,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_STEREOTYPE_APPLICATION__STEREOTYPE = CLASSIFIER___GET_STEREOTYPE_APPLICATION__STEREOTYPE;
+	int BEHAVIORED_CLASSIFIER___GET_STEREOTYPE_APPLICATION__STEREOTYPE = CLASSIFIER___GET_STEREOTYPE_APPLICATION__STEREOTYPE;
 
 	/**
 	 * The operation id for the '<em>Get Stereotype Applications</em>' operation.
@@ -45079,7 +41550,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_STEREOTYPE_APPLICATIONS = CLASSIFIER___GET_STEREOTYPE_APPLICATIONS;
+	int BEHAVIORED_CLASSIFIER___GET_STEREOTYPE_APPLICATIONS = CLASSIFIER___GET_STEREOTYPE_APPLICATIONS;
 
 	/**
 	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
@@ -45088,7 +41559,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_TARGET_DIRECTED_RELATIONSHIPS = CLASSIFIER___GET_TARGET_DIRECTED_RELATIONSHIPS;
+	int BEHAVIORED_CLASSIFIER___GET_TARGET_DIRECTED_RELATIONSHIPS = CLASSIFIER___GET_TARGET_DIRECTED_RELATIONSHIPS;
 
 	/**
 	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
@@ -45097,7 +41568,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS = CLASSIFIER___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS;
+	int BEHAVIORED_CLASSIFIER___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS = CLASSIFIER___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS;
 
 	/**
 	 * The operation id for the '<em>Get Value</em>' operation.
@@ -45106,7 +41577,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_VALUE__STEREOTYPE_STRING = CLASSIFIER___GET_VALUE__STEREOTYPE_STRING;
+	int BEHAVIORED_CLASSIFIER___GET_VALUE__STEREOTYPE_STRING = CLASSIFIER___GET_VALUE__STEREOTYPE_STRING;
 
 	/**
 	 * The operation id for the '<em>Has Keyword</em>' operation.
@@ -45115,7 +41586,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___HAS_KEYWORD__STRING = CLASSIFIER___HAS_KEYWORD__STRING;
+	int BEHAVIORED_CLASSIFIER___HAS_KEYWORD__STRING = CLASSIFIER___HAS_KEYWORD__STRING;
 
 	/**
 	 * The operation id for the '<em>Has Value</em>' operation.
@@ -45124,7 +41595,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___HAS_VALUE__STEREOTYPE_STRING = CLASSIFIER___HAS_VALUE__STEREOTYPE_STRING;
+	int BEHAVIORED_CLASSIFIER___HAS_VALUE__STEREOTYPE_STRING = CLASSIFIER___HAS_VALUE__STEREOTYPE_STRING;
 
 	/**
 	 * The operation id for the '<em>Is Stereotype Applicable</em>' operation.
@@ -45133,7 +41604,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___IS_STEREOTYPE_APPLICABLE__STEREOTYPE = CLASSIFIER___IS_STEREOTYPE_APPLICABLE__STEREOTYPE;
+	int BEHAVIORED_CLASSIFIER___IS_STEREOTYPE_APPLICABLE__STEREOTYPE = CLASSIFIER___IS_STEREOTYPE_APPLICABLE__STEREOTYPE;
 
 	/**
 	 * The operation id for the '<em>Is Stereotype Applied</em>' operation.
@@ -45142,7 +41613,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___IS_STEREOTYPE_APPLIED__STEREOTYPE = CLASSIFIER___IS_STEREOTYPE_APPLIED__STEREOTYPE;
+	int BEHAVIORED_CLASSIFIER___IS_STEREOTYPE_APPLIED__STEREOTYPE = CLASSIFIER___IS_STEREOTYPE_APPLIED__STEREOTYPE;
 
 	/**
 	 * The operation id for the '<em>Is Stereotype Required</em>' operation.
@@ -45151,7 +41622,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___IS_STEREOTYPE_REQUIRED__STEREOTYPE = CLASSIFIER___IS_STEREOTYPE_REQUIRED__STEREOTYPE;
+	int BEHAVIORED_CLASSIFIER___IS_STEREOTYPE_REQUIRED__STEREOTYPE = CLASSIFIER___IS_STEREOTYPE_REQUIRED__STEREOTYPE;
 
 	/**
 	 * The operation id for the '<em>Remove Keyword</em>' operation.
@@ -45160,7 +41631,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___REMOVE_KEYWORD__STRING = CLASSIFIER___REMOVE_KEYWORD__STRING;
+	int BEHAVIORED_CLASSIFIER___REMOVE_KEYWORD__STRING = CLASSIFIER___REMOVE_KEYWORD__STRING;
 
 	/**
 	 * The operation id for the '<em>Set Value</em>' operation.
@@ -45169,7 +41640,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___SET_VALUE__STEREOTYPE_STRING_OBJECT = CLASSIFIER___SET_VALUE__STEREOTYPE_STRING_OBJECT;
+	int BEHAVIORED_CLASSIFIER___SET_VALUE__STEREOTYPE_STRING_OBJECT = CLASSIFIER___SET_VALUE__STEREOTYPE_STRING_OBJECT;
 
 	/**
 	 * The operation id for the '<em>Unapply Stereotype</em>' operation.
@@ -45178,7 +41649,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___UNAPPLY_STEREOTYPE__STEREOTYPE = CLASSIFIER___UNAPPLY_STEREOTYPE__STEREOTYPE;
+	int BEHAVIORED_CLASSIFIER___UNAPPLY_STEREOTYPE__STEREOTYPE = CLASSIFIER___UNAPPLY_STEREOTYPE__STEREOTYPE;
 
 	/**
 	 * The operation id for the '<em>All Owned Elements</em>' operation.
@@ -45187,7 +41658,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___ALL_OWNED_ELEMENTS = CLASSIFIER___ALL_OWNED_ELEMENTS;
+	int BEHAVIORED_CLASSIFIER___ALL_OWNED_ELEMENTS = CLASSIFIER___ALL_OWNED_ELEMENTS;
 
 	/**
 	 * The operation id for the '<em>Must Be Owned</em>' operation.
@@ -45196,16 +41667,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___MUST_BE_OWNED = CLASSIFIER___MUST_BE_OWNED;
-
-	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DATA_TYPE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+	int BEHAVIORED_CLASSIFIER___MUST_BE_OWNED = CLASSIFIER___MUST_BE_OWNED;
 
 	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
@@ -45214,7 +41676,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
+	int BEHAVIORED_CLASSIFIER___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Has No Qualified Name</em>' operation.
@@ -45223,7 +41685,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
+	int BEHAVIORED_CLASSIFIER___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BEHAVIORED_CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
@@ -45232,7 +41703,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___CREATE_DEPENDENCY__NAMEDELEMENT = CLASSIFIER___CREATE_DEPENDENCY__NAMEDELEMENT;
+	int BEHAVIORED_CLASSIFIER___CREATE_DEPENDENCY__NAMEDELEMENT = CLASSIFIER___CREATE_DEPENDENCY__NAMEDELEMENT;
 
 	/**
 	 * The operation id for the '<em>Create Usage</em>' operation.
@@ -45241,7 +41712,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___CREATE_USAGE__NAMEDELEMENT = CLASSIFIER___CREATE_USAGE__NAMEDELEMENT;
+	int BEHAVIORED_CLASSIFIER___CREATE_USAGE__NAMEDELEMENT = CLASSIFIER___CREATE_USAGE__NAMEDELEMENT;
 
 	/**
 	 * The operation id for the '<em>Get Label</em>' operation.
@@ -45250,7 +41721,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_LABEL = CLASSIFIER___GET_LABEL;
+	int BEHAVIORED_CLASSIFIER___GET_LABEL = CLASSIFIER___GET_LABEL;
 
 	/**
 	 * The operation id for the '<em>Get Label</em>' operation.
@@ -45259,7 +41730,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_LABEL__BOOLEAN = CLASSIFIER___GET_LABEL__BOOLEAN;
+	int BEHAVIORED_CLASSIFIER___GET_LABEL__BOOLEAN = CLASSIFIER___GET_LABEL__BOOLEAN;
 
 	/**
 	 * The operation id for the '<em>All Namespaces</em>' operation.
@@ -45268,7 +41739,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___ALL_NAMESPACES = CLASSIFIER___ALL_NAMESPACES;
+	int BEHAVIORED_CLASSIFIER___ALL_NAMESPACES = CLASSIFIER___ALL_NAMESPACES;
 
 	/**
 	 * The operation id for the '<em>All Owning Packages</em>' operation.
@@ -45277,7 +41748,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___ALL_OWNING_PACKAGES = CLASSIFIER___ALL_OWNING_PACKAGES;
+	int BEHAVIORED_CLASSIFIER___ALL_OWNING_PACKAGES = CLASSIFIER___ALL_OWNING_PACKAGES;
 
 	/**
 	 * The operation id for the '<em>Is Distinguishable From</em>' operation.
@@ -45286,7 +41757,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE = CLASSIFIER___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE;
+	int BEHAVIORED_CLASSIFIER___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE = CLASSIFIER___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE;
 
 	/**
 	 * The operation id for the '<em>Get Namespace</em>' operation.
@@ -45295,7 +41766,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_NAMESPACE = CLASSIFIER___GET_NAMESPACE;
+	int BEHAVIORED_CLASSIFIER___GET_NAMESPACE = CLASSIFIER___GET_NAMESPACE;
 
 	/**
 	 * The operation id for the '<em>Get Qualified Name</em>' operation.
@@ -45304,7 +41775,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_QUALIFIED_NAME = CLASSIFIER___GET_QUALIFIED_NAME;
+	int BEHAVIORED_CLASSIFIER___GET_QUALIFIED_NAME = CLASSIFIER___GET_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Separator</em>' operation.
@@ -45313,7 +41784,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___SEPARATOR = CLASSIFIER___SEPARATOR;
+	int BEHAVIORED_CLASSIFIER___SEPARATOR = CLASSIFIER___SEPARATOR;
 
 	/**
 	 * The operation id for the '<em>Validate Members Distinguishable</em>' operation.
@@ -45322,7 +41793,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___VALIDATE_MEMBERS_DISTINGUISHABLE__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_MEMBERS_DISTINGUISHABLE__DIAGNOSTICCHAIN_MAP;
+	int BEHAVIORED_CLASSIFIER___VALIDATE_MEMBERS_DISTINGUISHABLE__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_MEMBERS_DISTINGUISHABLE__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Create Element Import</em>' operation.
@@ -45331,7 +41802,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___CREATE_ELEMENT_IMPORT__PACKAGEABLEELEMENT_VISIBILITYKIND = CLASSIFIER___CREATE_ELEMENT_IMPORT__PACKAGEABLEELEMENT_VISIBILITYKIND;
+	int BEHAVIORED_CLASSIFIER___CREATE_ELEMENT_IMPORT__PACKAGEABLEELEMENT_VISIBILITYKIND = CLASSIFIER___CREATE_ELEMENT_IMPORT__PACKAGEABLEELEMENT_VISIBILITYKIND;
 
 	/**
 	 * The operation id for the '<em>Create Package Import</em>' operation.
@@ -45340,7 +41811,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___CREATE_PACKAGE_IMPORT__PACKAGE_VISIBILITYKIND = CLASSIFIER___CREATE_PACKAGE_IMPORT__PACKAGE_VISIBILITYKIND;
+	int BEHAVIORED_CLASSIFIER___CREATE_PACKAGE_IMPORT__PACKAGE_VISIBILITYKIND = CLASSIFIER___CREATE_PACKAGE_IMPORT__PACKAGE_VISIBILITYKIND;
 
 	/**
 	 * The operation id for the '<em>Get Imported Elements</em>' operation.
@@ -45349,7 +41820,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_IMPORTED_ELEMENTS = CLASSIFIER___GET_IMPORTED_ELEMENTS;
+	int BEHAVIORED_CLASSIFIER___GET_IMPORTED_ELEMENTS = CLASSIFIER___GET_IMPORTED_ELEMENTS;
 
 	/**
 	 * The operation id for the '<em>Get Imported Packages</em>' operation.
@@ -45358,7 +41829,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_IMPORTED_PACKAGES = CLASSIFIER___GET_IMPORTED_PACKAGES;
+	int BEHAVIORED_CLASSIFIER___GET_IMPORTED_PACKAGES = CLASSIFIER___GET_IMPORTED_PACKAGES;
 
 	/**
 	 * The operation id for the '<em>Exclude Collisions</em>' operation.
@@ -45367,7 +41838,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___EXCLUDE_COLLISIONS__ELIST = CLASSIFIER___EXCLUDE_COLLISIONS__ELIST;
+	int BEHAVIORED_CLASSIFIER___EXCLUDE_COLLISIONS__ELIST = CLASSIFIER___EXCLUDE_COLLISIONS__ELIST;
 
 	/**
 	 * The operation id for the '<em>Get Names Of Member</em>' operation.
@@ -45376,7 +41847,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_NAMES_OF_MEMBER__NAMEDELEMENT = CLASSIFIER___GET_NAMES_OF_MEMBER__NAMEDELEMENT;
+	int BEHAVIORED_CLASSIFIER___GET_NAMES_OF_MEMBER__NAMEDELEMENT = CLASSIFIER___GET_NAMES_OF_MEMBER__NAMEDELEMENT;
 
 	/**
 	 * The operation id for the '<em>Import Members</em>' operation.
@@ -45385,7 +41856,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___IMPORT_MEMBERS__ELIST = CLASSIFIER___IMPORT_MEMBERS__ELIST;
+	int BEHAVIORED_CLASSIFIER___IMPORT_MEMBERS__ELIST = CLASSIFIER___IMPORT_MEMBERS__ELIST;
 
 	/**
 	 * The operation id for the '<em>Get Imported Members</em>' operation.
@@ -45394,7 +41865,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_IMPORTED_MEMBERS = CLASSIFIER___GET_IMPORTED_MEMBERS;
+	int BEHAVIORED_CLASSIFIER___GET_IMPORTED_MEMBERS = CLASSIFIER___GET_IMPORTED_MEMBERS;
 
 	/**
 	 * The operation id for the '<em>Members Are Distinguishable</em>' operation.
@@ -45403,7 +41874,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___MEMBERS_ARE_DISTINGUISHABLE = CLASSIFIER___MEMBERS_ARE_DISTINGUISHABLE;
+	int BEHAVIORED_CLASSIFIER___MEMBERS_ARE_DISTINGUISHABLE = CLASSIFIER___MEMBERS_ARE_DISTINGUISHABLE;
 
 	/**
 	 * The operation id for the '<em>Get Owned Members</em>' operation.
@@ -45412,7 +41883,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_OWNED_MEMBERS = CLASSIFIER___GET_OWNED_MEMBERS;
+	int BEHAVIORED_CLASSIFIER___GET_OWNED_MEMBERS = CLASSIFIER___GET_OWNED_MEMBERS;
 
 	/**
 	 * The operation id for the '<em>Validate Redefinition Consistent</em>' operation.
@@ -45421,7 +41892,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___VALIDATE_REDEFINITION_CONSISTENT__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_REDEFINITION_CONSISTENT__DIAGNOSTICCHAIN_MAP;
+	int BEHAVIORED_CLASSIFIER___VALIDATE_REDEFINITION_CONSISTENT__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_REDEFINITION_CONSISTENT__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Non Leaf Redefinition</em>' operation.
@@ -45430,7 +41901,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___VALIDATE_NON_LEAF_REDEFINITION__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_NON_LEAF_REDEFINITION__DIAGNOSTICCHAIN_MAP;
+	int BEHAVIORED_CLASSIFIER___VALIDATE_NON_LEAF_REDEFINITION__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_NON_LEAF_REDEFINITION__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Redefinition Context Valid</em>' operation.
@@ -45439,7 +41910,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___VALIDATE_REDEFINITION_CONTEXT_VALID__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_REDEFINITION_CONTEXT_VALID__DIAGNOSTICCHAIN_MAP;
+	int BEHAVIORED_CLASSIFIER___VALIDATE_REDEFINITION_CONTEXT_VALID__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_REDEFINITION_CONTEXT_VALID__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Is Consistent With</em>' operation.
@@ -45448,7 +41919,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___IS_CONSISTENT_WITH__REDEFINABLEELEMENT = CLASSIFIER___IS_CONSISTENT_WITH__REDEFINABLEELEMENT;
+	int BEHAVIORED_CLASSIFIER___IS_CONSISTENT_WITH__REDEFINABLEELEMENT = CLASSIFIER___IS_CONSISTENT_WITH__REDEFINABLEELEMENT;
 
 	/**
 	 * The operation id for the '<em>Is Redefinition Context Valid</em>' operation.
@@ -45457,7 +41928,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___IS_REDEFINITION_CONTEXT_VALID__REDEFINABLEELEMENT = CLASSIFIER___IS_REDEFINITION_CONTEXT_VALID__REDEFINABLEELEMENT;
+	int BEHAVIORED_CLASSIFIER___IS_REDEFINITION_CONTEXT_VALID__REDEFINABLEELEMENT = CLASSIFIER___IS_REDEFINITION_CONTEXT_VALID__REDEFINABLEELEMENT;
 
 	/**
 	 * The operation id for the '<em>Is Compatible With</em>' operation.
@@ -45466,7 +41937,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___IS_COMPATIBLE_WITH__PARAMETERABLEELEMENT = CLASSIFIER___IS_COMPATIBLE_WITH__PARAMETERABLEELEMENT;
+	int BEHAVIORED_CLASSIFIER___IS_COMPATIBLE_WITH__PARAMETERABLEELEMENT = CLASSIFIER___IS_COMPATIBLE_WITH__PARAMETERABLEELEMENT;
 
 	/**
 	 * The operation id for the '<em>Is Template Parameter</em>' operation.
@@ -45475,7 +41946,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___IS_TEMPLATE_PARAMETER = CLASSIFIER___IS_TEMPLATE_PARAMETER;
+	int BEHAVIORED_CLASSIFIER___IS_TEMPLATE_PARAMETER = CLASSIFIER___IS_TEMPLATE_PARAMETER;
 
 	/**
 	 * The operation id for the '<em>Create Association</em>' operation.
@@ -45484,7 +41955,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___CREATE_ASSOCIATION__BOOLEAN_AGGREGATIONKIND_STRING_INT_INT_TYPE_BOOLEAN_AGGREGATIONKIND_STRING_INT_INT = CLASSIFIER___CREATE_ASSOCIATION__BOOLEAN_AGGREGATIONKIND_STRING_INT_INT_TYPE_BOOLEAN_AGGREGATIONKIND_STRING_INT_INT;
+	int BEHAVIORED_CLASSIFIER___CREATE_ASSOCIATION__BOOLEAN_AGGREGATIONKIND_STRING_INT_INT_TYPE_BOOLEAN_AGGREGATIONKIND_STRING_INT_INT = CLASSIFIER___CREATE_ASSOCIATION__BOOLEAN_AGGREGATIONKIND_STRING_INT_INT_TYPE_BOOLEAN_AGGREGATIONKIND_STRING_INT_INT;
 
 	/**
 	 * The operation id for the '<em>Get Associations</em>' operation.
@@ -45493,7 +41964,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_ASSOCIATIONS = CLASSIFIER___GET_ASSOCIATIONS;
+	int BEHAVIORED_CLASSIFIER___GET_ASSOCIATIONS = CLASSIFIER___GET_ASSOCIATIONS;
 
 	/**
 	 * The operation id for the '<em>Conforms To</em>' operation.
@@ -45502,7 +41973,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___CONFORMS_TO__TYPE = CLASSIFIER___CONFORMS_TO__TYPE;
+	int BEHAVIORED_CLASSIFIER___CONFORMS_TO__TYPE = CLASSIFIER___CONFORMS_TO__TYPE;
 
 	/**
 	 * The operation id for the '<em>Is Template</em>' operation.
@@ -45511,7 +41982,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___IS_TEMPLATE = CLASSIFIER___IS_TEMPLATE;
+	int BEHAVIORED_CLASSIFIER___IS_TEMPLATE = CLASSIFIER___IS_TEMPLATE;
 
 	/**
 	 * The operation id for the '<em>Parameterable Elements</em>' operation.
@@ -45520,25 +41991,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___PARAMETERABLE_ELEMENTS = CLASSIFIER___PARAMETERABLE_ELEMENTS;
-
-	/**
-	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DATA_TYPE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DATA_TYPE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
+	int BEHAVIORED_CLASSIFIER___PARAMETERABLE_ELEMENTS = CLASSIFIER___PARAMETERABLE_ELEMENTS;
 
 	/**
 	 * The operation id for the '<em>Validate Non Final Parents</em>' operation.
@@ -45547,7 +42000,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___VALIDATE_NON_FINAL_PARENTS__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_NON_FINAL_PARENTS__DIAGNOSTICCHAIN_MAP;
+	int BEHAVIORED_CLASSIFIER___VALIDATE_NON_FINAL_PARENTS__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_NON_FINAL_PARENTS__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate No Cycles In Generalization</em>' operation.
@@ -45556,7 +42009,25 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP;
+	int BEHAVIORED_CLASSIFIER___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BEHAVIORED_CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BEHAVIORED_CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Get All Attributes</em>' operation.
@@ -45565,7 +42036,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_ALL_ATTRIBUTES = CLASSIFIER___GET_ALL_ATTRIBUTES;
+	int BEHAVIORED_CLASSIFIER___GET_ALL_ATTRIBUTES = CLASSIFIER___GET_ALL_ATTRIBUTES;
 
 	/**
 	 * The operation id for the '<em>Get All Operations</em>' operation.
@@ -45574,7 +42045,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_ALL_OPERATIONS = CLASSIFIER___GET_ALL_OPERATIONS;
+	int BEHAVIORED_CLASSIFIER___GET_ALL_OPERATIONS = CLASSIFIER___GET_ALL_OPERATIONS;
 
 	/**
 	 * The operation id for the '<em>Get All Used Interfaces</em>' operation.
@@ -45583,7 +42054,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_ALL_USED_INTERFACES = CLASSIFIER___GET_ALL_USED_INTERFACES;
+	int BEHAVIORED_CLASSIFIER___GET_ALL_USED_INTERFACES = CLASSIFIER___GET_ALL_USED_INTERFACES;
 
 	/**
 	 * The operation id for the '<em>Get Operation</em>' operation.
@@ -45592,7 +42063,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_OPERATION__STRING_ELIST_ELIST = CLASSIFIER___GET_OPERATION__STRING_ELIST_ELIST;
+	int BEHAVIORED_CLASSIFIER___GET_OPERATION__STRING_ELIST_ELIST = CLASSIFIER___GET_OPERATION__STRING_ELIST_ELIST;
 
 	/**
 	 * The operation id for the '<em>Get Operation</em>' operation.
@@ -45601,7 +42072,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_OPERATION__STRING_ELIST_ELIST_BOOLEAN = CLASSIFIER___GET_OPERATION__STRING_ELIST_ELIST_BOOLEAN;
+	int BEHAVIORED_CLASSIFIER___GET_OPERATION__STRING_ELIST_ELIST_BOOLEAN = CLASSIFIER___GET_OPERATION__STRING_ELIST_ELIST_BOOLEAN;
 
 	/**
 	 * The operation id for the '<em>Get Operations</em>' operation.
@@ -45610,7 +42081,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_OPERATIONS = CLASSIFIER___GET_OPERATIONS;
+	int BEHAVIORED_CLASSIFIER___GET_OPERATIONS = CLASSIFIER___GET_OPERATIONS;
 
 	/**
 	 * The operation id for the '<em>Get Used Interfaces</em>' operation.
@@ -45619,7 +42090,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_USED_INTERFACES = CLASSIFIER___GET_USED_INTERFACES;
+	int BEHAVIORED_CLASSIFIER___GET_USED_INTERFACES = CLASSIFIER___GET_USED_INTERFACES;
 
 	/**
 	 * The operation id for the '<em>All Features</em>' operation.
@@ -45628,7 +42099,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___ALL_FEATURES = CLASSIFIER___ALL_FEATURES;
+	int BEHAVIORED_CLASSIFIER___ALL_FEATURES = CLASSIFIER___ALL_FEATURES;
 
 	/**
 	 * The operation id for the '<em>All Parents</em>' operation.
@@ -45637,7 +42108,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___ALL_PARENTS = CLASSIFIER___ALL_PARENTS;
+	int BEHAVIORED_CLASSIFIER___ALL_PARENTS = CLASSIFIER___ALL_PARENTS;
 
 	/**
 	 * The operation id for the '<em>Conforms To</em>' operation.
@@ -45646,7 +42117,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___CONFORMS_TO__CLASSIFIER = CLASSIFIER___CONFORMS_TO__CLASSIFIER;
+	int BEHAVIORED_CLASSIFIER___CONFORMS_TO__CLASSIFIER = CLASSIFIER___CONFORMS_TO__CLASSIFIER;
 
 	/**
 	 * The operation id for the '<em>Get Generals</em>' operation.
@@ -45655,7 +42126,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_GENERALS = CLASSIFIER___GET_GENERALS;
+	int BEHAVIORED_CLASSIFIER___GET_GENERALS = CLASSIFIER___GET_GENERALS;
 
 	/**
 	 * The operation id for the '<em>Has Visibility Of</em>' operation.
@@ -45664,7 +42135,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___HAS_VISIBILITY_OF__NAMEDELEMENT = CLASSIFIER___HAS_VISIBILITY_OF__NAMEDELEMENT;
+	int BEHAVIORED_CLASSIFIER___HAS_VISIBILITY_OF__NAMEDELEMENT = CLASSIFIER___HAS_VISIBILITY_OF__NAMEDELEMENT;
 
 	/**
 	 * The operation id for the '<em>Inherit</em>' operation.
@@ -45673,7 +42144,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___INHERIT__ELIST = CLASSIFIER___INHERIT__ELIST;
+	int BEHAVIORED_CLASSIFIER___INHERIT__ELIST = CLASSIFIER___INHERIT__ELIST;
 
 	/**
 	 * The operation id for the '<em>Inheritable Members</em>' operation.
@@ -45682,7 +42153,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___INHERITABLE_MEMBERS__CLASSIFIER = CLASSIFIER___INHERITABLE_MEMBERS__CLASSIFIER;
+	int BEHAVIORED_CLASSIFIER___INHERITABLE_MEMBERS__CLASSIFIER = CLASSIFIER___INHERITABLE_MEMBERS__CLASSIFIER;
 
 	/**
 	 * The operation id for the '<em>Get Inherited Members</em>' operation.
@@ -45691,7 +42162,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___GET_INHERITED_MEMBERS = CLASSIFIER___GET_INHERITED_MEMBERS;
+	int BEHAVIORED_CLASSIFIER___GET_INHERITED_MEMBERS = CLASSIFIER___GET_INHERITED_MEMBERS;
 
 	/**
 	 * The operation id for the '<em>May Specialize Type</em>' operation.
@@ -45700,7 +42171,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___MAY_SPECIALIZE_TYPE__CLASSIFIER = CLASSIFIER___MAY_SPECIALIZE_TYPE__CLASSIFIER;
+	int BEHAVIORED_CLASSIFIER___MAY_SPECIALIZE_TYPE__CLASSIFIER = CLASSIFIER___MAY_SPECIALIZE_TYPE__CLASSIFIER;
 
 	/**
 	 * The operation id for the '<em>Parents</em>' operation.
@@ -45709,34 +42180,1357 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___PARENTS = CLASSIFIER___PARENTS;
+	int BEHAVIORED_CLASSIFIER___PARENTS = CLASSIFIER___PARENTS;
 
 	/**
-	 * The operation id for the '<em>Create Owned Attribute</em>' operation.
+	 * The operation id for the '<em>Validate Class Behavior</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___CREATE_OWNED_ATTRIBUTE__STRING_TYPE_INT_INT = CLASSIFIER_OPERATION_COUNT + 0;
+	int BEHAVIORED_CLASSIFIER___VALIDATE_CLASS_BEHAVIOR__DIAGNOSTICCHAIN_MAP = CLASSIFIER_OPERATION_COUNT + 0;
 
 	/**
-	 * The operation id for the '<em>Create Owned Operation</em>' operation.
+	 * The operation id for the '<em>Get All Implemented Interfaces</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE___CREATE_OWNED_OPERATION__STRING_ELIST_ELIST_TYPE = CLASSIFIER_OPERATION_COUNT + 1;
+	int BEHAVIORED_CLASSIFIER___GET_ALL_IMPLEMENTED_INTERFACES = CLASSIFIER_OPERATION_COUNT + 1;
 
 	/**
-	 * The number of operations of the '<em>Data Type</em>' class.
+	 * The operation id for the '<em>Get Implemented Interfaces</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE_OPERATION_COUNT = CLASSIFIER_OPERATION_COUNT + 2;
+	int BEHAVIORED_CLASSIFIER___GET_IMPLEMENTED_INTERFACES = CLASSIFIER_OPERATION_COUNT + 2;
+
+	/**
+	 * The number of operations of the '<em>Behaviored Classifier</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BEHAVIORED_CLASSIFIER_OPERATION_COUNT = CLASSIFIER_OPERATION_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION__EANNOTATIONS = ABSTRACTION__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Owned Comment</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION__OWNED_COMMENT = ABSTRACTION__OWNED_COMMENT;
+
+	/**
+	 * The feature id for the '<em><b>Owned Element</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION__OWNED_ELEMENT = ABSTRACTION__OWNED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Owner</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION__OWNER = ABSTRACTION__OWNER;
+
+	/**
+	 * The feature id for the '<em><b>Client Dependency</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION__CLIENT_DEPENDENCY = ABSTRACTION__CLIENT_DEPENDENCY;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION__NAME = ABSTRACTION__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Name Expression</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION__NAME_EXPRESSION = ABSTRACTION__NAME_EXPRESSION;
+
+	/**
+	 * The feature id for the '<em><b>Namespace</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION__NAMESPACE = ABSTRACTION__NAMESPACE;
+
+	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION__QUALIFIED_NAME = ABSTRACTION__QUALIFIED_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Visibility</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION__VISIBILITY = ABSTRACTION__VISIBILITY;
+
+	/**
+	 * The feature id for the '<em><b>Owning Template Parameter</b></em>' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION__OWNING_TEMPLATE_PARAMETER = ABSTRACTION__OWNING_TEMPLATE_PARAMETER;
+
+	/**
+	 * The feature id for the '<em><b>Template Parameter</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION__TEMPLATE_PARAMETER = ABSTRACTION__TEMPLATE_PARAMETER;
+
+	/**
+	 * The feature id for the '<em><b>Related Element</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION__RELATED_ELEMENT = ABSTRACTION__RELATED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Source</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION__SOURCE = ABSTRACTION__SOURCE;
+
+	/**
+	 * The feature id for the '<em><b>Target</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION__TARGET = ABSTRACTION__TARGET;
+
+	/**
+	 * The feature id for the '<em><b>Client</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION__CLIENT = ABSTRACTION__CLIENT;
+
+	/**
+	 * The feature id for the '<em><b>Supplier</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION__SUPPLIER = ABSTRACTION__SUPPLIER;
+
+	/**
+	 * The feature id for the '<em><b>Mapping</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION__MAPPING = ABSTRACTION__MAPPING;
+
+	/**
+	 * The number of structural features of the '<em>Realization</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION_FEATURE_COUNT = ABSTRACTION_FEATURE_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Get EAnnotation</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___GET_EANNOTATION__STRING = ABSTRACTION___GET_EANNOTATION__STRING;
+
+	/**
+	 * The operation id for the '<em>Validate Has Owner</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP = ABSTRACTION___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Not Own Self</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP = ABSTRACTION___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Add Keyword</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___ADD_KEYWORD__STRING = ABSTRACTION___ADD_KEYWORD__STRING;
+
+	/**
+	 * The operation id for the '<em>Apply Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___APPLY_STEREOTYPE__STEREOTYPE = ABSTRACTION___APPLY_STEREOTYPE__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Create EAnnotation</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___CREATE_EANNOTATION__STRING = ABSTRACTION___CREATE_EANNOTATION__STRING;
+
+	/**
+	 * The operation id for the '<em>Destroy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___DESTROY = ABSTRACTION___DESTROY;
+
+	/**
+	 * The operation id for the '<em>Get Keywords</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___GET_KEYWORDS = ABSTRACTION___GET_KEYWORDS;
+
+	/**
+	 * The operation id for the '<em>Get Applicable Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___GET_APPLICABLE_STEREOTYPE__STRING = ABSTRACTION___GET_APPLICABLE_STEREOTYPE__STRING;
+
+	/**
+	 * The operation id for the '<em>Get Applicable Stereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___GET_APPLICABLE_STEREOTYPES = ABSTRACTION___GET_APPLICABLE_STEREOTYPES;
+
+	/**
+	 * The operation id for the '<em>Get Applied Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___GET_APPLIED_STEREOTYPE__STRING = ABSTRACTION___GET_APPLIED_STEREOTYPE__STRING;
+
+	/**
+	 * The operation id for the '<em>Get Applied Stereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___GET_APPLIED_STEREOTYPES = ABSTRACTION___GET_APPLIED_STEREOTYPES;
+
+	/**
+	 * The operation id for the '<em>Get Applied Substereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING = ABSTRACTION___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING;
+
+	/**
+	 * The operation id for the '<em>Get Applied Substereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE = ABSTRACTION___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Get Model</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___GET_MODEL = ABSTRACTION___GET_MODEL;
+
+	/**
+	 * The operation id for the '<em>Get Nearest Package</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___GET_NEAREST_PACKAGE = ABSTRACTION___GET_NEAREST_PACKAGE;
+
+	/**
+	 * The operation id for the '<em>Get Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___GET_RELATIONSHIPS = ABSTRACTION___GET_RELATIONSHIPS;
+
+	/**
+	 * The operation id for the '<em>Get Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___GET_RELATIONSHIPS__ECLASS = ABSTRACTION___GET_RELATIONSHIPS__ECLASS;
+
+	/**
+	 * The operation id for the '<em>Get Required Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___GET_REQUIRED_STEREOTYPE__STRING = ABSTRACTION___GET_REQUIRED_STEREOTYPE__STRING;
+
+	/**
+	 * The operation id for the '<em>Get Required Stereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___GET_REQUIRED_STEREOTYPES = ABSTRACTION___GET_REQUIRED_STEREOTYPES;
+
+	/**
+	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___GET_SOURCE_DIRECTED_RELATIONSHIPS = ABSTRACTION___GET_SOURCE_DIRECTED_RELATIONSHIPS;
+
+	/**
+	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS = ABSTRACTION___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS;
+
+	/**
+	 * The operation id for the '<em>Get Stereotype Application</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___GET_STEREOTYPE_APPLICATION__STEREOTYPE = ABSTRACTION___GET_STEREOTYPE_APPLICATION__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Get Stereotype Applications</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___GET_STEREOTYPE_APPLICATIONS = ABSTRACTION___GET_STEREOTYPE_APPLICATIONS;
+
+	/**
+	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___GET_TARGET_DIRECTED_RELATIONSHIPS = ABSTRACTION___GET_TARGET_DIRECTED_RELATIONSHIPS;
+
+	/**
+	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS = ABSTRACTION___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS;
+
+	/**
+	 * The operation id for the '<em>Get Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___GET_VALUE__STEREOTYPE_STRING = ABSTRACTION___GET_VALUE__STEREOTYPE_STRING;
+
+	/**
+	 * The operation id for the '<em>Has Keyword</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___HAS_KEYWORD__STRING = ABSTRACTION___HAS_KEYWORD__STRING;
+
+	/**
+	 * The operation id for the '<em>Has Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___HAS_VALUE__STEREOTYPE_STRING = ABSTRACTION___HAS_VALUE__STEREOTYPE_STRING;
+
+	/**
+	 * The operation id for the '<em>Is Stereotype Applicable</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___IS_STEREOTYPE_APPLICABLE__STEREOTYPE = ABSTRACTION___IS_STEREOTYPE_APPLICABLE__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Is Stereotype Applied</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___IS_STEREOTYPE_APPLIED__STEREOTYPE = ABSTRACTION___IS_STEREOTYPE_APPLIED__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Is Stereotype Required</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___IS_STEREOTYPE_REQUIRED__STEREOTYPE = ABSTRACTION___IS_STEREOTYPE_REQUIRED__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Remove Keyword</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___REMOVE_KEYWORD__STRING = ABSTRACTION___REMOVE_KEYWORD__STRING;
+
+	/**
+	 * The operation id for the '<em>Set Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___SET_VALUE__STEREOTYPE_STRING_OBJECT = ABSTRACTION___SET_VALUE__STEREOTYPE_STRING_OBJECT;
+
+	/**
+	 * The operation id for the '<em>Unapply Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___UNAPPLY_STEREOTYPE__STEREOTYPE = ABSTRACTION___UNAPPLY_STEREOTYPE__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>All Owned Elements</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___ALL_OWNED_ELEMENTS = ABSTRACTION___ALL_OWNED_ELEMENTS;
+
+	/**
+	 * The operation id for the '<em>Must Be Owned</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___MUST_BE_OWNED = ABSTRACTION___MUST_BE_OWNED;
+
+	/**
+	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ABSTRACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Has No Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ABSTRACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ABSTRACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Create Dependency</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___CREATE_DEPENDENCY__NAMEDELEMENT = ABSTRACTION___CREATE_DEPENDENCY__NAMEDELEMENT;
+
+	/**
+	 * The operation id for the '<em>Create Usage</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___CREATE_USAGE__NAMEDELEMENT = ABSTRACTION___CREATE_USAGE__NAMEDELEMENT;
+
+	/**
+	 * The operation id for the '<em>Get Label</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___GET_LABEL = ABSTRACTION___GET_LABEL;
+
+	/**
+	 * The operation id for the '<em>Get Label</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___GET_LABEL__BOOLEAN = ABSTRACTION___GET_LABEL__BOOLEAN;
+
+	/**
+	 * The operation id for the '<em>All Namespaces</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___ALL_NAMESPACES = ABSTRACTION___ALL_NAMESPACES;
+
+	/**
+	 * The operation id for the '<em>All Owning Packages</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___ALL_OWNING_PACKAGES = ABSTRACTION___ALL_OWNING_PACKAGES;
+
+	/**
+	 * The operation id for the '<em>Is Distinguishable From</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE = ABSTRACTION___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___GET_NAMESPACE = ABSTRACTION___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___GET_QUALIFIED_NAME = ABSTRACTION___GET_QUALIFIED_NAME;
+
+	/**
+	 * The operation id for the '<em>Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___SEPARATOR = ABSTRACTION___SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Is Compatible With</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___IS_COMPATIBLE_WITH__PARAMETERABLEELEMENT = ABSTRACTION___IS_COMPATIBLE_WITH__PARAMETERABLEELEMENT;
+
+	/**
+	 * The operation id for the '<em>Is Template Parameter</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION___IS_TEMPLATE_PARAMETER = ABSTRACTION___IS_TEMPLATE_PARAMETER;
+
+	/**
+	 * The number of operations of the '<em>Realization</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REALIZATION_OPERATION_COUNT = ABSTRACTION_OPERATION_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION__EANNOTATIONS = REALIZATION__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Owned Comment</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION__OWNED_COMMENT = REALIZATION__OWNED_COMMENT;
+
+	/**
+	 * The feature id for the '<em><b>Owned Element</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION__OWNED_ELEMENT = REALIZATION__OWNED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Owner</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION__OWNER = REALIZATION__OWNER;
+
+	/**
+	 * The feature id for the '<em><b>Client Dependency</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION__CLIENT_DEPENDENCY = REALIZATION__CLIENT_DEPENDENCY;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION__NAME = REALIZATION__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Name Expression</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION__NAME_EXPRESSION = REALIZATION__NAME_EXPRESSION;
+
+	/**
+	 * The feature id for the '<em><b>Namespace</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION__NAMESPACE = REALIZATION__NAMESPACE;
+
+	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION__QUALIFIED_NAME = REALIZATION__QUALIFIED_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Visibility</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION__VISIBILITY = REALIZATION__VISIBILITY;
+
+	/**
+	 * The feature id for the '<em><b>Owning Template Parameter</b></em>' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION__OWNING_TEMPLATE_PARAMETER = REALIZATION__OWNING_TEMPLATE_PARAMETER;
+
+	/**
+	 * The feature id for the '<em><b>Template Parameter</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION__TEMPLATE_PARAMETER = REALIZATION__TEMPLATE_PARAMETER;
+
+	/**
+	 * The feature id for the '<em><b>Related Element</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION__RELATED_ELEMENT = REALIZATION__RELATED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Source</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION__SOURCE = REALIZATION__SOURCE;
+
+	/**
+	 * The feature id for the '<em><b>Target</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION__TARGET = REALIZATION__TARGET;
+
+	/**
+	 * The feature id for the '<em><b>Client</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION__CLIENT = REALIZATION__CLIENT;
+
+	/**
+	 * The feature id for the '<em><b>Supplier</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION__SUPPLIER = REALIZATION__SUPPLIER;
+
+	/**
+	 * The feature id for the '<em><b>Mapping</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION__MAPPING = REALIZATION__MAPPING;
+
+	/**
+	 * The feature id for the '<em><b>Contract</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION__CONTRACT = REALIZATION_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Implementing Classifier</b></em>' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION__IMPLEMENTING_CLASSIFIER = REALIZATION_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Interface Realization</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION_FEATURE_COUNT = REALIZATION_FEATURE_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>Get EAnnotation</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___GET_EANNOTATION__STRING = REALIZATION___GET_EANNOTATION__STRING;
+
+	/**
+	 * The operation id for the '<em>Validate Has Owner</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP = REALIZATION___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Not Own Self</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP = REALIZATION___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Add Keyword</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___ADD_KEYWORD__STRING = REALIZATION___ADD_KEYWORD__STRING;
+
+	/**
+	 * The operation id for the '<em>Apply Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___APPLY_STEREOTYPE__STEREOTYPE = REALIZATION___APPLY_STEREOTYPE__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Create EAnnotation</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___CREATE_EANNOTATION__STRING = REALIZATION___CREATE_EANNOTATION__STRING;
+
+	/**
+	 * The operation id for the '<em>Destroy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___DESTROY = REALIZATION___DESTROY;
+
+	/**
+	 * The operation id for the '<em>Get Keywords</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___GET_KEYWORDS = REALIZATION___GET_KEYWORDS;
+
+	/**
+	 * The operation id for the '<em>Get Applicable Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___GET_APPLICABLE_STEREOTYPE__STRING = REALIZATION___GET_APPLICABLE_STEREOTYPE__STRING;
+
+	/**
+	 * The operation id for the '<em>Get Applicable Stereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___GET_APPLICABLE_STEREOTYPES = REALIZATION___GET_APPLICABLE_STEREOTYPES;
+
+	/**
+	 * The operation id for the '<em>Get Applied Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___GET_APPLIED_STEREOTYPE__STRING = REALIZATION___GET_APPLIED_STEREOTYPE__STRING;
+
+	/**
+	 * The operation id for the '<em>Get Applied Stereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___GET_APPLIED_STEREOTYPES = REALIZATION___GET_APPLIED_STEREOTYPES;
+
+	/**
+	 * The operation id for the '<em>Get Applied Substereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING = REALIZATION___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING;
+
+	/**
+	 * The operation id for the '<em>Get Applied Substereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE = REALIZATION___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Get Model</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___GET_MODEL = REALIZATION___GET_MODEL;
+
+	/**
+	 * The operation id for the '<em>Get Nearest Package</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___GET_NEAREST_PACKAGE = REALIZATION___GET_NEAREST_PACKAGE;
+
+	/**
+	 * The operation id for the '<em>Get Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___GET_RELATIONSHIPS = REALIZATION___GET_RELATIONSHIPS;
+
+	/**
+	 * The operation id for the '<em>Get Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___GET_RELATIONSHIPS__ECLASS = REALIZATION___GET_RELATIONSHIPS__ECLASS;
+
+	/**
+	 * The operation id for the '<em>Get Required Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___GET_REQUIRED_STEREOTYPE__STRING = REALIZATION___GET_REQUIRED_STEREOTYPE__STRING;
+
+	/**
+	 * The operation id for the '<em>Get Required Stereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___GET_REQUIRED_STEREOTYPES = REALIZATION___GET_REQUIRED_STEREOTYPES;
+
+	/**
+	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___GET_SOURCE_DIRECTED_RELATIONSHIPS = REALIZATION___GET_SOURCE_DIRECTED_RELATIONSHIPS;
+
+	/**
+	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS = REALIZATION___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS;
+
+	/**
+	 * The operation id for the '<em>Get Stereotype Application</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___GET_STEREOTYPE_APPLICATION__STEREOTYPE = REALIZATION___GET_STEREOTYPE_APPLICATION__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Get Stereotype Applications</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___GET_STEREOTYPE_APPLICATIONS = REALIZATION___GET_STEREOTYPE_APPLICATIONS;
+
+	/**
+	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___GET_TARGET_DIRECTED_RELATIONSHIPS = REALIZATION___GET_TARGET_DIRECTED_RELATIONSHIPS;
+
+	/**
+	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS = REALIZATION___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS;
+
+	/**
+	 * The operation id for the '<em>Get Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___GET_VALUE__STEREOTYPE_STRING = REALIZATION___GET_VALUE__STEREOTYPE_STRING;
+
+	/**
+	 * The operation id for the '<em>Has Keyword</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___HAS_KEYWORD__STRING = REALIZATION___HAS_KEYWORD__STRING;
+
+	/**
+	 * The operation id for the '<em>Has Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___HAS_VALUE__STEREOTYPE_STRING = REALIZATION___HAS_VALUE__STEREOTYPE_STRING;
+
+	/**
+	 * The operation id for the '<em>Is Stereotype Applicable</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___IS_STEREOTYPE_APPLICABLE__STEREOTYPE = REALIZATION___IS_STEREOTYPE_APPLICABLE__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Is Stereotype Applied</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___IS_STEREOTYPE_APPLIED__STEREOTYPE = REALIZATION___IS_STEREOTYPE_APPLIED__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Is Stereotype Required</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___IS_STEREOTYPE_REQUIRED__STEREOTYPE = REALIZATION___IS_STEREOTYPE_REQUIRED__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Remove Keyword</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___REMOVE_KEYWORD__STRING = REALIZATION___REMOVE_KEYWORD__STRING;
+
+	/**
+	 * The operation id for the '<em>Set Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___SET_VALUE__STEREOTYPE_STRING_OBJECT = REALIZATION___SET_VALUE__STEREOTYPE_STRING_OBJECT;
+
+	/**
+	 * The operation id for the '<em>Unapply Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___UNAPPLY_STEREOTYPE__STEREOTYPE = REALIZATION___UNAPPLY_STEREOTYPE__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>All Owned Elements</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___ALL_OWNED_ELEMENTS = REALIZATION___ALL_OWNED_ELEMENTS;
+
+	/**
+	 * The operation id for the '<em>Must Be Owned</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___MUST_BE_OWNED = REALIZATION___MUST_BE_OWNED;
+
+	/**
+	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = REALIZATION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Has No Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = REALIZATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = REALIZATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Create Dependency</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___CREATE_DEPENDENCY__NAMEDELEMENT = REALIZATION___CREATE_DEPENDENCY__NAMEDELEMENT;
+
+	/**
+	 * The operation id for the '<em>Create Usage</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___CREATE_USAGE__NAMEDELEMENT = REALIZATION___CREATE_USAGE__NAMEDELEMENT;
+
+	/**
+	 * The operation id for the '<em>Get Label</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___GET_LABEL = REALIZATION___GET_LABEL;
+
+	/**
+	 * The operation id for the '<em>Get Label</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___GET_LABEL__BOOLEAN = REALIZATION___GET_LABEL__BOOLEAN;
+
+	/**
+	 * The operation id for the '<em>All Namespaces</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___ALL_NAMESPACES = REALIZATION___ALL_NAMESPACES;
+
+	/**
+	 * The operation id for the '<em>All Owning Packages</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___ALL_OWNING_PACKAGES = REALIZATION___ALL_OWNING_PACKAGES;
+
+	/**
+	 * The operation id for the '<em>Is Distinguishable From</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE = REALIZATION___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___GET_NAMESPACE = REALIZATION___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___GET_QUALIFIED_NAME = REALIZATION___GET_QUALIFIED_NAME;
+
+	/**
+	 * The operation id for the '<em>Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___SEPARATOR = REALIZATION___SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Is Compatible With</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___IS_COMPATIBLE_WITH__PARAMETERABLEELEMENT = REALIZATION___IS_COMPATIBLE_WITH__PARAMETERABLEELEMENT;
+
+	/**
+	 * The operation id for the '<em>Is Template Parameter</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION___IS_TEMPLATE_PARAMETER = REALIZATION___IS_TEMPLATE_PARAMETER;
+
+	/**
+	 * The number of operations of the '<em>Interface Realization</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_REALIZATION_OPERATION_COUNT = REALIZATION_OPERATION_COUNT + 0;
 
 	/**
 	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
@@ -46099,13 +43893,22 @@
 	int INTERFACE__OWNED_ATTRIBUTE = CLASSIFIER_FEATURE_COUNT + 1;
 
 	/**
+	 * The feature id for the '<em><b>Owned Operation</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE__OWNED_OPERATION = CLASSIFIER_FEATURE_COUNT + 2;
+
+	/**
 	 * The feature id for the '<em><b>Owned Reception</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE__OWNED_RECEPTION = CLASSIFIER_FEATURE_COUNT + 2;
+	int INTERFACE__OWNED_RECEPTION = CLASSIFIER_FEATURE_COUNT + 3;
 
 	/**
 	 * The feature id for the '<em><b>Protocol</b></em>' containment reference.
@@ -46114,7 +43917,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE__PROTOCOL = CLASSIFIER_FEATURE_COUNT + 3;
+	int INTERFACE__PROTOCOL = CLASSIFIER_FEATURE_COUNT + 4;
 
 	/**
 	 * The feature id for the '<em><b>Redefined Interface</b></em>' reference list.
@@ -46123,16 +43926,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE__REDEFINED_INTERFACE = CLASSIFIER_FEATURE_COUNT + 4;
-
-	/**
-	 * The feature id for the '<em><b>Owned Operation</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERFACE__OWNED_OPERATION = CLASSIFIER_FEATURE_COUNT + 5;
+	int INTERFACE__REDEFINED_INTERFACE = CLASSIFIER_FEATURE_COUNT + 5;
 
 	/**
 	 * The number of structural features of the '<em>Interface</em>' class.
@@ -46477,15 +44271,6 @@
 	int INTERFACE___MUST_BE_OWNED = CLASSIFIER___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERFACE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -46504,6 +44289,15 @@
 	int INTERFACE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -46801,24 +44595,6 @@
 	int INTERFACE___PARAMETERABLE_ELEMENTS = CLASSIFIER___PARAMETERABLE_ELEMENTS;
 
 	/**
-	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERFACE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERFACE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Non Final Parents</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -46837,6 +44613,24 @@
 	int INTERFACE___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Get All Attributes</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -47620,15 +45414,6 @@
 	int RECEPTION___MUST_BE_OWNED = BEHAVIORAL_FEATURE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int RECEPTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = BEHAVIORAL_FEATURE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -47647,6 +45432,15 @@
 	int RECEPTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = BEHAVIORAL_FEATURE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RECEPTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = BEHAVIORAL_FEATURE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -48601,15 +46395,6 @@
 	int SIGNAL___MUST_BE_OWNED = CLASSIFIER___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SIGNAL___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -48628,6 +46413,15 @@
 	int SIGNAL___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SIGNAL___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -48925,24 +46719,6 @@
 	int SIGNAL___PARAMETERABLE_ELEMENTS = CLASSIFIER___PARAMETERABLE_ELEMENTS;
 
 	/**
-	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SIGNAL___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SIGNAL___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Non Final Parents</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -48961,6 +46737,24 @@
 	int SIGNAL___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SIGNAL___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SIGNAL___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Get All Attributes</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -50050,15 +47844,6 @@
 	int STATE_MACHINE___MUST_BE_OWNED = BEHAVIOR___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STATE_MACHINE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -50077,6 +47862,15 @@
 	int STATE_MACHINE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STATE_MACHINE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -50374,24 +48168,6 @@
 	int STATE_MACHINE___PARAMETERABLE_ELEMENTS = BEHAVIOR___PARAMETERABLE_ELEMENTS;
 
 	/**
-	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STATE_MACHINE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STATE_MACHINE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Non Final Parents</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -50410,6 +48186,24 @@
 	int STATE_MACHINE___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STATE_MACHINE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STATE_MACHINE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Get All Attributes</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -50671,24 +48465,6 @@
 	int STATE_MACHINE___GET_SUPER_CLASSES = BEHAVIOR___GET_SUPER_CLASSES;
 
 	/**
-	 * The operation id for the '<em>Validate Most One Behaviour</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STATE_MACHINE___VALIDATE_MOST_ONE_BEHAVIOUR__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_MOST_ONE_BEHAVIOUR__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Must Realize</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STATE_MACHINE___VALIDATE_MUST_REALIZE__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_MUST_REALIZE__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Parameters Match</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -50707,6 +48483,24 @@
 	int STATE_MACHINE___VALIDATE_FEATURE_OF_CONTEXT_CLASSIFIER__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_FEATURE_OF_CONTEXT_CLASSIFIER__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Must Realize</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STATE_MACHINE___VALIDATE_MUST_REALIZE__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_MUST_REALIZE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Most One Behaviour</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STATE_MACHINE___VALIDATE_MOST_ONE_BEHAVIOUR__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_MOST_ONE_BEHAVIOUR__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Get Context</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -50716,13 +48510,13 @@
 	int STATE_MACHINE___GET_CONTEXT = BEHAVIOR___GET_CONTEXT;
 
 	/**
-	 * The operation id for the '<em>Validate Connection Points</em>' operation.
+	 * The operation id for the '<em>Validate Method</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int STATE_MACHINE___VALIDATE_CONNECTION_POINTS__DIAGNOSTICCHAIN_MAP = BEHAVIOR_OPERATION_COUNT + 0;
+	int STATE_MACHINE___VALIDATE_METHOD__DIAGNOSTICCHAIN_MAP = BEHAVIOR_OPERATION_COUNT + 0;
 
 	/**
 	 * The operation id for the '<em>Validate Classifier Context</em>' operation.
@@ -50734,22 +48528,22 @@
 	int STATE_MACHINE___VALIDATE_CLASSIFIER_CONTEXT__DIAGNOSTICCHAIN_MAP = BEHAVIOR_OPERATION_COUNT + 1;
 
 	/**
-	 * The operation id for the '<em>Validate Method</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STATE_MACHINE___VALIDATE_METHOD__DIAGNOSTICCHAIN_MAP = BEHAVIOR_OPERATION_COUNT + 2;
-
-	/**
 	 * The operation id for the '<em>Validate Context Classifier</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int STATE_MACHINE___VALIDATE_CONTEXT_CLASSIFIER__DIAGNOSTICCHAIN_MAP = BEHAVIOR_OPERATION_COUNT + 3;
+	int STATE_MACHINE___VALIDATE_CONTEXT_CLASSIFIER__DIAGNOSTICCHAIN_MAP = BEHAVIOR_OPERATION_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>Validate Connection Points</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STATE_MACHINE___VALIDATE_CONNECTION_POINTS__DIAGNOSTICCHAIN_MAP = BEHAVIOR_OPERATION_COUNT + 3;
 
 	/**
 	 * The operation id for the '<em>LCA</em>' operation.
@@ -51715,15 +49509,6 @@
 	int PROTOCOL_STATE_MACHINE___MUST_BE_OWNED = STATE_MACHINE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROTOCOL_STATE_MACHINE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = STATE_MACHINE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -51742,6 +49527,15 @@
 	int PROTOCOL_STATE_MACHINE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = STATE_MACHINE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROTOCOL_STATE_MACHINE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = STATE_MACHINE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -52039,24 +49833,6 @@
 	int PROTOCOL_STATE_MACHINE___PARAMETERABLE_ELEMENTS = STATE_MACHINE___PARAMETERABLE_ELEMENTS;
 
 	/**
-	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROTOCOL_STATE_MACHINE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = STATE_MACHINE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROTOCOL_STATE_MACHINE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = STATE_MACHINE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Non Final Parents</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -52075,6 +49851,24 @@
 	int PROTOCOL_STATE_MACHINE___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP = STATE_MACHINE___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROTOCOL_STATE_MACHINE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = STATE_MACHINE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROTOCOL_STATE_MACHINE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = STATE_MACHINE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Get All Attributes</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -52336,24 +50130,6 @@
 	int PROTOCOL_STATE_MACHINE___GET_SUPER_CLASSES = STATE_MACHINE___GET_SUPER_CLASSES;
 
 	/**
-	 * The operation id for the '<em>Validate Most One Behaviour</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROTOCOL_STATE_MACHINE___VALIDATE_MOST_ONE_BEHAVIOUR__DIAGNOSTICCHAIN_MAP = STATE_MACHINE___VALIDATE_MOST_ONE_BEHAVIOUR__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Must Realize</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROTOCOL_STATE_MACHINE___VALIDATE_MUST_REALIZE__DIAGNOSTICCHAIN_MAP = STATE_MACHINE___VALIDATE_MUST_REALIZE__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Parameters Match</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -52372,6 +50148,24 @@
 	int PROTOCOL_STATE_MACHINE___VALIDATE_FEATURE_OF_CONTEXT_CLASSIFIER__DIAGNOSTICCHAIN_MAP = STATE_MACHINE___VALIDATE_FEATURE_OF_CONTEXT_CLASSIFIER__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Must Realize</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROTOCOL_STATE_MACHINE___VALIDATE_MUST_REALIZE__DIAGNOSTICCHAIN_MAP = STATE_MACHINE___VALIDATE_MUST_REALIZE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Most One Behaviour</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROTOCOL_STATE_MACHINE___VALIDATE_MOST_ONE_BEHAVIOUR__DIAGNOSTICCHAIN_MAP = STATE_MACHINE___VALIDATE_MOST_ONE_BEHAVIOUR__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Get Context</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -52381,24 +50175,6 @@
 	int PROTOCOL_STATE_MACHINE___GET_CONTEXT = STATE_MACHINE___GET_CONTEXT;
 
 	/**
-	 * The operation id for the '<em>Validate Connection Points</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROTOCOL_STATE_MACHINE___VALIDATE_CONNECTION_POINTS__DIAGNOSTICCHAIN_MAP = STATE_MACHINE___VALIDATE_CONNECTION_POINTS__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Classifier Context</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROTOCOL_STATE_MACHINE___VALIDATE_CLASSIFIER_CONTEXT__DIAGNOSTICCHAIN_MAP = STATE_MACHINE___VALIDATE_CLASSIFIER_CONTEXT__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Method</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -52408,6 +50184,15 @@
 	int PROTOCOL_STATE_MACHINE___VALIDATE_METHOD__DIAGNOSTICCHAIN_MAP = STATE_MACHINE___VALIDATE_METHOD__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Classifier Context</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROTOCOL_STATE_MACHINE___VALIDATE_CLASSIFIER_CONTEXT__DIAGNOSTICCHAIN_MAP = STATE_MACHINE___VALIDATE_CLASSIFIER_CONTEXT__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Validate Context Classifier</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -52417,6 +50202,15 @@
 	int PROTOCOL_STATE_MACHINE___VALIDATE_CONTEXT_CLASSIFIER__DIAGNOSTICCHAIN_MAP = STATE_MACHINE___VALIDATE_CONTEXT_CLASSIFIER__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Connection Points</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROTOCOL_STATE_MACHINE___VALIDATE_CONNECTION_POINTS__DIAGNOSTICCHAIN_MAP = STATE_MACHINE___VALIDATE_CONNECTION_POINTS__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>LCA</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -52444,31 +50238,13 @@
 	int PROTOCOL_STATE_MACHINE___IS_REDEFINITION_CONTEXT_VALID__STATEMACHINE = STATE_MACHINE___IS_REDEFINITION_CONTEXT_VALID__STATEMACHINE;
 
 	/**
-	 * The operation id for the '<em>Validate Deep Or Shallow History</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROTOCOL_STATE_MACHINE___VALIDATE_DEEP_OR_SHALLOW_HISTORY__DIAGNOSTICCHAIN_MAP = STATE_MACHINE_OPERATION_COUNT + 0;
-
-	/**
 	 * The operation id for the '<em>Validate Entry Exit Do</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PROTOCOL_STATE_MACHINE___VALIDATE_ENTRY_EXIT_DO__DIAGNOSTICCHAIN_MAP = STATE_MACHINE_OPERATION_COUNT + 1;
-
-	/**
-	 * The operation id for the '<em>Validate Ports Connected</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROTOCOL_STATE_MACHINE___VALIDATE_PORTS_CONNECTED__DIAGNOSTICCHAIN_MAP = STATE_MACHINE_OPERATION_COUNT + 2;
+	int PROTOCOL_STATE_MACHINE___VALIDATE_ENTRY_EXIT_DO__DIAGNOSTICCHAIN_MAP = STATE_MACHINE_OPERATION_COUNT + 0;
 
 	/**
 	 * The operation id for the '<em>Validate Protocol Transitions</em>' operation.
@@ -52477,7 +50253,25 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PROTOCOL_STATE_MACHINE___VALIDATE_PROTOCOL_TRANSITIONS__DIAGNOSTICCHAIN_MAP = STATE_MACHINE_OPERATION_COUNT + 3;
+	int PROTOCOL_STATE_MACHINE___VALIDATE_PROTOCOL_TRANSITIONS__DIAGNOSTICCHAIN_MAP = STATE_MACHINE_OPERATION_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Validate Deep Or Shallow History</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROTOCOL_STATE_MACHINE___VALIDATE_DEEP_OR_SHALLOW_HISTORY__DIAGNOSTICCHAIN_MAP = STATE_MACHINE_OPERATION_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>Validate Ports Connected</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROTOCOL_STATE_MACHINE___VALIDATE_PORTS_CONNECTED__DIAGNOSTICCHAIN_MAP = STATE_MACHINE_OPERATION_COUNT + 3;
 
 	/**
 	 * The number of operations of the '<em>Protocol State Machine</em>' class.
@@ -52948,15 +50742,6 @@
 	int VERTEX___MUST_BE_OWNED = NAMED_ELEMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int VERTEX___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -52975,6 +50760,15 @@
 	int VERTEX___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VERTEX___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -53587,15 +51381,6 @@
 	int PSEUDOSTATE___MUST_BE_OWNED = VERTEX___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PSEUDOSTATE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = VERTEX___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -53614,6 +51399,15 @@
 	int PSEUDOSTATE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = VERTEX___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PSEUDOSTATE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = VERTEX___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -53731,49 +51525,13 @@
 	int PSEUDOSTATE___GET_OUTGOINGS = VERTEX___GET_OUTGOINGS;
 
 	/**
-	 * The operation id for the '<em>Validate Transitions Outgoing</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PSEUDOSTATE___VALIDATE_TRANSITIONS_OUTGOING__DIAGNOSTICCHAIN_MAP = VERTEX_OPERATION_COUNT + 0;
-
-	/**
-	 * The operation id for the '<em>Validate Choice Vertex</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PSEUDOSTATE___VALIDATE_CHOICE_VERTEX__DIAGNOSTICCHAIN_MAP = VERTEX_OPERATION_COUNT + 1;
-
-	/**
-	 * The operation id for the '<em>Validate Outgoing From Initial</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PSEUDOSTATE___VALIDATE_OUTGOING_FROM_INITIAL__DIAGNOSTICCHAIN_MAP = VERTEX_OPERATION_COUNT + 2;
-
-	/**
-	 * The operation id for the '<em>Validate Join Vertex</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PSEUDOSTATE___VALIDATE_JOIN_VERTEX__DIAGNOSTICCHAIN_MAP = VERTEX_OPERATION_COUNT + 3;
-
-	/**
 	 * The operation id for the '<em>Validate Junction Vertex</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PSEUDOSTATE___VALIDATE_JUNCTION_VERTEX__DIAGNOSTICCHAIN_MAP = VERTEX_OPERATION_COUNT + 4;
+	int PSEUDOSTATE___VALIDATE_JUNCTION_VERTEX__DIAGNOSTICCHAIN_MAP = VERTEX_OPERATION_COUNT + 0;
 
 	/**
 	 * The operation id for the '<em>Validate History Vertices</em>' operation.
@@ -53782,16 +51540,25 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PSEUDOSTATE___VALIDATE_HISTORY_VERTICES__DIAGNOSTICCHAIN_MAP = VERTEX_OPERATION_COUNT + 5;
+	int PSEUDOSTATE___VALIDATE_HISTORY_VERTICES__DIAGNOSTICCHAIN_MAP = VERTEX_OPERATION_COUNT + 1;
 
 	/**
-	 * The operation id for the '<em>Validate Initial Vertex</em>' operation.
+	 * The operation id for the '<em>Validate Transitions Outgoing</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PSEUDOSTATE___VALIDATE_INITIAL_VERTEX__DIAGNOSTICCHAIN_MAP = VERTEX_OPERATION_COUNT + 6;
+	int PSEUDOSTATE___VALIDATE_TRANSITIONS_OUTGOING__DIAGNOSTICCHAIN_MAP = VERTEX_OPERATION_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>Validate Outgoing From Initial</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PSEUDOSTATE___VALIDATE_OUTGOING_FROM_INITIAL__DIAGNOSTICCHAIN_MAP = VERTEX_OPERATION_COUNT + 3;
 
 	/**
 	 * The operation id for the '<em>Validate Fork Vertex</em>' operation.
@@ -53800,7 +51567,34 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PSEUDOSTATE___VALIDATE_FORK_VERTEX__DIAGNOSTICCHAIN_MAP = VERTEX_OPERATION_COUNT + 7;
+	int PSEUDOSTATE___VALIDATE_FORK_VERTEX__DIAGNOSTICCHAIN_MAP = VERTEX_OPERATION_COUNT + 4;
+
+	/**
+	 * The operation id for the '<em>Validate Join Vertex</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PSEUDOSTATE___VALIDATE_JOIN_VERTEX__DIAGNOSTICCHAIN_MAP = VERTEX_OPERATION_COUNT + 5;
+
+	/**
+	 * The operation id for the '<em>Validate Choice Vertex</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PSEUDOSTATE___VALIDATE_CHOICE_VERTEX__DIAGNOSTICCHAIN_MAP = VERTEX_OPERATION_COUNT + 6;
+
+	/**
+	 * The operation id for the '<em>Validate Initial Vertex</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PSEUDOSTATE___VALIDATE_INITIAL_VERTEX__DIAGNOSTICCHAIN_MAP = VERTEX_OPERATION_COUNT + 7;
 
 	/**
 	 * The operation id for the '<em>Validate Transitions Incoming</em>' operation.
@@ -54379,15 +52173,6 @@
 	int REGION___MUST_BE_OWNED = NAMESPACE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REGION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMESPACE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -54406,6 +52191,15 @@
 	int REGION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = NAMESPACE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REGION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMESPACE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -54640,31 +52434,22 @@
 	int REGION___IS_REDEFINITION_CONTEXT_VALID__REDEFINABLEELEMENT = NAMESPACE_OPERATION_COUNT + 4;
 
 	/**
-	 * The operation id for the '<em>Validate Deep History Vertex</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REGION___VALIDATE_DEEP_HISTORY_VERTEX__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 5;
-
-	/**
 	 * The operation id for the '<em>Validate Shallow History Vertex</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int REGION___VALIDATE_SHALLOW_HISTORY_VERTEX__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 6;
+	int REGION___VALIDATE_SHALLOW_HISTORY_VERTEX__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 5;
 
 	/**
-	 * The operation id for the '<em>Validate Owned</em>' operation.
+	 * The operation id for the '<em>Validate Deep History Vertex</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int REGION___VALIDATE_OWNED__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 7;
+	int REGION___VALIDATE_DEEP_HISTORY_VERTEX__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 6;
 
 	/**
 	 * The operation id for the '<em>Validate Initial Vertex</em>' operation.
@@ -54673,7 +52458,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int REGION___VALIDATE_INITIAL_VERTEX__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 8;
+	int REGION___VALIDATE_INITIAL_VERTEX__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 7;
+
+	/**
+	 * The operation id for the '<em>Validate Owned</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REGION___VALIDATE_OWNED__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 8;
 
 	/**
 	 * The operation id for the '<em>Belongs To PSM</em>' operation.
@@ -55387,15 +53181,6 @@
 	int STATE___MUST_BE_OWNED = NAMESPACE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STATE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMESPACE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -55414,6 +53199,15 @@
 	int STATE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = NAMESPACE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STATE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMESPACE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -55684,22 +53478,13 @@
 	int STATE___VALIDATE_ENTRY_OR_EXIT__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 8;
 
 	/**
-	 * The operation id for the '<em>Validate Submachine States</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STATE___VALIDATE_SUBMACHINE_STATES__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 9;
-
-	/**
 	 * The operation id for the '<em>Validate Composite States</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int STATE___VALIDATE_COMPOSITE_STATES__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 10;
+	int STATE___VALIDATE_COMPOSITE_STATES__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 9;
 
 	/**
 	 * The operation id for the '<em>Validate Destinations Or Sources Of Transitions</em>' operation.
@@ -55708,7 +53493,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int STATE___VALIDATE_DESTINATIONS_OR_SOURCES_OF_TRANSITIONS__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 11;
+	int STATE___VALIDATE_DESTINATIONS_OR_SOURCES_OF_TRANSITIONS__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 10;
 
 	/**
 	 * The operation id for the '<em>Validate Submachine Or Regions</em>' operation.
@@ -55717,7 +53502,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int STATE___VALIDATE_SUBMACHINE_OR_REGIONS__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 12;
+	int STATE___VALIDATE_SUBMACHINE_OR_REGIONS__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 11;
+
+	/**
+	 * The operation id for the '<em>Validate Submachine States</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STATE___VALIDATE_SUBMACHINE_STATES__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 12;
 
 	/**
 	 * The operation id for the '<em>Is Composite</em>' operation.
@@ -56269,15 +54063,6 @@
 	int CONNECTION_POINT_REFERENCE___MUST_BE_OWNED = VERTEX___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTION_POINT_REFERENCE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = VERTEX___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -56296,6 +54081,15 @@
 	int CONNECTION_POINT_REFERENCE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = VERTEX___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONNECTION_POINT_REFERENCE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = VERTEX___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -56413,22 +54207,22 @@
 	int CONNECTION_POINT_REFERENCE___GET_OUTGOINGS = VERTEX___GET_OUTGOINGS;
 
 	/**
-	 * The operation id for the '<em>Validate Exit Pseudostates</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTION_POINT_REFERENCE___VALIDATE_EXIT_PSEUDOSTATES__DIAGNOSTICCHAIN_MAP = VERTEX_OPERATION_COUNT + 0;
-
-	/**
 	 * The operation id for the '<em>Validate Entry Pseudostates</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CONNECTION_POINT_REFERENCE___VALIDATE_ENTRY_PSEUDOSTATES__DIAGNOSTICCHAIN_MAP = VERTEX_OPERATION_COUNT + 1;
+	int CONNECTION_POINT_REFERENCE___VALIDATE_ENTRY_PSEUDOSTATES__DIAGNOSTICCHAIN_MAP = VERTEX_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Validate Exit Pseudostates</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONNECTION_POINT_REFERENCE___VALIDATE_EXIT_PSEUDOSTATES__DIAGNOSTICCHAIN_MAP = VERTEX_OPERATION_COUNT + 1;
 
 	/**
 	 * The number of operations of the '<em>Connection Point Reference</em>' class.
@@ -56890,15 +54684,6 @@
 	int TRIGGER___MUST_BE_OWNED = NAMED_ELEMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TRIGGER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -56917,6 +54702,15 @@
 	int TRIGGER___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -57466,15 +55260,6 @@
 	int EVENT___MUST_BE_OWNED = PACKAGEABLE_ELEMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EVENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -57493,6 +55278,15 @@
 	int EVENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -57862,15 +55656,6 @@
 	int PORT__DEPLOYMENT = PROPERTY__DEPLOYMENT;
 
 	/**
-	 * The feature id for the '<em><b>Datatype</b></em>' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PORT__DATATYPE = PROPERTY__DATATYPE;
-
-	/**
 	 * The feature id for the '<em><b>Interface</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -57880,6 +55665,15 @@
 	int PORT__INTERFACE = PROPERTY__INTERFACE;
 
 	/**
+	 * The feature id for the '<em><b>Datatype</b></em>' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PORT__DATATYPE = PROPERTY__DATATYPE;
+
+	/**
 	 * The feature id for the '<em><b>Aggregation</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -58420,15 +56214,6 @@
 	int PORT___MUST_BE_OWNED = PROPERTY___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PORT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -58447,6 +56232,15 @@
 	int PORT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PORT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -58582,15 +56376,6 @@
 	int PORT___IS_REDEFINITION_CONTEXT_VALID__REDEFINABLEELEMENT = PROPERTY___IS_REDEFINITION_CONTEXT_VALID__REDEFINABLEELEMENT;
 
 	/**
-	 * The operation id for the '<em>Validate Upper Ge Lower</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PORT___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Lower Ge0</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -58600,13 +56385,13 @@
 	int PORT___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Value Specification No Side Effects</em>' operation.
+	 * The operation id for the '<em>Validate Upper Ge Lower</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PORT___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP;
+	int PORT___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Value Specification Constant</em>' operation.
@@ -58618,6 +56403,15 @@
 	int PORT___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Value Specification No Side Effects</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PORT___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Set Lower</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -58753,40 +56547,13 @@
 	int PORT___GET_DEPLOYED_ELEMENTS = PROPERTY___GET_DEPLOYED_ELEMENTS;
 
 	/**
-	 * The operation id for the '<em>Validate Subsetting Context Conforms</em>' operation.
+	 * The operation id for the '<em>Validate Subsetted Property Names</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PORT___VALIDATE_SUBSETTING_CONTEXT_CONFORMS__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_SUBSETTING_CONTEXT_CONFORMS__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Derived Union Is Read Only</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PORT___VALIDATE_DERIVED_UNION_IS_READ_ONLY__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_DERIVED_UNION_IS_READ_ONLY__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Multiplicity Of Composite</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PORT___VALIDATE_MULTIPLICITY_OF_COMPOSITE__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_MULTIPLICITY_OF_COMPOSITE__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Redefined Property Inherited</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PORT___VALIDATE_REDEFINED_PROPERTY_INHERITED__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_REDEFINED_PROPERTY_INHERITED__DIAGNOSTICCHAIN_MAP;
+	int PORT___VALIDATE_SUBSETTED_PROPERTY_NAMES__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_SUBSETTED_PROPERTY_NAMES__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Subsetting Rules</em>' operation.
@@ -58798,6 +56565,15 @@
 	int PORT___VALIDATE_SUBSETTING_RULES__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_SUBSETTING_RULES__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Multiplicity Of Composite</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PORT___VALIDATE_MULTIPLICITY_OF_COMPOSITE__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_MULTIPLICITY_OF_COMPOSITE__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Validate Binding To Attribute</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -58807,13 +56583,22 @@
 	int PORT___VALIDATE_BINDING_TO_ATTRIBUTE__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_BINDING_TO_ATTRIBUTE__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Derived Union Is Derived</em>' operation.
+	 * The operation id for the '<em>Validate Redefined Property Inherited</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PORT___VALIDATE_DERIVED_UNION_IS_DERIVED__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_DERIVED_UNION_IS_DERIVED__DIAGNOSTICCHAIN_MAP;
+	int PORT___VALIDATE_REDEFINED_PROPERTY_INHERITED__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_REDEFINED_PROPERTY_INHERITED__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Subsetting Context Conforms</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PORT___VALIDATE_SUBSETTING_CONTEXT_CONFORMS__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_SUBSETTING_CONTEXT_CONFORMS__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Deployment Target</em>' operation.
@@ -58825,13 +56610,22 @@
 	int PORT___VALIDATE_DEPLOYMENT_TARGET__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_DEPLOYMENT_TARGET__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Subsetted Property Names</em>' operation.
+	 * The operation id for the '<em>Validate Derived Union Is Derived</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PORT___VALIDATE_SUBSETTED_PROPERTY_NAMES__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_SUBSETTED_PROPERTY_NAMES__DIAGNOSTICCHAIN_MAP;
+	int PORT___VALIDATE_DERIVED_UNION_IS_DERIVED__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_DERIVED_UNION_IS_DERIVED__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Derived Union Is Read Only</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PORT___VALIDATE_DERIVED_UNION_IS_READ_ONLY__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_DERIVED_UNION_IS_READ_ONLY__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Get Other End</em>' operation.
@@ -59005,13 +56799,13 @@
 	int PORT___SUBSETTING_CONTEXT = PROPERTY___SUBSETTING_CONTEXT;
 
 	/**
-	 * The operation id for the '<em>Validate Port Destroyed</em>' operation.
+	 * The operation id for the '<em>Validate Default Value</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PORT___VALIDATE_PORT_DESTROYED__DIAGNOSTICCHAIN_MAP = PROPERTY_OPERATION_COUNT + 0;
+	int PORT___VALIDATE_DEFAULT_VALUE__DIAGNOSTICCHAIN_MAP = PROPERTY_OPERATION_COUNT + 0;
 
 	/**
 	 * The operation id for the '<em>Validate Port Aggregation</em>' operation.
@@ -59023,13 +56817,13 @@
 	int PORT___VALIDATE_PORT_AGGREGATION__DIAGNOSTICCHAIN_MAP = PROPERTY_OPERATION_COUNT + 1;
 
 	/**
-	 * The operation id for the '<em>Validate Default Value</em>' operation.
+	 * The operation id for the '<em>Validate Port Destroyed</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PORT___VALIDATE_DEFAULT_VALUE__DIAGNOSTICCHAIN_MAP = PROPERTY_OPERATION_COUNT + 2;
+	int PORT___VALIDATE_PORT_DESTROYED__DIAGNOSTICCHAIN_MAP = PROPERTY_OPERATION_COUNT + 2;
 
 	/**
 	 * The operation id for the '<em>Get Provideds</em>' operation.
@@ -59065,6 +56859,663 @@
 	 * @generated
 	 * @ordered
 	 */
+	int CONSTRAINT__EANNOTATIONS = PACKAGEABLE_ELEMENT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Owned Comment</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT__OWNED_COMMENT = PACKAGEABLE_ELEMENT__OWNED_COMMENT;
+
+	/**
+	 * The feature id for the '<em><b>Owned Element</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT__OWNED_ELEMENT = PACKAGEABLE_ELEMENT__OWNED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Owner</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT__OWNER = PACKAGEABLE_ELEMENT__OWNER;
+
+	/**
+	 * The feature id for the '<em><b>Client Dependency</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT__CLIENT_DEPENDENCY = PACKAGEABLE_ELEMENT__CLIENT_DEPENDENCY;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT__NAME = PACKAGEABLE_ELEMENT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Name Expression</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT__NAME_EXPRESSION = PACKAGEABLE_ELEMENT__NAME_EXPRESSION;
+
+	/**
+	 * The feature id for the '<em><b>Namespace</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT__NAMESPACE = PACKAGEABLE_ELEMENT__NAMESPACE;
+
+	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT__QUALIFIED_NAME = PACKAGEABLE_ELEMENT__QUALIFIED_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Visibility</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT__VISIBILITY = PACKAGEABLE_ELEMENT__VISIBILITY;
+
+	/**
+	 * The feature id for the '<em><b>Owning Template Parameter</b></em>' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT__OWNING_TEMPLATE_PARAMETER = PACKAGEABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER;
+
+	/**
+	 * The feature id for the '<em><b>Template Parameter</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT__TEMPLATE_PARAMETER = PACKAGEABLE_ELEMENT__TEMPLATE_PARAMETER;
+
+	/**
+	 * The feature id for the '<em><b>Constrained Element</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT__CONSTRAINED_ELEMENT = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Context</b></em>' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT__CONTEXT = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Specification</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT__SPECIFICATION = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The number of structural features of the '<em>Constraint</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT_FEATURE_COUNT = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>Get EAnnotation</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___GET_EANNOTATION__STRING = PACKAGEABLE_ELEMENT___GET_EANNOTATION__STRING;
+
+	/**
+	 * The operation id for the '<em>Validate Has Owner</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Not Own Self</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Add Keyword</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___ADD_KEYWORD__STRING = PACKAGEABLE_ELEMENT___ADD_KEYWORD__STRING;
+
+	/**
+	 * The operation id for the '<em>Apply Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___APPLY_STEREOTYPE__STEREOTYPE = PACKAGEABLE_ELEMENT___APPLY_STEREOTYPE__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Create EAnnotation</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___CREATE_EANNOTATION__STRING = PACKAGEABLE_ELEMENT___CREATE_EANNOTATION__STRING;
+
+	/**
+	 * The operation id for the '<em>Destroy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___DESTROY = PACKAGEABLE_ELEMENT___DESTROY;
+
+	/**
+	 * The operation id for the '<em>Get Keywords</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___GET_KEYWORDS = PACKAGEABLE_ELEMENT___GET_KEYWORDS;
+
+	/**
+	 * The operation id for the '<em>Get Applicable Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___GET_APPLICABLE_STEREOTYPE__STRING = PACKAGEABLE_ELEMENT___GET_APPLICABLE_STEREOTYPE__STRING;
+
+	/**
+	 * The operation id for the '<em>Get Applicable Stereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___GET_APPLICABLE_STEREOTYPES = PACKAGEABLE_ELEMENT___GET_APPLICABLE_STEREOTYPES;
+
+	/**
+	 * The operation id for the '<em>Get Applied Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___GET_APPLIED_STEREOTYPE__STRING = PACKAGEABLE_ELEMENT___GET_APPLIED_STEREOTYPE__STRING;
+
+	/**
+	 * The operation id for the '<em>Get Applied Stereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___GET_APPLIED_STEREOTYPES = PACKAGEABLE_ELEMENT___GET_APPLIED_STEREOTYPES;
+
+	/**
+	 * The operation id for the '<em>Get Applied Substereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING = PACKAGEABLE_ELEMENT___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING;
+
+	/**
+	 * The operation id for the '<em>Get Applied Substereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE = PACKAGEABLE_ELEMENT___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Get Model</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___GET_MODEL = PACKAGEABLE_ELEMENT___GET_MODEL;
+
+	/**
+	 * The operation id for the '<em>Get Nearest Package</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___GET_NEAREST_PACKAGE = PACKAGEABLE_ELEMENT___GET_NEAREST_PACKAGE;
+
+	/**
+	 * The operation id for the '<em>Get Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___GET_RELATIONSHIPS = PACKAGEABLE_ELEMENT___GET_RELATIONSHIPS;
+
+	/**
+	 * The operation id for the '<em>Get Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___GET_RELATIONSHIPS__ECLASS = PACKAGEABLE_ELEMENT___GET_RELATIONSHIPS__ECLASS;
+
+	/**
+	 * The operation id for the '<em>Get Required Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___GET_REQUIRED_STEREOTYPE__STRING = PACKAGEABLE_ELEMENT___GET_REQUIRED_STEREOTYPE__STRING;
+
+	/**
+	 * The operation id for the '<em>Get Required Stereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___GET_REQUIRED_STEREOTYPES = PACKAGEABLE_ELEMENT___GET_REQUIRED_STEREOTYPES;
+
+	/**
+	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___GET_SOURCE_DIRECTED_RELATIONSHIPS = PACKAGEABLE_ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS;
+
+	/**
+	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS = PACKAGEABLE_ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS;
+
+	/**
+	 * The operation id for the '<em>Get Stereotype Application</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___GET_STEREOTYPE_APPLICATION__STEREOTYPE = PACKAGEABLE_ELEMENT___GET_STEREOTYPE_APPLICATION__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Get Stereotype Applications</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___GET_STEREOTYPE_APPLICATIONS = PACKAGEABLE_ELEMENT___GET_STEREOTYPE_APPLICATIONS;
+
+	/**
+	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___GET_TARGET_DIRECTED_RELATIONSHIPS = PACKAGEABLE_ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS;
+
+	/**
+	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS = PACKAGEABLE_ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS;
+
+	/**
+	 * The operation id for the '<em>Get Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___GET_VALUE__STEREOTYPE_STRING = PACKAGEABLE_ELEMENT___GET_VALUE__STEREOTYPE_STRING;
+
+	/**
+	 * The operation id for the '<em>Has Keyword</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___HAS_KEYWORD__STRING = PACKAGEABLE_ELEMENT___HAS_KEYWORD__STRING;
+
+	/**
+	 * The operation id for the '<em>Has Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___HAS_VALUE__STEREOTYPE_STRING = PACKAGEABLE_ELEMENT___HAS_VALUE__STEREOTYPE_STRING;
+
+	/**
+	 * The operation id for the '<em>Is Stereotype Applicable</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___IS_STEREOTYPE_APPLICABLE__STEREOTYPE = PACKAGEABLE_ELEMENT___IS_STEREOTYPE_APPLICABLE__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Is Stereotype Applied</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___IS_STEREOTYPE_APPLIED__STEREOTYPE = PACKAGEABLE_ELEMENT___IS_STEREOTYPE_APPLIED__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Is Stereotype Required</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___IS_STEREOTYPE_REQUIRED__STEREOTYPE = PACKAGEABLE_ELEMENT___IS_STEREOTYPE_REQUIRED__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Remove Keyword</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___REMOVE_KEYWORD__STRING = PACKAGEABLE_ELEMENT___REMOVE_KEYWORD__STRING;
+
+	/**
+	 * The operation id for the '<em>Set Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___SET_VALUE__STEREOTYPE_STRING_OBJECT = PACKAGEABLE_ELEMENT___SET_VALUE__STEREOTYPE_STRING_OBJECT;
+
+	/**
+	 * The operation id for the '<em>Unapply Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___UNAPPLY_STEREOTYPE__STEREOTYPE = PACKAGEABLE_ELEMENT___UNAPPLY_STEREOTYPE__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>All Owned Elements</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___ALL_OWNED_ELEMENTS = PACKAGEABLE_ELEMENT___ALL_OWNED_ELEMENTS;
+
+	/**
+	 * The operation id for the '<em>Must Be Owned</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___MUST_BE_OWNED = PACKAGEABLE_ELEMENT___MUST_BE_OWNED;
+
+	/**
+	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Has No Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Create Dependency</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___CREATE_DEPENDENCY__NAMEDELEMENT = PACKAGEABLE_ELEMENT___CREATE_DEPENDENCY__NAMEDELEMENT;
+
+	/**
+	 * The operation id for the '<em>Create Usage</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___CREATE_USAGE__NAMEDELEMENT = PACKAGEABLE_ELEMENT___CREATE_USAGE__NAMEDELEMENT;
+
+	/**
+	 * The operation id for the '<em>Get Label</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___GET_LABEL = PACKAGEABLE_ELEMENT___GET_LABEL;
+
+	/**
+	 * The operation id for the '<em>Get Label</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___GET_LABEL__BOOLEAN = PACKAGEABLE_ELEMENT___GET_LABEL__BOOLEAN;
+
+	/**
+	 * The operation id for the '<em>All Namespaces</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___ALL_NAMESPACES = PACKAGEABLE_ELEMENT___ALL_NAMESPACES;
+
+	/**
+	 * The operation id for the '<em>All Owning Packages</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___ALL_OWNING_PACKAGES = PACKAGEABLE_ELEMENT___ALL_OWNING_PACKAGES;
+
+	/**
+	 * The operation id for the '<em>Is Distinguishable From</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE = PACKAGEABLE_ELEMENT___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___GET_NAMESPACE = PACKAGEABLE_ELEMENT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___GET_QUALIFIED_NAME = PACKAGEABLE_ELEMENT___GET_QUALIFIED_NAME;
+
+	/**
+	 * The operation id for the '<em>Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___SEPARATOR = PACKAGEABLE_ELEMENT___SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Is Compatible With</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___IS_COMPATIBLE_WITH__PARAMETERABLEELEMENT = PACKAGEABLE_ELEMENT___IS_COMPATIBLE_WITH__PARAMETERABLEELEMENT;
+
+	/**
+	 * The operation id for the '<em>Is Template Parameter</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___IS_TEMPLATE_PARAMETER = PACKAGEABLE_ELEMENT___IS_TEMPLATE_PARAMETER;
+
+	/**
+	 * The operation id for the '<em>Validate Not Apply To Self</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___VALIDATE_NOT_APPLY_TO_SELF__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Validate No Side Effects</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___VALIDATE_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Validate Boolean Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___VALIDATE_BOOLEAN_VALUE__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>Validate Value Specification Boolean</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT___VALIDATE_VALUE_SPECIFICATION_BOOLEAN__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 3;
+
+	/**
+	 * The number of operations of the '<em>Constraint</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT_OPERATION_COUNT = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
 	int TRANSITION__EANNOTATIONS = NAMESPACE__EANNOTATIONS;
 
 	/**
@@ -59644,15 +58095,6 @@
 	int TRANSITION___MUST_BE_OWNED = NAMESPACE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TRANSITION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMESPACE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -59671,6 +58113,15 @@
 	int TRANSITION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = NAMESPACE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRANSITION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMESPACE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -59905,85 +58356,13 @@
 	int TRANSITION___IS_REDEFINITION_CONTEXT_VALID__REDEFINABLEELEMENT = NAMESPACE_OPERATION_COUNT + 4;
 
 	/**
-	 * The operation id for the '<em>Validate State Is External</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TRANSITION___VALIDATE_STATE_IS_EXTERNAL__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 5;
-
-	/**
-	 * The operation id for the '<em>Validate Join Segment Guards</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TRANSITION___VALIDATE_JOIN_SEGMENT_GUARDS__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 6;
-
-	/**
-	 * The operation id for the '<em>Validate State Is Internal</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TRANSITION___VALIDATE_STATE_IS_INTERNAL__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 7;
-
-	/**
-	 * The operation id for the '<em>Validate Outgoing Pseudostates</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TRANSITION___VALIDATE_OUTGOING_PSEUDOSTATES__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 8;
-
-	/**
-	 * The operation id for the '<em>Validate Join Segment State</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TRANSITION___VALIDATE_JOIN_SEGMENT_STATE__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 9;
-
-	/**
-	 * The operation id for the '<em>Validate Fork Segment State</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TRANSITION___VALIDATE_FORK_SEGMENT_STATE__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 10;
-
-	/**
-	 * The operation id for the '<em>Validate Signatures Compatible</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TRANSITION___VALIDATE_SIGNATURES_COMPATIBLE__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 11;
-
-	/**
 	 * The operation id for the '<em>Validate State Is Local</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int TRANSITION___VALIDATE_STATE_IS_LOCAL__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 12;
-
-	/**
-	 * The operation id for the '<em>Validate Initial Transition</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TRANSITION___VALIDATE_INITIAL_TRANSITION__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 13;
+	int TRANSITION___VALIDATE_STATE_IS_LOCAL__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 5;
 
 	/**
 	 * The operation id for the '<em>Validate Fork Segment Guards</em>' operation.
@@ -59992,7 +58371,79 @@
 	 * @generated
 	 * @ordered
 	 */
-	int TRANSITION___VALIDATE_FORK_SEGMENT_GUARDS__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 14;
+	int TRANSITION___VALIDATE_FORK_SEGMENT_GUARDS__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 6;
+
+	/**
+	 * The operation id for the '<em>Validate Join Segment State</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRANSITION___VALIDATE_JOIN_SEGMENT_STATE__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 7;
+
+	/**
+	 * The operation id for the '<em>Validate Initial Transition</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRANSITION___VALIDATE_INITIAL_TRANSITION__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 8;
+
+	/**
+	 * The operation id for the '<em>Validate Outgoing Pseudostates</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRANSITION___VALIDATE_OUTGOING_PSEUDOSTATES__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 9;
+
+	/**
+	 * The operation id for the '<em>Validate Signatures Compatible</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRANSITION___VALIDATE_SIGNATURES_COMPATIBLE__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 10;
+
+	/**
+	 * The operation id for the '<em>Validate State Is Internal</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRANSITION___VALIDATE_STATE_IS_INTERNAL__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 11;
+
+	/**
+	 * The operation id for the '<em>Validate Join Segment Guards</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRANSITION___VALIDATE_JOIN_SEGMENT_GUARDS__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 12;
+
+	/**
+	 * The operation id for the '<em>Validate Fork Segment State</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRANSITION___VALIDATE_FORK_SEGMENT_STATE__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 13;
+
+	/**
+	 * The operation id for the '<em>Validate State Is External</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRANSITION___VALIDATE_STATE_IS_EXTERNAL__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 14;
 
 	/**
 	 * The operation id for the '<em>Containing State Machine</em>' operation.
@@ -60460,6 +58911,2868 @@
 	 * @generated
 	 * @ordered
 	 */
+	int PARAMETER__EANNOTATIONS = CONNECTABLE_ELEMENT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Owned Comment</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__OWNED_COMMENT = CONNECTABLE_ELEMENT__OWNED_COMMENT;
+
+	/**
+	 * The feature id for the '<em><b>Owned Element</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__OWNED_ELEMENT = CONNECTABLE_ELEMENT__OWNED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Owner</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__OWNER = CONNECTABLE_ELEMENT__OWNER;
+
+	/**
+	 * The feature id for the '<em><b>Client Dependency</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__CLIENT_DEPENDENCY = CONNECTABLE_ELEMENT__CLIENT_DEPENDENCY;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__NAME = CONNECTABLE_ELEMENT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Name Expression</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__NAME_EXPRESSION = CONNECTABLE_ELEMENT__NAME_EXPRESSION;
+
+	/**
+	 * The feature id for the '<em><b>Namespace</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__NAMESPACE = CONNECTABLE_ELEMENT__NAMESPACE;
+
+	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__QUALIFIED_NAME = CONNECTABLE_ELEMENT__QUALIFIED_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Visibility</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__VISIBILITY = CONNECTABLE_ELEMENT__VISIBILITY;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__TYPE = CONNECTABLE_ELEMENT__TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Owning Template Parameter</b></em>' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__OWNING_TEMPLATE_PARAMETER = CONNECTABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER;
+
+	/**
+	 * The feature id for the '<em><b>Template Parameter</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__TEMPLATE_PARAMETER = CONNECTABLE_ELEMENT__TEMPLATE_PARAMETER;
+
+	/**
+	 * The feature id for the '<em><b>End</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__END = CONNECTABLE_ELEMENT__END;
+
+	/**
+	 * The feature id for the '<em><b>Is Ordered</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__IS_ORDERED = CONNECTABLE_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Is Unique</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__IS_UNIQUE = CONNECTABLE_ELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Lower</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__LOWER = CONNECTABLE_ELEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Lower Value</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__LOWER_VALUE = CONNECTABLE_ELEMENT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Upper</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__UPPER = CONNECTABLE_ELEMENT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Upper Value</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__UPPER_VALUE = CONNECTABLE_ELEMENT_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Default</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__DEFAULT = CONNECTABLE_ELEMENT_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Default Value</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__DEFAULT_VALUE = CONNECTABLE_ELEMENT_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>Direction</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__DIRECTION = CONNECTABLE_ELEMENT_FEATURE_COUNT + 8;
+
+	/**
+	 * The feature id for the '<em><b>Effect</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__EFFECT = CONNECTABLE_ELEMENT_FEATURE_COUNT + 9;
+
+	/**
+	 * The feature id for the '<em><b>Is Exception</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__IS_EXCEPTION = CONNECTABLE_ELEMENT_FEATURE_COUNT + 10;
+
+	/**
+	 * The feature id for the '<em><b>Is Stream</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__IS_STREAM = CONNECTABLE_ELEMENT_FEATURE_COUNT + 11;
+
+	/**
+	 * The feature id for the '<em><b>Operation</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__OPERATION = CONNECTABLE_ELEMENT_FEATURE_COUNT + 12;
+
+	/**
+	 * The feature id for the '<em><b>Parameter Set</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__PARAMETER_SET = CONNECTABLE_ELEMENT_FEATURE_COUNT + 13;
+
+	/**
+	 * The number of structural features of the '<em>Parameter</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_FEATURE_COUNT = CONNECTABLE_ELEMENT_FEATURE_COUNT + 14;
+
+	/**
+	 * The operation id for the '<em>Get EAnnotation</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___GET_EANNOTATION__STRING = CONNECTABLE_ELEMENT___GET_EANNOTATION__STRING;
+
+	/**
+	 * The operation id for the '<em>Validate Has Owner</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP = CONNECTABLE_ELEMENT___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Not Own Self</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP = CONNECTABLE_ELEMENT___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Add Keyword</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___ADD_KEYWORD__STRING = CONNECTABLE_ELEMENT___ADD_KEYWORD__STRING;
+
+	/**
+	 * The operation id for the '<em>Apply Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___APPLY_STEREOTYPE__STEREOTYPE = CONNECTABLE_ELEMENT___APPLY_STEREOTYPE__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Create EAnnotation</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___CREATE_EANNOTATION__STRING = CONNECTABLE_ELEMENT___CREATE_EANNOTATION__STRING;
+
+	/**
+	 * The operation id for the '<em>Destroy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___DESTROY = CONNECTABLE_ELEMENT___DESTROY;
+
+	/**
+	 * The operation id for the '<em>Get Keywords</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___GET_KEYWORDS = CONNECTABLE_ELEMENT___GET_KEYWORDS;
+
+	/**
+	 * The operation id for the '<em>Get Applicable Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___GET_APPLICABLE_STEREOTYPE__STRING = CONNECTABLE_ELEMENT___GET_APPLICABLE_STEREOTYPE__STRING;
+
+	/**
+	 * The operation id for the '<em>Get Applicable Stereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___GET_APPLICABLE_STEREOTYPES = CONNECTABLE_ELEMENT___GET_APPLICABLE_STEREOTYPES;
+
+	/**
+	 * The operation id for the '<em>Get Applied Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___GET_APPLIED_STEREOTYPE__STRING = CONNECTABLE_ELEMENT___GET_APPLIED_STEREOTYPE__STRING;
+
+	/**
+	 * The operation id for the '<em>Get Applied Stereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___GET_APPLIED_STEREOTYPES = CONNECTABLE_ELEMENT___GET_APPLIED_STEREOTYPES;
+
+	/**
+	 * The operation id for the '<em>Get Applied Substereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING = CONNECTABLE_ELEMENT___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING;
+
+	/**
+	 * The operation id for the '<em>Get Applied Substereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE = CONNECTABLE_ELEMENT___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Get Model</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___GET_MODEL = CONNECTABLE_ELEMENT___GET_MODEL;
+
+	/**
+	 * The operation id for the '<em>Get Nearest Package</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___GET_NEAREST_PACKAGE = CONNECTABLE_ELEMENT___GET_NEAREST_PACKAGE;
+
+	/**
+	 * The operation id for the '<em>Get Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___GET_RELATIONSHIPS = CONNECTABLE_ELEMENT___GET_RELATIONSHIPS;
+
+	/**
+	 * The operation id for the '<em>Get Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___GET_RELATIONSHIPS__ECLASS = CONNECTABLE_ELEMENT___GET_RELATIONSHIPS__ECLASS;
+
+	/**
+	 * The operation id for the '<em>Get Required Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___GET_REQUIRED_STEREOTYPE__STRING = CONNECTABLE_ELEMENT___GET_REQUIRED_STEREOTYPE__STRING;
+
+	/**
+	 * The operation id for the '<em>Get Required Stereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___GET_REQUIRED_STEREOTYPES = CONNECTABLE_ELEMENT___GET_REQUIRED_STEREOTYPES;
+
+	/**
+	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___GET_SOURCE_DIRECTED_RELATIONSHIPS = CONNECTABLE_ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS;
+
+	/**
+	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS = CONNECTABLE_ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS;
+
+	/**
+	 * The operation id for the '<em>Get Stereotype Application</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___GET_STEREOTYPE_APPLICATION__STEREOTYPE = CONNECTABLE_ELEMENT___GET_STEREOTYPE_APPLICATION__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Get Stereotype Applications</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___GET_STEREOTYPE_APPLICATIONS = CONNECTABLE_ELEMENT___GET_STEREOTYPE_APPLICATIONS;
+
+	/**
+	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___GET_TARGET_DIRECTED_RELATIONSHIPS = CONNECTABLE_ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS;
+
+	/**
+	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS = CONNECTABLE_ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS;
+
+	/**
+	 * The operation id for the '<em>Get Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___GET_VALUE__STEREOTYPE_STRING = CONNECTABLE_ELEMENT___GET_VALUE__STEREOTYPE_STRING;
+
+	/**
+	 * The operation id for the '<em>Has Keyword</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___HAS_KEYWORD__STRING = CONNECTABLE_ELEMENT___HAS_KEYWORD__STRING;
+
+	/**
+	 * The operation id for the '<em>Has Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___HAS_VALUE__STEREOTYPE_STRING = CONNECTABLE_ELEMENT___HAS_VALUE__STEREOTYPE_STRING;
+
+	/**
+	 * The operation id for the '<em>Is Stereotype Applicable</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___IS_STEREOTYPE_APPLICABLE__STEREOTYPE = CONNECTABLE_ELEMENT___IS_STEREOTYPE_APPLICABLE__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Is Stereotype Applied</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___IS_STEREOTYPE_APPLIED__STEREOTYPE = CONNECTABLE_ELEMENT___IS_STEREOTYPE_APPLIED__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Is Stereotype Required</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___IS_STEREOTYPE_REQUIRED__STEREOTYPE = CONNECTABLE_ELEMENT___IS_STEREOTYPE_REQUIRED__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Remove Keyword</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___REMOVE_KEYWORD__STRING = CONNECTABLE_ELEMENT___REMOVE_KEYWORD__STRING;
+
+	/**
+	 * The operation id for the '<em>Set Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___SET_VALUE__STEREOTYPE_STRING_OBJECT = CONNECTABLE_ELEMENT___SET_VALUE__STEREOTYPE_STRING_OBJECT;
+
+	/**
+	 * The operation id for the '<em>Unapply Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___UNAPPLY_STEREOTYPE__STEREOTYPE = CONNECTABLE_ELEMENT___UNAPPLY_STEREOTYPE__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>All Owned Elements</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___ALL_OWNED_ELEMENTS = CONNECTABLE_ELEMENT___ALL_OWNED_ELEMENTS;
+
+	/**
+	 * The operation id for the '<em>Must Be Owned</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___MUST_BE_OWNED = CONNECTABLE_ELEMENT___MUST_BE_OWNED;
+
+	/**
+	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = CONNECTABLE_ELEMENT___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Has No Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = CONNECTABLE_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CONNECTABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Create Dependency</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___CREATE_DEPENDENCY__NAMEDELEMENT = CONNECTABLE_ELEMENT___CREATE_DEPENDENCY__NAMEDELEMENT;
+
+	/**
+	 * The operation id for the '<em>Create Usage</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___CREATE_USAGE__NAMEDELEMENT = CONNECTABLE_ELEMENT___CREATE_USAGE__NAMEDELEMENT;
+
+	/**
+	 * The operation id for the '<em>Get Label</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___GET_LABEL = CONNECTABLE_ELEMENT___GET_LABEL;
+
+	/**
+	 * The operation id for the '<em>Get Label</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___GET_LABEL__BOOLEAN = CONNECTABLE_ELEMENT___GET_LABEL__BOOLEAN;
+
+	/**
+	 * The operation id for the '<em>All Namespaces</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___ALL_NAMESPACES = CONNECTABLE_ELEMENT___ALL_NAMESPACES;
+
+	/**
+	 * The operation id for the '<em>All Owning Packages</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___ALL_OWNING_PACKAGES = CONNECTABLE_ELEMENT___ALL_OWNING_PACKAGES;
+
+	/**
+	 * The operation id for the '<em>Is Distinguishable From</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE = CONNECTABLE_ELEMENT___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___GET_NAMESPACE = CONNECTABLE_ELEMENT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___GET_QUALIFIED_NAME = CONNECTABLE_ELEMENT___GET_QUALIFIED_NAME;
+
+	/**
+	 * The operation id for the '<em>Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___SEPARATOR = CONNECTABLE_ELEMENT___SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Is Compatible With</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___IS_COMPATIBLE_WITH__PARAMETERABLEELEMENT = CONNECTABLE_ELEMENT___IS_COMPATIBLE_WITH__PARAMETERABLEELEMENT;
+
+	/**
+	 * The operation id for the '<em>Is Template Parameter</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___IS_TEMPLATE_PARAMETER = CONNECTABLE_ELEMENT___IS_TEMPLATE_PARAMETER;
+
+	/**
+	 * The operation id for the '<em>Get Ends</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___GET_ENDS = CONNECTABLE_ELEMENT___GET_ENDS;
+
+	/**
+	 * The operation id for the '<em>Validate Lower Ge0</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP = CONNECTABLE_ELEMENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Validate Upper Ge Lower</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP = CONNECTABLE_ELEMENT_OPERATION_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Validate Value Specification Constant</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP = CONNECTABLE_ELEMENT_OPERATION_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>Validate Value Specification No Side Effects</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP = CONNECTABLE_ELEMENT_OPERATION_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>Set Lower</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___SET_LOWER__INT = CONNECTABLE_ELEMENT_OPERATION_COUNT + 4;
+
+	/**
+	 * The operation id for the '<em>Set Upper</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___SET_UPPER__INT = CONNECTABLE_ELEMENT_OPERATION_COUNT + 5;
+
+	/**
+	 * The operation id for the '<em>Compatible With</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___COMPATIBLE_WITH__MULTIPLICITYELEMENT = CONNECTABLE_ELEMENT_OPERATION_COUNT + 6;
+
+	/**
+	 * The operation id for the '<em>Includes Cardinality</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___INCLUDES_CARDINALITY__INT = CONNECTABLE_ELEMENT_OPERATION_COUNT + 7;
+
+	/**
+	 * The operation id for the '<em>Includes Multiplicity</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___INCLUDES_MULTIPLICITY__MULTIPLICITYELEMENT = CONNECTABLE_ELEMENT_OPERATION_COUNT + 8;
+
+	/**
+	 * The operation id for the '<em>Is</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___IS__INT_INT = CONNECTABLE_ELEMENT_OPERATION_COUNT + 9;
+
+	/**
+	 * The operation id for the '<em>Is Multivalued</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___IS_MULTIVALUED = CONNECTABLE_ELEMENT_OPERATION_COUNT + 10;
+
+	/**
+	 * The operation id for the '<em>Get Lower</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___GET_LOWER = CONNECTABLE_ELEMENT_OPERATION_COUNT + 11;
+
+	/**
+	 * The operation id for the '<em>Lower Bound</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___LOWER_BOUND = CONNECTABLE_ELEMENT_OPERATION_COUNT + 12;
+
+	/**
+	 * The operation id for the '<em>Get Upper</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___GET_UPPER = CONNECTABLE_ELEMENT_OPERATION_COUNT + 13;
+
+	/**
+	 * The operation id for the '<em>Upper Bound</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___UPPER_BOUND = CONNECTABLE_ELEMENT_OPERATION_COUNT + 14;
+
+	/**
+	 * The operation id for the '<em>Validate Reentrant Behaviors</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___VALIDATE_REENTRANT_BEHAVIORS__DIAGNOSTICCHAIN_MAP = CONNECTABLE_ELEMENT_OPERATION_COUNT + 15;
+
+	/**
+	 * The operation id for the '<em>Validate Connector End</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___VALIDATE_CONNECTOR_END__DIAGNOSTICCHAIN_MAP = CONNECTABLE_ELEMENT_OPERATION_COUNT + 16;
+
+	/**
+	 * The operation id for the '<em>Validate Not Exception</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___VALIDATE_NOT_EXCEPTION__DIAGNOSTICCHAIN_MAP = CONNECTABLE_ELEMENT_OPERATION_COUNT + 17;
+
+	/**
+	 * The operation id for the '<em>Validate In And Out</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___VALIDATE_IN_AND_OUT__DIAGNOSTICCHAIN_MAP = CONNECTABLE_ELEMENT_OPERATION_COUNT + 18;
+
+	/**
+	 * The operation id for the '<em>Validate Stream And Exception</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___VALIDATE_STREAM_AND_EXCEPTION__DIAGNOSTICCHAIN_MAP = CONNECTABLE_ELEMENT_OPERATION_COUNT + 19;
+
+	/**
+	 * The operation id for the '<em>Is Set Default</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___IS_SET_DEFAULT = CONNECTABLE_ELEMENT_OPERATION_COUNT + 20;
+
+	/**
+	 * The operation id for the '<em>Set Boolean Default Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___SET_BOOLEAN_DEFAULT_VALUE__BOOLEAN = CONNECTABLE_ELEMENT_OPERATION_COUNT + 21;
+
+	/**
+	 * The operation id for the '<em>Set Default</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___SET_DEFAULT__STRING = CONNECTABLE_ELEMENT_OPERATION_COUNT + 22;
+
+	/**
+	 * The operation id for the '<em>Set Integer Default Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___SET_INTEGER_DEFAULT_VALUE__INT = CONNECTABLE_ELEMENT_OPERATION_COUNT + 23;
+
+	/**
+	 * The operation id for the '<em>Set Null Default Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___SET_NULL_DEFAULT_VALUE = CONNECTABLE_ELEMENT_OPERATION_COUNT + 24;
+
+	/**
+	 * The operation id for the '<em>Set Real Default Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___SET_REAL_DEFAULT_VALUE__DOUBLE = CONNECTABLE_ELEMENT_OPERATION_COUNT + 25;
+
+	/**
+	 * The operation id for the '<em>Set String Default Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___SET_STRING_DEFAULT_VALUE__STRING = CONNECTABLE_ELEMENT_OPERATION_COUNT + 26;
+
+	/**
+	 * The operation id for the '<em>Set Unlimited Natural Default Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___SET_UNLIMITED_NATURAL_DEFAULT_VALUE__INT = CONNECTABLE_ELEMENT_OPERATION_COUNT + 27;
+
+	/**
+	 * The operation id for the '<em>Unset Default</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___UNSET_DEFAULT = CONNECTABLE_ELEMENT_OPERATION_COUNT + 28;
+
+	/**
+	 * The operation id for the '<em>Get Default</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER___GET_DEFAULT = CONNECTABLE_ELEMENT_OPERATION_COUNT + 29;
+
+	/**
+	 * The number of operations of the '<em>Parameter</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_OPERATION_COUNT = CONNECTABLE_ELEMENT_OPERATION_COUNT + 30;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET__EANNOTATIONS = NAMED_ELEMENT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Owned Comment</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET__OWNED_COMMENT = NAMED_ELEMENT__OWNED_COMMENT;
+
+	/**
+	 * The feature id for the '<em><b>Owned Element</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET__OWNED_ELEMENT = NAMED_ELEMENT__OWNED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Owner</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET__OWNER = NAMED_ELEMENT__OWNER;
+
+	/**
+	 * The feature id for the '<em><b>Client Dependency</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET__CLIENT_DEPENDENCY = NAMED_ELEMENT__CLIENT_DEPENDENCY;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET__NAME = NAMED_ELEMENT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Name Expression</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET__NAME_EXPRESSION = NAMED_ELEMENT__NAME_EXPRESSION;
+
+	/**
+	 * The feature id for the '<em><b>Namespace</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET__NAMESPACE = NAMED_ELEMENT__NAMESPACE;
+
+	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET__QUALIFIED_NAME = NAMED_ELEMENT__QUALIFIED_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Visibility</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET__VISIBILITY = NAMED_ELEMENT__VISIBILITY;
+
+	/**
+	 * The feature id for the '<em><b>Condition</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET__CONDITION = NAMED_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Parameter</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET__PARAMETER = NAMED_ELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Parameter Set</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>Get EAnnotation</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___GET_EANNOTATION__STRING = NAMED_ELEMENT___GET_EANNOTATION__STRING;
+
+	/**
+	 * The operation id for the '<em>Validate Has Owner</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Not Own Self</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Add Keyword</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___ADD_KEYWORD__STRING = NAMED_ELEMENT___ADD_KEYWORD__STRING;
+
+	/**
+	 * The operation id for the '<em>Apply Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___APPLY_STEREOTYPE__STEREOTYPE = NAMED_ELEMENT___APPLY_STEREOTYPE__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Create EAnnotation</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___CREATE_EANNOTATION__STRING = NAMED_ELEMENT___CREATE_EANNOTATION__STRING;
+
+	/**
+	 * The operation id for the '<em>Destroy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___DESTROY = NAMED_ELEMENT___DESTROY;
+
+	/**
+	 * The operation id for the '<em>Get Keywords</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___GET_KEYWORDS = NAMED_ELEMENT___GET_KEYWORDS;
+
+	/**
+	 * The operation id for the '<em>Get Applicable Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___GET_APPLICABLE_STEREOTYPE__STRING = NAMED_ELEMENT___GET_APPLICABLE_STEREOTYPE__STRING;
+
+	/**
+	 * The operation id for the '<em>Get Applicable Stereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___GET_APPLICABLE_STEREOTYPES = NAMED_ELEMENT___GET_APPLICABLE_STEREOTYPES;
+
+	/**
+	 * The operation id for the '<em>Get Applied Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___GET_APPLIED_STEREOTYPE__STRING = NAMED_ELEMENT___GET_APPLIED_STEREOTYPE__STRING;
+
+	/**
+	 * The operation id for the '<em>Get Applied Stereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___GET_APPLIED_STEREOTYPES = NAMED_ELEMENT___GET_APPLIED_STEREOTYPES;
+
+	/**
+	 * The operation id for the '<em>Get Applied Substereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING = NAMED_ELEMENT___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING;
+
+	/**
+	 * The operation id for the '<em>Get Applied Substereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE = NAMED_ELEMENT___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Get Model</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___GET_MODEL = NAMED_ELEMENT___GET_MODEL;
+
+	/**
+	 * The operation id for the '<em>Get Nearest Package</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___GET_NEAREST_PACKAGE = NAMED_ELEMENT___GET_NEAREST_PACKAGE;
+
+	/**
+	 * The operation id for the '<em>Get Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___GET_RELATIONSHIPS = NAMED_ELEMENT___GET_RELATIONSHIPS;
+
+	/**
+	 * The operation id for the '<em>Get Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___GET_RELATIONSHIPS__ECLASS = NAMED_ELEMENT___GET_RELATIONSHIPS__ECLASS;
+
+	/**
+	 * The operation id for the '<em>Get Required Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___GET_REQUIRED_STEREOTYPE__STRING = NAMED_ELEMENT___GET_REQUIRED_STEREOTYPE__STRING;
+
+	/**
+	 * The operation id for the '<em>Get Required Stereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___GET_REQUIRED_STEREOTYPES = NAMED_ELEMENT___GET_REQUIRED_STEREOTYPES;
+
+	/**
+	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___GET_SOURCE_DIRECTED_RELATIONSHIPS = NAMED_ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS;
+
+	/**
+	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS = NAMED_ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS;
+
+	/**
+	 * The operation id for the '<em>Get Stereotype Application</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___GET_STEREOTYPE_APPLICATION__STEREOTYPE = NAMED_ELEMENT___GET_STEREOTYPE_APPLICATION__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Get Stereotype Applications</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___GET_STEREOTYPE_APPLICATIONS = NAMED_ELEMENT___GET_STEREOTYPE_APPLICATIONS;
+
+	/**
+	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___GET_TARGET_DIRECTED_RELATIONSHIPS = NAMED_ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS;
+
+	/**
+	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS = NAMED_ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS;
+
+	/**
+	 * The operation id for the '<em>Get Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___GET_VALUE__STEREOTYPE_STRING = NAMED_ELEMENT___GET_VALUE__STEREOTYPE_STRING;
+
+	/**
+	 * The operation id for the '<em>Has Keyword</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___HAS_KEYWORD__STRING = NAMED_ELEMENT___HAS_KEYWORD__STRING;
+
+	/**
+	 * The operation id for the '<em>Has Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___HAS_VALUE__STEREOTYPE_STRING = NAMED_ELEMENT___HAS_VALUE__STEREOTYPE_STRING;
+
+	/**
+	 * The operation id for the '<em>Is Stereotype Applicable</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___IS_STEREOTYPE_APPLICABLE__STEREOTYPE = NAMED_ELEMENT___IS_STEREOTYPE_APPLICABLE__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Is Stereotype Applied</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___IS_STEREOTYPE_APPLIED__STEREOTYPE = NAMED_ELEMENT___IS_STEREOTYPE_APPLIED__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Is Stereotype Required</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___IS_STEREOTYPE_REQUIRED__STEREOTYPE = NAMED_ELEMENT___IS_STEREOTYPE_REQUIRED__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Remove Keyword</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___REMOVE_KEYWORD__STRING = NAMED_ELEMENT___REMOVE_KEYWORD__STRING;
+
+	/**
+	 * The operation id for the '<em>Set Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___SET_VALUE__STEREOTYPE_STRING_OBJECT = NAMED_ELEMENT___SET_VALUE__STEREOTYPE_STRING_OBJECT;
+
+	/**
+	 * The operation id for the '<em>Unapply Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___UNAPPLY_STEREOTYPE__STEREOTYPE = NAMED_ELEMENT___UNAPPLY_STEREOTYPE__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>All Owned Elements</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___ALL_OWNED_ELEMENTS = NAMED_ELEMENT___ALL_OWNED_ELEMENTS;
+
+	/**
+	 * The operation id for the '<em>Must Be Owned</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___MUST_BE_OWNED = NAMED_ELEMENT___MUST_BE_OWNED;
+
+	/**
+	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Has No Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Create Dependency</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___CREATE_DEPENDENCY__NAMEDELEMENT = NAMED_ELEMENT___CREATE_DEPENDENCY__NAMEDELEMENT;
+
+	/**
+	 * The operation id for the '<em>Create Usage</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___CREATE_USAGE__NAMEDELEMENT = NAMED_ELEMENT___CREATE_USAGE__NAMEDELEMENT;
+
+	/**
+	 * The operation id for the '<em>Get Label</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___GET_LABEL = NAMED_ELEMENT___GET_LABEL;
+
+	/**
+	 * The operation id for the '<em>Get Label</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___GET_LABEL__BOOLEAN = NAMED_ELEMENT___GET_LABEL__BOOLEAN;
+
+	/**
+	 * The operation id for the '<em>All Namespaces</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___ALL_NAMESPACES = NAMED_ELEMENT___ALL_NAMESPACES;
+
+	/**
+	 * The operation id for the '<em>All Owning Packages</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___ALL_OWNING_PACKAGES = NAMED_ELEMENT___ALL_OWNING_PACKAGES;
+
+	/**
+	 * The operation id for the '<em>Is Distinguishable From</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE = NAMED_ELEMENT___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___GET_NAMESPACE = NAMED_ELEMENT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___GET_QUALIFIED_NAME = NAMED_ELEMENT___GET_QUALIFIED_NAME;
+
+	/**
+	 * The operation id for the '<em>Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___SEPARATOR = NAMED_ELEMENT___SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Validate Two Parameter Sets</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___VALIDATE_TWO_PARAMETER_SETS__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Validate Input</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___VALIDATE_INPUT__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT_OPERATION_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Validate Same Parameterized Entity</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET___VALIDATE_SAME_PARAMETERIZED_ENTITY__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT_OPERATION_COUNT + 2;
+
+	/**
+	 * The number of operations of the '<em>Parameter Set</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_SET_OPERATION_COUNT = NAMED_ELEMENT_OPERATION_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__EANNOTATIONS = CLASSIFIER__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Owned Comment</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__OWNED_COMMENT = CLASSIFIER__OWNED_COMMENT;
+
+	/**
+	 * The feature id for the '<em><b>Owned Element</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__OWNED_ELEMENT = CLASSIFIER__OWNED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Owner</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__OWNER = CLASSIFIER__OWNER;
+
+	/**
+	 * The feature id for the '<em><b>Client Dependency</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__CLIENT_DEPENDENCY = CLASSIFIER__CLIENT_DEPENDENCY;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__NAME = CLASSIFIER__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Name Expression</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__NAME_EXPRESSION = CLASSIFIER__NAME_EXPRESSION;
+
+	/**
+	 * The feature id for the '<em><b>Namespace</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__NAMESPACE = CLASSIFIER__NAMESPACE;
+
+	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__QUALIFIED_NAME = CLASSIFIER__QUALIFIED_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Visibility</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__VISIBILITY = CLASSIFIER__VISIBILITY;
+
+	/**
+	 * The feature id for the '<em><b>Element Import</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__ELEMENT_IMPORT = CLASSIFIER__ELEMENT_IMPORT;
+
+	/**
+	 * The feature id for the '<em><b>Package Import</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__PACKAGE_IMPORT = CLASSIFIER__PACKAGE_IMPORT;
+
+	/**
+	 * The feature id for the '<em><b>Owned Rule</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__OWNED_RULE = CLASSIFIER__OWNED_RULE;
+
+	/**
+	 * The feature id for the '<em><b>Owned Member</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__OWNED_MEMBER = CLASSIFIER__OWNED_MEMBER;
+
+	/**
+	 * The feature id for the '<em><b>Imported Member</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__IMPORTED_MEMBER = CLASSIFIER__IMPORTED_MEMBER;
+
+	/**
+	 * The feature id for the '<em><b>Member</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__MEMBER = CLASSIFIER__MEMBER;
+
+	/**
+	 * The feature id for the '<em><b>Is Leaf</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__IS_LEAF = CLASSIFIER__IS_LEAF;
+
+	/**
+	 * The feature id for the '<em><b>Redefined Element</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__REDEFINED_ELEMENT = CLASSIFIER__REDEFINED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Redefinition Context</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__REDEFINITION_CONTEXT = CLASSIFIER__REDEFINITION_CONTEXT;
+
+	/**
+	 * The feature id for the '<em><b>Owning Template Parameter</b></em>' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__OWNING_TEMPLATE_PARAMETER = CLASSIFIER__OWNING_TEMPLATE_PARAMETER;
+
+	/**
+	 * The feature id for the '<em><b>Template Parameter</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__TEMPLATE_PARAMETER = CLASSIFIER__TEMPLATE_PARAMETER;
+
+	/**
+	 * The feature id for the '<em><b>Package</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__PACKAGE = CLASSIFIER__PACKAGE;
+
+	/**
+	 * The feature id for the '<em><b>Owned Template Signature</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__OWNED_TEMPLATE_SIGNATURE = CLASSIFIER__OWNED_TEMPLATE_SIGNATURE;
+
+	/**
+	 * The feature id for the '<em><b>Template Binding</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__TEMPLATE_BINDING = CLASSIFIER__TEMPLATE_BINDING;
+
+	/**
+	 * The feature id for the '<em><b>Feature</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__FEATURE = CLASSIFIER__FEATURE;
+
+	/**
+	 * The feature id for the '<em><b>Attribute</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__ATTRIBUTE = CLASSIFIER__ATTRIBUTE;
+
+	/**
+	 * The feature id for the '<em><b>Collaboration Use</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__COLLABORATION_USE = CLASSIFIER__COLLABORATION_USE;
+
+	/**
+	 * The feature id for the '<em><b>General</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__GENERAL = CLASSIFIER__GENERAL;
+
+	/**
+	 * The feature id for the '<em><b>Generalization</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__GENERALIZATION = CLASSIFIER__GENERALIZATION;
+
+	/**
+	 * The feature id for the '<em><b>Powertype Extent</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__POWERTYPE_EXTENT = CLASSIFIER__POWERTYPE_EXTENT;
+
+	/**
+	 * The feature id for the '<em><b>Inherited Member</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__INHERITED_MEMBER = CLASSIFIER__INHERITED_MEMBER;
+
+	/**
+	 * The feature id for the '<em><b>Is Abstract</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__IS_ABSTRACT = CLASSIFIER__IS_ABSTRACT;
+
+	/**
+	 * The feature id for the '<em><b>Is Final Specialization</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__IS_FINAL_SPECIALIZATION = CLASSIFIER__IS_FINAL_SPECIALIZATION;
+
+	/**
+	 * The feature id for the '<em><b>Owned Use Case</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__OWNED_USE_CASE = CLASSIFIER__OWNED_USE_CASE;
+
+	/**
+	 * The feature id for the '<em><b>Use Case</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__USE_CASE = CLASSIFIER__USE_CASE;
+
+	/**
+	 * The feature id for the '<em><b>Redefined Classifier</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__REDEFINED_CLASSIFIER = CLASSIFIER__REDEFINED_CLASSIFIER;
+
+	/**
+	 * The feature id for the '<em><b>Representation</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__REPRESENTATION = CLASSIFIER__REPRESENTATION;
+
+	/**
+	 * The feature id for the '<em><b>Substitution</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__SUBSTITUTION = CLASSIFIER__SUBSTITUTION;
+
+	/**
+	 * The feature id for the '<em><b>Owned Attribute</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__OWNED_ATTRIBUTE = CLASSIFIER_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Owned Operation</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__OWNED_OPERATION = CLASSIFIER_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Data Type</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE_FEATURE_COUNT = CLASSIFIER_FEATURE_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>Get EAnnotation</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_EANNOTATION__STRING = CLASSIFIER___GET_EANNOTATION__STRING;
+
+	/**
+	 * The operation id for the '<em>Validate Has Owner</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Not Own Self</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Add Keyword</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___ADD_KEYWORD__STRING = CLASSIFIER___ADD_KEYWORD__STRING;
+
+	/**
+	 * The operation id for the '<em>Apply Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___APPLY_STEREOTYPE__STEREOTYPE = CLASSIFIER___APPLY_STEREOTYPE__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Create EAnnotation</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___CREATE_EANNOTATION__STRING = CLASSIFIER___CREATE_EANNOTATION__STRING;
+
+	/**
+	 * The operation id for the '<em>Destroy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___DESTROY = CLASSIFIER___DESTROY;
+
+	/**
+	 * The operation id for the '<em>Get Keywords</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_KEYWORDS = CLASSIFIER___GET_KEYWORDS;
+
+	/**
+	 * The operation id for the '<em>Get Applicable Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_APPLICABLE_STEREOTYPE__STRING = CLASSIFIER___GET_APPLICABLE_STEREOTYPE__STRING;
+
+	/**
+	 * The operation id for the '<em>Get Applicable Stereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_APPLICABLE_STEREOTYPES = CLASSIFIER___GET_APPLICABLE_STEREOTYPES;
+
+	/**
+	 * The operation id for the '<em>Get Applied Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_APPLIED_STEREOTYPE__STRING = CLASSIFIER___GET_APPLIED_STEREOTYPE__STRING;
+
+	/**
+	 * The operation id for the '<em>Get Applied Stereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_APPLIED_STEREOTYPES = CLASSIFIER___GET_APPLIED_STEREOTYPES;
+
+	/**
+	 * The operation id for the '<em>Get Applied Substereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING = CLASSIFIER___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING;
+
+	/**
+	 * The operation id for the '<em>Get Applied Substereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE = CLASSIFIER___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Get Model</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_MODEL = CLASSIFIER___GET_MODEL;
+
+	/**
+	 * The operation id for the '<em>Get Nearest Package</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_NEAREST_PACKAGE = CLASSIFIER___GET_NEAREST_PACKAGE;
+
+	/**
+	 * The operation id for the '<em>Get Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_RELATIONSHIPS = CLASSIFIER___GET_RELATIONSHIPS;
+
+	/**
+	 * The operation id for the '<em>Get Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_RELATIONSHIPS__ECLASS = CLASSIFIER___GET_RELATIONSHIPS__ECLASS;
+
+	/**
+	 * The operation id for the '<em>Get Required Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_REQUIRED_STEREOTYPE__STRING = CLASSIFIER___GET_REQUIRED_STEREOTYPE__STRING;
+
+	/**
+	 * The operation id for the '<em>Get Required Stereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_REQUIRED_STEREOTYPES = CLASSIFIER___GET_REQUIRED_STEREOTYPES;
+
+	/**
+	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_SOURCE_DIRECTED_RELATIONSHIPS = CLASSIFIER___GET_SOURCE_DIRECTED_RELATIONSHIPS;
+
+	/**
+	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS = CLASSIFIER___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS;
+
+	/**
+	 * The operation id for the '<em>Get Stereotype Application</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_STEREOTYPE_APPLICATION__STEREOTYPE = CLASSIFIER___GET_STEREOTYPE_APPLICATION__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Get Stereotype Applications</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_STEREOTYPE_APPLICATIONS = CLASSIFIER___GET_STEREOTYPE_APPLICATIONS;
+
+	/**
+	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_TARGET_DIRECTED_RELATIONSHIPS = CLASSIFIER___GET_TARGET_DIRECTED_RELATIONSHIPS;
+
+	/**
+	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS = CLASSIFIER___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS;
+
+	/**
+	 * The operation id for the '<em>Get Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_VALUE__STEREOTYPE_STRING = CLASSIFIER___GET_VALUE__STEREOTYPE_STRING;
+
+	/**
+	 * The operation id for the '<em>Has Keyword</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___HAS_KEYWORD__STRING = CLASSIFIER___HAS_KEYWORD__STRING;
+
+	/**
+	 * The operation id for the '<em>Has Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___HAS_VALUE__STEREOTYPE_STRING = CLASSIFIER___HAS_VALUE__STEREOTYPE_STRING;
+
+	/**
+	 * The operation id for the '<em>Is Stereotype Applicable</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___IS_STEREOTYPE_APPLICABLE__STEREOTYPE = CLASSIFIER___IS_STEREOTYPE_APPLICABLE__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Is Stereotype Applied</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___IS_STEREOTYPE_APPLIED__STEREOTYPE = CLASSIFIER___IS_STEREOTYPE_APPLIED__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Is Stereotype Required</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___IS_STEREOTYPE_REQUIRED__STEREOTYPE = CLASSIFIER___IS_STEREOTYPE_REQUIRED__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Remove Keyword</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___REMOVE_KEYWORD__STRING = CLASSIFIER___REMOVE_KEYWORD__STRING;
+
+	/**
+	 * The operation id for the '<em>Set Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___SET_VALUE__STEREOTYPE_STRING_OBJECT = CLASSIFIER___SET_VALUE__STEREOTYPE_STRING_OBJECT;
+
+	/**
+	 * The operation id for the '<em>Unapply Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___UNAPPLY_STEREOTYPE__STEREOTYPE = CLASSIFIER___UNAPPLY_STEREOTYPE__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>All Owned Elements</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___ALL_OWNED_ELEMENTS = CLASSIFIER___ALL_OWNED_ELEMENTS;
+
+	/**
+	 * The operation id for the '<em>Must Be Owned</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___MUST_BE_OWNED = CLASSIFIER___MUST_BE_OWNED;
+
+	/**
+	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Has No Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Create Dependency</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___CREATE_DEPENDENCY__NAMEDELEMENT = CLASSIFIER___CREATE_DEPENDENCY__NAMEDELEMENT;
+
+	/**
+	 * The operation id for the '<em>Create Usage</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___CREATE_USAGE__NAMEDELEMENT = CLASSIFIER___CREATE_USAGE__NAMEDELEMENT;
+
+	/**
+	 * The operation id for the '<em>Get Label</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_LABEL = CLASSIFIER___GET_LABEL;
+
+	/**
+	 * The operation id for the '<em>Get Label</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_LABEL__BOOLEAN = CLASSIFIER___GET_LABEL__BOOLEAN;
+
+	/**
+	 * The operation id for the '<em>All Namespaces</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___ALL_NAMESPACES = CLASSIFIER___ALL_NAMESPACES;
+
+	/**
+	 * The operation id for the '<em>All Owning Packages</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___ALL_OWNING_PACKAGES = CLASSIFIER___ALL_OWNING_PACKAGES;
+
+	/**
+	 * The operation id for the '<em>Is Distinguishable From</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE = CLASSIFIER___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_NAMESPACE = CLASSIFIER___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_QUALIFIED_NAME = CLASSIFIER___GET_QUALIFIED_NAME;
+
+	/**
+	 * The operation id for the '<em>Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___SEPARATOR = CLASSIFIER___SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Validate Members Distinguishable</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___VALIDATE_MEMBERS_DISTINGUISHABLE__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_MEMBERS_DISTINGUISHABLE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Create Element Import</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___CREATE_ELEMENT_IMPORT__PACKAGEABLEELEMENT_VISIBILITYKIND = CLASSIFIER___CREATE_ELEMENT_IMPORT__PACKAGEABLEELEMENT_VISIBILITYKIND;
+
+	/**
+	 * The operation id for the '<em>Create Package Import</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___CREATE_PACKAGE_IMPORT__PACKAGE_VISIBILITYKIND = CLASSIFIER___CREATE_PACKAGE_IMPORT__PACKAGE_VISIBILITYKIND;
+
+	/**
+	 * The operation id for the '<em>Get Imported Elements</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_IMPORTED_ELEMENTS = CLASSIFIER___GET_IMPORTED_ELEMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Imported Packages</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_IMPORTED_PACKAGES = CLASSIFIER___GET_IMPORTED_PACKAGES;
+
+	/**
+	 * The operation id for the '<em>Exclude Collisions</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___EXCLUDE_COLLISIONS__ELIST = CLASSIFIER___EXCLUDE_COLLISIONS__ELIST;
+
+	/**
+	 * The operation id for the '<em>Get Names Of Member</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_NAMES_OF_MEMBER__NAMEDELEMENT = CLASSIFIER___GET_NAMES_OF_MEMBER__NAMEDELEMENT;
+
+	/**
+	 * The operation id for the '<em>Import Members</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___IMPORT_MEMBERS__ELIST = CLASSIFIER___IMPORT_MEMBERS__ELIST;
+
+	/**
+	 * The operation id for the '<em>Get Imported Members</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_IMPORTED_MEMBERS = CLASSIFIER___GET_IMPORTED_MEMBERS;
+
+	/**
+	 * The operation id for the '<em>Members Are Distinguishable</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___MEMBERS_ARE_DISTINGUISHABLE = CLASSIFIER___MEMBERS_ARE_DISTINGUISHABLE;
+
+	/**
+	 * The operation id for the '<em>Get Owned Members</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_OWNED_MEMBERS = CLASSIFIER___GET_OWNED_MEMBERS;
+
+	/**
+	 * The operation id for the '<em>Validate Redefinition Consistent</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___VALIDATE_REDEFINITION_CONSISTENT__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_REDEFINITION_CONSISTENT__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Non Leaf Redefinition</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___VALIDATE_NON_LEAF_REDEFINITION__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_NON_LEAF_REDEFINITION__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Redefinition Context Valid</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___VALIDATE_REDEFINITION_CONTEXT_VALID__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_REDEFINITION_CONTEXT_VALID__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Is Consistent With</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___IS_CONSISTENT_WITH__REDEFINABLEELEMENT = CLASSIFIER___IS_CONSISTENT_WITH__REDEFINABLEELEMENT;
+
+	/**
+	 * The operation id for the '<em>Is Redefinition Context Valid</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___IS_REDEFINITION_CONTEXT_VALID__REDEFINABLEELEMENT = CLASSIFIER___IS_REDEFINITION_CONTEXT_VALID__REDEFINABLEELEMENT;
+
+	/**
+	 * The operation id for the '<em>Is Compatible With</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___IS_COMPATIBLE_WITH__PARAMETERABLEELEMENT = CLASSIFIER___IS_COMPATIBLE_WITH__PARAMETERABLEELEMENT;
+
+	/**
+	 * The operation id for the '<em>Is Template Parameter</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___IS_TEMPLATE_PARAMETER = CLASSIFIER___IS_TEMPLATE_PARAMETER;
+
+	/**
+	 * The operation id for the '<em>Create Association</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___CREATE_ASSOCIATION__BOOLEAN_AGGREGATIONKIND_STRING_INT_INT_TYPE_BOOLEAN_AGGREGATIONKIND_STRING_INT_INT = CLASSIFIER___CREATE_ASSOCIATION__BOOLEAN_AGGREGATIONKIND_STRING_INT_INT_TYPE_BOOLEAN_AGGREGATIONKIND_STRING_INT_INT;
+
+	/**
+	 * The operation id for the '<em>Get Associations</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_ASSOCIATIONS = CLASSIFIER___GET_ASSOCIATIONS;
+
+	/**
+	 * The operation id for the '<em>Conforms To</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___CONFORMS_TO__TYPE = CLASSIFIER___CONFORMS_TO__TYPE;
+
+	/**
+	 * The operation id for the '<em>Is Template</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___IS_TEMPLATE = CLASSIFIER___IS_TEMPLATE;
+
+	/**
+	 * The operation id for the '<em>Parameterable Elements</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___PARAMETERABLE_ELEMENTS = CLASSIFIER___PARAMETERABLE_ELEMENTS;
+
+	/**
+	 * The operation id for the '<em>Validate Non Final Parents</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___VALIDATE_NON_FINAL_PARENTS__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_NON_FINAL_PARENTS__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate No Cycles In Generalization</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Get All Attributes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_ALL_ATTRIBUTES = CLASSIFIER___GET_ALL_ATTRIBUTES;
+
+	/**
+	 * The operation id for the '<em>Get All Operations</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_ALL_OPERATIONS = CLASSIFIER___GET_ALL_OPERATIONS;
+
+	/**
+	 * The operation id for the '<em>Get All Used Interfaces</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_ALL_USED_INTERFACES = CLASSIFIER___GET_ALL_USED_INTERFACES;
+
+	/**
+	 * The operation id for the '<em>Get Operation</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_OPERATION__STRING_ELIST_ELIST = CLASSIFIER___GET_OPERATION__STRING_ELIST_ELIST;
+
+	/**
+	 * The operation id for the '<em>Get Operation</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_OPERATION__STRING_ELIST_ELIST_BOOLEAN = CLASSIFIER___GET_OPERATION__STRING_ELIST_ELIST_BOOLEAN;
+
+	/**
+	 * The operation id for the '<em>Get Operations</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_OPERATIONS = CLASSIFIER___GET_OPERATIONS;
+
+	/**
+	 * The operation id for the '<em>Get Used Interfaces</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_USED_INTERFACES = CLASSIFIER___GET_USED_INTERFACES;
+
+	/**
+	 * The operation id for the '<em>All Features</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___ALL_FEATURES = CLASSIFIER___ALL_FEATURES;
+
+	/**
+	 * The operation id for the '<em>All Parents</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___ALL_PARENTS = CLASSIFIER___ALL_PARENTS;
+
+	/**
+	 * The operation id for the '<em>Conforms To</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___CONFORMS_TO__CLASSIFIER = CLASSIFIER___CONFORMS_TO__CLASSIFIER;
+
+	/**
+	 * The operation id for the '<em>Get Generals</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_GENERALS = CLASSIFIER___GET_GENERALS;
+
+	/**
+	 * The operation id for the '<em>Has Visibility Of</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___HAS_VISIBILITY_OF__NAMEDELEMENT = CLASSIFIER___HAS_VISIBILITY_OF__NAMEDELEMENT;
+
+	/**
+	 * The operation id for the '<em>Inherit</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___INHERIT__ELIST = CLASSIFIER___INHERIT__ELIST;
+
+	/**
+	 * The operation id for the '<em>Inheritable Members</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___INHERITABLE_MEMBERS__CLASSIFIER = CLASSIFIER___INHERITABLE_MEMBERS__CLASSIFIER;
+
+	/**
+	 * The operation id for the '<em>Get Inherited Members</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___GET_INHERITED_MEMBERS = CLASSIFIER___GET_INHERITED_MEMBERS;
+
+	/**
+	 * The operation id for the '<em>May Specialize Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___MAY_SPECIALIZE_TYPE__CLASSIFIER = CLASSIFIER___MAY_SPECIALIZE_TYPE__CLASSIFIER;
+
+	/**
+	 * The operation id for the '<em>Parents</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___PARENTS = CLASSIFIER___PARENTS;
+
+	/**
+	 * The operation id for the '<em>Create Owned Attribute</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___CREATE_OWNED_ATTRIBUTE__STRING_TYPE_INT_INT = CLASSIFIER_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Create Owned Operation</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE___CREATE_OWNED_OPERATION__STRING_ELIST_ELIST_TYPE = CLASSIFIER_OPERATION_COUNT + 1;
+
+	/**
+	 * The number of operations of the '<em>Data Type</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE_OPERATION_COUNT = CLASSIFIER_OPERATION_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
 	int OPERATION_TEMPLATE_PARAMETER__EANNOTATIONS = TEMPLATE_PARAMETER__EANNOTATIONS;
 
 	/**
@@ -60499,6 +61812,15 @@
 	int OPERATION_TEMPLATE_PARAMETER__DEFAULT = TEMPLATE_PARAMETER__DEFAULT;
 
 	/**
+	 * The feature id for the '<em><b>Owned Default</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OPERATION_TEMPLATE_PARAMETER__OWNED_DEFAULT = TEMPLATE_PARAMETER__OWNED_DEFAULT;
+
+	/**
 	 * The feature id for the '<em><b>Owned Parametered Element</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -60517,15 +61839,6 @@
 	int OPERATION_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT = TEMPLATE_PARAMETER__PARAMETERED_ELEMENT;
 
 	/**
-	 * The feature id for the '<em><b>Owned Default</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int OPERATION_TEMPLATE_PARAMETER__OWNED_DEFAULT = TEMPLATE_PARAMETER__OWNED_DEFAULT;
-
-	/**
 	 * The feature id for the '<em><b>Signature</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -61147,15 +62460,6 @@
 	int EXTENSION_END__DEPLOYMENT = PROPERTY__DEPLOYMENT;
 
 	/**
-	 * The feature id for the '<em><b>Datatype</b></em>' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXTENSION_END__DATATYPE = PROPERTY__DATATYPE;
-
-	/**
 	 * The feature id for the '<em><b>Interface</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -61165,6 +62469,15 @@
 	int EXTENSION_END__INTERFACE = PROPERTY__INTERFACE;
 
 	/**
+	 * The feature id for the '<em><b>Datatype</b></em>' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXTENSION_END__DATATYPE = PROPERTY__DATATYPE;
+
+	/**
 	 * The feature id for the '<em><b>Aggregation</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -61642,15 +62955,6 @@
 	int EXTENSION_END___MUST_BE_OWNED = PROPERTY___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXTENSION_END___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -61669,6 +62973,15 @@
 	int EXTENSION_END___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXTENSION_END___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -61804,15 +63117,6 @@
 	int EXTENSION_END___IS_REDEFINITION_CONTEXT_VALID__REDEFINABLEELEMENT = PROPERTY___IS_REDEFINITION_CONTEXT_VALID__REDEFINABLEELEMENT;
 
 	/**
-	 * The operation id for the '<em>Validate Upper Ge Lower</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXTENSION_END___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Lower Ge0</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -61822,13 +63126,13 @@
 	int EXTENSION_END___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Value Specification No Side Effects</em>' operation.
+	 * The operation id for the '<em>Validate Upper Ge Lower</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EXTENSION_END___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP;
+	int EXTENSION_END___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Value Specification Constant</em>' operation.
@@ -61840,6 +63144,15 @@
 	int EXTENSION_END___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Value Specification No Side Effects</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXTENSION_END___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Set Lower</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -61975,40 +63288,13 @@
 	int EXTENSION_END___GET_DEPLOYED_ELEMENTS = PROPERTY___GET_DEPLOYED_ELEMENTS;
 
 	/**
-	 * The operation id for the '<em>Validate Subsetting Context Conforms</em>' operation.
+	 * The operation id for the '<em>Validate Subsetted Property Names</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EXTENSION_END___VALIDATE_SUBSETTING_CONTEXT_CONFORMS__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_SUBSETTING_CONTEXT_CONFORMS__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Derived Union Is Read Only</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXTENSION_END___VALIDATE_DERIVED_UNION_IS_READ_ONLY__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_DERIVED_UNION_IS_READ_ONLY__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Multiplicity Of Composite</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXTENSION_END___VALIDATE_MULTIPLICITY_OF_COMPOSITE__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_MULTIPLICITY_OF_COMPOSITE__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Redefined Property Inherited</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXTENSION_END___VALIDATE_REDEFINED_PROPERTY_INHERITED__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_REDEFINED_PROPERTY_INHERITED__DIAGNOSTICCHAIN_MAP;
+	int EXTENSION_END___VALIDATE_SUBSETTED_PROPERTY_NAMES__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_SUBSETTED_PROPERTY_NAMES__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Subsetting Rules</em>' operation.
@@ -62020,6 +63306,15 @@
 	int EXTENSION_END___VALIDATE_SUBSETTING_RULES__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_SUBSETTING_RULES__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Multiplicity Of Composite</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXTENSION_END___VALIDATE_MULTIPLICITY_OF_COMPOSITE__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_MULTIPLICITY_OF_COMPOSITE__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Validate Binding To Attribute</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -62029,13 +63324,22 @@
 	int EXTENSION_END___VALIDATE_BINDING_TO_ATTRIBUTE__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_BINDING_TO_ATTRIBUTE__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Derived Union Is Derived</em>' operation.
+	 * The operation id for the '<em>Validate Redefined Property Inherited</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EXTENSION_END___VALIDATE_DERIVED_UNION_IS_DERIVED__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_DERIVED_UNION_IS_DERIVED__DIAGNOSTICCHAIN_MAP;
+	int EXTENSION_END___VALIDATE_REDEFINED_PROPERTY_INHERITED__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_REDEFINED_PROPERTY_INHERITED__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Subsetting Context Conforms</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXTENSION_END___VALIDATE_SUBSETTING_CONTEXT_CONFORMS__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_SUBSETTING_CONTEXT_CONFORMS__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Deployment Target</em>' operation.
@@ -62047,13 +63351,22 @@
 	int EXTENSION_END___VALIDATE_DEPLOYMENT_TARGET__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_DEPLOYMENT_TARGET__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Subsetted Property Names</em>' operation.
+	 * The operation id for the '<em>Validate Derived Union Is Derived</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EXTENSION_END___VALIDATE_SUBSETTED_PROPERTY_NAMES__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_SUBSETTED_PROPERTY_NAMES__DIAGNOSTICCHAIN_MAP;
+	int EXTENSION_END___VALIDATE_DERIVED_UNION_IS_DERIVED__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_DERIVED_UNION_IS_DERIVED__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Derived Union Is Read Only</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXTENSION_END___VALIDATE_DERIVED_UNION_IS_READ_ONLY__DIAGNOSTICCHAIN_MAP = PROPERTY___VALIDATE_DERIVED_UNION_IS_READ_ONLY__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Get Other End</em>' operation.
@@ -62857,15 +64170,6 @@
 	int MODEL___MUST_BE_OWNED = PACKAGE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MODEL___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = PACKAGE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -62884,6 +64188,15 @@
 	int MODEL___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = PACKAGE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MODEL___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = PACKAGE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -64054,15 +65367,6 @@
 	int ENUMERATION___MUST_BE_OWNED = DATA_TYPE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ENUMERATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = DATA_TYPE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -64081,6 +65385,15 @@
 	int ENUMERATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = DATA_TYPE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ENUMERATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = DATA_TYPE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -64378,24 +65691,6 @@
 	int ENUMERATION___PARAMETERABLE_ELEMENTS = DATA_TYPE___PARAMETERABLE_ELEMENTS;
 
 	/**
-	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ENUMERATION___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = DATA_TYPE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ENUMERATION___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = DATA_TYPE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Non Final Parents</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -64414,6 +65709,24 @@
 	int ENUMERATION___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP = DATA_TYPE___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ENUMERATION___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = DATA_TYPE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ENUMERATION___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = DATA_TYPE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Get All Attributes</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -65089,15 +66402,6 @@
 	int INSTANCE_SPECIFICATION___MUST_BE_OWNED = DEPLOYMENT_TARGET___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INSTANCE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = DEPLOYMENT_TARGET___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -65116,6 +66420,15 @@
 	int INSTANCE_SPECIFICATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = DEPLOYMENT_TARGET___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INSTANCE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = DEPLOYMENT_TARGET___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -65233,22 +66546,13 @@
 	int INSTANCE_SPECIFICATION___IS_TEMPLATE_PARAMETER = DEPLOYMENT_TARGET_OPERATION_COUNT + 1;
 
 	/**
-	 * The operation id for the '<em>Validate Deployment Artifact</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INSTANCE_SPECIFICATION___VALIDATE_DEPLOYMENT_ARTIFACT__DIAGNOSTICCHAIN_MAP = DEPLOYMENT_TARGET_OPERATION_COUNT + 2;
-
-	/**
 	 * The operation id for the '<em>Validate Structural Feature</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int INSTANCE_SPECIFICATION___VALIDATE_STRUCTURAL_FEATURE__DIAGNOSTICCHAIN_MAP = DEPLOYMENT_TARGET_OPERATION_COUNT + 3;
+	int INSTANCE_SPECIFICATION___VALIDATE_STRUCTURAL_FEATURE__DIAGNOSTICCHAIN_MAP = DEPLOYMENT_TARGET_OPERATION_COUNT + 2;
 
 	/**
 	 * The operation id for the '<em>Validate Defining Feature</em>' operation.
@@ -65257,7 +66561,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INSTANCE_SPECIFICATION___VALIDATE_DEFINING_FEATURE__DIAGNOSTICCHAIN_MAP = DEPLOYMENT_TARGET_OPERATION_COUNT + 4;
+	int INSTANCE_SPECIFICATION___VALIDATE_DEFINING_FEATURE__DIAGNOSTICCHAIN_MAP = DEPLOYMENT_TARGET_OPERATION_COUNT + 3;
 
 	/**
 	 * The operation id for the '<em>Validate Deployment Target</em>' operation.
@@ -65266,7 +66570,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INSTANCE_SPECIFICATION___VALIDATE_DEPLOYMENT_TARGET__DIAGNOSTICCHAIN_MAP = DEPLOYMENT_TARGET_OPERATION_COUNT + 5;
+	int INSTANCE_SPECIFICATION___VALIDATE_DEPLOYMENT_TARGET__DIAGNOSTICCHAIN_MAP = DEPLOYMENT_TARGET_OPERATION_COUNT + 4;
+
+	/**
+	 * The operation id for the '<em>Validate Deployment Artifact</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INSTANCE_SPECIFICATION___VALIDATE_DEPLOYMENT_ARTIFACT__DIAGNOSTICCHAIN_MAP = DEPLOYMENT_TARGET_OPERATION_COUNT + 5;
 
 	/**
 	 * The number of operations of the '<em>Instance Specification</em>' class.
@@ -65782,15 +67095,6 @@
 	int ENUMERATION_LITERAL___MUST_BE_OWNED = INSTANCE_SPECIFICATION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ENUMERATION_LITERAL___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = INSTANCE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -65809,6 +67113,15 @@
 	int ENUMERATION_LITERAL___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = INSTANCE_SPECIFICATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ENUMERATION_LITERAL___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = INSTANCE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -65926,15 +67239,6 @@
 	int ENUMERATION_LITERAL___IS_TEMPLATE_PARAMETER = INSTANCE_SPECIFICATION___IS_TEMPLATE_PARAMETER;
 
 	/**
-	 * The operation id for the '<em>Validate Deployment Artifact</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ENUMERATION_LITERAL___VALIDATE_DEPLOYMENT_ARTIFACT__DIAGNOSTICCHAIN_MAP = INSTANCE_SPECIFICATION___VALIDATE_DEPLOYMENT_ARTIFACT__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Structural Feature</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -65962,6 +67266,15 @@
 	int ENUMERATION_LITERAL___VALIDATE_DEPLOYMENT_TARGET__DIAGNOSTICCHAIN_MAP = INSTANCE_SPECIFICATION___VALIDATE_DEPLOYMENT_TARGET__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Deployment Artifact</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ENUMERATION_LITERAL___VALIDATE_DEPLOYMENT_ARTIFACT__DIAGNOSTICCHAIN_MAP = INSTANCE_SPECIFICATION___VALIDATE_DEPLOYMENT_ARTIFACT__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Validate Classifier Equals Owning Enumeration</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -67114,15 +68427,6 @@
 	int PRIMITIVE_TYPE___MUST_BE_OWNED = DATA_TYPE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PRIMITIVE_TYPE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = DATA_TYPE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -67141,6 +68445,15 @@
 	int PRIMITIVE_TYPE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = DATA_TYPE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIMITIVE_TYPE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = DATA_TYPE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -67438,24 +68751,6 @@
 	int PRIMITIVE_TYPE___PARAMETERABLE_ELEMENTS = DATA_TYPE___PARAMETERABLE_ELEMENTS;
 
 	/**
-	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PRIMITIVE_TYPE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = DATA_TYPE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PRIMITIVE_TYPE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = DATA_TYPE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Non Final Parents</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -67474,6 +68769,24 @@
 	int PRIMITIVE_TYPE___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP = DATA_TYPE___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIMITIVE_TYPE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = DATA_TYPE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIMITIVE_TYPE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = DATA_TYPE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Get All Attributes</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -68149,15 +69462,6 @@
 	int USAGE___MUST_BE_OWNED = DEPENDENCY___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int USAGE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = DEPENDENCY___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -68176,6 +69480,15 @@
 	int USAGE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = DEPENDENCY___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USAGE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = DEPENDENCY___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -68743,15 +70056,6 @@
 	int COLLABORATION_USE___MUST_BE_OWNED = NAMED_ELEMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int COLLABORATION_USE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -68770,6 +70074,15 @@
 	int COLLABORATION_USE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLLABORATION_USE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -68860,13 +70173,13 @@
 	int COLLABORATION_USE___SEPARATOR = NAMED_ELEMENT___SEPARATOR;
 
 	/**
-	 * The operation id for the '<em>Validate Client Elements</em>' operation.
+	 * The operation id for the '<em>Validate Connectors</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int COLLABORATION_USE___VALIDATE_CLIENT_ELEMENTS__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT_OPERATION_COUNT + 0;
+	int COLLABORATION_USE___VALIDATE_CONNECTORS__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT_OPERATION_COUNT + 0;
 
 	/**
 	 * The operation id for the '<em>Validate Every Role</em>' operation.
@@ -68878,13 +70191,13 @@
 	int COLLABORATION_USE___VALIDATE_EVERY_ROLE__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT_OPERATION_COUNT + 1;
 
 	/**
-	 * The operation id for the '<em>Validate Connectors</em>' operation.
+	 * The operation id for the '<em>Validate Client Elements</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int COLLABORATION_USE___VALIDATE_CONNECTORS__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT_OPERATION_COUNT + 2;
+	int COLLABORATION_USE___VALIDATE_CLIENT_ELEMENTS__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT_OPERATION_COUNT + 2;
 
 	/**
 	 * The number of operations of the '<em>Collaboration Use</em>' class.
@@ -69652,15 +70965,6 @@
 	int COLLABORATION___MUST_BE_OWNED = STRUCTURED_CLASSIFIER___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int COLLABORATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = STRUCTURED_CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -69679,6 +70983,15 @@
 	int COLLABORATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = STRUCTURED_CLASSIFIER___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLLABORATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = STRUCTURED_CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -69976,24 +71289,6 @@
 	int COLLABORATION___PARAMETERABLE_ELEMENTS = STRUCTURED_CLASSIFIER___PARAMETERABLE_ELEMENTS;
 
 	/**
-	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int COLLABORATION___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = STRUCTURED_CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int COLLABORATION___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = STRUCTURED_CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Non Final Parents</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -70012,6 +71307,24 @@
 	int COLLABORATION___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP = STRUCTURED_CLASSIFIER___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLLABORATION___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = STRUCTURED_CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLLABORATION___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = STRUCTURED_CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Get All Attributes</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -70234,744 +71547,6 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CONNECTOR__EANNOTATIONS = FEATURE__EANNOTATIONS;
-
-	/**
-	 * The feature id for the '<em><b>Owned Comment</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR__OWNED_COMMENT = FEATURE__OWNED_COMMENT;
-
-	/**
-	 * The feature id for the '<em><b>Owned Element</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR__OWNED_ELEMENT = FEATURE__OWNED_ELEMENT;
-
-	/**
-	 * The feature id for the '<em><b>Owner</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR__OWNER = FEATURE__OWNER;
-
-	/**
-	 * The feature id for the '<em><b>Client Dependency</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR__CLIENT_DEPENDENCY = FEATURE__CLIENT_DEPENDENCY;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR__NAME = FEATURE__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Name Expression</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR__NAME_EXPRESSION = FEATURE__NAME_EXPRESSION;
-
-	/**
-	 * The feature id for the '<em><b>Namespace</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR__NAMESPACE = FEATURE__NAMESPACE;
-
-	/**
-	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR__QUALIFIED_NAME = FEATURE__QUALIFIED_NAME;
-
-	/**
-	 * The feature id for the '<em><b>Visibility</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR__VISIBILITY = FEATURE__VISIBILITY;
-
-	/**
-	 * The feature id for the '<em><b>Is Leaf</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR__IS_LEAF = FEATURE__IS_LEAF;
-
-	/**
-	 * The feature id for the '<em><b>Redefined Element</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR__REDEFINED_ELEMENT = FEATURE__REDEFINED_ELEMENT;
-
-	/**
-	 * The feature id for the '<em><b>Redefinition Context</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR__REDEFINITION_CONTEXT = FEATURE__REDEFINITION_CONTEXT;
-
-	/**
-	 * The feature id for the '<em><b>Featuring Classifier</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR__FEATURING_CLASSIFIER = FEATURE__FEATURING_CLASSIFIER;
-
-	/**
-	 * The feature id for the '<em><b>Is Static</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR__IS_STATIC = FEATURE__IS_STATIC;
-
-	/**
-	 * The feature id for the '<em><b>Contract</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR__CONTRACT = FEATURE_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>End</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR__END = FEATURE_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Kind</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR__KIND = FEATURE_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Redefined Connector</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR__REDEFINED_CONNECTOR = FEATURE_FEATURE_COUNT + 3;
-
-	/**
-	 * The feature id for the '<em><b>Type</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR__TYPE = FEATURE_FEATURE_COUNT + 4;
-
-	/**
-	 * The number of structural features of the '<em>Connector</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR_FEATURE_COUNT = FEATURE_FEATURE_COUNT + 5;
-
-	/**
-	 * The operation id for the '<em>Get EAnnotation</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___GET_EANNOTATION__STRING = FEATURE___GET_EANNOTATION__STRING;
-
-	/**
-	 * The operation id for the '<em>Validate Has Owner</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP = FEATURE___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Not Own Self</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP = FEATURE___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Add Keyword</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___ADD_KEYWORD__STRING = FEATURE___ADD_KEYWORD__STRING;
-
-	/**
-	 * The operation id for the '<em>Apply Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___APPLY_STEREOTYPE__STEREOTYPE = FEATURE___APPLY_STEREOTYPE__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Create EAnnotation</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___CREATE_EANNOTATION__STRING = FEATURE___CREATE_EANNOTATION__STRING;
-
-	/**
-	 * The operation id for the '<em>Destroy</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___DESTROY = FEATURE___DESTROY;
-
-	/**
-	 * The operation id for the '<em>Get Keywords</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___GET_KEYWORDS = FEATURE___GET_KEYWORDS;
-
-	/**
-	 * The operation id for the '<em>Get Applicable Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___GET_APPLICABLE_STEREOTYPE__STRING = FEATURE___GET_APPLICABLE_STEREOTYPE__STRING;
-
-	/**
-	 * The operation id for the '<em>Get Applicable Stereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___GET_APPLICABLE_STEREOTYPES = FEATURE___GET_APPLICABLE_STEREOTYPES;
-
-	/**
-	 * The operation id for the '<em>Get Applied Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___GET_APPLIED_STEREOTYPE__STRING = FEATURE___GET_APPLIED_STEREOTYPE__STRING;
-
-	/**
-	 * The operation id for the '<em>Get Applied Stereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___GET_APPLIED_STEREOTYPES = FEATURE___GET_APPLIED_STEREOTYPES;
-
-	/**
-	 * The operation id for the '<em>Get Applied Substereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING = FEATURE___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING;
-
-	/**
-	 * The operation id for the '<em>Get Applied Substereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE = FEATURE___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Get Model</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___GET_MODEL = FEATURE___GET_MODEL;
-
-	/**
-	 * The operation id for the '<em>Get Nearest Package</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___GET_NEAREST_PACKAGE = FEATURE___GET_NEAREST_PACKAGE;
-
-	/**
-	 * The operation id for the '<em>Get Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___GET_RELATIONSHIPS = FEATURE___GET_RELATIONSHIPS;
-
-	/**
-	 * The operation id for the '<em>Get Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___GET_RELATIONSHIPS__ECLASS = FEATURE___GET_RELATIONSHIPS__ECLASS;
-
-	/**
-	 * The operation id for the '<em>Get Required Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___GET_REQUIRED_STEREOTYPE__STRING = FEATURE___GET_REQUIRED_STEREOTYPE__STRING;
-
-	/**
-	 * The operation id for the '<em>Get Required Stereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___GET_REQUIRED_STEREOTYPES = FEATURE___GET_REQUIRED_STEREOTYPES;
-
-	/**
-	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___GET_SOURCE_DIRECTED_RELATIONSHIPS = FEATURE___GET_SOURCE_DIRECTED_RELATIONSHIPS;
-
-	/**
-	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS = FEATURE___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS;
-
-	/**
-	 * The operation id for the '<em>Get Stereotype Application</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___GET_STEREOTYPE_APPLICATION__STEREOTYPE = FEATURE___GET_STEREOTYPE_APPLICATION__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Get Stereotype Applications</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___GET_STEREOTYPE_APPLICATIONS = FEATURE___GET_STEREOTYPE_APPLICATIONS;
-
-	/**
-	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___GET_TARGET_DIRECTED_RELATIONSHIPS = FEATURE___GET_TARGET_DIRECTED_RELATIONSHIPS;
-
-	/**
-	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS = FEATURE___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS;
-
-	/**
-	 * The operation id for the '<em>Get Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___GET_VALUE__STEREOTYPE_STRING = FEATURE___GET_VALUE__STEREOTYPE_STRING;
-
-	/**
-	 * The operation id for the '<em>Has Keyword</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___HAS_KEYWORD__STRING = FEATURE___HAS_KEYWORD__STRING;
-
-	/**
-	 * The operation id for the '<em>Has Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___HAS_VALUE__STEREOTYPE_STRING = FEATURE___HAS_VALUE__STEREOTYPE_STRING;
-
-	/**
-	 * The operation id for the '<em>Is Stereotype Applicable</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___IS_STEREOTYPE_APPLICABLE__STEREOTYPE = FEATURE___IS_STEREOTYPE_APPLICABLE__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Is Stereotype Applied</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___IS_STEREOTYPE_APPLIED__STEREOTYPE = FEATURE___IS_STEREOTYPE_APPLIED__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Is Stereotype Required</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___IS_STEREOTYPE_REQUIRED__STEREOTYPE = FEATURE___IS_STEREOTYPE_REQUIRED__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Remove Keyword</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___REMOVE_KEYWORD__STRING = FEATURE___REMOVE_KEYWORD__STRING;
-
-	/**
-	 * The operation id for the '<em>Set Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___SET_VALUE__STEREOTYPE_STRING_OBJECT = FEATURE___SET_VALUE__STEREOTYPE_STRING_OBJECT;
-
-	/**
-	 * The operation id for the '<em>Unapply Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___UNAPPLY_STEREOTYPE__STEREOTYPE = FEATURE___UNAPPLY_STEREOTYPE__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>All Owned Elements</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___ALL_OWNED_ELEMENTS = FEATURE___ALL_OWNED_ELEMENTS;
-
-	/**
-	 * The operation id for the '<em>Must Be Owned</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___MUST_BE_OWNED = FEATURE___MUST_BE_OWNED;
-
-	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = FEATURE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = FEATURE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Has No Qualified Name</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = FEATURE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Create Dependency</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___CREATE_DEPENDENCY__NAMEDELEMENT = FEATURE___CREATE_DEPENDENCY__NAMEDELEMENT;
-
-	/**
-	 * The operation id for the '<em>Create Usage</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___CREATE_USAGE__NAMEDELEMENT = FEATURE___CREATE_USAGE__NAMEDELEMENT;
-
-	/**
-	 * The operation id for the '<em>Get Label</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___GET_LABEL = FEATURE___GET_LABEL;
-
-	/**
-	 * The operation id for the '<em>Get Label</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___GET_LABEL__BOOLEAN = FEATURE___GET_LABEL__BOOLEAN;
-
-	/**
-	 * The operation id for the '<em>All Namespaces</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___ALL_NAMESPACES = FEATURE___ALL_NAMESPACES;
-
-	/**
-	 * The operation id for the '<em>All Owning Packages</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___ALL_OWNING_PACKAGES = FEATURE___ALL_OWNING_PACKAGES;
-
-	/**
-	 * The operation id for the '<em>Is Distinguishable From</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE = FEATURE___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE;
-
-	/**
-	 * The operation id for the '<em>Get Namespace</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___GET_NAMESPACE = FEATURE___GET_NAMESPACE;
-
-	/**
-	 * The operation id for the '<em>Get Qualified Name</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___GET_QUALIFIED_NAME = FEATURE___GET_QUALIFIED_NAME;
-
-	/**
-	 * The operation id for the '<em>Separator</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___SEPARATOR = FEATURE___SEPARATOR;
-
-	/**
-	 * The operation id for the '<em>Validate Redefinition Consistent</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___VALIDATE_REDEFINITION_CONSISTENT__DIAGNOSTICCHAIN_MAP = FEATURE___VALIDATE_REDEFINITION_CONSISTENT__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Non Leaf Redefinition</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___VALIDATE_NON_LEAF_REDEFINITION__DIAGNOSTICCHAIN_MAP = FEATURE___VALIDATE_NON_LEAF_REDEFINITION__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Redefinition Context Valid</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___VALIDATE_REDEFINITION_CONTEXT_VALID__DIAGNOSTICCHAIN_MAP = FEATURE___VALIDATE_REDEFINITION_CONTEXT_VALID__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Is Consistent With</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___IS_CONSISTENT_WITH__REDEFINABLEELEMENT = FEATURE___IS_CONSISTENT_WITH__REDEFINABLEELEMENT;
-
-	/**
-	 * The operation id for the '<em>Is Redefinition Context Valid</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___IS_REDEFINITION_CONTEXT_VALID__REDEFINABLEELEMENT = FEATURE___IS_REDEFINITION_CONTEXT_VALID__REDEFINABLEELEMENT;
-
-	/**
-	 * The operation id for the '<em>Validate Types</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___VALIDATE_TYPES__DIAGNOSTICCHAIN_MAP = FEATURE_OPERATION_COUNT + 0;
-
-	/**
-	 * The operation id for the '<em>Validate Roles</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___VALIDATE_ROLES__DIAGNOSTICCHAIN_MAP = FEATURE_OPERATION_COUNT + 1;
-
-	/**
-	 * The operation id for the '<em>Validate Between Interfaces Ports</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___VALIDATE_BETWEEN_INTERFACES_PORTS__DIAGNOSTICCHAIN_MAP = FEATURE_OPERATION_COUNT + 2;
-
-	/**
-	 * The operation id for the '<em>Validate Compatible</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___VALIDATE_COMPATIBLE__DIAGNOSTICCHAIN_MAP = FEATURE_OPERATION_COUNT + 3;
-
-	/**
-	 * The operation id for the '<em>Get Kind</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR___GET_KIND = FEATURE_OPERATION_COUNT + 4;
-
-	/**
-	 * The number of operations of the '<em>Connector</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONNECTOR_OPERATION_COUNT = FEATURE_OPERATION_COUNT + 5;
-
-	/**
-	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
 	int GENERALIZATION__EANNOTATIONS = DIRECTED_RELATIONSHIP__EANNOTATIONS;
 
 	/**
@@ -71911,15 +72486,6 @@
 	int GENERALIZATION_SET___MUST_BE_OWNED = PACKAGEABLE_ELEMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GENERALIZATION_SET___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -71938,6 +72504,15 @@
 	int GENERALIZATION_SET___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GENERALIZATION_SET___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -72046,22 +72621,22 @@
 	int GENERALIZATION_SET___IS_TEMPLATE_PARAMETER = PACKAGEABLE_ELEMENT___IS_TEMPLATE_PARAMETER;
 
 	/**
-	 * The operation id for the '<em>Validate Generalization Same Classifier</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GENERALIZATION_SET___VALIDATE_GENERALIZATION_SAME_CLASSIFIER__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 0;
-
-	/**
 	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int GENERALIZATION_SET___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 1;
+	int GENERALIZATION_SET___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Validate Generalization Same Classifier</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GENERALIZATION_SET___VALIDATE_GENERALIZATION_SAME_CLASSIFIER__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 1;
 
 	/**
 	 * The number of operations of the '<em>Generalization Set</em>' class.
@@ -72586,15 +73161,6 @@
 	int REDEFINABLE_TEMPLATE_SIGNATURE___MUST_BE_OWNED = REDEFINABLE_ELEMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REDEFINABLE_TEMPLATE_SIGNATURE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = REDEFINABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -72613,6 +73179,15 @@
 	int REDEFINABLE_TEMPLATE_SIGNATURE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = REDEFINABLE_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REDEFINABLE_TEMPLATE_SIGNATURE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = REDEFINABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -73531,15 +74106,6 @@
 	int USE_CASE___MUST_BE_OWNED = BEHAVIORED_CLASSIFIER___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int USE_CASE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = BEHAVIORED_CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -73558,6 +74124,15 @@
 	int USE_CASE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = BEHAVIORED_CLASSIFIER___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USE_CASE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = BEHAVIORED_CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -73855,24 +74430,6 @@
 	int USE_CASE___PARAMETERABLE_ELEMENTS = BEHAVIORED_CLASSIFIER___PARAMETERABLE_ELEMENTS;
 
 	/**
-	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int USE_CASE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = BEHAVIORED_CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int USE_CASE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = BEHAVIORED_CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Non Final Parents</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -73891,6 +74448,24 @@
 	int USE_CASE___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP = BEHAVIORED_CLASSIFIER___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USE_CASE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = BEHAVIORED_CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USE_CASE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = BEHAVIORED_CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Get All Attributes</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -74071,22 +74646,13 @@
 	int USE_CASE___GET_IMPLEMENTED_INTERFACES = BEHAVIORED_CLASSIFIER___GET_IMPLEMENTED_INTERFACES;
 
 	/**
-	 * The operation id for the '<em>Validate Binary Associations</em>' operation.
+	 * The operation id for the '<em>Validate Must Have Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int USE_CASE___VALIDATE_BINARY_ASSOCIATIONS__DIAGNOSTICCHAIN_MAP = BEHAVIORED_CLASSIFIER_OPERATION_COUNT + 0;
-
-	/**
-	 * The operation id for the '<em>Validate No Association To Use Case</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int USE_CASE___VALIDATE_NO_ASSOCIATION_TO_USE_CASE__DIAGNOSTICCHAIN_MAP = BEHAVIORED_CLASSIFIER_OPERATION_COUNT + 1;
+	int USE_CASE___VALIDATE_MUST_HAVE_NAME__DIAGNOSTICCHAIN_MAP = BEHAVIORED_CLASSIFIER_OPERATION_COUNT + 0;
 
 	/**
 	 * The operation id for the '<em>Validate Cannot Include Self</em>' operation.
@@ -74095,16 +74661,25 @@
 	 * @generated
 	 * @ordered
 	 */
-	int USE_CASE___VALIDATE_CANNOT_INCLUDE_SELF__DIAGNOSTICCHAIN_MAP = BEHAVIORED_CLASSIFIER_OPERATION_COUNT + 2;
+	int USE_CASE___VALIDATE_CANNOT_INCLUDE_SELF__DIAGNOSTICCHAIN_MAP = BEHAVIORED_CLASSIFIER_OPERATION_COUNT + 1;
 
 	/**
-	 * The operation id for the '<em>Validate Must Have Name</em>' operation.
+	 * The operation id for the '<em>Validate Binary Associations</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int USE_CASE___VALIDATE_MUST_HAVE_NAME__DIAGNOSTICCHAIN_MAP = BEHAVIORED_CLASSIFIER_OPERATION_COUNT + 3;
+	int USE_CASE___VALIDATE_BINARY_ASSOCIATIONS__DIAGNOSTICCHAIN_MAP = BEHAVIORED_CLASSIFIER_OPERATION_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>Validate No Association To Use Case</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USE_CASE___VALIDATE_NO_ASSOCIATION_TO_USE_CASE__DIAGNOSTICCHAIN_MAP = BEHAVIORED_CLASSIFIER_OPERATION_COUNT + 3;
 
 	/**
 	 * The operation id for the '<em>All Included Use Cases</em>' operation.
@@ -74620,15 +75195,6 @@
 	int EXTEND___MUST_BE_OWNED = NAMED_ELEMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXTEND___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -74647,6 +75213,15 @@
 	int EXTEND___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXTEND___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -75223,15 +75798,6 @@
 	int EXTENSION_POINT___MUST_BE_OWNED = REDEFINABLE_ELEMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXTENSION_POINT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = REDEFINABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -75250,6 +75816,15 @@
 	int EXTENSION_POINT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = REDEFINABLE_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXTENSION_POINT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = REDEFINABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -75880,15 +76455,6 @@
 	int INCLUDE___MUST_BE_OWNED = NAMED_ELEMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INCLUDE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -75907,6 +76473,15 @@
 	int INCLUDE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INCLUDE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -76012,654 +76587,6 @@
 	 * @generated
 	 * @ordered
 	 */
-	int REALIZATION__EANNOTATIONS = ABSTRACTION__EANNOTATIONS;
-
-	/**
-	 * The feature id for the '<em><b>Owned Comment</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION__OWNED_COMMENT = ABSTRACTION__OWNED_COMMENT;
-
-	/**
-	 * The feature id for the '<em><b>Owned Element</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION__OWNED_ELEMENT = ABSTRACTION__OWNED_ELEMENT;
-
-	/**
-	 * The feature id for the '<em><b>Owner</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION__OWNER = ABSTRACTION__OWNER;
-
-	/**
-	 * The feature id for the '<em><b>Client Dependency</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION__CLIENT_DEPENDENCY = ABSTRACTION__CLIENT_DEPENDENCY;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION__NAME = ABSTRACTION__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Name Expression</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION__NAME_EXPRESSION = ABSTRACTION__NAME_EXPRESSION;
-
-	/**
-	 * The feature id for the '<em><b>Namespace</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION__NAMESPACE = ABSTRACTION__NAMESPACE;
-
-	/**
-	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION__QUALIFIED_NAME = ABSTRACTION__QUALIFIED_NAME;
-
-	/**
-	 * The feature id for the '<em><b>Visibility</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION__VISIBILITY = ABSTRACTION__VISIBILITY;
-
-	/**
-	 * The feature id for the '<em><b>Owning Template Parameter</b></em>' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION__OWNING_TEMPLATE_PARAMETER = ABSTRACTION__OWNING_TEMPLATE_PARAMETER;
-
-	/**
-	 * The feature id for the '<em><b>Template Parameter</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION__TEMPLATE_PARAMETER = ABSTRACTION__TEMPLATE_PARAMETER;
-
-	/**
-	 * The feature id for the '<em><b>Related Element</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION__RELATED_ELEMENT = ABSTRACTION__RELATED_ELEMENT;
-
-	/**
-	 * The feature id for the '<em><b>Source</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION__SOURCE = ABSTRACTION__SOURCE;
-
-	/**
-	 * The feature id for the '<em><b>Target</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION__TARGET = ABSTRACTION__TARGET;
-
-	/**
-	 * The feature id for the '<em><b>Client</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION__CLIENT = ABSTRACTION__CLIENT;
-
-	/**
-	 * The feature id for the '<em><b>Supplier</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION__SUPPLIER = ABSTRACTION__SUPPLIER;
-
-	/**
-	 * The feature id for the '<em><b>Mapping</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION__MAPPING = ABSTRACTION__MAPPING;
-
-	/**
-	 * The number of structural features of the '<em>Realization</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION_FEATURE_COUNT = ABSTRACTION_FEATURE_COUNT + 0;
-
-	/**
-	 * The operation id for the '<em>Get EAnnotation</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___GET_EANNOTATION__STRING = ABSTRACTION___GET_EANNOTATION__STRING;
-
-	/**
-	 * The operation id for the '<em>Validate Has Owner</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP = ABSTRACTION___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Not Own Self</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP = ABSTRACTION___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Add Keyword</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___ADD_KEYWORD__STRING = ABSTRACTION___ADD_KEYWORD__STRING;
-
-	/**
-	 * The operation id for the '<em>Apply Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___APPLY_STEREOTYPE__STEREOTYPE = ABSTRACTION___APPLY_STEREOTYPE__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Create EAnnotation</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___CREATE_EANNOTATION__STRING = ABSTRACTION___CREATE_EANNOTATION__STRING;
-
-	/**
-	 * The operation id for the '<em>Destroy</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___DESTROY = ABSTRACTION___DESTROY;
-
-	/**
-	 * The operation id for the '<em>Get Keywords</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___GET_KEYWORDS = ABSTRACTION___GET_KEYWORDS;
-
-	/**
-	 * The operation id for the '<em>Get Applicable Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___GET_APPLICABLE_STEREOTYPE__STRING = ABSTRACTION___GET_APPLICABLE_STEREOTYPE__STRING;
-
-	/**
-	 * The operation id for the '<em>Get Applicable Stereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___GET_APPLICABLE_STEREOTYPES = ABSTRACTION___GET_APPLICABLE_STEREOTYPES;
-
-	/**
-	 * The operation id for the '<em>Get Applied Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___GET_APPLIED_STEREOTYPE__STRING = ABSTRACTION___GET_APPLIED_STEREOTYPE__STRING;
-
-	/**
-	 * The operation id for the '<em>Get Applied Stereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___GET_APPLIED_STEREOTYPES = ABSTRACTION___GET_APPLIED_STEREOTYPES;
-
-	/**
-	 * The operation id for the '<em>Get Applied Substereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING = ABSTRACTION___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING;
-
-	/**
-	 * The operation id for the '<em>Get Applied Substereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE = ABSTRACTION___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Get Model</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___GET_MODEL = ABSTRACTION___GET_MODEL;
-
-	/**
-	 * The operation id for the '<em>Get Nearest Package</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___GET_NEAREST_PACKAGE = ABSTRACTION___GET_NEAREST_PACKAGE;
-
-	/**
-	 * The operation id for the '<em>Get Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___GET_RELATIONSHIPS = ABSTRACTION___GET_RELATIONSHIPS;
-
-	/**
-	 * The operation id for the '<em>Get Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___GET_RELATIONSHIPS__ECLASS = ABSTRACTION___GET_RELATIONSHIPS__ECLASS;
-
-	/**
-	 * The operation id for the '<em>Get Required Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___GET_REQUIRED_STEREOTYPE__STRING = ABSTRACTION___GET_REQUIRED_STEREOTYPE__STRING;
-
-	/**
-	 * The operation id for the '<em>Get Required Stereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___GET_REQUIRED_STEREOTYPES = ABSTRACTION___GET_REQUIRED_STEREOTYPES;
-
-	/**
-	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___GET_SOURCE_DIRECTED_RELATIONSHIPS = ABSTRACTION___GET_SOURCE_DIRECTED_RELATIONSHIPS;
-
-	/**
-	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS = ABSTRACTION___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS;
-
-	/**
-	 * The operation id for the '<em>Get Stereotype Application</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___GET_STEREOTYPE_APPLICATION__STEREOTYPE = ABSTRACTION___GET_STEREOTYPE_APPLICATION__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Get Stereotype Applications</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___GET_STEREOTYPE_APPLICATIONS = ABSTRACTION___GET_STEREOTYPE_APPLICATIONS;
-
-	/**
-	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___GET_TARGET_DIRECTED_RELATIONSHIPS = ABSTRACTION___GET_TARGET_DIRECTED_RELATIONSHIPS;
-
-	/**
-	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS = ABSTRACTION___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS;
-
-	/**
-	 * The operation id for the '<em>Get Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___GET_VALUE__STEREOTYPE_STRING = ABSTRACTION___GET_VALUE__STEREOTYPE_STRING;
-
-	/**
-	 * The operation id for the '<em>Has Keyword</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___HAS_KEYWORD__STRING = ABSTRACTION___HAS_KEYWORD__STRING;
-
-	/**
-	 * The operation id for the '<em>Has Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___HAS_VALUE__STEREOTYPE_STRING = ABSTRACTION___HAS_VALUE__STEREOTYPE_STRING;
-
-	/**
-	 * The operation id for the '<em>Is Stereotype Applicable</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___IS_STEREOTYPE_APPLICABLE__STEREOTYPE = ABSTRACTION___IS_STEREOTYPE_APPLICABLE__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Is Stereotype Applied</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___IS_STEREOTYPE_APPLIED__STEREOTYPE = ABSTRACTION___IS_STEREOTYPE_APPLIED__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Is Stereotype Required</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___IS_STEREOTYPE_REQUIRED__STEREOTYPE = ABSTRACTION___IS_STEREOTYPE_REQUIRED__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Remove Keyword</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___REMOVE_KEYWORD__STRING = ABSTRACTION___REMOVE_KEYWORD__STRING;
-
-	/**
-	 * The operation id for the '<em>Set Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___SET_VALUE__STEREOTYPE_STRING_OBJECT = ABSTRACTION___SET_VALUE__STEREOTYPE_STRING_OBJECT;
-
-	/**
-	 * The operation id for the '<em>Unapply Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___UNAPPLY_STEREOTYPE__STEREOTYPE = ABSTRACTION___UNAPPLY_STEREOTYPE__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>All Owned Elements</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___ALL_OWNED_ELEMENTS = ABSTRACTION___ALL_OWNED_ELEMENTS;
-
-	/**
-	 * The operation id for the '<em>Must Be Owned</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___MUST_BE_OWNED = ABSTRACTION___MUST_BE_OWNED;
-
-	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ABSTRACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ABSTRACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Has No Qualified Name</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ABSTRACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Create Dependency</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___CREATE_DEPENDENCY__NAMEDELEMENT = ABSTRACTION___CREATE_DEPENDENCY__NAMEDELEMENT;
-
-	/**
-	 * The operation id for the '<em>Create Usage</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___CREATE_USAGE__NAMEDELEMENT = ABSTRACTION___CREATE_USAGE__NAMEDELEMENT;
-
-	/**
-	 * The operation id for the '<em>Get Label</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___GET_LABEL = ABSTRACTION___GET_LABEL;
-
-	/**
-	 * The operation id for the '<em>Get Label</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___GET_LABEL__BOOLEAN = ABSTRACTION___GET_LABEL__BOOLEAN;
-
-	/**
-	 * The operation id for the '<em>All Namespaces</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___ALL_NAMESPACES = ABSTRACTION___ALL_NAMESPACES;
-
-	/**
-	 * The operation id for the '<em>All Owning Packages</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___ALL_OWNING_PACKAGES = ABSTRACTION___ALL_OWNING_PACKAGES;
-
-	/**
-	 * The operation id for the '<em>Is Distinguishable From</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE = ABSTRACTION___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE;
-
-	/**
-	 * The operation id for the '<em>Get Namespace</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___GET_NAMESPACE = ABSTRACTION___GET_NAMESPACE;
-
-	/**
-	 * The operation id for the '<em>Get Qualified Name</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___GET_QUALIFIED_NAME = ABSTRACTION___GET_QUALIFIED_NAME;
-
-	/**
-	 * The operation id for the '<em>Separator</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___SEPARATOR = ABSTRACTION___SEPARATOR;
-
-	/**
-	 * The operation id for the '<em>Is Compatible With</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___IS_COMPATIBLE_WITH__PARAMETERABLEELEMENT = ABSTRACTION___IS_COMPATIBLE_WITH__PARAMETERABLEELEMENT;
-
-	/**
-	 * The operation id for the '<em>Is Template Parameter</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION___IS_TEMPLATE_PARAMETER = ABSTRACTION___IS_TEMPLATE_PARAMETER;
-
-	/**
-	 * The number of operations of the '<em>Realization</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REALIZATION_OPERATION_COUNT = ABSTRACTION_OPERATION_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
 	int SUBSTITUTION__EANNOTATIONS = REALIZATION__EANNOTATIONS;
 
 	/**
@@ -77176,15 +77103,6 @@
 	int SUBSTITUTION___MUST_BE_OWNED = REALIZATION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SUBSTITUTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = REALIZATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -77203,6 +77121,15 @@
 	int SUBSTITUTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = REALIZATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SUBSTITUTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = REALIZATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -77365,6 +77292,15 @@
 	int CLASSIFIER_TEMPLATE_PARAMETER__DEFAULT = TEMPLATE_PARAMETER__DEFAULT;
 
 	/**
+	 * The feature id for the '<em><b>Owned Default</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLASSIFIER_TEMPLATE_PARAMETER__OWNED_DEFAULT = TEMPLATE_PARAMETER__OWNED_DEFAULT;
+
+	/**
 	 * The feature id for the '<em><b>Owned Parametered Element</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -77383,15 +77319,6 @@
 	int CLASSIFIER_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT = TEMPLATE_PARAMETER__PARAMETERED_ELEMENT;
 
 	/**
-	 * The feature id for the '<em><b>Owned Default</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CLASSIFIER_TEMPLATE_PARAMETER__OWNED_DEFAULT = TEMPLATE_PARAMETER__OWNED_DEFAULT;
-
-	/**
 	 * The feature id for the '<em><b>Signature</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -77794,7 +77721,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION__EANNOTATIONS = REALIZATION__EANNOTATIONS;
+	int CONNECTOR__EANNOTATIONS = FEATURE__EANNOTATIONS;
 
 	/**
 	 * The feature id for the '<em><b>Owned Comment</b></em>' containment reference list.
@@ -77803,7 +77730,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION__OWNED_COMMENT = REALIZATION__OWNED_COMMENT;
+	int CONNECTOR__OWNED_COMMENT = FEATURE__OWNED_COMMENT;
 
 	/**
 	 * The feature id for the '<em><b>Owned Element</b></em>' reference list.
@@ -77812,7 +77739,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION__OWNED_ELEMENT = REALIZATION__OWNED_ELEMENT;
+	int CONNECTOR__OWNED_ELEMENT = FEATURE__OWNED_ELEMENT;
 
 	/**
 	 * The feature id for the '<em><b>Owner</b></em>' reference.
@@ -77821,7 +77748,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION__OWNER = REALIZATION__OWNER;
+	int CONNECTOR__OWNER = FEATURE__OWNER;
 
 	/**
 	 * The feature id for the '<em><b>Client Dependency</b></em>' reference list.
@@ -77830,7 +77757,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION__CLIENT_DEPENDENCY = REALIZATION__CLIENT_DEPENDENCY;
+	int CONNECTOR__CLIENT_DEPENDENCY = FEATURE__CLIENT_DEPENDENCY;
 
 	/**
 	 * The feature id for the '<em><b>Name</b></em>' attribute.
@@ -77839,7 +77766,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION__NAME = REALIZATION__NAME;
+	int CONNECTOR__NAME = FEATURE__NAME;
 
 	/**
 	 * The feature id for the '<em><b>Name Expression</b></em>' containment reference.
@@ -77848,7 +77775,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION__NAME_EXPRESSION = REALIZATION__NAME_EXPRESSION;
+	int CONNECTOR__NAME_EXPRESSION = FEATURE__NAME_EXPRESSION;
 
 	/**
 	 * The feature id for the '<em><b>Namespace</b></em>' reference.
@@ -77857,7 +77784,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION__NAMESPACE = REALIZATION__NAMESPACE;
+	int CONNECTOR__NAMESPACE = FEATURE__NAMESPACE;
 
 	/**
 	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
@@ -77866,7 +77793,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION__QUALIFIED_NAME = REALIZATION__QUALIFIED_NAME;
+	int CONNECTOR__QUALIFIED_NAME = FEATURE__QUALIFIED_NAME;
 
 	/**
 	 * The feature id for the '<em><b>Visibility</b></em>' attribute.
@@ -77875,106 +77802,106 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION__VISIBILITY = REALIZATION__VISIBILITY;
+	int CONNECTOR__VISIBILITY = FEATURE__VISIBILITY;
 
 	/**
-	 * The feature id for the '<em><b>Owning Template Parameter</b></em>' container reference.
+	 * The feature id for the '<em><b>Is Leaf</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION__OWNING_TEMPLATE_PARAMETER = REALIZATION__OWNING_TEMPLATE_PARAMETER;
+	int CONNECTOR__IS_LEAF = FEATURE__IS_LEAF;
 
 	/**
-	 * The feature id for the '<em><b>Template Parameter</b></em>' reference.
+	 * The feature id for the '<em><b>Redefined Element</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION__TEMPLATE_PARAMETER = REALIZATION__TEMPLATE_PARAMETER;
+	int CONNECTOR__REDEFINED_ELEMENT = FEATURE__REDEFINED_ELEMENT;
 
 	/**
-	 * The feature id for the '<em><b>Related Element</b></em>' reference list.
+	 * The feature id for the '<em><b>Redefinition Context</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION__RELATED_ELEMENT = REALIZATION__RELATED_ELEMENT;
+	int CONNECTOR__REDEFINITION_CONTEXT = FEATURE__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Source</b></em>' reference list.
+	 * The feature id for the '<em><b>Featuring Classifier</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION__SOURCE = REALIZATION__SOURCE;
+	int CONNECTOR__FEATURING_CLASSIFIER = FEATURE__FEATURING_CLASSIFIER;
 
 	/**
-	 * The feature id for the '<em><b>Target</b></em>' reference list.
+	 * The feature id for the '<em><b>Is Static</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION__TARGET = REALIZATION__TARGET;
+	int CONNECTOR__IS_STATIC = FEATURE__IS_STATIC;
 
 	/**
-	 * The feature id for the '<em><b>Client</b></em>' reference list.
+	 * The feature id for the '<em><b>Contract</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION__CLIENT = REALIZATION__CLIENT;
+	int CONNECTOR__CONTRACT = FEATURE_FEATURE_COUNT + 0;
 
 	/**
-	 * The feature id for the '<em><b>Supplier</b></em>' reference list.
+	 * The feature id for the '<em><b>End</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION__SUPPLIER = REALIZATION__SUPPLIER;
+	int CONNECTOR__END = FEATURE_FEATURE_COUNT + 1;
 
 	/**
-	 * The feature id for the '<em><b>Mapping</b></em>' containment reference.
+	 * The feature id for the '<em><b>Kind</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION__MAPPING = REALIZATION__MAPPING;
+	int CONNECTOR__KIND = FEATURE_FEATURE_COUNT + 2;
 
 	/**
-	 * The feature id for the '<em><b>Contract</b></em>' reference.
+	 * The feature id for the '<em><b>Redefined Connector</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION__CONTRACT = REALIZATION_FEATURE_COUNT + 0;
+	int CONNECTOR__REDEFINED_CONNECTOR = FEATURE_FEATURE_COUNT + 3;
 
 	/**
-	 * The feature id for the '<em><b>Implementing Classifier</b></em>' container reference.
+	 * The feature id for the '<em><b>Type</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION__IMPLEMENTING_CLASSIFIER = REALIZATION_FEATURE_COUNT + 1;
+	int CONNECTOR__TYPE = FEATURE_FEATURE_COUNT + 4;
 
 	/**
-	 * The number of structural features of the '<em>Interface Realization</em>' class.
+	 * The number of structural features of the '<em>Connector</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION_FEATURE_COUNT = REALIZATION_FEATURE_COUNT + 2;
+	int CONNECTOR_FEATURE_COUNT = FEATURE_FEATURE_COUNT + 5;
 
 	/**
 	 * The operation id for the '<em>Get EAnnotation</em>' operation.
@@ -77983,7 +77910,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___GET_EANNOTATION__STRING = REALIZATION___GET_EANNOTATION__STRING;
+	int CONNECTOR___GET_EANNOTATION__STRING = FEATURE___GET_EANNOTATION__STRING;
 
 	/**
 	 * The operation id for the '<em>Validate Has Owner</em>' operation.
@@ -77992,7 +77919,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP = REALIZATION___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP;
+	int CONNECTOR___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP = FEATURE___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Not Own Self</em>' operation.
@@ -78001,7 +77928,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP = REALIZATION___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP;
+	int CONNECTOR___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP = FEATURE___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Add Keyword</em>' operation.
@@ -78010,7 +77937,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___ADD_KEYWORD__STRING = REALIZATION___ADD_KEYWORD__STRING;
+	int CONNECTOR___ADD_KEYWORD__STRING = FEATURE___ADD_KEYWORD__STRING;
 
 	/**
 	 * The operation id for the '<em>Apply Stereotype</em>' operation.
@@ -78019,7 +77946,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___APPLY_STEREOTYPE__STEREOTYPE = REALIZATION___APPLY_STEREOTYPE__STEREOTYPE;
+	int CONNECTOR___APPLY_STEREOTYPE__STEREOTYPE = FEATURE___APPLY_STEREOTYPE__STEREOTYPE;
 
 	/**
 	 * The operation id for the '<em>Create EAnnotation</em>' operation.
@@ -78028,7 +77955,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___CREATE_EANNOTATION__STRING = REALIZATION___CREATE_EANNOTATION__STRING;
+	int CONNECTOR___CREATE_EANNOTATION__STRING = FEATURE___CREATE_EANNOTATION__STRING;
 
 	/**
 	 * The operation id for the '<em>Destroy</em>' operation.
@@ -78037,7 +77964,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___DESTROY = REALIZATION___DESTROY;
+	int CONNECTOR___DESTROY = FEATURE___DESTROY;
 
 	/**
 	 * The operation id for the '<em>Get Keywords</em>' operation.
@@ -78046,7 +77973,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___GET_KEYWORDS = REALIZATION___GET_KEYWORDS;
+	int CONNECTOR___GET_KEYWORDS = FEATURE___GET_KEYWORDS;
 
 	/**
 	 * The operation id for the '<em>Get Applicable Stereotype</em>' operation.
@@ -78055,7 +77982,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___GET_APPLICABLE_STEREOTYPE__STRING = REALIZATION___GET_APPLICABLE_STEREOTYPE__STRING;
+	int CONNECTOR___GET_APPLICABLE_STEREOTYPE__STRING = FEATURE___GET_APPLICABLE_STEREOTYPE__STRING;
 
 	/**
 	 * The operation id for the '<em>Get Applicable Stereotypes</em>' operation.
@@ -78064,7 +77991,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___GET_APPLICABLE_STEREOTYPES = REALIZATION___GET_APPLICABLE_STEREOTYPES;
+	int CONNECTOR___GET_APPLICABLE_STEREOTYPES = FEATURE___GET_APPLICABLE_STEREOTYPES;
 
 	/**
 	 * The operation id for the '<em>Get Applied Stereotype</em>' operation.
@@ -78073,7 +78000,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___GET_APPLIED_STEREOTYPE__STRING = REALIZATION___GET_APPLIED_STEREOTYPE__STRING;
+	int CONNECTOR___GET_APPLIED_STEREOTYPE__STRING = FEATURE___GET_APPLIED_STEREOTYPE__STRING;
 
 	/**
 	 * The operation id for the '<em>Get Applied Stereotypes</em>' operation.
@@ -78082,7 +78009,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___GET_APPLIED_STEREOTYPES = REALIZATION___GET_APPLIED_STEREOTYPES;
+	int CONNECTOR___GET_APPLIED_STEREOTYPES = FEATURE___GET_APPLIED_STEREOTYPES;
 
 	/**
 	 * The operation id for the '<em>Get Applied Substereotype</em>' operation.
@@ -78091,7 +78018,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING = REALIZATION___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING;
+	int CONNECTOR___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING = FEATURE___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING;
 
 	/**
 	 * The operation id for the '<em>Get Applied Substereotypes</em>' operation.
@@ -78100,7 +78027,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE = REALIZATION___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE;
+	int CONNECTOR___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE = FEATURE___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE;
 
 	/**
 	 * The operation id for the '<em>Get Model</em>' operation.
@@ -78109,7 +78036,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___GET_MODEL = REALIZATION___GET_MODEL;
+	int CONNECTOR___GET_MODEL = FEATURE___GET_MODEL;
 
 	/**
 	 * The operation id for the '<em>Get Nearest Package</em>' operation.
@@ -78118,7 +78045,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___GET_NEAREST_PACKAGE = REALIZATION___GET_NEAREST_PACKAGE;
+	int CONNECTOR___GET_NEAREST_PACKAGE = FEATURE___GET_NEAREST_PACKAGE;
 
 	/**
 	 * The operation id for the '<em>Get Relationships</em>' operation.
@@ -78127,7 +78054,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___GET_RELATIONSHIPS = REALIZATION___GET_RELATIONSHIPS;
+	int CONNECTOR___GET_RELATIONSHIPS = FEATURE___GET_RELATIONSHIPS;
 
 	/**
 	 * The operation id for the '<em>Get Relationships</em>' operation.
@@ -78136,7 +78063,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___GET_RELATIONSHIPS__ECLASS = REALIZATION___GET_RELATIONSHIPS__ECLASS;
+	int CONNECTOR___GET_RELATIONSHIPS__ECLASS = FEATURE___GET_RELATIONSHIPS__ECLASS;
 
 	/**
 	 * The operation id for the '<em>Get Required Stereotype</em>' operation.
@@ -78145,7 +78072,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___GET_REQUIRED_STEREOTYPE__STRING = REALIZATION___GET_REQUIRED_STEREOTYPE__STRING;
+	int CONNECTOR___GET_REQUIRED_STEREOTYPE__STRING = FEATURE___GET_REQUIRED_STEREOTYPE__STRING;
 
 	/**
 	 * The operation id for the '<em>Get Required Stereotypes</em>' operation.
@@ -78154,7 +78081,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___GET_REQUIRED_STEREOTYPES = REALIZATION___GET_REQUIRED_STEREOTYPES;
+	int CONNECTOR___GET_REQUIRED_STEREOTYPES = FEATURE___GET_REQUIRED_STEREOTYPES;
 
 	/**
 	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
@@ -78163,7 +78090,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___GET_SOURCE_DIRECTED_RELATIONSHIPS = REALIZATION___GET_SOURCE_DIRECTED_RELATIONSHIPS;
+	int CONNECTOR___GET_SOURCE_DIRECTED_RELATIONSHIPS = FEATURE___GET_SOURCE_DIRECTED_RELATIONSHIPS;
 
 	/**
 	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
@@ -78172,7 +78099,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS = REALIZATION___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS;
+	int CONNECTOR___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS = FEATURE___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS;
 
 	/**
 	 * The operation id for the '<em>Get Stereotype Application</em>' operation.
@@ -78181,7 +78108,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___GET_STEREOTYPE_APPLICATION__STEREOTYPE = REALIZATION___GET_STEREOTYPE_APPLICATION__STEREOTYPE;
+	int CONNECTOR___GET_STEREOTYPE_APPLICATION__STEREOTYPE = FEATURE___GET_STEREOTYPE_APPLICATION__STEREOTYPE;
 
 	/**
 	 * The operation id for the '<em>Get Stereotype Applications</em>' operation.
@@ -78190,7 +78117,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___GET_STEREOTYPE_APPLICATIONS = REALIZATION___GET_STEREOTYPE_APPLICATIONS;
+	int CONNECTOR___GET_STEREOTYPE_APPLICATIONS = FEATURE___GET_STEREOTYPE_APPLICATIONS;
 
 	/**
 	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
@@ -78199,7 +78126,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___GET_TARGET_DIRECTED_RELATIONSHIPS = REALIZATION___GET_TARGET_DIRECTED_RELATIONSHIPS;
+	int CONNECTOR___GET_TARGET_DIRECTED_RELATIONSHIPS = FEATURE___GET_TARGET_DIRECTED_RELATIONSHIPS;
 
 	/**
 	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
@@ -78208,7 +78135,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS = REALIZATION___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS;
+	int CONNECTOR___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS = FEATURE___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS;
 
 	/**
 	 * The operation id for the '<em>Get Value</em>' operation.
@@ -78217,7 +78144,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___GET_VALUE__STEREOTYPE_STRING = REALIZATION___GET_VALUE__STEREOTYPE_STRING;
+	int CONNECTOR___GET_VALUE__STEREOTYPE_STRING = FEATURE___GET_VALUE__STEREOTYPE_STRING;
 
 	/**
 	 * The operation id for the '<em>Has Keyword</em>' operation.
@@ -78226,7 +78153,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___HAS_KEYWORD__STRING = REALIZATION___HAS_KEYWORD__STRING;
+	int CONNECTOR___HAS_KEYWORD__STRING = FEATURE___HAS_KEYWORD__STRING;
 
 	/**
 	 * The operation id for the '<em>Has Value</em>' operation.
@@ -78235,7 +78162,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___HAS_VALUE__STEREOTYPE_STRING = REALIZATION___HAS_VALUE__STEREOTYPE_STRING;
+	int CONNECTOR___HAS_VALUE__STEREOTYPE_STRING = FEATURE___HAS_VALUE__STEREOTYPE_STRING;
 
 	/**
 	 * The operation id for the '<em>Is Stereotype Applicable</em>' operation.
@@ -78244,7 +78171,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___IS_STEREOTYPE_APPLICABLE__STEREOTYPE = REALIZATION___IS_STEREOTYPE_APPLICABLE__STEREOTYPE;
+	int CONNECTOR___IS_STEREOTYPE_APPLICABLE__STEREOTYPE = FEATURE___IS_STEREOTYPE_APPLICABLE__STEREOTYPE;
 
 	/**
 	 * The operation id for the '<em>Is Stereotype Applied</em>' operation.
@@ -78253,7 +78180,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___IS_STEREOTYPE_APPLIED__STEREOTYPE = REALIZATION___IS_STEREOTYPE_APPLIED__STEREOTYPE;
+	int CONNECTOR___IS_STEREOTYPE_APPLIED__STEREOTYPE = FEATURE___IS_STEREOTYPE_APPLIED__STEREOTYPE;
 
 	/**
 	 * The operation id for the '<em>Is Stereotype Required</em>' operation.
@@ -78262,7 +78189,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___IS_STEREOTYPE_REQUIRED__STEREOTYPE = REALIZATION___IS_STEREOTYPE_REQUIRED__STEREOTYPE;
+	int CONNECTOR___IS_STEREOTYPE_REQUIRED__STEREOTYPE = FEATURE___IS_STEREOTYPE_REQUIRED__STEREOTYPE;
 
 	/**
 	 * The operation id for the '<em>Remove Keyword</em>' operation.
@@ -78271,7 +78198,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___REMOVE_KEYWORD__STRING = REALIZATION___REMOVE_KEYWORD__STRING;
+	int CONNECTOR___REMOVE_KEYWORD__STRING = FEATURE___REMOVE_KEYWORD__STRING;
 
 	/**
 	 * The operation id for the '<em>Set Value</em>' operation.
@@ -78280,7 +78207,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___SET_VALUE__STEREOTYPE_STRING_OBJECT = REALIZATION___SET_VALUE__STEREOTYPE_STRING_OBJECT;
+	int CONNECTOR___SET_VALUE__STEREOTYPE_STRING_OBJECT = FEATURE___SET_VALUE__STEREOTYPE_STRING_OBJECT;
 
 	/**
 	 * The operation id for the '<em>Unapply Stereotype</em>' operation.
@@ -78289,7 +78216,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___UNAPPLY_STEREOTYPE__STEREOTYPE = REALIZATION___UNAPPLY_STEREOTYPE__STEREOTYPE;
+	int CONNECTOR___UNAPPLY_STEREOTYPE__STEREOTYPE = FEATURE___UNAPPLY_STEREOTYPE__STEREOTYPE;
 
 	/**
 	 * The operation id for the '<em>All Owned Elements</em>' operation.
@@ -78298,7 +78225,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___ALL_OWNED_ELEMENTS = REALIZATION___ALL_OWNED_ELEMENTS;
+	int CONNECTOR___ALL_OWNED_ELEMENTS = FEATURE___ALL_OWNED_ELEMENTS;
 
 	/**
 	 * The operation id for the '<em>Must Be Owned</em>' operation.
@@ -78307,16 +78234,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___MUST_BE_OWNED = REALIZATION___MUST_BE_OWNED;
-
-	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERFACE_REALIZATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = REALIZATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+	int CONNECTOR___MUST_BE_OWNED = FEATURE___MUST_BE_OWNED;
 
 	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
@@ -78325,7 +78243,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = REALIZATION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
+	int CONNECTOR___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = FEATURE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Has No Qualified Name</em>' operation.
@@ -78334,7 +78252,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = REALIZATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
+	int CONNECTOR___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = FEATURE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONNECTOR___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = FEATURE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
@@ -78343,7 +78270,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___CREATE_DEPENDENCY__NAMEDELEMENT = REALIZATION___CREATE_DEPENDENCY__NAMEDELEMENT;
+	int CONNECTOR___CREATE_DEPENDENCY__NAMEDELEMENT = FEATURE___CREATE_DEPENDENCY__NAMEDELEMENT;
 
 	/**
 	 * The operation id for the '<em>Create Usage</em>' operation.
@@ -78352,7 +78279,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___CREATE_USAGE__NAMEDELEMENT = REALIZATION___CREATE_USAGE__NAMEDELEMENT;
+	int CONNECTOR___CREATE_USAGE__NAMEDELEMENT = FEATURE___CREATE_USAGE__NAMEDELEMENT;
 
 	/**
 	 * The operation id for the '<em>Get Label</em>' operation.
@@ -78361,7 +78288,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___GET_LABEL = REALIZATION___GET_LABEL;
+	int CONNECTOR___GET_LABEL = FEATURE___GET_LABEL;
 
 	/**
 	 * The operation id for the '<em>Get Label</em>' operation.
@@ -78370,7 +78297,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___GET_LABEL__BOOLEAN = REALIZATION___GET_LABEL__BOOLEAN;
+	int CONNECTOR___GET_LABEL__BOOLEAN = FEATURE___GET_LABEL__BOOLEAN;
 
 	/**
 	 * The operation id for the '<em>All Namespaces</em>' operation.
@@ -78379,7 +78306,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___ALL_NAMESPACES = REALIZATION___ALL_NAMESPACES;
+	int CONNECTOR___ALL_NAMESPACES = FEATURE___ALL_NAMESPACES;
 
 	/**
 	 * The operation id for the '<em>All Owning Packages</em>' operation.
@@ -78388,7 +78315,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___ALL_OWNING_PACKAGES = REALIZATION___ALL_OWNING_PACKAGES;
+	int CONNECTOR___ALL_OWNING_PACKAGES = FEATURE___ALL_OWNING_PACKAGES;
 
 	/**
 	 * The operation id for the '<em>Is Distinguishable From</em>' operation.
@@ -78397,7 +78324,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE = REALIZATION___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE;
+	int CONNECTOR___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE = FEATURE___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE;
 
 	/**
 	 * The operation id for the '<em>Get Namespace</em>' operation.
@@ -78406,7 +78333,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___GET_NAMESPACE = REALIZATION___GET_NAMESPACE;
+	int CONNECTOR___GET_NAMESPACE = FEATURE___GET_NAMESPACE;
 
 	/**
 	 * The operation id for the '<em>Get Qualified Name</em>' operation.
@@ -78415,7 +78342,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___GET_QUALIFIED_NAME = REALIZATION___GET_QUALIFIED_NAME;
+	int CONNECTOR___GET_QUALIFIED_NAME = FEATURE___GET_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Separator</em>' operation.
@@ -78424,34 +78351,106 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___SEPARATOR = REALIZATION___SEPARATOR;
+	int CONNECTOR___SEPARATOR = FEATURE___SEPARATOR;
 
 	/**
-	 * The operation id for the '<em>Is Compatible With</em>' operation.
+	 * The operation id for the '<em>Validate Redefinition Consistent</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___IS_COMPATIBLE_WITH__PARAMETERABLEELEMENT = REALIZATION___IS_COMPATIBLE_WITH__PARAMETERABLEELEMENT;
+	int CONNECTOR___VALIDATE_REDEFINITION_CONSISTENT__DIAGNOSTICCHAIN_MAP = FEATURE___VALIDATE_REDEFINITION_CONSISTENT__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Is Template Parameter</em>' operation.
+	 * The operation id for the '<em>Validate Non Leaf Redefinition</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION___IS_TEMPLATE_PARAMETER = REALIZATION___IS_TEMPLATE_PARAMETER;
+	int CONNECTOR___VALIDATE_NON_LEAF_REDEFINITION__DIAGNOSTICCHAIN_MAP = FEATURE___VALIDATE_NON_LEAF_REDEFINITION__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The number of operations of the '<em>Interface Realization</em>' class.
+	 * The operation id for the '<em>Validate Redefinition Context Valid</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int INTERFACE_REALIZATION_OPERATION_COUNT = REALIZATION_OPERATION_COUNT + 0;
+	int CONNECTOR___VALIDATE_REDEFINITION_CONTEXT_VALID__DIAGNOSTICCHAIN_MAP = FEATURE___VALIDATE_REDEFINITION_CONTEXT_VALID__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Is Consistent With</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONNECTOR___IS_CONSISTENT_WITH__REDEFINABLEELEMENT = FEATURE___IS_CONSISTENT_WITH__REDEFINABLEELEMENT;
+
+	/**
+	 * The operation id for the '<em>Is Redefinition Context Valid</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONNECTOR___IS_REDEFINITION_CONTEXT_VALID__REDEFINABLEELEMENT = FEATURE___IS_REDEFINITION_CONTEXT_VALID__REDEFINABLEELEMENT;
+
+	/**
+	 * The operation id for the '<em>Validate Compatible</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONNECTOR___VALIDATE_COMPATIBLE__DIAGNOSTICCHAIN_MAP = FEATURE_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Validate Roles</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONNECTOR___VALIDATE_ROLES__DIAGNOSTICCHAIN_MAP = FEATURE_OPERATION_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Validate Between Interfaces Ports</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONNECTOR___VALIDATE_BETWEEN_INTERFACES_PORTS__DIAGNOSTICCHAIN_MAP = FEATURE_OPERATION_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>Validate Types</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONNECTOR___VALIDATE_TYPES__DIAGNOSTICCHAIN_MAP = FEATURE_OPERATION_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>Get Kind</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONNECTOR___GET_KIND = FEATURE_OPERATION_COUNT + 4;
+
+	/**
+	 * The number of operations of the '<em>Connector</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONNECTOR_OPERATION_COUNT = FEATURE_OPERATION_COUNT + 5;
 
 	/**
 	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
@@ -79363,15 +79362,6 @@
 	int OPAQUE_EXPRESSION___MUST_BE_OWNED = VALUE_SPECIFICATION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int OPAQUE_EXPRESSION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = VALUE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -79390,6 +79380,15 @@
 	int OPAQUE_EXPRESSION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = VALUE_SPECIFICATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OPAQUE_EXPRESSION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = VALUE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -79561,13 +79560,13 @@
 	int OPAQUE_EXPRESSION___UNLIMITED_VALUE = VALUE_SPECIFICATION___UNLIMITED_VALUE;
 
 	/**
-	 * The operation id for the '<em>Validate Language Body Size</em>' operation.
+	 * The operation id for the '<em>Validate Only Return Result Parameters</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int OPAQUE_EXPRESSION___VALIDATE_LANGUAGE_BODY_SIZE__DIAGNOSTICCHAIN_MAP = VALUE_SPECIFICATION_OPERATION_COUNT + 0;
+	int OPAQUE_EXPRESSION___VALIDATE_ONLY_RETURN_RESULT_PARAMETERS__DIAGNOSTICCHAIN_MAP = VALUE_SPECIFICATION_OPERATION_COUNT + 0;
 
 	/**
 	 * The operation id for the '<em>Validate One Return Result Parameter</em>' operation.
@@ -79579,13 +79578,13 @@
 	int OPAQUE_EXPRESSION___VALIDATE_ONE_RETURN_RESULT_PARAMETER__DIAGNOSTICCHAIN_MAP = VALUE_SPECIFICATION_OPERATION_COUNT + 1;
 
 	/**
-	 * The operation id for the '<em>Validate Only Return Result Parameters</em>' operation.
+	 * The operation id for the '<em>Validate Language Body Size</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int OPAQUE_EXPRESSION___VALIDATE_ONLY_RETURN_RESULT_PARAMETERS__DIAGNOSTICCHAIN_MAP = VALUE_SPECIFICATION_OPERATION_COUNT + 2;
+	int OPAQUE_EXPRESSION___VALIDATE_LANGUAGE_BODY_SIZE__DIAGNOSTICCHAIN_MAP = VALUE_SPECIFICATION_OPERATION_COUNT + 2;
 
 	/**
 	 * The operation id for the '<em>Is Integral</em>' operation.
@@ -79769,7 +79768,7 @@
 	int ACTIVITY_NODE__REDEFINITION_CONTEXT = REDEFINABLE_ELEMENT__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -79778,22 +79777,13 @@
 	int ACTIVITY_NODE__ACTIVITY = REDEFINABLE_ELEMENT_FEATURE_COUNT + 0;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_NODE__IN_GROUP = REDEFINABLE_ELEMENT_FEATURE_COUNT + 1;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ACTIVITY_NODE__IN_PARTITION = REDEFINABLE_ELEMENT_FEATURE_COUNT + 2;
+	int ACTIVITY_NODE__IN_PARTITION = REDEFINABLE_ELEMENT_FEATURE_COUNT + 1;
 
 	/**
 	 * The feature id for the '<em><b>In Structured Node</b></em>' container reference.
@@ -79802,7 +79792,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ACTIVITY_NODE__IN_STRUCTURED_NODE = REDEFINABLE_ELEMENT_FEATURE_COUNT + 3;
+	int ACTIVITY_NODE__IN_STRUCTURED_NODE = REDEFINABLE_ELEMENT_FEATURE_COUNT + 2;
 
 	/**
 	 * The feature id for the '<em><b>In Interruptible Region</b></em>' reference list.
@@ -79811,7 +79801,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ACTIVITY_NODE__IN_INTERRUPTIBLE_REGION = REDEFINABLE_ELEMENT_FEATURE_COUNT + 4;
+	int ACTIVITY_NODE__IN_INTERRUPTIBLE_REGION = REDEFINABLE_ELEMENT_FEATURE_COUNT + 3;
 
 	/**
 	 * The feature id for the '<em><b>Outgoing</b></em>' reference list.
@@ -79820,7 +79810,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ACTIVITY_NODE__OUTGOING = REDEFINABLE_ELEMENT_FEATURE_COUNT + 5;
+	int ACTIVITY_NODE__OUTGOING = REDEFINABLE_ELEMENT_FEATURE_COUNT + 4;
 
 	/**
 	 * The feature id for the '<em><b>Incoming</b></em>' reference list.
@@ -79829,7 +79819,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ACTIVITY_NODE__INCOMING = REDEFINABLE_ELEMENT_FEATURE_COUNT + 6;
+	int ACTIVITY_NODE__INCOMING = REDEFINABLE_ELEMENT_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_NODE__IN_GROUP = REDEFINABLE_ELEMENT_FEATURE_COUNT + 6;
 
 	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
@@ -80183,15 +80182,6 @@
 	int ACTIVITY_NODE___MUST_BE_OWNED = REDEFINABLE_ELEMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = REDEFINABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -80210,6 +80200,15 @@
 	int ACTIVITY_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = REDEFINABLE_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = REDEFINABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -80489,7 +80488,7 @@
 	int EXECUTABLE_NODE__REDEFINITION_CONTEXT = ACTIVITY_NODE__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -80498,15 +80497,6 @@
 	int EXECUTABLE_NODE__ACTIVITY = ACTIVITY_NODE__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXECUTABLE_NODE__IN_GROUP = ACTIVITY_NODE__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -80552,6 +80542,15 @@
 	int EXECUTABLE_NODE__INCOMING = ACTIVITY_NODE__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXECUTABLE_NODE__IN_GROUP = ACTIVITY_NODE__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -80912,15 +80911,6 @@
 	int EXECUTABLE_NODE___MUST_BE_OWNED = ACTIVITY_NODE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXECUTABLE_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTIVITY_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -80939,6 +80929,15 @@
 	int EXECUTABLE_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ACTIVITY_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXECUTABLE_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTIVITY_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -81218,7 +81217,7 @@
 	int ACTION__REDEFINITION_CONTEXT = EXECUTABLE_NODE__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -81227,15 +81226,6 @@
 	int ACTION__ACTIVITY = EXECUTABLE_NODE__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTION__IN_GROUP = EXECUTABLE_NODE__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -81281,6 +81271,15 @@
 	int ACTION__INCOMING = EXECUTABLE_NODE__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION__IN_GROUP = EXECUTABLE_NODE__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -81695,15 +81694,6 @@
 	int ACTION___MUST_BE_OWNED = EXECUTABLE_NODE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = EXECUTABLE_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -81722,6 +81712,15 @@
 	int ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = EXECUTABLE_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = EXECUTABLE_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -82160,7 +82159,7 @@
 	int ACCEPT_EVENT_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -82169,15 +82168,6 @@
 	int ACCEPT_EVENT_ACTION__ACTIVITY = ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACCEPT_EVENT_ACTION__IN_GROUP = ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -82223,6 +82213,15 @@
 	int ACCEPT_EVENT_ACTION__INCOMING = ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACCEPT_EVENT_ACTION__IN_GROUP = ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -82664,15 +82663,6 @@
 	int ACCEPT_EVENT_ACTION___MUST_BE_OWNED = ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACCEPT_EVENT_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -82691,6 +82681,15 @@
 	int ACCEPT_EVENT_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACCEPT_EVENT_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -82853,31 +82852,22 @@
 	int ACCEPT_EVENT_ACTION___GET_CONTEXT = ACTION___GET_CONTEXT;
 
 	/**
-	 * The operation id for the '<em>Validate Trigger Events</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACCEPT_EVENT_ACTION___VALIDATE_TRIGGER_EVENTS__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 0;
-
-	/**
 	 * The operation id for the '<em>Validate No Input Pins</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ACCEPT_EVENT_ACTION___VALIDATE_NO_INPUT_PINS__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 1;
+	int ACCEPT_EVENT_ACTION___VALIDATE_NO_INPUT_PINS__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 0;
 
 	/**
-	 * The operation id for the '<em>Validate No Output Pins</em>' operation.
+	 * The operation id for the '<em>Validate Trigger Events</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ACCEPT_EVENT_ACTION___VALIDATE_NO_OUTPUT_PINS__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 2;
+	int ACCEPT_EVENT_ACTION___VALIDATE_TRIGGER_EVENTS__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 1;
 
 	/**
 	 * The operation id for the '<em>Validate Unmarshall Signal Events</em>' operation.
@@ -82886,7 +82876,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ACCEPT_EVENT_ACTION___VALIDATE_UNMARSHALL_SIGNAL_EVENTS__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 3;
+	int ACCEPT_EVENT_ACTION___VALIDATE_UNMARSHALL_SIGNAL_EVENTS__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>Validate No Output Pins</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACCEPT_EVENT_ACTION___VALIDATE_NO_OUTPUT_PINS__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 3;
 
 	/**
 	 * The number of operations of the '<em>Accept Event Action</em>' class.
@@ -83015,7 +83014,7 @@
 	int ACCEPT_CALL_ACTION__REDEFINITION_CONTEXT = ACCEPT_EVENT_ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -83024,15 +83023,6 @@
 	int ACCEPT_CALL_ACTION__ACTIVITY = ACCEPT_EVENT_ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACCEPT_CALL_ACTION__IN_GROUP = ACCEPT_EVENT_ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -83078,6 +83068,15 @@
 	int ACCEPT_CALL_ACTION__INCOMING = ACCEPT_EVENT_ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACCEPT_CALL_ACTION__IN_GROUP = ACCEPT_EVENT_ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -83528,15 +83527,6 @@
 	int ACCEPT_CALL_ACTION___MUST_BE_OWNED = ACCEPT_EVENT_ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACCEPT_CALL_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACCEPT_EVENT_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -83555,6 +83545,15 @@
 	int ACCEPT_CALL_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ACCEPT_EVENT_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACCEPT_CALL_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACCEPT_EVENT_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -83717,15 +83716,6 @@
 	int ACCEPT_CALL_ACTION___GET_CONTEXT = ACCEPT_EVENT_ACTION___GET_CONTEXT;
 
 	/**
-	 * The operation id for the '<em>Validate Trigger Events</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACCEPT_CALL_ACTION___VALIDATE_TRIGGER_EVENTS__DIAGNOSTICCHAIN_MAP = ACCEPT_EVENT_ACTION___VALIDATE_TRIGGER_EVENTS__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate No Input Pins</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -83735,13 +83725,13 @@
 	int ACCEPT_CALL_ACTION___VALIDATE_NO_INPUT_PINS__DIAGNOSTICCHAIN_MAP = ACCEPT_EVENT_ACTION___VALIDATE_NO_INPUT_PINS__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate No Output Pins</em>' operation.
+	 * The operation id for the '<em>Validate Trigger Events</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ACCEPT_CALL_ACTION___VALIDATE_NO_OUTPUT_PINS__DIAGNOSTICCHAIN_MAP = ACCEPT_EVENT_ACTION___VALIDATE_NO_OUTPUT_PINS__DIAGNOSTICCHAIN_MAP;
+	int ACCEPT_CALL_ACTION___VALIDATE_TRIGGER_EVENTS__DIAGNOSTICCHAIN_MAP = ACCEPT_EVENT_ACTION___VALIDATE_TRIGGER_EVENTS__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Unmarshall Signal Events</em>' operation.
@@ -83753,13 +83743,13 @@
 	int ACCEPT_CALL_ACTION___VALIDATE_UNMARSHALL_SIGNAL_EVENTS__DIAGNOSTICCHAIN_MAP = ACCEPT_EVENT_ACTION___VALIDATE_UNMARSHALL_SIGNAL_EVENTS__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Result Pins</em>' operation.
+	 * The operation id for the '<em>Validate No Output Pins</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ACCEPT_CALL_ACTION___VALIDATE_RESULT_PINS__DIAGNOSTICCHAIN_MAP = ACCEPT_EVENT_ACTION_OPERATION_COUNT + 0;
+	int ACCEPT_CALL_ACTION___VALIDATE_NO_OUTPUT_PINS__DIAGNOSTICCHAIN_MAP = ACCEPT_EVENT_ACTION___VALIDATE_NO_OUTPUT_PINS__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Trigger Call Event</em>' operation.
@@ -83768,7 +83758,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ACCEPT_CALL_ACTION___VALIDATE_TRIGGER_CALL_EVENT__DIAGNOSTICCHAIN_MAP = ACCEPT_EVENT_ACTION_OPERATION_COUNT + 1;
+	int ACCEPT_CALL_ACTION___VALIDATE_TRIGGER_CALL_EVENT__DIAGNOSTICCHAIN_MAP = ACCEPT_EVENT_ACTION_OPERATION_COUNT + 0;
 
 	/**
 	 * The operation id for the '<em>Validate Unmarshall</em>' operation.
@@ -83777,7 +83767,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ACCEPT_CALL_ACTION___VALIDATE_UNMARSHALL__DIAGNOSTICCHAIN_MAP = ACCEPT_EVENT_ACTION_OPERATION_COUNT + 2;
+	int ACCEPT_CALL_ACTION___VALIDATE_UNMARSHALL__DIAGNOSTICCHAIN_MAP = ACCEPT_EVENT_ACTION_OPERATION_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Validate Result Pins</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACCEPT_CALL_ACTION___VALIDATE_RESULT_PINS__DIAGNOSTICCHAIN_MAP = ACCEPT_EVENT_ACTION_OPERATION_COUNT + 2;
 
 	/**
 	 * The number of operations of the '<em>Accept Call Action</em>' class.
@@ -84329,31 +84328,22 @@
 	int ACTIVITY__SPECIFICATION = BEHAVIOR__SPECIFICATION;
 
 	/**
+	 * The feature id for the '<em><b>Owned Group</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY__OWNED_GROUP = BEHAVIOR_FEATURE_COUNT + 0;
+
+	/**
 	 * The feature id for the '<em><b>Edge</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ACTIVITY__EDGE = BEHAVIOR_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Group</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY__GROUP = BEHAVIOR_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Structured Node</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY__STRUCTURED_NODE = BEHAVIOR_FEATURE_COUNT + 2;
+	int ACTIVITY__EDGE = BEHAVIOR_FEATURE_COUNT + 1;
 
 	/**
 	 * The feature id for the '<em><b>Variable</b></em>' containment reference list.
@@ -84362,7 +84352,25 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ACTIVITY__VARIABLE = BEHAVIOR_FEATURE_COUNT + 3;
+	int ACTIVITY__VARIABLE = BEHAVIOR_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY__GROUP = BEHAVIOR_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Owned Node</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY__OWNED_NODE = BEHAVIOR_FEATURE_COUNT + 4;
 
 	/**
 	 * The feature id for the '<em><b>Is Read Only</b></em>' attribute.
@@ -84371,7 +84379,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ACTIVITY__IS_READ_ONLY = BEHAVIOR_FEATURE_COUNT + 4;
+	int ACTIVITY__IS_READ_ONLY = BEHAVIOR_FEATURE_COUNT + 5;
 
 	/**
 	 * The feature id for the '<em><b>Is Single Execution</b></em>' attribute.
@@ -84380,7 +84388,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ACTIVITY__IS_SINGLE_EXECUTION = BEHAVIOR_FEATURE_COUNT + 5;
+	int ACTIVITY__IS_SINGLE_EXECUTION = BEHAVIOR_FEATURE_COUNT + 6;
 
 	/**
 	 * The feature id for the '<em><b>Partition</b></em>' reference list.
@@ -84389,16 +84397,25 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ACTIVITY__PARTITION = BEHAVIOR_FEATURE_COUNT + 6;
+	int ACTIVITY__PARTITION = BEHAVIOR_FEATURE_COUNT + 7;
 
 	/**
-	 * The feature id for the '<em><b>Node</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Structured Node</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ACTIVITY__NODE = BEHAVIOR_FEATURE_COUNT + 7;
+	int ACTIVITY__STRUCTURED_NODE = BEHAVIOR_FEATURE_COUNT + 8;
+
+	/**
+	 * The feature id for the '<em><b>Node</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY__NODE = BEHAVIOR_FEATURE_COUNT + 9;
 
 	/**
 	 * The number of structural features of the '<em>Activity</em>' class.
@@ -84407,7 +84424,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ACTIVITY_FEATURE_COUNT = BEHAVIOR_FEATURE_COUNT + 8;
+	int ACTIVITY_FEATURE_COUNT = BEHAVIOR_FEATURE_COUNT + 10;
 
 	/**
 	 * The operation id for the '<em>Get EAnnotation</em>' operation.
@@ -84743,15 +84760,6 @@
 	int ACTIVITY___MUST_BE_OWNED = BEHAVIOR___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -84770,6 +84778,15 @@
 	int ACTIVITY___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -85067,24 +85084,6 @@
 	int ACTIVITY___PARAMETERABLE_ELEMENTS = BEHAVIOR___PARAMETERABLE_ELEMENTS;
 
 	/**
-	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Non Final Parents</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -85103,6 +85102,24 @@
 	int ACTIVITY___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Get All Attributes</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -85364,24 +85381,6 @@
 	int ACTIVITY___GET_SUPER_CLASSES = BEHAVIOR___GET_SUPER_CLASSES;
 
 	/**
-	 * The operation id for the '<em>Validate Most One Behaviour</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY___VALIDATE_MOST_ONE_BEHAVIOUR__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_MOST_ONE_BEHAVIOUR__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Must Realize</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY___VALIDATE_MUST_REALIZE__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_MUST_REALIZE__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Parameters Match</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -85400,6 +85399,24 @@
 	int ACTIVITY___VALIDATE_FEATURE_OF_CONTEXT_CLASSIFIER__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_FEATURE_OF_CONTEXT_CLASSIFIER__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Must Realize</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY___VALIDATE_MUST_REALIZE__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_MUST_REALIZE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Most One Behaviour</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY___VALIDATE_MOST_ONE_BEHAVIOUR__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_MOST_ONE_BEHAVIOUR__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Get Context</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -85409,13 +85426,22 @@
 	int ACTIVITY___GET_CONTEXT = BEHAVIOR___GET_CONTEXT;
 
 	/**
+	 * The operation id for the '<em>Validate Activity Parameter Node</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY___VALIDATE_ACTIVITY_PARAMETER_NODE__DIAGNOSTICCHAIN_MAP = BEHAVIOR_OPERATION_COUNT + 0;
+
+	/**
 	 * The operation id for the '<em>Validate Autonomous</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ACTIVITY___VALIDATE_AUTONOMOUS__DIAGNOSTICCHAIN_MAP = BEHAVIOR_OPERATION_COUNT + 0;
+	int ACTIVITY___VALIDATE_AUTONOMOUS__DIAGNOSTICCHAIN_MAP = BEHAVIOR_OPERATION_COUNT + 1;
 
 	/**
 	 * The operation id for the '<em>Validate No Supergroups</em>' operation.
@@ -85424,25 +85450,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ACTIVITY___VALIDATE_NO_SUPERGROUPS__DIAGNOSTICCHAIN_MAP = BEHAVIOR_OPERATION_COUNT + 1;
-
-	/**
-	 * The operation id for the '<em>Validate Activity Parameter Node</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY___VALIDATE_ACTIVITY_PARAMETER_NODE__DIAGNOSTICCHAIN_MAP = BEHAVIOR_OPERATION_COUNT + 2;
-
-	/**
-	 * The operation id for the '<em>Get Structured Nodes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY___GET_STRUCTURED_NODES = BEHAVIOR_OPERATION_COUNT + 3;
+	int ACTIVITY___VALIDATE_NO_SUPERGROUPS__DIAGNOSTICCHAIN_MAP = BEHAVIOR_OPERATION_COUNT + 2;
 
 	/**
 	 * The number of operations of the '<em>Activity</em>' class.
@@ -85451,754 +85459,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ACTIVITY_OPERATION_COUNT = BEHAVIOR_OPERATION_COUNT + 4;
-
-	/**
-	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE__EANNOTATIONS = REDEFINABLE_ELEMENT__EANNOTATIONS;
-
-	/**
-	 * The feature id for the '<em><b>Owned Comment</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE__OWNED_COMMENT = REDEFINABLE_ELEMENT__OWNED_COMMENT;
-
-	/**
-	 * The feature id for the '<em><b>Owned Element</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE__OWNED_ELEMENT = REDEFINABLE_ELEMENT__OWNED_ELEMENT;
-
-	/**
-	 * The feature id for the '<em><b>Owner</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE__OWNER = REDEFINABLE_ELEMENT__OWNER;
-
-	/**
-	 * The feature id for the '<em><b>Client Dependency</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE__CLIENT_DEPENDENCY = REDEFINABLE_ELEMENT__CLIENT_DEPENDENCY;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE__NAME = REDEFINABLE_ELEMENT__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Name Expression</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE__NAME_EXPRESSION = REDEFINABLE_ELEMENT__NAME_EXPRESSION;
-
-	/**
-	 * The feature id for the '<em><b>Namespace</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE__NAMESPACE = REDEFINABLE_ELEMENT__NAMESPACE;
-
-	/**
-	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE__QUALIFIED_NAME = REDEFINABLE_ELEMENT__QUALIFIED_NAME;
-
-	/**
-	 * The feature id for the '<em><b>Visibility</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE__VISIBILITY = REDEFINABLE_ELEMENT__VISIBILITY;
-
-	/**
-	 * The feature id for the '<em><b>Is Leaf</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE__IS_LEAF = REDEFINABLE_ELEMENT__IS_LEAF;
-
-	/**
-	 * The feature id for the '<em><b>Redefined Element</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE__REDEFINED_ELEMENT = REDEFINABLE_ELEMENT__REDEFINED_ELEMENT;
-
-	/**
-	 * The feature id for the '<em><b>Redefinition Context</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE__REDEFINITION_CONTEXT = REDEFINABLE_ELEMENT__REDEFINITION_CONTEXT;
-
-	/**
-	 * The feature id for the '<em><b>Guard</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE__GUARD = REDEFINABLE_ELEMENT_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE__IN_GROUP = REDEFINABLE_ELEMENT_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE__IN_PARTITION = REDEFINABLE_ELEMENT_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>In Structured Node</b></em>' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE__IN_STRUCTURED_NODE = REDEFINABLE_ELEMENT_FEATURE_COUNT + 3;
-
-	/**
-	 * The feature id for the '<em><b>Interrupts</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE__INTERRUPTS = REDEFINABLE_ELEMENT_FEATURE_COUNT + 4;
-
-	/**
-	 * The feature id for the '<em><b>Redefined Edge</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE__REDEFINED_EDGE = REDEFINABLE_ELEMENT_FEATURE_COUNT + 5;
-
-	/**
-	 * The feature id for the '<em><b>Source</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE__SOURCE = REDEFINABLE_ELEMENT_FEATURE_COUNT + 6;
-
-	/**
-	 * The feature id for the '<em><b>Target</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE__TARGET = REDEFINABLE_ELEMENT_FEATURE_COUNT + 7;
-
-	/**
-	 * The feature id for the '<em><b>Weight</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE__WEIGHT = REDEFINABLE_ELEMENT_FEATURE_COUNT + 8;
-
-	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE__ACTIVITY = REDEFINABLE_ELEMENT_FEATURE_COUNT + 9;
-
-	/**
-	 * The number of structural features of the '<em>Activity Edge</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE_FEATURE_COUNT = REDEFINABLE_ELEMENT_FEATURE_COUNT + 10;
-
-	/**
-	 * The operation id for the '<em>Get EAnnotation</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___GET_EANNOTATION__STRING = REDEFINABLE_ELEMENT___GET_EANNOTATION__STRING;
-
-	/**
-	 * The operation id for the '<em>Validate Has Owner</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP = REDEFINABLE_ELEMENT___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Not Own Self</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP = REDEFINABLE_ELEMENT___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Add Keyword</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___ADD_KEYWORD__STRING = REDEFINABLE_ELEMENT___ADD_KEYWORD__STRING;
-
-	/**
-	 * The operation id for the '<em>Apply Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___APPLY_STEREOTYPE__STEREOTYPE = REDEFINABLE_ELEMENT___APPLY_STEREOTYPE__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Create EAnnotation</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___CREATE_EANNOTATION__STRING = REDEFINABLE_ELEMENT___CREATE_EANNOTATION__STRING;
-
-	/**
-	 * The operation id for the '<em>Destroy</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___DESTROY = REDEFINABLE_ELEMENT___DESTROY;
-
-	/**
-	 * The operation id for the '<em>Get Keywords</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___GET_KEYWORDS = REDEFINABLE_ELEMENT___GET_KEYWORDS;
-
-	/**
-	 * The operation id for the '<em>Get Applicable Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___GET_APPLICABLE_STEREOTYPE__STRING = REDEFINABLE_ELEMENT___GET_APPLICABLE_STEREOTYPE__STRING;
-
-	/**
-	 * The operation id for the '<em>Get Applicable Stereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___GET_APPLICABLE_STEREOTYPES = REDEFINABLE_ELEMENT___GET_APPLICABLE_STEREOTYPES;
-
-	/**
-	 * The operation id for the '<em>Get Applied Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___GET_APPLIED_STEREOTYPE__STRING = REDEFINABLE_ELEMENT___GET_APPLIED_STEREOTYPE__STRING;
-
-	/**
-	 * The operation id for the '<em>Get Applied Stereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___GET_APPLIED_STEREOTYPES = REDEFINABLE_ELEMENT___GET_APPLIED_STEREOTYPES;
-
-	/**
-	 * The operation id for the '<em>Get Applied Substereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING = REDEFINABLE_ELEMENT___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING;
-
-	/**
-	 * The operation id for the '<em>Get Applied Substereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE = REDEFINABLE_ELEMENT___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Get Model</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___GET_MODEL = REDEFINABLE_ELEMENT___GET_MODEL;
-
-	/**
-	 * The operation id for the '<em>Get Nearest Package</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___GET_NEAREST_PACKAGE = REDEFINABLE_ELEMENT___GET_NEAREST_PACKAGE;
-
-	/**
-	 * The operation id for the '<em>Get Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___GET_RELATIONSHIPS = REDEFINABLE_ELEMENT___GET_RELATIONSHIPS;
-
-	/**
-	 * The operation id for the '<em>Get Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___GET_RELATIONSHIPS__ECLASS = REDEFINABLE_ELEMENT___GET_RELATIONSHIPS__ECLASS;
-
-	/**
-	 * The operation id for the '<em>Get Required Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___GET_REQUIRED_STEREOTYPE__STRING = REDEFINABLE_ELEMENT___GET_REQUIRED_STEREOTYPE__STRING;
-
-	/**
-	 * The operation id for the '<em>Get Required Stereotypes</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___GET_REQUIRED_STEREOTYPES = REDEFINABLE_ELEMENT___GET_REQUIRED_STEREOTYPES;
-
-	/**
-	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___GET_SOURCE_DIRECTED_RELATIONSHIPS = REDEFINABLE_ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS;
-
-	/**
-	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS = REDEFINABLE_ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS;
-
-	/**
-	 * The operation id for the '<em>Get Stereotype Application</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___GET_STEREOTYPE_APPLICATION__STEREOTYPE = REDEFINABLE_ELEMENT___GET_STEREOTYPE_APPLICATION__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Get Stereotype Applications</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___GET_STEREOTYPE_APPLICATIONS = REDEFINABLE_ELEMENT___GET_STEREOTYPE_APPLICATIONS;
-
-	/**
-	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___GET_TARGET_DIRECTED_RELATIONSHIPS = REDEFINABLE_ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS;
-
-	/**
-	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS = REDEFINABLE_ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS;
-
-	/**
-	 * The operation id for the '<em>Get Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___GET_VALUE__STEREOTYPE_STRING = REDEFINABLE_ELEMENT___GET_VALUE__STEREOTYPE_STRING;
-
-	/**
-	 * The operation id for the '<em>Has Keyword</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___HAS_KEYWORD__STRING = REDEFINABLE_ELEMENT___HAS_KEYWORD__STRING;
-
-	/**
-	 * The operation id for the '<em>Has Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___HAS_VALUE__STEREOTYPE_STRING = REDEFINABLE_ELEMENT___HAS_VALUE__STEREOTYPE_STRING;
-
-	/**
-	 * The operation id for the '<em>Is Stereotype Applicable</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___IS_STEREOTYPE_APPLICABLE__STEREOTYPE = REDEFINABLE_ELEMENT___IS_STEREOTYPE_APPLICABLE__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Is Stereotype Applied</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___IS_STEREOTYPE_APPLIED__STEREOTYPE = REDEFINABLE_ELEMENT___IS_STEREOTYPE_APPLIED__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Is Stereotype Required</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___IS_STEREOTYPE_REQUIRED__STEREOTYPE = REDEFINABLE_ELEMENT___IS_STEREOTYPE_REQUIRED__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>Remove Keyword</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___REMOVE_KEYWORD__STRING = REDEFINABLE_ELEMENT___REMOVE_KEYWORD__STRING;
-
-	/**
-	 * The operation id for the '<em>Set Value</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___SET_VALUE__STEREOTYPE_STRING_OBJECT = REDEFINABLE_ELEMENT___SET_VALUE__STEREOTYPE_STRING_OBJECT;
-
-	/**
-	 * The operation id for the '<em>Unapply Stereotype</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___UNAPPLY_STEREOTYPE__STEREOTYPE = REDEFINABLE_ELEMENT___UNAPPLY_STEREOTYPE__STEREOTYPE;
-
-	/**
-	 * The operation id for the '<em>All Owned Elements</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___ALL_OWNED_ELEMENTS = REDEFINABLE_ELEMENT___ALL_OWNED_ELEMENTS;
-
-	/**
-	 * The operation id for the '<em>Must Be Owned</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___MUST_BE_OWNED = REDEFINABLE_ELEMENT___MUST_BE_OWNED;
-
-	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = REDEFINABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = REDEFINABLE_ELEMENT___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Has No Qualified Name</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = REDEFINABLE_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Create Dependency</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___CREATE_DEPENDENCY__NAMEDELEMENT = REDEFINABLE_ELEMENT___CREATE_DEPENDENCY__NAMEDELEMENT;
-
-	/**
-	 * The operation id for the '<em>Create Usage</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___CREATE_USAGE__NAMEDELEMENT = REDEFINABLE_ELEMENT___CREATE_USAGE__NAMEDELEMENT;
-
-	/**
-	 * The operation id for the '<em>Get Label</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___GET_LABEL = REDEFINABLE_ELEMENT___GET_LABEL;
-
-	/**
-	 * The operation id for the '<em>Get Label</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___GET_LABEL__BOOLEAN = REDEFINABLE_ELEMENT___GET_LABEL__BOOLEAN;
-
-	/**
-	 * The operation id for the '<em>All Namespaces</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___ALL_NAMESPACES = REDEFINABLE_ELEMENT___ALL_NAMESPACES;
-
-	/**
-	 * The operation id for the '<em>All Owning Packages</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___ALL_OWNING_PACKAGES = REDEFINABLE_ELEMENT___ALL_OWNING_PACKAGES;
-
-	/**
-	 * The operation id for the '<em>Is Distinguishable From</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE = REDEFINABLE_ELEMENT___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE;
-
-	/**
-	 * The operation id for the '<em>Get Namespace</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___GET_NAMESPACE = REDEFINABLE_ELEMENT___GET_NAMESPACE;
-
-	/**
-	 * The operation id for the '<em>Get Qualified Name</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___GET_QUALIFIED_NAME = REDEFINABLE_ELEMENT___GET_QUALIFIED_NAME;
-
-	/**
-	 * The operation id for the '<em>Separator</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___SEPARATOR = REDEFINABLE_ELEMENT___SEPARATOR;
-
-	/**
-	 * The operation id for the '<em>Validate Redefinition Consistent</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___VALIDATE_REDEFINITION_CONSISTENT__DIAGNOSTICCHAIN_MAP = REDEFINABLE_ELEMENT___VALIDATE_REDEFINITION_CONSISTENT__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Non Leaf Redefinition</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___VALIDATE_NON_LEAF_REDEFINITION__DIAGNOSTICCHAIN_MAP = REDEFINABLE_ELEMENT___VALIDATE_NON_LEAF_REDEFINITION__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Redefinition Context Valid</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___VALIDATE_REDEFINITION_CONTEXT_VALID__DIAGNOSTICCHAIN_MAP = REDEFINABLE_ELEMENT___VALIDATE_REDEFINITION_CONTEXT_VALID__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Is Consistent With</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___IS_CONSISTENT_WITH__REDEFINABLEELEMENT = REDEFINABLE_ELEMENT___IS_CONSISTENT_WITH__REDEFINABLEELEMENT;
-
-	/**
-	 * The operation id for the '<em>Is Redefinition Context Valid</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___IS_REDEFINITION_CONTEXT_VALID__REDEFINABLEELEMENT = REDEFINABLE_ELEMENT___IS_REDEFINITION_CONTEXT_VALID__REDEFINABLEELEMENT;
-
-	/**
-	 * The operation id for the '<em>Validate Owned</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___VALIDATE_OWNED__DIAGNOSTICCHAIN_MAP = REDEFINABLE_ELEMENT_OPERATION_COUNT + 0;
-
-	/**
-	 * The operation id for the '<em>Validate Source And Target</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___VALIDATE_SOURCE_AND_TARGET__DIAGNOSTICCHAIN_MAP = REDEFINABLE_ELEMENT_OPERATION_COUNT + 1;
-
-	/**
-	 * The operation id for the '<em>Validate Structured Node</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE___VALIDATE_STRUCTURED_NODE__DIAGNOSTICCHAIN_MAP = REDEFINABLE_ELEMENT_OPERATION_COUNT + 2;
-
-	/**
-	 * The number of operations of the '<em>Activity Edge</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_EDGE_OPERATION_COUNT = REDEFINABLE_ELEMENT_OPERATION_COUNT + 3;
+	int ACTIVITY_OPERATION_COUNT = BEHAVIOR_OPERATION_COUNT + 3;
 
 	/**
 	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
@@ -86291,22 +85552,31 @@
 	int ACTIVITY_GROUP__VISIBILITY = NAMED_ELEMENT__VISIBILITY;
 
 	/**
+	 * The feature id for the '<em><b>Contained Edge</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_GROUP__CONTAINED_EDGE = NAMED_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
 	 * The feature id for the '<em><b>Contained Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ACTIVITY_GROUP__CONTAINED_NODE = NAMED_ELEMENT_FEATURE_COUNT + 0;
+	int ACTIVITY_GROUP__CONTAINED_NODE = NAMED_ELEMENT_FEATURE_COUNT + 1;
 
 	/**
-	 * The feature id for the '<em><b>In Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>In Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ACTIVITY_GROUP__IN_ACTIVITY = NAMED_ELEMENT_FEATURE_COUNT + 1;
+	int ACTIVITY_GROUP__IN_ACTIVITY = NAMED_ELEMENT_FEATURE_COUNT + 2;
 
 	/**
 	 * The feature id for the '<em><b>Subgroup</b></em>' reference list.
@@ -86315,7 +85585,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ACTIVITY_GROUP__SUBGROUP = NAMED_ELEMENT_FEATURE_COUNT + 2;
+	int ACTIVITY_GROUP__SUBGROUP = NAMED_ELEMENT_FEATURE_COUNT + 3;
 
 	/**
 	 * The feature id for the '<em><b>Super Group</b></em>' reference.
@@ -86324,16 +85594,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ACTIVITY_GROUP__SUPER_GROUP = NAMED_ELEMENT_FEATURE_COUNT + 3;
-
-	/**
-	 * The feature id for the '<em><b>Contained Edge</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_GROUP__CONTAINED_EDGE = NAMED_ELEMENT_FEATURE_COUNT + 4;
+	int ACTIVITY_GROUP__SUPER_GROUP = NAMED_ELEMENT_FEATURE_COUNT + 4;
 
 	/**
 	 * The number of structural features of the '<em>Activity Group</em>' class.
@@ -86678,15 +85939,6 @@
 	int ACTIVITY_GROUP___MUST_BE_OWNED = NAMED_ELEMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_GROUP___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -86705,6 +85957,15 @@
 	int ACTIVITY_GROUP___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_GROUP___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -86795,22 +86056,13 @@
 	int ACTIVITY_GROUP___SEPARATOR = NAMED_ELEMENT___SEPARATOR;
 
 	/**
-	 * The operation id for the '<em>Validate Nodes And Edges</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_GROUP___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT_OPERATION_COUNT + 0;
-
-	/**
 	 * The operation id for the '<em>Validate Group Owned</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ACTIVITY_GROUP___VALIDATE_GROUP_OWNED__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT_OPERATION_COUNT + 1;
+	int ACTIVITY_GROUP___VALIDATE_GROUP_OWNED__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT_OPERATION_COUNT + 0;
 
 	/**
 	 * The operation id for the '<em>Validate Not Contained</em>' operation.
@@ -86819,7 +86071,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ACTIVITY_GROUP___VALIDATE_NOT_CONTAINED__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT_OPERATION_COUNT + 2;
+	int ACTIVITY_GROUP___VALIDATE_NOT_CONTAINED__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT_OPERATION_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Validate Nodes And Edges</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_GROUP___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT_OPERATION_COUNT + 2;
 
 	/**
 	 * The number of operations of the '<em>Activity Group</em>' class.
@@ -86837,6 +86098,753 @@
 	 * @generated
 	 * @ordered
 	 */
+	int ACTIVITY_EDGE__EANNOTATIONS = REDEFINABLE_ELEMENT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Owned Comment</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE__OWNED_COMMENT = REDEFINABLE_ELEMENT__OWNED_COMMENT;
+
+	/**
+	 * The feature id for the '<em><b>Owned Element</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE__OWNED_ELEMENT = REDEFINABLE_ELEMENT__OWNED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Owner</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE__OWNER = REDEFINABLE_ELEMENT__OWNER;
+
+	/**
+	 * The feature id for the '<em><b>Client Dependency</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE__CLIENT_DEPENDENCY = REDEFINABLE_ELEMENT__CLIENT_DEPENDENCY;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE__NAME = REDEFINABLE_ELEMENT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Name Expression</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE__NAME_EXPRESSION = REDEFINABLE_ELEMENT__NAME_EXPRESSION;
+
+	/**
+	 * The feature id for the '<em><b>Namespace</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE__NAMESPACE = REDEFINABLE_ELEMENT__NAMESPACE;
+
+	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE__QUALIFIED_NAME = REDEFINABLE_ELEMENT__QUALIFIED_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Visibility</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE__VISIBILITY = REDEFINABLE_ELEMENT__VISIBILITY;
+
+	/**
+	 * The feature id for the '<em><b>Is Leaf</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE__IS_LEAF = REDEFINABLE_ELEMENT__IS_LEAF;
+
+	/**
+	 * The feature id for the '<em><b>Redefined Element</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE__REDEFINED_ELEMENT = REDEFINABLE_ELEMENT__REDEFINED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Redefinition Context</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE__REDEFINITION_CONTEXT = REDEFINABLE_ELEMENT__REDEFINITION_CONTEXT;
+
+	/**
+	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE__ACTIVITY = REDEFINABLE_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Guard</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE__GUARD = REDEFINABLE_ELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE__IN_PARTITION = REDEFINABLE_ELEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>In Structured Node</b></em>' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE__IN_STRUCTURED_NODE = REDEFINABLE_ELEMENT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Interrupts</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE__INTERRUPTS = REDEFINABLE_ELEMENT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Redefined Edge</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE__REDEFINED_EDGE = REDEFINABLE_ELEMENT_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Source</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE__SOURCE = REDEFINABLE_ELEMENT_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Target</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE__TARGET = REDEFINABLE_ELEMENT_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>Weight</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE__WEIGHT = REDEFINABLE_ELEMENT_FEATURE_COUNT + 8;
+
+	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE__IN_GROUP = REDEFINABLE_ELEMENT_FEATURE_COUNT + 9;
+
+	/**
+	 * The number of structural features of the '<em>Activity Edge</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE_FEATURE_COUNT = REDEFINABLE_ELEMENT_FEATURE_COUNT + 10;
+
+	/**
+	 * The operation id for the '<em>Get EAnnotation</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___GET_EANNOTATION__STRING = REDEFINABLE_ELEMENT___GET_EANNOTATION__STRING;
+
+	/**
+	 * The operation id for the '<em>Validate Has Owner</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP = REDEFINABLE_ELEMENT___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Not Own Self</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP = REDEFINABLE_ELEMENT___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Add Keyword</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___ADD_KEYWORD__STRING = REDEFINABLE_ELEMENT___ADD_KEYWORD__STRING;
+
+	/**
+	 * The operation id for the '<em>Apply Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___APPLY_STEREOTYPE__STEREOTYPE = REDEFINABLE_ELEMENT___APPLY_STEREOTYPE__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Create EAnnotation</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___CREATE_EANNOTATION__STRING = REDEFINABLE_ELEMENT___CREATE_EANNOTATION__STRING;
+
+	/**
+	 * The operation id for the '<em>Destroy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___DESTROY = REDEFINABLE_ELEMENT___DESTROY;
+
+	/**
+	 * The operation id for the '<em>Get Keywords</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___GET_KEYWORDS = REDEFINABLE_ELEMENT___GET_KEYWORDS;
+
+	/**
+	 * The operation id for the '<em>Get Applicable Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___GET_APPLICABLE_STEREOTYPE__STRING = REDEFINABLE_ELEMENT___GET_APPLICABLE_STEREOTYPE__STRING;
+
+	/**
+	 * The operation id for the '<em>Get Applicable Stereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___GET_APPLICABLE_STEREOTYPES = REDEFINABLE_ELEMENT___GET_APPLICABLE_STEREOTYPES;
+
+	/**
+	 * The operation id for the '<em>Get Applied Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___GET_APPLIED_STEREOTYPE__STRING = REDEFINABLE_ELEMENT___GET_APPLIED_STEREOTYPE__STRING;
+
+	/**
+	 * The operation id for the '<em>Get Applied Stereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___GET_APPLIED_STEREOTYPES = REDEFINABLE_ELEMENT___GET_APPLIED_STEREOTYPES;
+
+	/**
+	 * The operation id for the '<em>Get Applied Substereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING = REDEFINABLE_ELEMENT___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING;
+
+	/**
+	 * The operation id for the '<em>Get Applied Substereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE = REDEFINABLE_ELEMENT___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Get Model</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___GET_MODEL = REDEFINABLE_ELEMENT___GET_MODEL;
+
+	/**
+	 * The operation id for the '<em>Get Nearest Package</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___GET_NEAREST_PACKAGE = REDEFINABLE_ELEMENT___GET_NEAREST_PACKAGE;
+
+	/**
+	 * The operation id for the '<em>Get Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___GET_RELATIONSHIPS = REDEFINABLE_ELEMENT___GET_RELATIONSHIPS;
+
+	/**
+	 * The operation id for the '<em>Get Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___GET_RELATIONSHIPS__ECLASS = REDEFINABLE_ELEMENT___GET_RELATIONSHIPS__ECLASS;
+
+	/**
+	 * The operation id for the '<em>Get Required Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___GET_REQUIRED_STEREOTYPE__STRING = REDEFINABLE_ELEMENT___GET_REQUIRED_STEREOTYPE__STRING;
+
+	/**
+	 * The operation id for the '<em>Get Required Stereotypes</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___GET_REQUIRED_STEREOTYPES = REDEFINABLE_ELEMENT___GET_REQUIRED_STEREOTYPES;
+
+	/**
+	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___GET_SOURCE_DIRECTED_RELATIONSHIPS = REDEFINABLE_ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS;
+
+	/**
+	 * The operation id for the '<em>Get Source Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS = REDEFINABLE_ELEMENT___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS;
+
+	/**
+	 * The operation id for the '<em>Get Stereotype Application</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___GET_STEREOTYPE_APPLICATION__STEREOTYPE = REDEFINABLE_ELEMENT___GET_STEREOTYPE_APPLICATION__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Get Stereotype Applications</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___GET_STEREOTYPE_APPLICATIONS = REDEFINABLE_ELEMENT___GET_STEREOTYPE_APPLICATIONS;
+
+	/**
+	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___GET_TARGET_DIRECTED_RELATIONSHIPS = REDEFINABLE_ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS;
+
+	/**
+	 * The operation id for the '<em>Get Target Directed Relationships</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS = REDEFINABLE_ELEMENT___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS;
+
+	/**
+	 * The operation id for the '<em>Get Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___GET_VALUE__STEREOTYPE_STRING = REDEFINABLE_ELEMENT___GET_VALUE__STEREOTYPE_STRING;
+
+	/**
+	 * The operation id for the '<em>Has Keyword</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___HAS_KEYWORD__STRING = REDEFINABLE_ELEMENT___HAS_KEYWORD__STRING;
+
+	/**
+	 * The operation id for the '<em>Has Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___HAS_VALUE__STEREOTYPE_STRING = REDEFINABLE_ELEMENT___HAS_VALUE__STEREOTYPE_STRING;
+
+	/**
+	 * The operation id for the '<em>Is Stereotype Applicable</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___IS_STEREOTYPE_APPLICABLE__STEREOTYPE = REDEFINABLE_ELEMENT___IS_STEREOTYPE_APPLICABLE__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Is Stereotype Applied</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___IS_STEREOTYPE_APPLIED__STEREOTYPE = REDEFINABLE_ELEMENT___IS_STEREOTYPE_APPLIED__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Is Stereotype Required</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___IS_STEREOTYPE_REQUIRED__STEREOTYPE = REDEFINABLE_ELEMENT___IS_STEREOTYPE_REQUIRED__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>Remove Keyword</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___REMOVE_KEYWORD__STRING = REDEFINABLE_ELEMENT___REMOVE_KEYWORD__STRING;
+
+	/**
+	 * The operation id for the '<em>Set Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___SET_VALUE__STEREOTYPE_STRING_OBJECT = REDEFINABLE_ELEMENT___SET_VALUE__STEREOTYPE_STRING_OBJECT;
+
+	/**
+	 * The operation id for the '<em>Unapply Stereotype</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___UNAPPLY_STEREOTYPE__STEREOTYPE = REDEFINABLE_ELEMENT___UNAPPLY_STEREOTYPE__STEREOTYPE;
+
+	/**
+	 * The operation id for the '<em>All Owned Elements</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___ALL_OWNED_ELEMENTS = REDEFINABLE_ELEMENT___ALL_OWNED_ELEMENTS;
+
+	/**
+	 * The operation id for the '<em>Must Be Owned</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___MUST_BE_OWNED = REDEFINABLE_ELEMENT___MUST_BE_OWNED;
+
+	/**
+	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = REDEFINABLE_ELEMENT___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Has No Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = REDEFINABLE_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = REDEFINABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Create Dependency</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___CREATE_DEPENDENCY__NAMEDELEMENT = REDEFINABLE_ELEMENT___CREATE_DEPENDENCY__NAMEDELEMENT;
+
+	/**
+	 * The operation id for the '<em>Create Usage</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___CREATE_USAGE__NAMEDELEMENT = REDEFINABLE_ELEMENT___CREATE_USAGE__NAMEDELEMENT;
+
+	/**
+	 * The operation id for the '<em>Get Label</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___GET_LABEL = REDEFINABLE_ELEMENT___GET_LABEL;
+
+	/**
+	 * The operation id for the '<em>Get Label</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___GET_LABEL__BOOLEAN = REDEFINABLE_ELEMENT___GET_LABEL__BOOLEAN;
+
+	/**
+	 * The operation id for the '<em>All Namespaces</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___ALL_NAMESPACES = REDEFINABLE_ELEMENT___ALL_NAMESPACES;
+
+	/**
+	 * The operation id for the '<em>All Owning Packages</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___ALL_OWNING_PACKAGES = REDEFINABLE_ELEMENT___ALL_OWNING_PACKAGES;
+
+	/**
+	 * The operation id for the '<em>Is Distinguishable From</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE = REDEFINABLE_ELEMENT___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___GET_NAMESPACE = REDEFINABLE_ELEMENT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___GET_QUALIFIED_NAME = REDEFINABLE_ELEMENT___GET_QUALIFIED_NAME;
+
+	/**
+	 * The operation id for the '<em>Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___SEPARATOR = REDEFINABLE_ELEMENT___SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Validate Redefinition Consistent</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___VALIDATE_REDEFINITION_CONSISTENT__DIAGNOSTICCHAIN_MAP = REDEFINABLE_ELEMENT___VALIDATE_REDEFINITION_CONSISTENT__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Non Leaf Redefinition</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___VALIDATE_NON_LEAF_REDEFINITION__DIAGNOSTICCHAIN_MAP = REDEFINABLE_ELEMENT___VALIDATE_NON_LEAF_REDEFINITION__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Redefinition Context Valid</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___VALIDATE_REDEFINITION_CONTEXT_VALID__DIAGNOSTICCHAIN_MAP = REDEFINABLE_ELEMENT___VALIDATE_REDEFINITION_CONTEXT_VALID__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Is Consistent With</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___IS_CONSISTENT_WITH__REDEFINABLEELEMENT = REDEFINABLE_ELEMENT___IS_CONSISTENT_WITH__REDEFINABLEELEMENT;
+
+	/**
+	 * The operation id for the '<em>Is Redefinition Context Valid</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___IS_REDEFINITION_CONTEXT_VALID__REDEFINABLEELEMENT = REDEFINABLE_ELEMENT___IS_REDEFINITION_CONTEXT_VALID__REDEFINABLEELEMENT;
+
+	/**
+	 * The operation id for the '<em>Validate Owned</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___VALIDATE_OWNED__DIAGNOSTICCHAIN_MAP = REDEFINABLE_ELEMENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Validate Source And Target</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___VALIDATE_SOURCE_AND_TARGET__DIAGNOSTICCHAIN_MAP = REDEFINABLE_ELEMENT_OPERATION_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Validate Structured Node</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE___VALIDATE_STRUCTURED_NODE__DIAGNOSTICCHAIN_MAP = REDEFINABLE_ELEMENT_OPERATION_COUNT + 2;
+
+	/**
+	 * The number of operations of the '<em>Activity Edge</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_EDGE_OPERATION_COUNT = REDEFINABLE_ELEMENT_OPERATION_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
 	int ACTIVITY_PARTITION__EANNOTATIONS = ACTIVITY_GROUP__EANNOTATIONS;
 
 	/**
@@ -86921,6 +86929,15 @@
 	int ACTIVITY_PARTITION__VISIBILITY = ACTIVITY_GROUP__VISIBILITY;
 
 	/**
+	 * The feature id for the '<em><b>Contained Edge</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_PARTITION__CONTAINED_EDGE = ACTIVITY_GROUP__CONTAINED_EDGE;
+
+	/**
 	 * The feature id for the '<em><b>Contained Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -86930,7 +86947,7 @@
 	int ACTIVITY_PARTITION__CONTAINED_NODE = ACTIVITY_GROUP__CONTAINED_NODE;
 
 	/**
-	 * The feature id for the '<em><b>In Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>In Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -86957,15 +86974,6 @@
 	int ACTIVITY_PARTITION__SUPER_GROUP = ACTIVITY_GROUP__SUPER_GROUP;
 
 	/**
-	 * The feature id for the '<em><b>Contained Edge</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_PARTITION__CONTAINED_EDGE = ACTIVITY_GROUP__CONTAINED_EDGE;
-
-	/**
 	 * The feature id for the '<em><b>Is Dimension</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -87371,15 +87379,6 @@
 	int ACTIVITY_PARTITION___MUST_BE_OWNED = ACTIVITY_GROUP___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_PARTITION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTIVITY_GROUP___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -87398,6 +87397,15 @@
 	int ACTIVITY_PARTITION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ACTIVITY_GROUP___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_PARTITION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTIVITY_GROUP___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -87488,15 +87496,6 @@
 	int ACTIVITY_PARTITION___SEPARATOR = ACTIVITY_GROUP___SEPARATOR;
 
 	/**
-	 * The operation id for the '<em>Validate Nodes And Edges</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_PARTITION___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP = ACTIVITY_GROUP___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Group Owned</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -87515,22 +87514,13 @@
 	int ACTIVITY_PARTITION___VALIDATE_NOT_CONTAINED__DIAGNOSTICCHAIN_MAP = ACTIVITY_GROUP___VALIDATE_NOT_CONTAINED__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Represents Classifier</em>' operation.
+	 * The operation id for the '<em>Validate Nodes And Edges</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ACTIVITY_PARTITION___VALIDATE_REPRESENTS_CLASSIFIER__DIAGNOSTICCHAIN_MAP = ACTIVITY_GROUP_OPERATION_COUNT + 0;
-
-	/**
-	 * The operation id for the '<em>Validate Represents Part And Is Contained</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_PARTITION___VALIDATE_REPRESENTS_PART_AND_IS_CONTAINED__DIAGNOSTICCHAIN_MAP = ACTIVITY_GROUP_OPERATION_COUNT + 1;
+	int ACTIVITY_PARTITION___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP = ACTIVITY_GROUP___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Represents Part</em>' operation.
@@ -87539,7 +87529,25 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ACTIVITY_PARTITION___VALIDATE_REPRESENTS_PART__DIAGNOSTICCHAIN_MAP = ACTIVITY_GROUP_OPERATION_COUNT + 2;
+	int ACTIVITY_PARTITION___VALIDATE_REPRESENTS_PART__DIAGNOSTICCHAIN_MAP = ACTIVITY_GROUP_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Validate Represents Classifier</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_PARTITION___VALIDATE_REPRESENTS_CLASSIFIER__DIAGNOSTICCHAIN_MAP = ACTIVITY_GROUP_OPERATION_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Validate Represents Part And Is Contained</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_PARTITION___VALIDATE_REPRESENTS_PART_AND_IS_CONTAINED__DIAGNOSTICCHAIN_MAP = ACTIVITY_GROUP_OPERATION_COUNT + 2;
 
 	/**
 	 * The operation id for the '<em>Validate Dimension Not Contained</em>' operation.
@@ -87677,7 +87685,7 @@
 	int STRUCTURED_ACTIVITY_NODE__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -87686,15 +87694,6 @@
 	int STRUCTURED_ACTIVITY_NODE__ACTIVITY = ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STRUCTURED_ACTIVITY_NODE__IN_GROUP = ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -87740,6 +87739,15 @@
 	int STRUCTURED_ACTIVITY_NODE__INCOMING = ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCTURED_ACTIVITY_NODE__IN_GROUP = ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -87866,22 +87874,31 @@
 	int STRUCTURED_ACTIVITY_NODE__MEMBER = ACTION_FEATURE_COUNT + 5;
 
 	/**
+	 * The feature id for the '<em><b>Contained Edge</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCTURED_ACTIVITY_NODE__CONTAINED_EDGE = ACTION_FEATURE_COUNT + 6;
+
+	/**
 	 * The feature id for the '<em><b>Contained Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int STRUCTURED_ACTIVITY_NODE__CONTAINED_NODE = ACTION_FEATURE_COUNT + 6;
+	int STRUCTURED_ACTIVITY_NODE__CONTAINED_NODE = ACTION_FEATURE_COUNT + 7;
 
 	/**
-	 * The feature id for the '<em><b>In Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>In Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int STRUCTURED_ACTIVITY_NODE__IN_ACTIVITY = ACTION_FEATURE_COUNT + 7;
+	int STRUCTURED_ACTIVITY_NODE__IN_ACTIVITY = ACTION_FEATURE_COUNT + 8;
 
 	/**
 	 * The feature id for the '<em><b>Subgroup</b></em>' reference list.
@@ -87890,7 +87907,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int STRUCTURED_ACTIVITY_NODE__SUBGROUP = ACTION_FEATURE_COUNT + 8;
+	int STRUCTURED_ACTIVITY_NODE__SUBGROUP = ACTION_FEATURE_COUNT + 9;
 
 	/**
 	 * The feature id for the '<em><b>Super Group</b></em>' reference.
@@ -87899,16 +87916,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int STRUCTURED_ACTIVITY_NODE__SUPER_GROUP = ACTION_FEATURE_COUNT + 9;
-
-	/**
-	 * The feature id for the '<em><b>Contained Edge</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STRUCTURED_ACTIVITY_NODE__CONTAINED_EDGE = ACTION_FEATURE_COUNT + 10;
+	int STRUCTURED_ACTIVITY_NODE__SUPER_GROUP = ACTION_FEATURE_COUNT + 10;
 
 	/**
 	 * The feature id for the '<em><b>Must Isolate</b></em>' attribute.
@@ -88307,15 +88315,6 @@
 	int STRUCTURED_ACTIVITY_NODE___MUST_BE_OWNED = ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STRUCTURED_ACTIVITY_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -88334,6 +88333,15 @@
 	int STRUCTURED_ACTIVITY_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCTURED_ACTIVITY_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -88595,22 +88603,13 @@
 	int STRUCTURED_ACTIVITY_NODE___GET_OWNED_MEMBERS = ACTION_OPERATION_COUNT + 10;
 
 	/**
-	 * The operation id for the '<em>Validate Nodes And Edges</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STRUCTURED_ACTIVITY_NODE___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 11;
-
-	/**
 	 * The operation id for the '<em>Validate Group Owned</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int STRUCTURED_ACTIVITY_NODE___VALIDATE_GROUP_OWNED__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 12;
+	int STRUCTURED_ACTIVITY_NODE___VALIDATE_GROUP_OWNED__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 11;
 
 	/**
 	 * The operation id for the '<em>Validate Not Contained</em>' operation.
@@ -88619,16 +88618,25 @@
 	 * @generated
 	 * @ordered
 	 */
-	int STRUCTURED_ACTIVITY_NODE___VALIDATE_NOT_CONTAINED__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 13;
+	int STRUCTURED_ACTIVITY_NODE___VALIDATE_NOT_CONTAINED__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 12;
 
 	/**
-	 * The operation id for the '<em>Validate Output Pin Edges</em>' operation.
+	 * The operation id for the '<em>Validate Nodes And Edges</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int STRUCTURED_ACTIVITY_NODE___VALIDATE_OUTPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 14;
+	int STRUCTURED_ACTIVITY_NODE___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 13;
+
+	/**
+	 * The operation id for the '<em>Validate Input Pin Edges</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCTURED_ACTIVITY_NODE___VALIDATE_INPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 14;
 
 	/**
 	 * The operation id for the '<em>Validate Edges</em>' operation.
@@ -88640,13 +88648,13 @@
 	int STRUCTURED_ACTIVITY_NODE___VALIDATE_EDGES__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 15;
 
 	/**
-	 * The operation id for the '<em>Validate Input Pin Edges</em>' operation.
+	 * The operation id for the '<em>Validate Output Pin Edges</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int STRUCTURED_ACTIVITY_NODE___VALIDATE_INPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 16;
+	int STRUCTURED_ACTIVITY_NODE___VALIDATE_OUTPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 16;
 
 	/**
 	 * The number of operations of the '<em>Structured Activity Node</em>' class.
@@ -88775,7 +88783,7 @@
 	int OBJECT_NODE__REDEFINITION_CONTEXT = ACTIVITY_NODE__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -88784,15 +88792,6 @@
 	int OBJECT_NODE__ACTIVITY = ACTIVITY_NODE__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int OBJECT_NODE__IN_GROUP = ACTIVITY_NODE__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -88838,6 +88837,15 @@
 	int OBJECT_NODE__INCOMING = ACTIVITY_NODE__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OBJECT_NODE__IN_GROUP = ACTIVITY_NODE__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -89243,15 +89251,6 @@
 	int OBJECT_NODE___MUST_BE_OWNED = ACTIVITY_NODE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int OBJECT_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTIVITY_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -89270,6 +89269,15 @@
 	int OBJECT_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ACTIVITY_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OBJECT_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTIVITY_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -89423,13 +89431,13 @@
 	int OBJECT_NODE___VALIDATE_OWNED_STRUCTURED_NODE__DIAGNOSTICCHAIN_MAP = ACTIVITY_NODE___VALIDATE_OWNED_STRUCTURED_NODE__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Input Output Parameter</em>' operation.
+	 * The operation id for the '<em>Validate Object Flow Edges</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int OBJECT_NODE___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP = ACTIVITY_NODE_OPERATION_COUNT + 0;
+	int OBJECT_NODE___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP = ACTIVITY_NODE_OPERATION_COUNT + 0;
 
 	/**
 	 * The operation id for the '<em>Validate Selection Behavior</em>' operation.
@@ -89441,13 +89449,13 @@
 	int OBJECT_NODE___VALIDATE_SELECTION_BEHAVIOR__DIAGNOSTICCHAIN_MAP = ACTIVITY_NODE_OPERATION_COUNT + 1;
 
 	/**
-	 * The operation id for the '<em>Validate Object Flow Edges</em>' operation.
+	 * The operation id for the '<em>Validate Input Output Parameter</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int OBJECT_NODE___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP = ACTIVITY_NODE_OPERATION_COUNT + 2;
+	int OBJECT_NODE___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP = ACTIVITY_NODE_OPERATION_COUNT + 2;
 
 	/**
 	 * The number of operations of the '<em>Object Node</em>' class.
@@ -89576,7 +89584,7 @@
 	int PIN__REDEFINITION_CONTEXT = OBJECT_NODE__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -89585,15 +89593,6 @@
 	int PIN__ACTIVITY = OBJECT_NODE__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PIN__IN_GROUP = OBJECT_NODE__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -89639,6 +89638,15 @@
 	int PIN__INCOMING = OBJECT_NODE__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PIN__IN_GROUP = OBJECT_NODE__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -90107,15 +90115,6 @@
 	int PIN___MUST_BE_OWNED = OBJECT_NODE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PIN___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = OBJECT_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -90134,6 +90133,15 @@
 	int PIN___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = OBJECT_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PIN___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = OBJECT_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -90287,13 +90295,13 @@
 	int PIN___VALIDATE_OWNED_STRUCTURED_NODE__DIAGNOSTICCHAIN_MAP = OBJECT_NODE___VALIDATE_OWNED_STRUCTURED_NODE__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Input Output Parameter</em>' operation.
+	 * The operation id for the '<em>Validate Object Flow Edges</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PIN___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP = OBJECT_NODE___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP;
+	int PIN___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP = OBJECT_NODE___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Selection Behavior</em>' operation.
@@ -90305,22 +90313,13 @@
 	int PIN___VALIDATE_SELECTION_BEHAVIOR__DIAGNOSTICCHAIN_MAP = OBJECT_NODE___VALIDATE_SELECTION_BEHAVIOR__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Object Flow Edges</em>' operation.
+	 * The operation id for the '<em>Validate Input Output Parameter</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PIN___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP = OBJECT_NODE___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Upper Ge Lower</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PIN___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP = OBJECT_NODE_OPERATION_COUNT + 0;
+	int PIN___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP = OBJECT_NODE___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Lower Ge0</em>' operation.
@@ -90329,16 +90328,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PIN___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP = OBJECT_NODE_OPERATION_COUNT + 1;
+	int PIN___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP = OBJECT_NODE_OPERATION_COUNT + 0;
 
 	/**
-	 * The operation id for the '<em>Validate Value Specification No Side Effects</em>' operation.
+	 * The operation id for the '<em>Validate Upper Ge Lower</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PIN___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP = OBJECT_NODE_OPERATION_COUNT + 2;
+	int PIN___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP = OBJECT_NODE_OPERATION_COUNT + 1;
 
 	/**
 	 * The operation id for the '<em>Validate Value Specification Constant</em>' operation.
@@ -90347,7 +90346,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PIN___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP = OBJECT_NODE_OPERATION_COUNT + 3;
+	int PIN___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP = OBJECT_NODE_OPERATION_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>Validate Value Specification No Side Effects</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PIN___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP = OBJECT_NODE_OPERATION_COUNT + 3;
 
 	/**
 	 * The operation id for the '<em>Set Lower</em>' operation.
@@ -90584,7 +90592,7 @@
 	int INPUT_PIN__REDEFINITION_CONTEXT = PIN__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -90593,15 +90601,6 @@
 	int INPUT_PIN__ACTIVITY = PIN__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INPUT_PIN__IN_GROUP = PIN__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -90647,6 +90646,15 @@
 	int INPUT_PIN__INCOMING = PIN__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INPUT_PIN__IN_GROUP = PIN__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -91115,15 +91123,6 @@
 	int INPUT_PIN___MUST_BE_OWNED = PIN___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INPUT_PIN___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = PIN___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -91142,6 +91141,15 @@
 	int INPUT_PIN___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = PIN___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INPUT_PIN___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = PIN___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -91295,13 +91303,13 @@
 	int INPUT_PIN___VALIDATE_OWNED_STRUCTURED_NODE__DIAGNOSTICCHAIN_MAP = PIN___VALIDATE_OWNED_STRUCTURED_NODE__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Input Output Parameter</em>' operation.
+	 * The operation id for the '<em>Validate Object Flow Edges</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int INPUT_PIN___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP = PIN___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP;
+	int INPUT_PIN___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP = PIN___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Selection Behavior</em>' operation.
@@ -91313,22 +91321,13 @@
 	int INPUT_PIN___VALIDATE_SELECTION_BEHAVIOR__DIAGNOSTICCHAIN_MAP = PIN___VALIDATE_SELECTION_BEHAVIOR__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Object Flow Edges</em>' operation.
+	 * The operation id for the '<em>Validate Input Output Parameter</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int INPUT_PIN___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP = PIN___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Upper Ge Lower</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INPUT_PIN___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP = PIN___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP;
+	int INPUT_PIN___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP = PIN___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Lower Ge0</em>' operation.
@@ -91340,13 +91339,13 @@
 	int INPUT_PIN___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP = PIN___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Value Specification No Side Effects</em>' operation.
+	 * The operation id for the '<em>Validate Upper Ge Lower</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int INPUT_PIN___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP = PIN___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP;
+	int INPUT_PIN___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP = PIN___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Value Specification Constant</em>' operation.
@@ -91358,6 +91357,15 @@
 	int INPUT_PIN___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP = PIN___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Value Specification No Side Effects</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INPUT_PIN___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP = PIN___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Set Lower</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -91601,7 +91609,7 @@
 	int OUTPUT_PIN__REDEFINITION_CONTEXT = PIN__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -91610,15 +91618,6 @@
 	int OUTPUT_PIN__ACTIVITY = PIN__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int OUTPUT_PIN__IN_GROUP = PIN__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -91664,6 +91663,15 @@
 	int OUTPUT_PIN__INCOMING = PIN__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OUTPUT_PIN__IN_GROUP = PIN__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -92132,15 +92140,6 @@
 	int OUTPUT_PIN___MUST_BE_OWNED = PIN___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int OUTPUT_PIN___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = PIN___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -92159,6 +92158,15 @@
 	int OUTPUT_PIN___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = PIN___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OUTPUT_PIN___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = PIN___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -92312,13 +92320,13 @@
 	int OUTPUT_PIN___VALIDATE_OWNED_STRUCTURED_NODE__DIAGNOSTICCHAIN_MAP = PIN___VALIDATE_OWNED_STRUCTURED_NODE__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Input Output Parameter</em>' operation.
+	 * The operation id for the '<em>Validate Object Flow Edges</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int OUTPUT_PIN___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP = PIN___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP;
+	int OUTPUT_PIN___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP = PIN___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Selection Behavior</em>' operation.
@@ -92330,22 +92338,13 @@
 	int OUTPUT_PIN___VALIDATE_SELECTION_BEHAVIOR__DIAGNOSTICCHAIN_MAP = PIN___VALIDATE_SELECTION_BEHAVIOR__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Object Flow Edges</em>' operation.
+	 * The operation id for the '<em>Validate Input Output Parameter</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int OUTPUT_PIN___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP = PIN___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Upper Ge Lower</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int OUTPUT_PIN___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP = PIN___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP;
+	int OUTPUT_PIN___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP = PIN___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Lower Ge0</em>' operation.
@@ -92357,13 +92356,13 @@
 	int OUTPUT_PIN___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP = PIN___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Value Specification No Side Effects</em>' operation.
+	 * The operation id for the '<em>Validate Upper Ge Lower</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int OUTPUT_PIN___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP = PIN___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP;
+	int OUTPUT_PIN___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP = PIN___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Value Specification Constant</em>' operation.
@@ -92375,6 +92374,15 @@
 	int OUTPUT_PIN___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP = PIN___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Value Specification No Side Effects</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OUTPUT_PIN___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP = PIN___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Set Lower</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -93041,15 +93049,6 @@
 	int VARIABLE___MUST_BE_OWNED = CONNECTABLE_ELEMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int VARIABLE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CONNECTABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -93068,6 +93067,15 @@
 	int VARIABLE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = CONNECTABLE_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VARIABLE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CONNECTABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -93185,31 +93193,22 @@
 	int VARIABLE___GET_ENDS = CONNECTABLE_ELEMENT___GET_ENDS;
 
 	/**
-	 * The operation id for the '<em>Validate Upper Ge Lower</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int VARIABLE___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP = CONNECTABLE_ELEMENT_OPERATION_COUNT + 0;
-
-	/**
 	 * The operation id for the '<em>Validate Lower Ge0</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int VARIABLE___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP = CONNECTABLE_ELEMENT_OPERATION_COUNT + 1;
+	int VARIABLE___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP = CONNECTABLE_ELEMENT_OPERATION_COUNT + 0;
 
 	/**
-	 * The operation id for the '<em>Validate Value Specification No Side Effects</em>' operation.
+	 * The operation id for the '<em>Validate Upper Ge Lower</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int VARIABLE___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP = CONNECTABLE_ELEMENT_OPERATION_COUNT + 2;
+	int VARIABLE___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP = CONNECTABLE_ELEMENT_OPERATION_COUNT + 1;
 
 	/**
 	 * The operation id for the '<em>Validate Value Specification Constant</em>' operation.
@@ -93218,7 +93217,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int VARIABLE___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP = CONNECTABLE_ELEMENT_OPERATION_COUNT + 3;
+	int VARIABLE___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP = CONNECTABLE_ELEMENT_OPERATION_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>Validate Value Specification No Side Effects</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VARIABLE___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP = CONNECTABLE_ELEMENT_OPERATION_COUNT + 3;
 
 	/**
 	 * The operation id for the '<em>Set Lower</em>' operation.
@@ -93437,6 +93445,15 @@
 	int INTERRUPTIBLE_ACTIVITY_REGION__VISIBILITY = ACTIVITY_GROUP__VISIBILITY;
 
 	/**
+	 * The feature id for the '<em><b>Contained Edge</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERRUPTIBLE_ACTIVITY_REGION__CONTAINED_EDGE = ACTIVITY_GROUP__CONTAINED_EDGE;
+
+	/**
 	 * The feature id for the '<em><b>Contained Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -93446,7 +93463,7 @@
 	int INTERRUPTIBLE_ACTIVITY_REGION__CONTAINED_NODE = ACTIVITY_GROUP__CONTAINED_NODE;
 
 	/**
-	 * The feature id for the '<em><b>In Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>In Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -93473,15 +93490,6 @@
 	int INTERRUPTIBLE_ACTIVITY_REGION__SUPER_GROUP = ACTIVITY_GROUP__SUPER_GROUP;
 
 	/**
-	 * The feature id for the '<em><b>Contained Edge</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERRUPTIBLE_ACTIVITY_REGION__CONTAINED_EDGE = ACTIVITY_GROUP__CONTAINED_EDGE;
-
-	/**
 	 * The feature id for the '<em><b>Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -93842,15 +93850,6 @@
 	int INTERRUPTIBLE_ACTIVITY_REGION___MUST_BE_OWNED = ACTIVITY_GROUP___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERRUPTIBLE_ACTIVITY_REGION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTIVITY_GROUP___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -93869,6 +93868,15 @@
 	int INTERRUPTIBLE_ACTIVITY_REGION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ACTIVITY_GROUP___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERRUPTIBLE_ACTIVITY_REGION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTIVITY_GROUP___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -93959,15 +93967,6 @@
 	int INTERRUPTIBLE_ACTIVITY_REGION___SEPARATOR = ACTIVITY_GROUP___SEPARATOR;
 
 	/**
-	 * The operation id for the '<em>Validate Nodes And Edges</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERRUPTIBLE_ACTIVITY_REGION___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP = ACTIVITY_GROUP___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Group Owned</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -93986,6 +93985,15 @@
 	int INTERRUPTIBLE_ACTIVITY_REGION___VALIDATE_NOT_CONTAINED__DIAGNOSTICCHAIN_MAP = ACTIVITY_GROUP___VALIDATE_NOT_CONTAINED__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Nodes And Edges</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERRUPTIBLE_ACTIVITY_REGION___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP = ACTIVITY_GROUP___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Validate Interrupting Edges</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -94418,31 +94426,13 @@
 	int EXCEPTION_HANDLER___MUST_BE_OWNED = ELEMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Exception Body</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXCEPTION_HANDLER___VALIDATE_EXCEPTION_BODY__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 0;
-
-	/**
-	 * The operation id for the '<em>Validate Result Pins</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXCEPTION_HANDLER___VALIDATE_RESULT_PINS__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 1;
-
-	/**
 	 * The operation id for the '<em>Validate One Input</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EXCEPTION_HANDLER___VALIDATE_ONE_INPUT__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 2;
+	int EXCEPTION_HANDLER___VALIDATE_ONE_INPUT__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 0;
 
 	/**
 	 * The operation id for the '<em>Validate Edge Source Target</em>' operation.
@@ -94451,7 +94441,25 @@
 	 * @generated
 	 * @ordered
 	 */
-	int EXCEPTION_HANDLER___VALIDATE_EDGE_SOURCE_TARGET__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 3;
+	int EXCEPTION_HANDLER___VALIDATE_EDGE_SOURCE_TARGET__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Validate Result Pins</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXCEPTION_HANDLER___VALIDATE_RESULT_PINS__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>Validate Exception Body</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXCEPTION_HANDLER___VALIDATE_EXCEPTION_BODY__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 3;
 
 	/**
 	 * The number of operations of the '<em>Exception Handler</em>' class.
@@ -94931,15 +94939,6 @@
 	int INTERACTION_FRAGMENT___MUST_BE_OWNED = NAMED_ELEMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERACTION_FRAGMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -94958,6 +94957,15 @@
 	int INTERACTION_FRAGMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERACTION_FRAGMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -95543,15 +95551,6 @@
 	int EXECUTION_SPECIFICATION___MUST_BE_OWNED = INTERACTION_FRAGMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXECUTION_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -95570,6 +95569,15 @@
 	int EXECUTION_SPECIFICATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXECUTION_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -96173,15 +96181,6 @@
 	int ACTION_EXECUTION_SPECIFICATION___MUST_BE_OWNED = EXECUTION_SPECIFICATION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTION_EXECUTION_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = EXECUTION_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -96200,6 +96199,15 @@
 	int ACTION_EXECUTION_SPECIFICATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = EXECUTION_SPECIFICATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_EXECUTION_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = EXECUTION_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -96794,15 +96802,6 @@
 	int LIFELINE___MUST_BE_OWNED = NAMED_ELEMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LIFELINE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -96821,6 +96820,15 @@
 	int LIFELINE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LIFELINE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -96911,22 +96919,13 @@
 	int LIFELINE___SEPARATOR = NAMED_ELEMENT___SEPARATOR;
 
 	/**
-	 * The operation id for the '<em>Validate Selector Specified</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LIFELINE___VALIDATE_SELECTOR_SPECIFIED__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT_OPERATION_COUNT + 0;
-
-	/**
 	 * The operation id for the '<em>Validate Interaction Uses Share Lifeline</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int LIFELINE___VALIDATE_INTERACTION_USES_SHARE_LIFELINE__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT_OPERATION_COUNT + 1;
+	int LIFELINE___VALIDATE_INTERACTION_USES_SHARE_LIFELINE__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT_OPERATION_COUNT + 0;
 
 	/**
 	 * The operation id for the '<em>Validate Same Classifier</em>' operation.
@@ -96935,7 +96934,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int LIFELINE___VALIDATE_SAME_CLASSIFIER__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT_OPERATION_COUNT + 2;
+	int LIFELINE___VALIDATE_SAME_CLASSIFIER__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT_OPERATION_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Validate Selector Specified</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LIFELINE___VALIDATE_SELECTOR_SPECIFIED__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT_OPERATION_COUNT + 2;
 
 	/**
 	 * The number of operations of the '<em>Lifeline</em>' class.
@@ -97460,15 +97468,6 @@
 	int INTERACTION_USE___MUST_BE_OWNED = INTERACTION_FRAGMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERACTION_USE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -97487,6 +97486,15 @@
 	int INTERACTION_USE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERACTION_USE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -97577,22 +97585,13 @@
 	int INTERACTION_USE___SEPARATOR = INTERACTION_FRAGMENT___SEPARATOR;
 
 	/**
-	 * The operation id for the '<em>Validate Gates Match</em>' operation.
+	 * The operation id for the '<em>Validate All Lifelines</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int INTERACTION_USE___VALIDATE_GATES_MATCH__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT_OPERATION_COUNT + 0;
-
-	/**
-	 * The operation id for the '<em>Validate Arguments Are Constants</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERACTION_USE___VALIDATE_ARGUMENTS_ARE_CONSTANTS__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT_OPERATION_COUNT + 1;
+	int INTERACTION_USE___VALIDATE_ALL_LIFELINES__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT_OPERATION_COUNT + 0;
 
 	/**
 	 * The operation id for the '<em>Validate Return Value Recipient Coverage</em>' operation.
@@ -97601,7 +97600,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERACTION_USE___VALIDATE_RETURN_VALUE_RECIPIENT_COVERAGE__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT_OPERATION_COUNT + 2;
+	int INTERACTION_USE___VALIDATE_RETURN_VALUE_RECIPIENT_COVERAGE__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT_OPERATION_COUNT + 1;
 
 	/**
 	 * The operation id for the '<em>Validate Arguments Correspond To Parameters</em>' operation.
@@ -97610,7 +97609,25 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERACTION_USE___VALIDATE_ARGUMENTS_CORRESPOND_TO_PARAMETERS__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT_OPERATION_COUNT + 3;
+	int INTERACTION_USE___VALIDATE_ARGUMENTS_CORRESPOND_TO_PARAMETERS__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT_OPERATION_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>Validate Gates Match</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERACTION_USE___VALIDATE_GATES_MATCH__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT_OPERATION_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>Validate Arguments Are Constants</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERACTION_USE___VALIDATE_ARGUMENTS_ARE_CONSTANTS__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT_OPERATION_COUNT + 4;
 
 	/**
 	 * The operation id for the '<em>Validate Return Value Type Recipient Correspondence</em>' operation.
@@ -97619,16 +97636,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERACTION_USE___VALIDATE_RETURN_VALUE_TYPE_RECIPIENT_CORRESPONDENCE__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT_OPERATION_COUNT + 4;
-
-	/**
-	 * The operation id for the '<em>Validate All Lifelines</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERACTION_USE___VALIDATE_ALL_LIFELINES__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT_OPERATION_COUNT + 5;
+	int INTERACTION_USE___VALIDATE_RETURN_VALUE_TYPE_RECIPIENT_CORRESPONDENCE__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT_OPERATION_COUNT + 5;
 
 	/**
 	 * The number of operations of the '<em>Interaction Use</em>' class.
@@ -98153,15 +98161,6 @@
 	int PART_DECOMPOSITION___MUST_BE_OWNED = INTERACTION_USE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PART_DECOMPOSITION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = INTERACTION_USE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -98180,6 +98179,15 @@
 	int PART_DECOMPOSITION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = INTERACTION_USE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PART_DECOMPOSITION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = INTERACTION_USE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -98270,22 +98278,13 @@
 	int PART_DECOMPOSITION___SEPARATOR = INTERACTION_USE___SEPARATOR;
 
 	/**
-	 * The operation id for the '<em>Validate Gates Match</em>' operation.
+	 * The operation id for the '<em>Validate All Lifelines</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PART_DECOMPOSITION___VALIDATE_GATES_MATCH__DIAGNOSTICCHAIN_MAP = INTERACTION_USE___VALIDATE_GATES_MATCH__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Arguments Are Constants</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PART_DECOMPOSITION___VALIDATE_ARGUMENTS_ARE_CONSTANTS__DIAGNOSTICCHAIN_MAP = INTERACTION_USE___VALIDATE_ARGUMENTS_ARE_CONSTANTS__DIAGNOSTICCHAIN_MAP;
+	int PART_DECOMPOSITION___VALIDATE_ALL_LIFELINES__DIAGNOSTICCHAIN_MAP = INTERACTION_USE___VALIDATE_ALL_LIFELINES__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Return Value Recipient Coverage</em>' operation.
@@ -98306,6 +98305,24 @@
 	int PART_DECOMPOSITION___VALIDATE_ARGUMENTS_CORRESPOND_TO_PARAMETERS__DIAGNOSTICCHAIN_MAP = INTERACTION_USE___VALIDATE_ARGUMENTS_CORRESPOND_TO_PARAMETERS__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Gates Match</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PART_DECOMPOSITION___VALIDATE_GATES_MATCH__DIAGNOSTICCHAIN_MAP = INTERACTION_USE___VALIDATE_GATES_MATCH__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Arguments Are Constants</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PART_DECOMPOSITION___VALIDATE_ARGUMENTS_ARE_CONSTANTS__DIAGNOSTICCHAIN_MAP = INTERACTION_USE___VALIDATE_ARGUMENTS_ARE_CONSTANTS__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Validate Return Value Type Recipient Correspondence</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -98315,22 +98332,13 @@
 	int PART_DECOMPOSITION___VALIDATE_RETURN_VALUE_TYPE_RECIPIENT_CORRESPONDENCE__DIAGNOSTICCHAIN_MAP = INTERACTION_USE___VALIDATE_RETURN_VALUE_TYPE_RECIPIENT_CORRESPONDENCE__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate All Lifelines</em>' operation.
+	 * The operation id for the '<em>Validate Parts Of Internal Structures</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PART_DECOMPOSITION___VALIDATE_ALL_LIFELINES__DIAGNOSTICCHAIN_MAP = INTERACTION_USE___VALIDATE_ALL_LIFELINES__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Commutativity Of Decomposition</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PART_DECOMPOSITION___VALIDATE_COMMUTATIVITY_OF_DECOMPOSITION__DIAGNOSTICCHAIN_MAP = INTERACTION_USE_OPERATION_COUNT + 0;
+	int PART_DECOMPOSITION___VALIDATE_PARTS_OF_INTERNAL_STRUCTURES__DIAGNOSTICCHAIN_MAP = INTERACTION_USE_OPERATION_COUNT + 0;
 
 	/**
 	 * The operation id for the '<em>Validate Assume</em>' operation.
@@ -98342,13 +98350,13 @@
 	int PART_DECOMPOSITION___VALIDATE_ASSUME__DIAGNOSTICCHAIN_MAP = INTERACTION_USE_OPERATION_COUNT + 1;
 
 	/**
-	 * The operation id for the '<em>Validate Parts Of Internal Structures</em>' operation.
+	 * The operation id for the '<em>Validate Commutativity Of Decomposition</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PART_DECOMPOSITION___VALIDATE_PARTS_OF_INTERNAL_STRUCTURES__DIAGNOSTICCHAIN_MAP = INTERACTION_USE_OPERATION_COUNT + 2;
+	int PART_DECOMPOSITION___VALIDATE_COMMUTATIVITY_OF_DECOMPOSITION__DIAGNOSTICCHAIN_MAP = INTERACTION_USE_OPERATION_COUNT + 2;
 
 	/**
 	 * The number of operations of the '<em>Part Decomposition</em>' class.
@@ -98801,15 +98809,6 @@
 	int MESSAGE_END___MUST_BE_OWNED = NAMED_ELEMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MESSAGE_END___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -98828,6 +98827,15 @@
 	int MESSAGE_END___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MESSAGE_END___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -99368,15 +99376,6 @@
 	int GATE___MUST_BE_OWNED = MESSAGE_END___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GATE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = MESSAGE_END___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -99395,6 +99394,15 @@
 	int GATE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = MESSAGE_END___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GATE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = MESSAGE_END___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -100016,15 +100024,6 @@
 	int MESSAGE___MUST_BE_OWNED = NAMED_ELEMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MESSAGE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -100043,6 +100042,15 @@
 	int MESSAGE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MESSAGE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -100142,22 +100150,13 @@
 	int MESSAGE___VALIDATE_SENDING_RECEIVING_MESSAGE_EVENT__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT_OPERATION_COUNT + 0;
 
 	/**
-	 * The operation id for the '<em>Validate Arguments</em>' operation.
+	 * The operation id for the '<em>Validate Occurrence Specifications</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int MESSAGE___VALIDATE_ARGUMENTS__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT_OPERATION_COUNT + 1;
-
-	/**
-	 * The operation id for the '<em>Validate Cannot Cross Boundaries</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MESSAGE___VALIDATE_CANNOT_CROSS_BOUNDARIES__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT_OPERATION_COUNT + 2;
+	int MESSAGE___VALIDATE_OCCURRENCE_SPECIFICATIONS__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT_OPERATION_COUNT + 1;
 
 	/**
 	 * The operation id for the '<em>Validate Signature Is Signal</em>' operation.
@@ -100166,25 +100165,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int MESSAGE___VALIDATE_SIGNATURE_IS_SIGNAL__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT_OPERATION_COUNT + 3;
-
-	/**
-	 * The operation id for the '<em>Validate Occurrence Specifications</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MESSAGE___VALIDATE_OCCURRENCE_SPECIFICATIONS__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT_OPERATION_COUNT + 4;
-
-	/**
-	 * The operation id for the '<em>Validate Signature Refer To</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MESSAGE___VALIDATE_SIGNATURE_REFER_TO__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT_OPERATION_COUNT + 5;
+	int MESSAGE___VALIDATE_SIGNATURE_IS_SIGNAL__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT_OPERATION_COUNT + 2;
 
 	/**
 	 * The operation id for the '<em>Validate Signature Is Operation</em>' operation.
@@ -100193,7 +100174,34 @@
 	 * @generated
 	 * @ordered
 	 */
-	int MESSAGE___VALIDATE_SIGNATURE_IS_OPERATION__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT_OPERATION_COUNT + 6;
+	int MESSAGE___VALIDATE_SIGNATURE_IS_OPERATION__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT_OPERATION_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>Validate Arguments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MESSAGE___VALIDATE_ARGUMENTS__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT_OPERATION_COUNT + 4;
+
+	/**
+	 * The operation id for the '<em>Validate Cannot Cross Boundaries</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MESSAGE___VALIDATE_CANNOT_CROSS_BOUNDARIES__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT_OPERATION_COUNT + 5;
+
+	/**
+	 * The operation id for the '<em>Validate Signature Refer To</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MESSAGE___VALIDATE_SIGNATURE_REFER_TO__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT_OPERATION_COUNT + 6;
 
 	/**
 	 * The operation id for the '<em>Get Message Kind</em>' operation.
@@ -101177,15 +101185,6 @@
 	int INTERACTION___MUST_BE_OWNED = BEHAVIOR___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -101204,6 +101203,15 @@
 	int INTERACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -101501,24 +101509,6 @@
 	int INTERACTION___PARAMETERABLE_ELEMENTS = BEHAVIOR___PARAMETERABLE_ELEMENTS;
 
 	/**
-	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERACTION___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERACTION___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Non Final Parents</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -101537,6 +101527,24 @@
 	int INTERACTION___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERACTION___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERACTION___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Get All Attributes</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -101798,24 +101806,6 @@
 	int INTERACTION___GET_SUPER_CLASSES = BEHAVIOR___GET_SUPER_CLASSES;
 
 	/**
-	 * The operation id for the '<em>Validate Most One Behaviour</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERACTION___VALIDATE_MOST_ONE_BEHAVIOUR__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_MOST_ONE_BEHAVIOUR__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Must Realize</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERACTION___VALIDATE_MUST_REALIZE__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_MUST_REALIZE__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Parameters Match</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -101834,6 +101824,24 @@
 	int INTERACTION___VALIDATE_FEATURE_OF_CONTEXT_CLASSIFIER__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_FEATURE_OF_CONTEXT_CLASSIFIER__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Must Realize</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERACTION___VALIDATE_MUST_REALIZE__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_MUST_REALIZE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Most One Behaviour</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERACTION___VALIDATE_MOST_ONE_BEHAVIOUR__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_MOST_ONE_BEHAVIOUR__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Get Context</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -102392,15 +102400,6 @@
 	int INTERACTION_OPERAND___MUST_BE_OWNED = NAMESPACE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERACTION_OPERAND___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMESPACE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -102419,6 +102418,15 @@
 	int INTERACTION_OPERAND___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = NAMESPACE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERACTION_OPERAND___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMESPACE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -102608,22 +102616,22 @@
 	int INTERACTION_OPERAND___GET_OWNED_MEMBERS = NAMESPACE___GET_OWNED_MEMBERS;
 
 	/**
-	 * The operation id for the '<em>Validate Guard Contain References</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERACTION_OPERAND___VALIDATE_GUARD_CONTAIN_REFERENCES__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 0;
-
-	/**
 	 * The operation id for the '<em>Validate Guard Directly Prior</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int INTERACTION_OPERAND___VALIDATE_GUARD_DIRECTLY_PRIOR__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 1;
+	int INTERACTION_OPERAND___VALIDATE_GUARD_DIRECTLY_PRIOR__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Validate Guard Contain References</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERACTION_OPERAND___VALIDATE_GUARD_CONTAIN_REFERENCES__DIAGNOSTICCHAIN_MAP = NAMESPACE_OPERATION_COUNT + 1;
 
 	/**
 	 * The number of operations of the '<em>Interaction Operand</em>' class.
@@ -103130,15 +103138,6 @@
 	int INTERACTION_CONSTRAINT___MUST_BE_OWNED = CONSTRAINT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERACTION_CONSTRAINT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CONSTRAINT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -103157,6 +103156,15 @@
 	int INTERACTION_CONSTRAINT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = CONSTRAINT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERACTION_CONSTRAINT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CONSTRAINT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -103265,13 +103273,13 @@
 	int INTERACTION_CONSTRAINT___IS_TEMPLATE_PARAMETER = CONSTRAINT___IS_TEMPLATE_PARAMETER;
 
 	/**
-	 * The operation id for the '<em>Validate Boolean Value</em>' operation.
+	 * The operation id for the '<em>Validate Not Apply To Self</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int INTERACTION_CONSTRAINT___VALIDATE_BOOLEAN_VALUE__DIAGNOSTICCHAIN_MAP = CONSTRAINT___VALIDATE_BOOLEAN_VALUE__DIAGNOSTICCHAIN_MAP;
+	int INTERACTION_CONSTRAINT___VALIDATE_NOT_APPLY_TO_SELF__DIAGNOSTICCHAIN_MAP = CONSTRAINT___VALIDATE_NOT_APPLY_TO_SELF__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate No Side Effects</em>' operation.
@@ -103283,13 +103291,13 @@
 	int INTERACTION_CONSTRAINT___VALIDATE_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP = CONSTRAINT___VALIDATE_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Not Apply To Self</em>' operation.
+	 * The operation id for the '<em>Validate Boolean Value</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int INTERACTION_CONSTRAINT___VALIDATE_NOT_APPLY_TO_SELF__DIAGNOSTICCHAIN_MAP = CONSTRAINT___VALIDATE_NOT_APPLY_TO_SELF__DIAGNOSTICCHAIN_MAP;
+	int INTERACTION_CONSTRAINT___VALIDATE_BOOLEAN_VALUE__DIAGNOSTICCHAIN_MAP = CONSTRAINT___VALIDATE_BOOLEAN_VALUE__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Value Specification Boolean</em>' operation.
@@ -103301,13 +103309,22 @@
 	int INTERACTION_CONSTRAINT___VALIDATE_VALUE_SPECIFICATION_BOOLEAN__DIAGNOSTICCHAIN_MAP = CONSTRAINT___VALIDATE_VALUE_SPECIFICATION_BOOLEAN__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Maxint Positive</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERACTION_CONSTRAINT___VALIDATE_MAXINT_POSITIVE__DIAGNOSTICCHAIN_MAP = CONSTRAINT_OPERATION_COUNT + 0;
+
+	/**
 	 * The operation id for the '<em>Validate Minint Maxint</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int INTERACTION_CONSTRAINT___VALIDATE_MININT_MAXINT__DIAGNOSTICCHAIN_MAP = CONSTRAINT_OPERATION_COUNT + 0;
+	int INTERACTION_CONSTRAINT___VALIDATE_MININT_MAXINT__DIAGNOSTICCHAIN_MAP = CONSTRAINT_OPERATION_COUNT + 1;
 
 	/**
 	 * The operation id for the '<em>Validate Minint Non Negative</em>' operation.
@@ -103316,25 +103333,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERACTION_CONSTRAINT___VALIDATE_MININT_NON_NEGATIVE__DIAGNOSTICCHAIN_MAP = CONSTRAINT_OPERATION_COUNT + 1;
-
-	/**
-	 * The operation id for the '<em>Validate Maxint Positive</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERACTION_CONSTRAINT___VALIDATE_MAXINT_POSITIVE__DIAGNOSTICCHAIN_MAP = CONSTRAINT_OPERATION_COUNT + 2;
-
-	/**
-	 * The operation id for the '<em>Validate Dynamic Variables</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERACTION_CONSTRAINT___VALIDATE_DYNAMIC_VARIABLES__DIAGNOSTICCHAIN_MAP = CONSTRAINT_OPERATION_COUNT + 3;
+	int INTERACTION_CONSTRAINT___VALIDATE_MININT_NON_NEGATIVE__DIAGNOSTICCHAIN_MAP = CONSTRAINT_OPERATION_COUNT + 2;
 
 	/**
 	 * The operation id for the '<em>Validate Global Data</em>' operation.
@@ -103343,7 +103342,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERACTION_CONSTRAINT___VALIDATE_GLOBAL_DATA__DIAGNOSTICCHAIN_MAP = CONSTRAINT_OPERATION_COUNT + 4;
+	int INTERACTION_CONSTRAINT___VALIDATE_GLOBAL_DATA__DIAGNOSTICCHAIN_MAP = CONSTRAINT_OPERATION_COUNT + 3;
 
 	/**
 	 * The operation id for the '<em>Validate Maxint Greater Equal Minint</em>' operation.
@@ -103352,7 +103351,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTERACTION_CONSTRAINT___VALIDATE_MAXINT_GREATER_EQUAL_MININT__DIAGNOSTICCHAIN_MAP = CONSTRAINT_OPERATION_COUNT + 5;
+	int INTERACTION_CONSTRAINT___VALIDATE_MAXINT_GREATER_EQUAL_MININT__DIAGNOSTICCHAIN_MAP = CONSTRAINT_OPERATION_COUNT + 4;
+
+	/**
+	 * The operation id for the '<em>Validate Dynamic Variables</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERACTION_CONSTRAINT___VALIDATE_DYNAMIC_VARIABLES__DIAGNOSTICCHAIN_MAP = CONSTRAINT_OPERATION_COUNT + 5;
 
 	/**
 	 * The number of operations of the '<em>Interaction Constraint</em>' class.
@@ -103814,15 +103822,6 @@
 	int GENERAL_ORDERING___MUST_BE_OWNED = NAMED_ELEMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GENERAL_ORDERING___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -103841,6 +103840,15 @@
 	int GENERAL_ORDERING___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GENERAL_ORDERING___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -104435,15 +104443,6 @@
 	int OCCURRENCE_SPECIFICATION___MUST_BE_OWNED = INTERACTION_FRAGMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int OCCURRENCE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -104462,6 +104461,15 @@
 	int OCCURRENCE_SPECIFICATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OCCURRENCE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -104678,7 +104686,7 @@
 	int ACTION_INPUT_PIN__REDEFINITION_CONTEXT = INPUT_PIN__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -104687,15 +104695,6 @@
 	int ACTION_INPUT_PIN__ACTIVITY = INPUT_PIN__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTION_INPUT_PIN__IN_GROUP = INPUT_PIN__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -104741,6 +104740,15 @@
 	int ACTION_INPUT_PIN__INCOMING = INPUT_PIN__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_INPUT_PIN__IN_GROUP = INPUT_PIN__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -105218,15 +105226,6 @@
 	int ACTION_INPUT_PIN___MUST_BE_OWNED = INPUT_PIN___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTION_INPUT_PIN___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = INPUT_PIN___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -105245,6 +105244,15 @@
 	int ACTION_INPUT_PIN___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = INPUT_PIN___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_INPUT_PIN___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = INPUT_PIN___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -105398,13 +105406,13 @@
 	int ACTION_INPUT_PIN___VALIDATE_OWNED_STRUCTURED_NODE__DIAGNOSTICCHAIN_MAP = INPUT_PIN___VALIDATE_OWNED_STRUCTURED_NODE__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Input Output Parameter</em>' operation.
+	 * The operation id for the '<em>Validate Object Flow Edges</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ACTION_INPUT_PIN___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP = INPUT_PIN___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP;
+	int ACTION_INPUT_PIN___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP = INPUT_PIN___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Selection Behavior</em>' operation.
@@ -105416,22 +105424,13 @@
 	int ACTION_INPUT_PIN___VALIDATE_SELECTION_BEHAVIOR__DIAGNOSTICCHAIN_MAP = INPUT_PIN___VALIDATE_SELECTION_BEHAVIOR__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Object Flow Edges</em>' operation.
+	 * The operation id for the '<em>Validate Input Output Parameter</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ACTION_INPUT_PIN___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP = INPUT_PIN___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Upper Ge Lower</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTION_INPUT_PIN___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP = INPUT_PIN___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP;
+	int ACTION_INPUT_PIN___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP = INPUT_PIN___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Lower Ge0</em>' operation.
@@ -105443,13 +105442,13 @@
 	int ACTION_INPUT_PIN___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP = INPUT_PIN___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Value Specification No Side Effects</em>' operation.
+	 * The operation id for the '<em>Validate Upper Ge Lower</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ACTION_INPUT_PIN___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP = INPUT_PIN___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP;
+	int ACTION_INPUT_PIN___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP = INPUT_PIN___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Value Specification Constant</em>' operation.
@@ -105461,6 +105460,15 @@
 	int ACTION_INPUT_PIN___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP = INPUT_PIN___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Value Specification No Side Effects</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_INPUT_PIN___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP = INPUT_PIN___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Set Lower</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -105587,22 +105595,22 @@
 	int ACTION_INPUT_PIN___VALIDATE_INPUT_PIN__DIAGNOSTICCHAIN_MAP = INPUT_PIN_OPERATION_COUNT + 0;
 
 	/**
-	 * The operation id for the '<em>Validate One Output Pin</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTION_INPUT_PIN___VALIDATE_ONE_OUTPUT_PIN__DIAGNOSTICCHAIN_MAP = INPUT_PIN_OPERATION_COUNT + 1;
-
-	/**
 	 * The operation id for the '<em>Validate No Control Or Data Flow</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ACTION_INPUT_PIN___VALIDATE_NO_CONTROL_OR_DATA_FLOW__DIAGNOSTICCHAIN_MAP = INPUT_PIN_OPERATION_COUNT + 2;
+	int ACTION_INPUT_PIN___VALIDATE_NO_CONTROL_OR_DATA_FLOW__DIAGNOSTICCHAIN_MAP = INPUT_PIN_OPERATION_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Validate One Output Pin</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_INPUT_PIN___VALIDATE_ONE_OUTPUT_PIN__DIAGNOSTICCHAIN_MAP = INPUT_PIN_OPERATION_COUNT + 2;
 
 	/**
 	 * The number of operations of the '<em>Action Input Pin</em>' class.
@@ -105731,7 +105739,7 @@
 	int CONTROL_NODE__REDEFINITION_CONTEXT = ACTIVITY_NODE__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -105740,15 +105748,6 @@
 	int CONTROL_NODE__ACTIVITY = ACTIVITY_NODE__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONTROL_NODE__IN_GROUP = ACTIVITY_NODE__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -105794,6 +105793,15 @@
 	int CONTROL_NODE__INCOMING = ACTIVITY_NODE__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONTROL_NODE__IN_GROUP = ACTIVITY_NODE__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -106145,15 +106153,6 @@
 	int CONTROL_NODE___MUST_BE_OWNED = ACTIVITY_NODE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONTROL_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTIVITY_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -106172,6 +106171,15 @@
 	int CONTROL_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ACTIVITY_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONTROL_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTIVITY_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -106451,7 +106459,7 @@
 	int FINAL_NODE__REDEFINITION_CONTEXT = CONTROL_NODE__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -106460,15 +106468,6 @@
 	int FINAL_NODE__ACTIVITY = CONTROL_NODE__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FINAL_NODE__IN_GROUP = CONTROL_NODE__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -106514,6 +106513,15 @@
 	int FINAL_NODE__INCOMING = CONTROL_NODE__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FINAL_NODE__IN_GROUP = CONTROL_NODE__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -106865,15 +106873,6 @@
 	int FINAL_NODE___MUST_BE_OWNED = CONTROL_NODE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FINAL_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CONTROL_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -106892,6 +106891,15 @@
 	int FINAL_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = CONTROL_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FINAL_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CONTROL_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -107180,7 +107188,7 @@
 	int ACTIVITY_FINAL_NODE__REDEFINITION_CONTEXT = FINAL_NODE__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -107189,15 +107197,6 @@
 	int ACTIVITY_FINAL_NODE__ACTIVITY = FINAL_NODE__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_FINAL_NODE__IN_GROUP = FINAL_NODE__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -107243,6 +107242,15 @@
 	int ACTIVITY_FINAL_NODE__INCOMING = FINAL_NODE__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_FINAL_NODE__IN_GROUP = FINAL_NODE__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -107594,15 +107602,6 @@
 	int ACTIVITY_FINAL_NODE___MUST_BE_OWNED = FINAL_NODE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_FINAL_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = FINAL_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -107621,6 +107620,15 @@
 	int ACTIVITY_FINAL_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = FINAL_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_FINAL_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = FINAL_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -107909,7 +107917,7 @@
 	int ACTIVITY_PARAMETER_NODE__REDEFINITION_CONTEXT = OBJECT_NODE__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -107918,15 +107926,6 @@
 	int ACTIVITY_PARAMETER_NODE__ACTIVITY = OBJECT_NODE__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_PARAMETER_NODE__IN_GROUP = OBJECT_NODE__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -107972,6 +107971,15 @@
 	int ACTIVITY_PARAMETER_NODE__INCOMING = OBJECT_NODE__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_PARAMETER_NODE__IN_GROUP = OBJECT_NODE__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -108386,15 +108394,6 @@
 	int ACTIVITY_PARAMETER_NODE___MUST_BE_OWNED = OBJECT_NODE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_PARAMETER_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = OBJECT_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -108413,6 +108412,15 @@
 	int ACTIVITY_PARAMETER_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = OBJECT_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_PARAMETER_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = OBJECT_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -108566,13 +108574,13 @@
 	int ACTIVITY_PARAMETER_NODE___VALIDATE_OWNED_STRUCTURED_NODE__DIAGNOSTICCHAIN_MAP = OBJECT_NODE___VALIDATE_OWNED_STRUCTURED_NODE__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Input Output Parameter</em>' operation.
+	 * The operation id for the '<em>Validate Object Flow Edges</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ACTIVITY_PARAMETER_NODE___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP = OBJECT_NODE___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP;
+	int ACTIVITY_PARAMETER_NODE___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP = OBJECT_NODE___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Selection Behavior</em>' operation.
@@ -108584,22 +108592,22 @@
 	int ACTIVITY_PARAMETER_NODE___VALIDATE_SELECTION_BEHAVIOR__DIAGNOSTICCHAIN_MAP = OBJECT_NODE___VALIDATE_SELECTION_BEHAVIOR__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Object Flow Edges</em>' operation.
+	 * The operation id for the '<em>Validate Input Output Parameter</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ACTIVITY_PARAMETER_NODE___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP = OBJECT_NODE___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP;
+	int ACTIVITY_PARAMETER_NODE___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP = OBJECT_NODE___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate No Outgoing Edges</em>' operation.
+	 * The operation id for the '<em>Validate Maximum One Parameter Node</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ACTIVITY_PARAMETER_NODE___VALIDATE_NO_OUTGOING_EDGES__DIAGNOSTICCHAIN_MAP = OBJECT_NODE_OPERATION_COUNT + 0;
+	int ACTIVITY_PARAMETER_NODE___VALIDATE_MAXIMUM_ONE_PARAMETER_NODE__DIAGNOSTICCHAIN_MAP = OBJECT_NODE_OPERATION_COUNT + 0;
 
 	/**
 	 * The operation id for the '<em>Validate Maximum Two Parameter Nodes</em>' operation.
@@ -108611,31 +108619,13 @@
 	int ACTIVITY_PARAMETER_NODE___VALIDATE_MAXIMUM_TWO_PARAMETER_NODES__DIAGNOSTICCHAIN_MAP = OBJECT_NODE_OPERATION_COUNT + 1;
 
 	/**
-	 * The operation id for the '<em>Validate Has Parameters</em>' operation.
+	 * The operation id for the '<em>Validate No Edges</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ACTIVITY_PARAMETER_NODE___VALIDATE_HAS_PARAMETERS__DIAGNOSTICCHAIN_MAP = OBJECT_NODE_OPERATION_COUNT + 2;
-
-	/**
-	 * The operation id for the '<em>Validate Same Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_PARAMETER_NODE___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP = OBJECT_NODE_OPERATION_COUNT + 3;
-
-	/**
-	 * The operation id for the '<em>Validate Maximum One Parameter Node</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTIVITY_PARAMETER_NODE___VALIDATE_MAXIMUM_ONE_PARAMETER_NODE__DIAGNOSTICCHAIN_MAP = OBJECT_NODE_OPERATION_COUNT + 4;
+	int ACTIVITY_PARAMETER_NODE___VALIDATE_NO_EDGES__DIAGNOSTICCHAIN_MAP = OBJECT_NODE_OPERATION_COUNT + 2;
 
 	/**
 	 * The operation id for the '<em>Validate No Incoming Edges</em>' operation.
@@ -108644,16 +108634,34 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ACTIVITY_PARAMETER_NODE___VALIDATE_NO_INCOMING_EDGES__DIAGNOSTICCHAIN_MAP = OBJECT_NODE_OPERATION_COUNT + 5;
+	int ACTIVITY_PARAMETER_NODE___VALIDATE_NO_INCOMING_EDGES__DIAGNOSTICCHAIN_MAP = OBJECT_NODE_OPERATION_COUNT + 3;
 
 	/**
-	 * The operation id for the '<em>Validate No Edges</em>' operation.
+	 * The operation id for the '<em>Validate No Outgoing Edges</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ACTIVITY_PARAMETER_NODE___VALIDATE_NO_EDGES__DIAGNOSTICCHAIN_MAP = OBJECT_NODE_OPERATION_COUNT + 6;
+	int ACTIVITY_PARAMETER_NODE___VALIDATE_NO_OUTGOING_EDGES__DIAGNOSTICCHAIN_MAP = OBJECT_NODE_OPERATION_COUNT + 4;
+
+	/**
+	 * The operation id for the '<em>Validate Same Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_PARAMETER_NODE___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP = OBJECT_NODE_OPERATION_COUNT + 5;
+
+	/**
+	 * The operation id for the '<em>Validate Has Parameters</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_PARAMETER_NODE___VALIDATE_HAS_PARAMETERS__DIAGNOSTICCHAIN_MAP = OBJECT_NODE_OPERATION_COUNT + 6;
 
 	/**
 	 * The number of operations of the '<em>Activity Parameter Node</em>' class.
@@ -109376,15 +109384,6 @@
 	int ACTOR___MUST_BE_OWNED = BEHAVIORED_CLASSIFIER___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTOR___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = BEHAVIORED_CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -109403,6 +109402,15 @@
 	int ACTOR___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = BEHAVIORED_CLASSIFIER___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTOR___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = BEHAVIORED_CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -109700,24 +109708,6 @@
 	int ACTOR___PARAMETERABLE_ELEMENTS = BEHAVIORED_CLASSIFIER___PARAMETERABLE_ELEMENTS;
 
 	/**
-	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTOR___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = BEHAVIORED_CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ACTOR___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = BEHAVIORED_CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Non Final Parents</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -109736,6 +109726,24 @@
 	int ACTOR___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP = BEHAVIORED_CLASSIFIER___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTOR___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = BEHAVIORED_CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTOR___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = BEHAVIORED_CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Get All Attributes</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -110060,7 +110068,7 @@
 	int STRUCTURAL_FEATURE_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -110069,15 +110077,6 @@
 	int STRUCTURAL_FEATURE_ACTION__ACTIVITY = ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STRUCTURAL_FEATURE_ACTION__IN_GROUP = ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -110123,6 +110122,15 @@
 	int STRUCTURAL_FEATURE_ACTION__INCOMING = ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCTURAL_FEATURE_ACTION__IN_GROUP = ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -110555,15 +110563,6 @@
 	int STRUCTURAL_FEATURE_ACTION___MUST_BE_OWNED = ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -110582,6 +110581,15 @@
 	int STRUCTURAL_FEATURE_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -110744,31 +110752,22 @@
 	int STRUCTURAL_FEATURE_ACTION___GET_CONTEXT = ACTION___GET_CONTEXT;
 
 	/**
-	 * The operation id for the '<em>Validate Multiplicity</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STRUCTURAL_FEATURE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 0;
-
-	/**
-	 * The operation id for the '<em>Validate Same Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STRUCTURAL_FEATURE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 1;
-
-	/**
 	 * The operation id for the '<em>Validate Visibility</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 2;
+	int STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Validate Multiplicity</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCTURAL_FEATURE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 1;
 
 	/**
 	 * The operation id for the '<em>Validate Not Static</em>' operation.
@@ -110777,7 +110776,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int STRUCTURAL_FEATURE_ACTION___VALIDATE_NOT_STATIC__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 3;
+	int STRUCTURAL_FEATURE_ACTION___VALIDATE_NOT_STATIC__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 2;
 
 	/**
 	 * The operation id for the '<em>Validate One Featuring Classifier</em>' operation.
@@ -110786,7 +110785,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int STRUCTURAL_FEATURE_ACTION___VALIDATE_ONE_FEATURING_CLASSIFIER__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 4;
+	int STRUCTURAL_FEATURE_ACTION___VALIDATE_ONE_FEATURING_CLASSIFIER__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>Validate Same Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCTURAL_FEATURE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 4;
 
 	/**
 	 * The number of operations of the '<em>Structural Feature Action</em>' class.
@@ -110915,7 +110923,7 @@
 	int WRITE_STRUCTURAL_FEATURE_ACTION__REDEFINITION_CONTEXT = STRUCTURAL_FEATURE_ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -110924,15 +110932,6 @@
 	int WRITE_STRUCTURAL_FEATURE_ACTION__ACTIVITY = STRUCTURAL_FEATURE_ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int WRITE_STRUCTURAL_FEATURE_ACTION__IN_GROUP = STRUCTURAL_FEATURE_ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -110978,6 +110977,15 @@
 	int WRITE_STRUCTURAL_FEATURE_ACTION__INCOMING = STRUCTURAL_FEATURE_ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WRITE_STRUCTURAL_FEATURE_ACTION__IN_GROUP = STRUCTURAL_FEATURE_ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -111428,15 +111436,6 @@
 	int WRITE_STRUCTURAL_FEATURE_ACTION___MUST_BE_OWNED = STRUCTURAL_FEATURE_ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -111455,6 +111454,15 @@
 	int WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -111617,24 +111625,6 @@
 	int WRITE_STRUCTURAL_FEATURE_ACTION___GET_CONTEXT = STRUCTURAL_FEATURE_ACTION___GET_CONTEXT;
 
 	/**
-	 * The operation id for the '<em>Validate Multiplicity</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Same Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Visibility</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -111644,6 +111634,15 @@
 	int WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Multiplicity</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Validate Not Static</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -111662,13 +111661,13 @@
 	int WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_ONE_FEATURING_CLASSIFIER__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_ACTION___VALIDATE_ONE_FEATURING_CLASSIFIER__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Multiplicity Of Result</em>' operation.
+	 * The operation id for the '<em>Validate Same Type</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_MULTIPLICITY_OF_RESULT__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_ACTION_OPERATION_COUNT + 0;
+	int WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Input Pin</em>' operation.
@@ -111677,7 +111676,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_INPUT_PIN__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_ACTION_OPERATION_COUNT + 1;
+	int WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_INPUT_PIN__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_ACTION_OPERATION_COUNT + 0;
 
 	/**
 	 * The operation id for the '<em>Validate Type Of Result</em>' operation.
@@ -111686,7 +111685,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_TYPE_OF_RESULT__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_ACTION_OPERATION_COUNT + 2;
+	int WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_TYPE_OF_RESULT__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_ACTION_OPERATION_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Validate Multiplicity Of Result</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_MULTIPLICITY_OF_RESULT__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_ACTION_OPERATION_COUNT + 2;
 
 	/**
 	 * The number of operations of the '<em>Write Structural Feature Action</em>' class.
@@ -111815,7 +111823,7 @@
 	int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__REDEFINITION_CONTEXT = WRITE_STRUCTURAL_FEATURE_ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -111824,15 +111832,6 @@
 	int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__ACTIVITY = WRITE_STRUCTURAL_FEATURE_ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IN_GROUP = WRITE_STRUCTURAL_FEATURE_ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -111878,6 +111877,15 @@
 	int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__INCOMING = WRITE_STRUCTURAL_FEATURE_ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IN_GROUP = WRITE_STRUCTURAL_FEATURE_ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -112346,15 +112354,6 @@
 	int ADD_STRUCTURAL_FEATURE_VALUE_ACTION___MUST_BE_OWNED = WRITE_STRUCTURAL_FEATURE_ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADD_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -112373,6 +112372,15 @@
 	int ADD_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ADD_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -112535,24 +112543,6 @@
 	int ADD_STRUCTURAL_FEATURE_VALUE_ACTION___GET_CONTEXT = WRITE_STRUCTURAL_FEATURE_ACTION___GET_CONTEXT;
 
 	/**
-	 * The operation id for the '<em>Validate Multiplicity</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADD_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Same Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADD_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP = WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Visibility</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -112562,6 +112552,15 @@
 	int ADD_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_VISIBILITY__DIAGNOSTICCHAIN_MAP = WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Multiplicity</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ADD_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Validate Not Static</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -112580,13 +112579,13 @@
 	int ADD_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_ONE_FEATURING_CLASSIFIER__DIAGNOSTICCHAIN_MAP = WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_ONE_FEATURING_CLASSIFIER__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Multiplicity Of Result</em>' operation.
+	 * The operation id for the '<em>Validate Same Type</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ADD_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_MULTIPLICITY_OF_RESULT__DIAGNOSTICCHAIN_MAP = WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_MULTIPLICITY_OF_RESULT__DIAGNOSTICCHAIN_MAP;
+	int ADD_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP = WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Input Pin</em>' operation.
@@ -112607,13 +112606,13 @@
 	int ADD_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_TYPE_OF_RESULT__DIAGNOSTICCHAIN_MAP = WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_TYPE_OF_RESULT__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Required Value</em>' operation.
+	 * The operation id for the '<em>Validate Multiplicity Of Result</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ADD_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_REQUIRED_VALUE__DIAGNOSTICCHAIN_MAP = WRITE_STRUCTURAL_FEATURE_ACTION_OPERATION_COUNT + 0;
+	int ADD_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_MULTIPLICITY_OF_RESULT__DIAGNOSTICCHAIN_MAP = WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_MULTIPLICITY_OF_RESULT__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Unlimited Natural And Multiplicity</em>' operation.
@@ -112622,7 +112621,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ADD_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_UNLIMITED_NATURAL_AND_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = WRITE_STRUCTURAL_FEATURE_ACTION_OPERATION_COUNT + 1;
+	int ADD_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_UNLIMITED_NATURAL_AND_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = WRITE_STRUCTURAL_FEATURE_ACTION_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Validate Required Value</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ADD_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_REQUIRED_VALUE__DIAGNOSTICCHAIN_MAP = WRITE_STRUCTURAL_FEATURE_ACTION_OPERATION_COUNT + 1;
 
 	/**
 	 * The number of operations of the '<em>Add Structural Feature Value Action</em>' class.
@@ -112751,7 +112759,7 @@
 	int VARIABLE_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -112760,15 +112768,6 @@
 	int VARIABLE_ACTION__ACTIVITY = ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int VARIABLE_ACTION__IN_GROUP = ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -112814,6 +112813,15 @@
 	int VARIABLE_ACTION__INCOMING = ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VARIABLE_ACTION__IN_GROUP = ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -113237,15 +113245,6 @@
 	int VARIABLE_ACTION___MUST_BE_OWNED = ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int VARIABLE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -113264,6 +113263,15 @@
 	int VARIABLE_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VARIABLE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -113561,7 +113569,7 @@
 	int WRITE_VARIABLE_ACTION__REDEFINITION_CONTEXT = VARIABLE_ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -113570,15 +113578,6 @@
 	int WRITE_VARIABLE_ACTION__ACTIVITY = VARIABLE_ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int WRITE_VARIABLE_ACTION__IN_GROUP = VARIABLE_ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -113624,6 +113623,15 @@
 	int WRITE_VARIABLE_ACTION__INCOMING = VARIABLE_ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WRITE_VARIABLE_ACTION__IN_GROUP = VARIABLE_ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -114056,15 +114064,6 @@
 	int WRITE_VARIABLE_ACTION___MUST_BE_OWNED = VARIABLE_ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int WRITE_VARIABLE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = VARIABLE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -114083,6 +114082,15 @@
 	int WRITE_VARIABLE_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = VARIABLE_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WRITE_VARIABLE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = VARIABLE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -114254,22 +114262,22 @@
 	int WRITE_VARIABLE_ACTION___VALIDATE_SCOPE_OF_VARIABLE__DIAGNOSTICCHAIN_MAP = VARIABLE_ACTION___VALIDATE_SCOPE_OF_VARIABLE__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Same Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int WRITE_VARIABLE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP = VARIABLE_ACTION_OPERATION_COUNT + 0;
-
-	/**
 	 * The operation id for the '<em>Validate Multiplicity</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int WRITE_VARIABLE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = VARIABLE_ACTION_OPERATION_COUNT + 1;
+	int WRITE_VARIABLE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = VARIABLE_ACTION_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Validate Same Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WRITE_VARIABLE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP = VARIABLE_ACTION_OPERATION_COUNT + 1;
 
 	/**
 	 * The number of operations of the '<em>Write Variable Action</em>' class.
@@ -114398,7 +114406,7 @@
 	int ADD_VARIABLE_VALUE_ACTION__REDEFINITION_CONTEXT = WRITE_VARIABLE_ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -114407,15 +114415,6 @@
 	int ADD_VARIABLE_VALUE_ACTION__ACTIVITY = WRITE_VARIABLE_ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADD_VARIABLE_VALUE_ACTION__IN_GROUP = WRITE_VARIABLE_ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -114461,6 +114460,15 @@
 	int ADD_VARIABLE_VALUE_ACTION__INCOMING = WRITE_VARIABLE_ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ADD_VARIABLE_VALUE_ACTION__IN_GROUP = WRITE_VARIABLE_ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -114911,15 +114919,6 @@
 	int ADD_VARIABLE_VALUE_ACTION___MUST_BE_OWNED = WRITE_VARIABLE_ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADD_VARIABLE_VALUE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = WRITE_VARIABLE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -114938,6 +114937,15 @@
 	int ADD_VARIABLE_VALUE_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = WRITE_VARIABLE_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ADD_VARIABLE_VALUE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = WRITE_VARIABLE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -115109,15 +115117,6 @@
 	int ADD_VARIABLE_VALUE_ACTION___VALIDATE_SCOPE_OF_VARIABLE__DIAGNOSTICCHAIN_MAP = WRITE_VARIABLE_ACTION___VALIDATE_SCOPE_OF_VARIABLE__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Same Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADD_VARIABLE_VALUE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP = WRITE_VARIABLE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Multiplicity</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -115127,6 +115126,15 @@
 	int ADD_VARIABLE_VALUE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = WRITE_VARIABLE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Same Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ADD_VARIABLE_VALUE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP = WRITE_VARIABLE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Validate Required Value</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -115604,15 +115612,6 @@
 	int MESSAGE_EVENT___MUST_BE_OWNED = EVENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MESSAGE_EVENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = EVENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -115631,6 +115630,15 @@
 	int MESSAGE_EVENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = EVENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MESSAGE_EVENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = EVENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -116198,15 +116206,6 @@
 	int ANY_RECEIVE_EVENT___MUST_BE_OWNED = MESSAGE_EVENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ANY_RECEIVE_EVENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = MESSAGE_EVENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -116225,6 +116224,15 @@
 	int ANY_RECEIVE_EVENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = MESSAGE_EVENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ANY_RECEIVE_EVENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = MESSAGE_EVENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -117226,15 +117234,6 @@
 	int ASSOCIATION_CLASS___MUST_BE_OWNED = CLASS___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ASSOCIATION_CLASS___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -117253,6 +117252,15 @@
 	int ASSOCIATION_CLASS___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ASSOCIATION_CLASS___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -117550,24 +117558,6 @@
 	int ASSOCIATION_CLASS___PARAMETERABLE_ELEMENTS = CLASS___PARAMETERABLE_ELEMENTS;
 
 	/**
-	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ASSOCIATION_CLASS___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ASSOCIATION_CLASS___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Non Final Parents</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -117586,6 +117576,24 @@
 	int ASSOCIATION_CLASS___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ASSOCIATION_CLASS___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ASSOCIATION_CLASS___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Get All Attributes</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -117856,13 +117864,13 @@
 	int ASSOCIATION_CLASS___VALIDATE_SPECIALIZED_END_NUMBER__DIAGNOSTICCHAIN_MAP = CLASS_OPERATION_COUNT + 0;
 
 	/**
-	 * The operation id for the '<em>Validate Specialized End Types</em>' operation.
+	 * The operation id for the '<em>Validate Association Ends</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ASSOCIATION_CLASS___VALIDATE_SPECIALIZED_END_TYPES__DIAGNOSTICCHAIN_MAP = CLASS_OPERATION_COUNT + 1;
+	int ASSOCIATION_CLASS___VALIDATE_ASSOCIATION_ENDS__DIAGNOSTICCHAIN_MAP = CLASS_OPERATION_COUNT + 1;
 
 	/**
 	 * The operation id for the '<em>Validate Binary Associations</em>' operation.
@@ -117874,13 +117882,13 @@
 	int ASSOCIATION_CLASS___VALIDATE_BINARY_ASSOCIATIONS__DIAGNOSTICCHAIN_MAP = CLASS_OPERATION_COUNT + 2;
 
 	/**
-	 * The operation id for the '<em>Validate Association Ends</em>' operation.
+	 * The operation id for the '<em>Validate Specialized End Types</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ASSOCIATION_CLASS___VALIDATE_ASSOCIATION_ENDS__DIAGNOSTICCHAIN_MAP = CLASS_OPERATION_COUNT + 3;
+	int ASSOCIATION_CLASS___VALIDATE_SPECIALIZED_END_TYPES__DIAGNOSTICCHAIN_MAP = CLASS_OPERATION_COUNT + 3;
 
 	/**
 	 * The operation id for the '<em>Is Binary</em>' operation.
@@ -117901,22 +117909,22 @@
 	int ASSOCIATION_CLASS___GET_END_TYPES = CLASS_OPERATION_COUNT + 5;
 
 	/**
-	 * The operation id for the '<em>Validate Cannot Be Defined</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ASSOCIATION_CLASS___VALIDATE_CANNOT_BE_DEFINED__DIAGNOSTICCHAIN_MAP = CLASS_OPERATION_COUNT + 6;
-
-	/**
 	 * The operation id for the '<em>Validate Disjoint Attributes Ends</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ASSOCIATION_CLASS___VALIDATE_DISJOINT_ATTRIBUTES_ENDS__DIAGNOSTICCHAIN_MAP = CLASS_OPERATION_COUNT + 7;
+	int ASSOCIATION_CLASS___VALIDATE_DISJOINT_ATTRIBUTES_ENDS__DIAGNOSTICCHAIN_MAP = CLASS_OPERATION_COUNT + 6;
+
+	/**
+	 * The operation id for the '<em>Validate Cannot Be Defined</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ASSOCIATION_CLASS___VALIDATE_CANNOT_BE_DEFINED__DIAGNOSTICCHAIN_MAP = CLASS_OPERATION_COUNT + 7;
 
 	/**
 	 * The number of operations of the '<em>Association Class</em>' class.
@@ -118423,15 +118431,6 @@
 	int BEHAVIOR_EXECUTION_SPECIFICATION___MUST_BE_OWNED = EXECUTION_SPECIFICATION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BEHAVIOR_EXECUTION_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = EXECUTION_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -118450,6 +118449,15 @@
 	int BEHAVIOR_EXECUTION_SPECIFICATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = EXECUTION_SPECIFICATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BEHAVIOR_EXECUTION_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = EXECUTION_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -118675,7 +118683,7 @@
 	int INVOCATION_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -118684,15 +118692,6 @@
 	int INVOCATION_ACTION__ACTIVITY = ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INVOCATION_ACTION__IN_GROUP = ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -118738,6 +118737,15 @@
 	int INVOCATION_ACTION__INCOMING = ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INVOCATION_ACTION__IN_GROUP = ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -119170,15 +119178,6 @@
 	int INVOCATION_ACTION___MUST_BE_OWNED = ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INVOCATION_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -119197,6 +119196,15 @@
 	int INVOCATION_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INVOCATION_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -119494,7 +119502,7 @@
 	int BROADCAST_SIGNAL_ACTION__REDEFINITION_CONTEXT = INVOCATION_ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -119503,15 +119511,6 @@
 	int BROADCAST_SIGNAL_ACTION__ACTIVITY = INVOCATION_ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BROADCAST_SIGNAL_ACTION__IN_GROUP = INVOCATION_ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -119557,6 +119556,15 @@
 	int BROADCAST_SIGNAL_ACTION__INCOMING = INVOCATION_ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BROADCAST_SIGNAL_ACTION__IN_GROUP = INVOCATION_ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -119998,15 +120006,6 @@
 	int BROADCAST_SIGNAL_ACTION___MUST_BE_OWNED = INVOCATION_ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BROADCAST_SIGNAL_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = INVOCATION_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -120025,6 +120024,15 @@
 	int BROADCAST_SIGNAL_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = INVOCATION_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BROADCAST_SIGNAL_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = INVOCATION_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -120196,22 +120204,22 @@
 	int BROADCAST_SIGNAL_ACTION___VALIDATE_ON_PORT_RECEIVER__DIAGNOSTICCHAIN_MAP = INVOCATION_ACTION___VALIDATE_ON_PORT_RECEIVER__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Number And Order</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BROADCAST_SIGNAL_ACTION___VALIDATE_NUMBER_AND_ORDER__DIAGNOSTICCHAIN_MAP = INVOCATION_ACTION_OPERATION_COUNT + 0;
-
-	/**
 	 * The operation id for the '<em>Validate Type Ordering Multiplicity</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int BROADCAST_SIGNAL_ACTION___VALIDATE_TYPE_ORDERING_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = INVOCATION_ACTION_OPERATION_COUNT + 1;
+	int BROADCAST_SIGNAL_ACTION___VALIDATE_TYPE_ORDERING_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = INVOCATION_ACTION_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Validate Number And Order</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BROADCAST_SIGNAL_ACTION___VALIDATE_NUMBER_AND_ORDER__DIAGNOSTICCHAIN_MAP = INVOCATION_ACTION_OPERATION_COUNT + 1;
 
 	/**
 	 * The number of operations of the '<em>Broadcast Signal Action</em>' class.
@@ -120340,7 +120348,7 @@
 	int CALL_ACTION__REDEFINITION_CONTEXT = INVOCATION_ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -120349,15 +120357,6 @@
 	int CALL_ACTION__ACTIVITY = INVOCATION_ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CALL_ACTION__IN_GROUP = INVOCATION_ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -120403,6 +120402,15 @@
 	int CALL_ACTION__INCOMING = INVOCATION_ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CALL_ACTION__IN_GROUP = INVOCATION_ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -120853,15 +120861,6 @@
 	int CALL_ACTION___MUST_BE_OWNED = INVOCATION_ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CALL_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = INVOCATION_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -120880,6 +120879,15 @@
 	int CALL_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = INVOCATION_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CALL_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = INVOCATION_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -121051,13 +121059,13 @@
 	int CALL_ACTION___VALIDATE_ON_PORT_RECEIVER__DIAGNOSTICCHAIN_MAP = INVOCATION_ACTION___VALIDATE_ON_PORT_RECEIVER__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Type Ordering Multiplicity</em>' operation.
+	 * The operation id for the '<em>Validate Synchronous Call</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CALL_ACTION___VALIDATE_TYPE_ORDERING_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = INVOCATION_ACTION_OPERATION_COUNT + 0;
+	int CALL_ACTION___VALIDATE_SYNCHRONOUS_CALL__DIAGNOSTICCHAIN_MAP = INVOCATION_ACTION_OPERATION_COUNT + 0;
 
 	/**
 	 * The operation id for the '<em>Validate Number And Order</em>' operation.
@@ -121069,13 +121077,13 @@
 	int CALL_ACTION___VALIDATE_NUMBER_AND_ORDER__DIAGNOSTICCHAIN_MAP = INVOCATION_ACTION_OPERATION_COUNT + 1;
 
 	/**
-	 * The operation id for the '<em>Validate Synchronous Call</em>' operation.
+	 * The operation id for the '<em>Validate Type Ordering Multiplicity</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CALL_ACTION___VALIDATE_SYNCHRONOUS_CALL__DIAGNOSTICCHAIN_MAP = INVOCATION_ACTION_OPERATION_COUNT + 2;
+	int CALL_ACTION___VALIDATE_TYPE_ORDERING_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = INVOCATION_ACTION_OPERATION_COUNT + 2;
 
 	/**
 	 * The number of operations of the '<em>Call Action</em>' class.
@@ -121204,7 +121212,7 @@
 	int CALL_BEHAVIOR_ACTION__REDEFINITION_CONTEXT = CALL_ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -121213,15 +121221,6 @@
 	int CALL_BEHAVIOR_ACTION__ACTIVITY = CALL_ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CALL_BEHAVIOR_ACTION__IN_GROUP = CALL_ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -121267,6 +121266,15 @@
 	int CALL_BEHAVIOR_ACTION__INCOMING = CALL_ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CALL_BEHAVIOR_ACTION__IN_GROUP = CALL_ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -121726,15 +121734,6 @@
 	int CALL_BEHAVIOR_ACTION___MUST_BE_OWNED = CALL_ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CALL_BEHAVIOR_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CALL_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -121753,6 +121752,15 @@
 	int CALL_BEHAVIOR_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = CALL_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CALL_BEHAVIOR_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CALL_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -121924,13 +121932,13 @@
 	int CALL_BEHAVIOR_ACTION___VALIDATE_ON_PORT_RECEIVER__DIAGNOSTICCHAIN_MAP = CALL_ACTION___VALIDATE_ON_PORT_RECEIVER__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Type Ordering Multiplicity</em>' operation.
+	 * The operation id for the '<em>Validate Synchronous Call</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CALL_BEHAVIOR_ACTION___VALIDATE_TYPE_ORDERING_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = CALL_ACTION___VALIDATE_TYPE_ORDERING_MULTIPLICITY__DIAGNOSTICCHAIN_MAP;
+	int CALL_BEHAVIOR_ACTION___VALIDATE_SYNCHRONOUS_CALL__DIAGNOSTICCHAIN_MAP = CALL_ACTION___VALIDATE_SYNCHRONOUS_CALL__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Number And Order</em>' operation.
@@ -121942,13 +121950,13 @@
 	int CALL_BEHAVIOR_ACTION___VALIDATE_NUMBER_AND_ORDER__DIAGNOSTICCHAIN_MAP = CALL_ACTION___VALIDATE_NUMBER_AND_ORDER__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Synchronous Call</em>' operation.
+	 * The operation id for the '<em>Validate Type Ordering Multiplicity</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CALL_BEHAVIOR_ACTION___VALIDATE_SYNCHRONOUS_CALL__DIAGNOSTICCHAIN_MAP = CALL_ACTION___VALIDATE_SYNCHRONOUS_CALL__DIAGNOSTICCHAIN_MAP;
+	int CALL_BEHAVIOR_ACTION___VALIDATE_TYPE_ORDERING_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = CALL_ACTION___VALIDATE_TYPE_ORDERING_MULTIPLICITY__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Result Pin Equal Parameter</em>' operation.
@@ -122437,15 +122445,6 @@
 	int CALL_EVENT___MUST_BE_OWNED = MESSAGE_EVENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CALL_EVENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = MESSAGE_EVENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -122464,6 +122463,15 @@
 	int CALL_EVENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = MESSAGE_EVENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CALL_EVENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = MESSAGE_EVENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -122698,7 +122706,7 @@
 	int CALL_OPERATION_ACTION__REDEFINITION_CONTEXT = CALL_ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -122707,15 +122715,6 @@
 	int CALL_OPERATION_ACTION__ACTIVITY = CALL_ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CALL_OPERATION_ACTION__IN_GROUP = CALL_ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -122761,6 +122760,15 @@
 	int CALL_OPERATION_ACTION__INCOMING = CALL_ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CALL_OPERATION_ACTION__IN_GROUP = CALL_ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -123229,15 +123237,6 @@
 	int CALL_OPERATION_ACTION___MUST_BE_OWNED = CALL_ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CALL_OPERATION_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CALL_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -123256,6 +123255,15 @@
 	int CALL_OPERATION_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = CALL_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CALL_OPERATION_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CALL_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -123427,13 +123435,13 @@
 	int CALL_OPERATION_ACTION___VALIDATE_ON_PORT_RECEIVER__DIAGNOSTICCHAIN_MAP = CALL_ACTION___VALIDATE_ON_PORT_RECEIVER__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Type Ordering Multiplicity</em>' operation.
+	 * The operation id for the '<em>Validate Synchronous Call</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CALL_OPERATION_ACTION___VALIDATE_TYPE_ORDERING_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = CALL_ACTION___VALIDATE_TYPE_ORDERING_MULTIPLICITY__DIAGNOSTICCHAIN_MAP;
+	int CALL_OPERATION_ACTION___VALIDATE_SYNCHRONOUS_CALL__DIAGNOSTICCHAIN_MAP = CALL_ACTION___VALIDATE_SYNCHRONOUS_CALL__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Number And Order</em>' operation.
@@ -123445,22 +123453,13 @@
 	int CALL_OPERATION_ACTION___VALIDATE_NUMBER_AND_ORDER__DIAGNOSTICCHAIN_MAP = CALL_ACTION___VALIDATE_NUMBER_AND_ORDER__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Synchronous Call</em>' operation.
+	 * The operation id for the '<em>Validate Type Ordering Multiplicity</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CALL_OPERATION_ACTION___VALIDATE_SYNCHRONOUS_CALL__DIAGNOSTICCHAIN_MAP = CALL_ACTION___VALIDATE_SYNCHRONOUS_CALL__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Type Target Pin</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CALL_OPERATION_ACTION___VALIDATE_TYPE_TARGET_PIN__DIAGNOSTICCHAIN_MAP = CALL_ACTION_OPERATION_COUNT + 0;
+	int CALL_OPERATION_ACTION___VALIDATE_TYPE_ORDERING_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = CALL_ACTION___VALIDATE_TYPE_ORDERING_MULTIPLICITY__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Argument Pin Equal Parameter</em>' operation.
@@ -123469,7 +123468,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CALL_OPERATION_ACTION___VALIDATE_ARGUMENT_PIN_EQUAL_PARAMETER__DIAGNOSTICCHAIN_MAP = CALL_ACTION_OPERATION_COUNT + 1;
+	int CALL_OPERATION_ACTION___VALIDATE_ARGUMENT_PIN_EQUAL_PARAMETER__DIAGNOSTICCHAIN_MAP = CALL_ACTION_OPERATION_COUNT + 0;
 
 	/**
 	 * The operation id for the '<em>Validate Result Pin Equal Parameter</em>' operation.
@@ -123478,7 +123477,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CALL_OPERATION_ACTION___VALIDATE_RESULT_PIN_EQUAL_PARAMETER__DIAGNOSTICCHAIN_MAP = CALL_ACTION_OPERATION_COUNT + 2;
+	int CALL_OPERATION_ACTION___VALIDATE_RESULT_PIN_EQUAL_PARAMETER__DIAGNOSTICCHAIN_MAP = CALL_ACTION_OPERATION_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Validate Type Target Pin</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CALL_OPERATION_ACTION___VALIDATE_TYPE_TARGET_PIN__DIAGNOSTICCHAIN_MAP = CALL_ACTION_OPERATION_COUNT + 2;
 
 	/**
 	 * The number of operations of the '<em>Call Operation Action</em>' class.
@@ -123607,7 +123615,7 @@
 	int CENTRAL_BUFFER_NODE__REDEFINITION_CONTEXT = OBJECT_NODE__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -123616,15 +123624,6 @@
 	int CENTRAL_BUFFER_NODE__ACTIVITY = OBJECT_NODE__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CENTRAL_BUFFER_NODE__IN_GROUP = OBJECT_NODE__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -123670,6 +123669,15 @@
 	int CENTRAL_BUFFER_NODE__INCOMING = OBJECT_NODE__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CENTRAL_BUFFER_NODE__IN_GROUP = OBJECT_NODE__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -124075,15 +124083,6 @@
 	int CENTRAL_BUFFER_NODE___MUST_BE_OWNED = OBJECT_NODE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CENTRAL_BUFFER_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = OBJECT_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -124102,6 +124101,15 @@
 	int CENTRAL_BUFFER_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = OBJECT_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CENTRAL_BUFFER_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = OBJECT_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -124255,13 +124263,13 @@
 	int CENTRAL_BUFFER_NODE___VALIDATE_OWNED_STRUCTURED_NODE__DIAGNOSTICCHAIN_MAP = OBJECT_NODE___VALIDATE_OWNED_STRUCTURED_NODE__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Input Output Parameter</em>' operation.
+	 * The operation id for the '<em>Validate Object Flow Edges</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CENTRAL_BUFFER_NODE___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP = OBJECT_NODE___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP;
+	int CENTRAL_BUFFER_NODE___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP = OBJECT_NODE___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Selection Behavior</em>' operation.
@@ -124273,13 +124281,13 @@
 	int CENTRAL_BUFFER_NODE___VALIDATE_SELECTION_BEHAVIOR__DIAGNOSTICCHAIN_MAP = OBJECT_NODE___VALIDATE_SELECTION_BEHAVIOR__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Object Flow Edges</em>' operation.
+	 * The operation id for the '<em>Validate Input Output Parameter</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CENTRAL_BUFFER_NODE___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP = OBJECT_NODE___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP;
+	int CENTRAL_BUFFER_NODE___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP = OBJECT_NODE___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The number of operations of the '<em>Central Buffer Node</em>' class.
@@ -124750,15 +124758,6 @@
 	int CHANGE_EVENT___MUST_BE_OWNED = EVENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CHANGE_EVENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = EVENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -124777,6 +124776,15 @@
 	int CHANGE_EVENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = EVENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHANGE_EVENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = EVENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -125326,13 +125334,22 @@
 	int CLAUSE___MUST_BE_OWNED = ELEMENT___MUST_BE_OWNED;
 
 	/**
+	 * The operation id for the '<em>Validate Test And Body</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLAUSE___VALIDATE_TEST_AND_BODY__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 0;
+
+	/**
 	 * The operation id for the '<em>Validate Body Output Pins</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CLAUSE___VALIDATE_BODY_OUTPUT_PINS__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 0;
+	int CLAUSE___VALIDATE_BODY_OUTPUT_PINS__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 1;
 
 	/**
 	 * The operation id for the '<em>Validate Decider Output</em>' operation.
@@ -125341,16 +125358,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CLAUSE___VALIDATE_DECIDER_OUTPUT__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 1;
-
-	/**
-	 * The operation id for the '<em>Validate Test And Body</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CLAUSE___VALIDATE_TEST_AND_BODY__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 2;
+	int CLAUSE___VALIDATE_DECIDER_OUTPUT__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 2;
 
 	/**
 	 * The number of operations of the '<em>Clause</em>' class.
@@ -125479,7 +125487,7 @@
 	int CLEAR_ASSOCIATION_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -125488,15 +125496,6 @@
 	int CLEAR_ASSOCIATION_ACTION__ACTIVITY = ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CLEAR_ASSOCIATION_ACTION__IN_GROUP = ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -125542,6 +125541,15 @@
 	int CLEAR_ASSOCIATION_ACTION__INCOMING = ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLEAR_ASSOCIATION_ACTION__IN_GROUP = ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -125974,15 +125982,6 @@
 	int CLEAR_ASSOCIATION_ACTION___MUST_BE_OWNED = ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CLEAR_ASSOCIATION_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -126001,6 +126000,15 @@
 	int CLEAR_ASSOCIATION_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLEAR_ASSOCIATION_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -126307,7 +126315,7 @@
 	int CLEAR_STRUCTURAL_FEATURE_ACTION__REDEFINITION_CONTEXT = STRUCTURAL_FEATURE_ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -126316,15 +126324,6 @@
 	int CLEAR_STRUCTURAL_FEATURE_ACTION__ACTIVITY = STRUCTURAL_FEATURE_ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CLEAR_STRUCTURAL_FEATURE_ACTION__IN_GROUP = STRUCTURAL_FEATURE_ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -126370,6 +126369,15 @@
 	int CLEAR_STRUCTURAL_FEATURE_ACTION__INCOMING = STRUCTURAL_FEATURE_ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLEAR_STRUCTURAL_FEATURE_ACTION__IN_GROUP = STRUCTURAL_FEATURE_ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -126811,15 +126819,6 @@
 	int CLEAR_STRUCTURAL_FEATURE_ACTION___MUST_BE_OWNED = STRUCTURAL_FEATURE_ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CLEAR_STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -126838,6 +126837,15 @@
 	int CLEAR_STRUCTURAL_FEATURE_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLEAR_STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -127000,24 +127008,6 @@
 	int CLEAR_STRUCTURAL_FEATURE_ACTION___GET_CONTEXT = STRUCTURAL_FEATURE_ACTION___GET_CONTEXT;
 
 	/**
-	 * The operation id for the '<em>Validate Multiplicity</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CLEAR_STRUCTURAL_FEATURE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Same Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CLEAR_STRUCTURAL_FEATURE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Visibility</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -127027,6 +127017,15 @@
 	int CLEAR_STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Multiplicity</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLEAR_STRUCTURAL_FEATURE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Validate Not Static</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -127045,13 +127044,13 @@
 	int CLEAR_STRUCTURAL_FEATURE_ACTION___VALIDATE_ONE_FEATURING_CLASSIFIER__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_ACTION___VALIDATE_ONE_FEATURING_CLASSIFIER__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Type Of Result</em>' operation.
+	 * The operation id for the '<em>Validate Same Type</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CLEAR_STRUCTURAL_FEATURE_ACTION___VALIDATE_TYPE_OF_RESULT__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_ACTION_OPERATION_COUNT + 0;
+	int CLEAR_STRUCTURAL_FEATURE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Multiplicity Of Result</em>' operation.
@@ -127060,7 +127059,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CLEAR_STRUCTURAL_FEATURE_ACTION___VALIDATE_MULTIPLICITY_OF_RESULT__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_ACTION_OPERATION_COUNT + 1;
+	int CLEAR_STRUCTURAL_FEATURE_ACTION___VALIDATE_MULTIPLICITY_OF_RESULT__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_ACTION_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Validate Type Of Result</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLEAR_STRUCTURAL_FEATURE_ACTION___VALIDATE_TYPE_OF_RESULT__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_ACTION_OPERATION_COUNT + 1;
 
 	/**
 	 * The number of operations of the '<em>Clear Structural Feature Action</em>' class.
@@ -127189,7 +127197,7 @@
 	int CLEAR_VARIABLE_ACTION__REDEFINITION_CONTEXT = VARIABLE_ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -127198,15 +127206,6 @@
 	int CLEAR_VARIABLE_ACTION__ACTIVITY = VARIABLE_ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CLEAR_VARIABLE_ACTION__IN_GROUP = VARIABLE_ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -127252,6 +127251,15 @@
 	int CLEAR_VARIABLE_ACTION__INCOMING = VARIABLE_ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLEAR_VARIABLE_ACTION__IN_GROUP = VARIABLE_ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -127675,15 +127683,6 @@
 	int CLEAR_VARIABLE_ACTION___MUST_BE_OWNED = VARIABLE_ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CLEAR_VARIABLE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = VARIABLE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -127702,6 +127701,15 @@
 	int CLEAR_VARIABLE_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = VARIABLE_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLEAR_VARIABLE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = VARIABLE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -128377,15 +128385,6 @@
 	int COMBINED_FRAGMENT___MUST_BE_OWNED = INTERACTION_FRAGMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int COMBINED_FRAGMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -128404,6 +128403,15 @@
 	int COMBINED_FRAGMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMBINED_FRAGMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -128494,22 +128502,22 @@
 	int COMBINED_FRAGMENT___SEPARATOR = INTERACTION_FRAGMENT___SEPARATOR;
 
 	/**
-	 * The operation id for the '<em>Validate Minint And Maxint</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int COMBINED_FRAGMENT___VALIDATE_MININT_AND_MAXINT__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT_OPERATION_COUNT + 0;
-
-	/**
 	 * The operation id for the '<em>Validate Break</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int COMBINED_FRAGMENT___VALIDATE_BREAK__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT_OPERATION_COUNT + 1;
+	int COMBINED_FRAGMENT___VALIDATE_BREAK__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Validate Opt Loop Break Neg</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMBINED_FRAGMENT___VALIDATE_OPT_LOOP_BREAK_NEG__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT_OPERATION_COUNT + 1;
 
 	/**
 	 * The operation id for the '<em>Validate Consider And Ignore</em>' operation.
@@ -128521,13 +128529,13 @@
 	int COMBINED_FRAGMENT___VALIDATE_CONSIDER_AND_IGNORE__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT_OPERATION_COUNT + 2;
 
 	/**
-	 * The operation id for the '<em>Validate Opt Loop Break Neg</em>' operation.
+	 * The operation id for the '<em>Validate Minint And Maxint</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int COMBINED_FRAGMENT___VALIDATE_OPT_LOOP_BREAK_NEG__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT_OPERATION_COUNT + 3;
+	int COMBINED_FRAGMENT___VALIDATE_MININT_AND_MAXINT__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT_OPERATION_COUNT + 3;
 
 	/**
 	 * The number of operations of the '<em>Combined Fragment</em>' class.
@@ -129277,15 +129285,6 @@
 	int COMMUNICATION_PATH___MUST_BE_OWNED = ASSOCIATION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int COMMUNICATION_PATH___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ASSOCIATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -129304,6 +129303,15 @@
 	int COMMUNICATION_PATH___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ASSOCIATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMMUNICATION_PATH___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ASSOCIATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -129601,24 +129609,6 @@
 	int COMMUNICATION_PATH___PARAMETERABLE_ELEMENTS = ASSOCIATION___PARAMETERABLE_ELEMENTS;
 
 	/**
-	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int COMMUNICATION_PATH___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = ASSOCIATION___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int COMMUNICATION_PATH___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = ASSOCIATION___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Non Final Parents</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -129637,6 +129627,24 @@
 	int COMMUNICATION_PATH___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP = ASSOCIATION___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMMUNICATION_PATH___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = ASSOCIATION___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMMUNICATION_PATH___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = ASSOCIATION___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Get All Attributes</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -129799,13 +129807,13 @@
 	int COMMUNICATION_PATH___VALIDATE_SPECIALIZED_END_NUMBER__DIAGNOSTICCHAIN_MAP = ASSOCIATION___VALIDATE_SPECIALIZED_END_NUMBER__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Specialized End Types</em>' operation.
+	 * The operation id for the '<em>Validate Association Ends</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int COMMUNICATION_PATH___VALIDATE_SPECIALIZED_END_TYPES__DIAGNOSTICCHAIN_MAP = ASSOCIATION___VALIDATE_SPECIALIZED_END_TYPES__DIAGNOSTICCHAIN_MAP;
+	int COMMUNICATION_PATH___VALIDATE_ASSOCIATION_ENDS__DIAGNOSTICCHAIN_MAP = ASSOCIATION___VALIDATE_ASSOCIATION_ENDS__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Binary Associations</em>' operation.
@@ -129817,13 +129825,13 @@
 	int COMMUNICATION_PATH___VALIDATE_BINARY_ASSOCIATIONS__DIAGNOSTICCHAIN_MAP = ASSOCIATION___VALIDATE_BINARY_ASSOCIATIONS__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Association Ends</em>' operation.
+	 * The operation id for the '<em>Validate Specialized End Types</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int COMMUNICATION_PATH___VALIDATE_ASSOCIATION_ENDS__DIAGNOSTICCHAIN_MAP = ASSOCIATION___VALIDATE_ASSOCIATION_ENDS__DIAGNOSTICCHAIN_MAP;
+	int COMMUNICATION_PATH___VALIDATE_SPECIALIZED_END_TYPES__DIAGNOSTICCHAIN_MAP = ASSOCIATION___VALIDATE_SPECIALIZED_END_TYPES__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Is Binary</em>' operation.
@@ -130708,15 +130716,6 @@
 	int COMPONENT___MUST_BE_OWNED = CLASS___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int COMPONENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -130735,6 +130734,15 @@
 	int COMPONENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -131032,24 +131040,6 @@
 	int COMPONENT___PARAMETERABLE_ELEMENTS = CLASS___PARAMETERABLE_ELEMENTS;
 
 	/**
-	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int COMPONENT___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int COMPONENT___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Non Final Parents</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -131068,6 +131058,24 @@
 	int COMPONENT___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Get All Attributes</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -131329,22 +131337,22 @@
 	int COMPONENT___GET_SUPER_CLASSES = CLASS___GET_SUPER_CLASSES;
 
 	/**
-	 * The operation id for the '<em>Validate No Nested Classifiers</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int COMPONENT___VALIDATE_NO_NESTED_CLASSIFIERS__DIAGNOSTICCHAIN_MAP = CLASS_OPERATION_COUNT + 0;
-
-	/**
 	 * The operation id for the '<em>Validate No Packaged Elements</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int COMPONENT___VALIDATE_NO_PACKAGED_ELEMENTS__DIAGNOSTICCHAIN_MAP = CLASS_OPERATION_COUNT + 1;
+	int COMPONENT___VALIDATE_NO_PACKAGED_ELEMENTS__DIAGNOSTICCHAIN_MAP = CLASS_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Validate No Nested Classifiers</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT___VALIDATE_NO_NESTED_CLASSIFIERS__DIAGNOSTICCHAIN_MAP = CLASS_OPERATION_COUNT + 1;
 
 	/**
 	 * The operation id for the '<em>Create Owned Class</em>' operation.
@@ -131950,15 +131958,6 @@
 	int COMPONENT_REALIZATION___MUST_BE_OWNED = REALIZATION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int COMPONENT_REALIZATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = REALIZATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -131977,6 +131976,15 @@
 	int COMPONENT_REALIZATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = REALIZATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_REALIZATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = REALIZATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -132211,7 +132219,7 @@
 	int CONDITIONAL_NODE__REDEFINITION_CONTEXT = STRUCTURED_ACTIVITY_NODE__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -132220,15 +132228,6 @@
 	int CONDITIONAL_NODE__ACTIVITY = STRUCTURED_ACTIVITY_NODE__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONDITIONAL_NODE__IN_GROUP = STRUCTURED_ACTIVITY_NODE__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -132274,6 +132273,15 @@
 	int CONDITIONAL_NODE__INCOMING = STRUCTURED_ACTIVITY_NODE__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONDITIONAL_NODE__IN_GROUP = STRUCTURED_ACTIVITY_NODE__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -132400,6 +132408,15 @@
 	int CONDITIONAL_NODE__MEMBER = STRUCTURED_ACTIVITY_NODE__MEMBER;
 
 	/**
+	 * The feature id for the '<em><b>Contained Edge</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONDITIONAL_NODE__CONTAINED_EDGE = STRUCTURED_ACTIVITY_NODE__CONTAINED_EDGE;
+
+	/**
 	 * The feature id for the '<em><b>Contained Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -132409,7 +132426,7 @@
 	int CONDITIONAL_NODE__CONTAINED_NODE = STRUCTURED_ACTIVITY_NODE__CONTAINED_NODE;
 
 	/**
-	 * The feature id for the '<em><b>In Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>In Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -132436,15 +132453,6 @@
 	int CONDITIONAL_NODE__SUPER_GROUP = STRUCTURED_ACTIVITY_NODE__SUPER_GROUP;
 
 	/**
-	 * The feature id for the '<em><b>Contained Edge</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONDITIONAL_NODE__CONTAINED_EDGE = STRUCTURED_ACTIVITY_NODE__CONTAINED_EDGE;
-
-	/**
 	 * The feature id for the '<em><b>Must Isolate</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -132877,15 +132885,6 @@
 	int CONDITIONAL_NODE___MUST_BE_OWNED = STRUCTURED_ACTIVITY_NODE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONDITIONAL_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -132904,6 +132903,15 @@
 	int CONDITIONAL_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONDITIONAL_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -133165,15 +133173,6 @@
 	int CONDITIONAL_NODE___GET_OWNED_MEMBERS = STRUCTURED_ACTIVITY_NODE___GET_OWNED_MEMBERS;
 
 	/**
-	 * The operation id for the '<em>Validate Nodes And Edges</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONDITIONAL_NODE___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Group Owned</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -133192,22 +133191,13 @@
 	int CONDITIONAL_NODE___VALIDATE_NOT_CONTAINED__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_NOT_CONTAINED__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Output Pin Edges</em>' operation.
+	 * The operation id for the '<em>Validate Nodes And Edges</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CONDITIONAL_NODE___VALIDATE_OUTPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_OUTPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Edges</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONDITIONAL_NODE___VALIDATE_EDGES__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_EDGES__DIAGNOSTICCHAIN_MAP;
+	int CONDITIONAL_NODE___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Input Pin Edges</em>' operation.
@@ -133219,40 +133209,22 @@
 	int CONDITIONAL_NODE___VALIDATE_INPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_INPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Result No Incoming</em>' operation.
+	 * The operation id for the '<em>Validate Edges</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CONDITIONAL_NODE___VALIDATE_RESULT_NO_INCOMING__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE_OPERATION_COUNT + 0;
+	int CONDITIONAL_NODE___VALIDATE_EDGES__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_EDGES__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate No Input Pins</em>' operation.
+	 * The operation id for the '<em>Validate Output Pin Edges</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CONDITIONAL_NODE___VALIDATE_NO_INPUT_PINS__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE_OPERATION_COUNT + 1;
-
-	/**
-	 * The operation id for the '<em>Validate One Clause With Executable Node</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONDITIONAL_NODE___VALIDATE_ONE_CLAUSE_WITH_EXECUTABLE_NODE__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE_OPERATION_COUNT + 2;
-
-	/**
-	 * The operation id for the '<em>Validate Matching Output Pins</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONDITIONAL_NODE___VALIDATE_MATCHING_OUTPUT_PINS__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE_OPERATION_COUNT + 3;
+	int CONDITIONAL_NODE___VALIDATE_OUTPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_OUTPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Executable Nodes</em>' operation.
@@ -133261,7 +133233,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CONDITIONAL_NODE___VALIDATE_EXECUTABLE_NODES__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE_OPERATION_COUNT + 4;
+	int CONDITIONAL_NODE___VALIDATE_EXECUTABLE_NODES__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE_OPERATION_COUNT + 0;
 
 	/**
 	 * The operation id for the '<em>Validate Clause No Predecessor</em>' operation.
@@ -133270,7 +133242,43 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CONDITIONAL_NODE___VALIDATE_CLAUSE_NO_PREDECESSOR__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE_OPERATION_COUNT + 5;
+	int CONDITIONAL_NODE___VALIDATE_CLAUSE_NO_PREDECESSOR__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE_OPERATION_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Validate Matching Output Pins</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONDITIONAL_NODE___VALIDATE_MATCHING_OUTPUT_PINS__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE_OPERATION_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>Validate One Clause With Executable Node</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONDITIONAL_NODE___VALIDATE_ONE_CLAUSE_WITH_EXECUTABLE_NODE__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE_OPERATION_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>Validate Result No Incoming</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONDITIONAL_NODE___VALIDATE_RESULT_NO_INCOMING__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE_OPERATION_COUNT + 4;
+
+	/**
+	 * The operation id for the '<em>Validate No Input Pins</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONDITIONAL_NODE___VALIDATE_NO_INPUT_PINS__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE_OPERATION_COUNT + 5;
 
 	/**
 	 * The number of operations of the '<em>Conditional Node</em>' class.
@@ -133786,15 +133794,6 @@
 	int CONSIDER_IGNORE_FRAGMENT___MUST_BE_OWNED = COMBINED_FRAGMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSIDER_IGNORE_FRAGMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = COMBINED_FRAGMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -133813,6 +133812,15 @@
 	int CONSIDER_IGNORE_FRAGMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = COMBINED_FRAGMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSIDER_IGNORE_FRAGMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = COMBINED_FRAGMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -133903,15 +133911,6 @@
 	int CONSIDER_IGNORE_FRAGMENT___SEPARATOR = COMBINED_FRAGMENT___SEPARATOR;
 
 	/**
-	 * The operation id for the '<em>Validate Minint And Maxint</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSIDER_IGNORE_FRAGMENT___VALIDATE_MININT_AND_MAXINT__DIAGNOSTICCHAIN_MAP = COMBINED_FRAGMENT___VALIDATE_MININT_AND_MAXINT__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Break</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -133921,15 +133920,6 @@
 	int CONSIDER_IGNORE_FRAGMENT___VALIDATE_BREAK__DIAGNOSTICCHAIN_MAP = COMBINED_FRAGMENT___VALIDATE_BREAK__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Consider And Ignore</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSIDER_IGNORE_FRAGMENT___VALIDATE_CONSIDER_AND_IGNORE__DIAGNOSTICCHAIN_MAP = COMBINED_FRAGMENT___VALIDATE_CONSIDER_AND_IGNORE__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Opt Loop Break Neg</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -133939,13 +133929,22 @@
 	int CONSIDER_IGNORE_FRAGMENT___VALIDATE_OPT_LOOP_BREAK_NEG__DIAGNOSTICCHAIN_MAP = COMBINED_FRAGMENT___VALIDATE_OPT_LOOP_BREAK_NEG__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Consider Or Ignore</em>' operation.
+	 * The operation id for the '<em>Validate Consider And Ignore</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CONSIDER_IGNORE_FRAGMENT___VALIDATE_CONSIDER_OR_IGNORE__DIAGNOSTICCHAIN_MAP = COMBINED_FRAGMENT_OPERATION_COUNT + 0;
+	int CONSIDER_IGNORE_FRAGMENT___VALIDATE_CONSIDER_AND_IGNORE__DIAGNOSTICCHAIN_MAP = COMBINED_FRAGMENT___VALIDATE_CONSIDER_AND_IGNORE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Minint And Maxint</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSIDER_IGNORE_FRAGMENT___VALIDATE_MININT_AND_MAXINT__DIAGNOSTICCHAIN_MAP = COMBINED_FRAGMENT___VALIDATE_MININT_AND_MAXINT__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Type</em>' operation.
@@ -133954,7 +133953,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CONSIDER_IGNORE_FRAGMENT___VALIDATE_TYPE__DIAGNOSTICCHAIN_MAP = COMBINED_FRAGMENT_OPERATION_COUNT + 1;
+	int CONSIDER_IGNORE_FRAGMENT___VALIDATE_TYPE__DIAGNOSTICCHAIN_MAP = COMBINED_FRAGMENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Validate Consider Or Ignore</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSIDER_IGNORE_FRAGMENT___VALIDATE_CONSIDER_OR_IGNORE__DIAGNOSTICCHAIN_MAP = COMBINED_FRAGMENT_OPERATION_COUNT + 1;
 
 	/**
 	 * The number of operations of the '<em>Consider Ignore Fragment</em>' class.
@@ -134443,15 +134451,6 @@
 	int CONTINUATION___MUST_BE_OWNED = INTERACTION_FRAGMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONTINUATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -134470,6 +134469,15 @@
 	int CONTINUATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONTINUATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -134560,22 +134568,22 @@
 	int CONTINUATION___SEPARATOR = INTERACTION_FRAGMENT___SEPARATOR;
 
 	/**
-	 * The operation id for the '<em>Validate First Or Last Interaction Fragment</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONTINUATION___VALIDATE_FIRST_OR_LAST_INTERACTION_FRAGMENT__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT_OPERATION_COUNT + 0;
-
-	/**
 	 * The operation id for the '<em>Validate Same Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CONTINUATION___VALIDATE_SAME_NAME__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT_OPERATION_COUNT + 1;
+	int CONTINUATION___VALIDATE_SAME_NAME__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Validate First Or Last Interaction Fragment</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONTINUATION___VALIDATE_FIRST_OR_LAST_INTERACTION_FRAGMENT__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT_OPERATION_COUNT + 1;
 
 	/**
 	 * The operation id for the '<em>Validate Global</em>' operation.
@@ -134713,6 +134721,15 @@
 	int CONTROL_FLOW__REDEFINITION_CONTEXT = ACTIVITY_EDGE__REDEFINITION_CONTEXT;
 
 	/**
+	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONTROL_FLOW__ACTIVITY = ACTIVITY_EDGE__ACTIVITY;
+
+	/**
 	 * The feature id for the '<em><b>Guard</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -134722,15 +134739,6 @@
 	int CONTROL_FLOW__GUARD = ACTIVITY_EDGE__GUARD;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONTROL_FLOW__IN_GROUP = ACTIVITY_EDGE__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -134794,13 +134802,13 @@
 	int CONTROL_FLOW__WEIGHT = ACTIVITY_EDGE__WEIGHT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CONTROL_FLOW__ACTIVITY = ACTIVITY_EDGE__ACTIVITY;
+	int CONTROL_FLOW__IN_GROUP = ACTIVITY_EDGE__IN_GROUP;
 
 	/**
 	 * The number of structural features of the '<em>Control Flow</em>' class.
@@ -135145,15 +135153,6 @@
 	int CONTROL_FLOW___MUST_BE_OWNED = ACTIVITY_EDGE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONTROL_FLOW___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTIVITY_EDGE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -135172,6 +135171,15 @@
 	int CONTROL_FLOW___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ACTIVITY_EDGE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONTROL_FLOW___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTIVITY_EDGE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -135469,7 +135477,7 @@
 	int LINK_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -135478,15 +135486,6 @@
 	int LINK_ACTION__ACTIVITY = ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK_ACTION__IN_GROUP = ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -135532,6 +135531,15 @@
 	int LINK_ACTION__INCOMING = ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LINK_ACTION__IN_GROUP = ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -135964,15 +135972,6 @@
 	int LINK_ACTION___MUST_BE_OWNED = ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -135991,6 +135990,15 @@
 	int LINK_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LINK_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -136315,7 +136323,7 @@
 	int WRITE_LINK_ACTION__REDEFINITION_CONTEXT = LINK_ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -136324,15 +136332,6 @@
 	int WRITE_LINK_ACTION__ACTIVITY = LINK_ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int WRITE_LINK_ACTION__IN_GROUP = LINK_ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -136378,6 +136377,15 @@
 	int WRITE_LINK_ACTION__INCOMING = LINK_ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WRITE_LINK_ACTION__IN_GROUP = LINK_ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -136810,15 +136818,6 @@
 	int WRITE_LINK_ACTION___MUST_BE_OWNED = LINK_ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int WRITE_LINK_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = LINK_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -136837,6 +136836,15 @@
 	int WRITE_LINK_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = LINK_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WRITE_LINK_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = LINK_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -137170,7 +137178,7 @@
 	int CREATE_LINK_ACTION__REDEFINITION_CONTEXT = WRITE_LINK_ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -137179,15 +137187,6 @@
 	int CREATE_LINK_ACTION__ACTIVITY = WRITE_LINK_ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CREATE_LINK_ACTION__IN_GROUP = WRITE_LINK_ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -137233,6 +137232,15 @@
 	int CREATE_LINK_ACTION__INCOMING = WRITE_LINK_ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CREATE_LINK_ACTION__IN_GROUP = WRITE_LINK_ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -137665,15 +137673,6 @@
 	int CREATE_LINK_ACTION___MUST_BE_OWNED = WRITE_LINK_ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CREATE_LINK_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = WRITE_LINK_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -137692,6 +137691,15 @@
 	int CREATE_LINK_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = WRITE_LINK_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CREATE_LINK_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = WRITE_LINK_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -138322,22 +138330,13 @@
 	int LINK_END_DATA___MUST_BE_OWNED = ELEMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Same Type</em>' operation.
+	 * The operation id for the '<em>Validate Property Is Association End</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int LINK_END_DATA___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 0;
-
-	/**
-	 * The operation id for the '<em>Validate Multiplicity</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK_END_DATA___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 1;
+	int LINK_END_DATA___VALIDATE_PROPERTY_IS_ASSOCIATION_END__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 0;
 
 	/**
 	 * The operation id for the '<em>Validate End Object Input Pin</em>' operation.
@@ -138346,16 +138345,25 @@
 	 * @generated
 	 * @ordered
 	 */
-	int LINK_END_DATA___VALIDATE_END_OBJECT_INPUT_PIN__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 2;
+	int LINK_END_DATA___VALIDATE_END_OBJECT_INPUT_PIN__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 1;
 
 	/**
-	 * The operation id for the '<em>Validate Property Is Association End</em>' operation.
+	 * The operation id for the '<em>Validate Same Type</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int LINK_END_DATA___VALIDATE_PROPERTY_IS_ASSOCIATION_END__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 3;
+	int LINK_END_DATA___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>Validate Multiplicity</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LINK_END_DATA___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 3;
 
 	/**
 	 * The operation id for the '<em>Validate Qualifiers</em>' operation.
@@ -138772,13 +138780,22 @@
 	int QUALIFIER_VALUE___MUST_BE_OWNED = ELEMENT___MUST_BE_OWNED;
 
 	/**
+	 * The operation id for the '<em>Validate Qualifier Attribute</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int QUALIFIER_VALUE___VALIDATE_QUALIFIER_ATTRIBUTE__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 0;
+
+	/**
 	 * The operation id for the '<em>Validate Multiplicity Of Qualifier</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int QUALIFIER_VALUE___VALIDATE_MULTIPLICITY_OF_QUALIFIER__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 0;
+	int QUALIFIER_VALUE___VALIDATE_MULTIPLICITY_OF_QUALIFIER__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 1;
 
 	/**
 	 * The operation id for the '<em>Validate Type Of Qualifier</em>' operation.
@@ -138787,16 +138804,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int QUALIFIER_VALUE___VALIDATE_TYPE_OF_QUALIFIER__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 1;
-
-	/**
-	 * The operation id for the '<em>Validate Qualifier Attribute</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int QUALIFIER_VALUE___VALIDATE_QUALIFIER_ATTRIBUTE__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 2;
+	int QUALIFIER_VALUE___VALIDATE_TYPE_OF_QUALIFIER__DIAGNOSTICCHAIN_MAP = ELEMENT_OPERATION_COUNT + 2;
 
 	/**
 	 * The number of operations of the '<em>Qualifier Value</em>' class.
@@ -139231,6 +139239,24 @@
 	int LINK_END_CREATION_DATA___MUST_BE_OWNED = LINK_END_DATA___MUST_BE_OWNED;
 
 	/**
+	 * The operation id for the '<em>Validate Property Is Association End</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LINK_END_CREATION_DATA___VALIDATE_PROPERTY_IS_ASSOCIATION_END__DIAGNOSTICCHAIN_MAP = LINK_END_DATA___VALIDATE_PROPERTY_IS_ASSOCIATION_END__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate End Object Input Pin</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LINK_END_CREATION_DATA___VALIDATE_END_OBJECT_INPUT_PIN__DIAGNOSTICCHAIN_MAP = LINK_END_DATA___VALIDATE_END_OBJECT_INPUT_PIN__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Validate Same Type</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -139249,24 +139275,6 @@
 	int LINK_END_CREATION_DATA___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = LINK_END_DATA___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate End Object Input Pin</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK_END_CREATION_DATA___VALIDATE_END_OBJECT_INPUT_PIN__DIAGNOSTICCHAIN_MAP = LINK_END_DATA___VALIDATE_END_OBJECT_INPUT_PIN__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Property Is Association End</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK_END_CREATION_DATA___VALIDATE_PROPERTY_IS_ASSOCIATION_END__DIAGNOSTICCHAIN_MAP = LINK_END_DATA___VALIDATE_PROPERTY_IS_ASSOCIATION_END__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Qualifiers</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -139276,22 +139284,22 @@
 	int LINK_END_CREATION_DATA___VALIDATE_QUALIFIERS__DIAGNOSTICCHAIN_MAP = LINK_END_DATA___VALIDATE_QUALIFIERS__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Single Input Pin</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK_END_CREATION_DATA___VALIDATE_SINGLE_INPUT_PIN__DIAGNOSTICCHAIN_MAP = LINK_END_DATA_OPERATION_COUNT + 0;
-
-	/**
 	 * The operation id for the '<em>Validate Create Link Action</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int LINK_END_CREATION_DATA___VALIDATE_CREATE_LINK_ACTION__DIAGNOSTICCHAIN_MAP = LINK_END_DATA_OPERATION_COUNT + 1;
+	int LINK_END_CREATION_DATA___VALIDATE_CREATE_LINK_ACTION__DIAGNOSTICCHAIN_MAP = LINK_END_DATA_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Validate Single Input Pin</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LINK_END_CREATION_DATA___VALIDATE_SINGLE_INPUT_PIN__DIAGNOSTICCHAIN_MAP = LINK_END_DATA_OPERATION_COUNT + 1;
 
 	/**
 	 * The number of operations of the '<em>Link End Creation Data</em>' class.
@@ -139420,7 +139428,7 @@
 	int CREATE_LINK_OBJECT_ACTION__REDEFINITION_CONTEXT = CREATE_LINK_ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -139429,15 +139437,6 @@
 	int CREATE_LINK_OBJECT_ACTION__ACTIVITY = CREATE_LINK_ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CREATE_LINK_OBJECT_ACTION__IN_GROUP = CREATE_LINK_ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -139483,6 +139482,15 @@
 	int CREATE_LINK_OBJECT_ACTION__INCOMING = CREATE_LINK_ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CREATE_LINK_OBJECT_ACTION__IN_GROUP = CREATE_LINK_ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -139924,15 +139932,6 @@
 	int CREATE_LINK_OBJECT_ACTION___MUST_BE_OWNED = CREATE_LINK_ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CREATE_LINK_OBJECT_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CREATE_LINK_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -139951,6 +139950,15 @@
 	int CREATE_LINK_OBJECT_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = CREATE_LINK_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CREATE_LINK_OBJECT_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CREATE_LINK_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -140167,13 +140175,13 @@
 	int CREATE_LINK_OBJECT_ACTION___VALIDATE_ASSOCIATION_NOT_ABSTRACT__DIAGNOSTICCHAIN_MAP = CREATE_LINK_ACTION___VALIDATE_ASSOCIATION_NOT_ABSTRACT__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Multiplicity</em>' operation.
+	 * The operation id for the '<em>Validate Association Class</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CREATE_LINK_OBJECT_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = CREATE_LINK_ACTION_OPERATION_COUNT + 0;
+	int CREATE_LINK_OBJECT_ACTION___VALIDATE_ASSOCIATION_CLASS__DIAGNOSTICCHAIN_MAP = CREATE_LINK_ACTION_OPERATION_COUNT + 0;
 
 	/**
 	 * The operation id for the '<em>Validate Type Of Result</em>' operation.
@@ -140185,13 +140193,13 @@
 	int CREATE_LINK_OBJECT_ACTION___VALIDATE_TYPE_OF_RESULT__DIAGNOSTICCHAIN_MAP = CREATE_LINK_ACTION_OPERATION_COUNT + 1;
 
 	/**
-	 * The operation id for the '<em>Validate Association Class</em>' operation.
+	 * The operation id for the '<em>Validate Multiplicity</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CREATE_LINK_OBJECT_ACTION___VALIDATE_ASSOCIATION_CLASS__DIAGNOSTICCHAIN_MAP = CREATE_LINK_ACTION_OPERATION_COUNT + 2;
+	int CREATE_LINK_OBJECT_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = CREATE_LINK_ACTION_OPERATION_COUNT + 2;
 
 	/**
 	 * The number of operations of the '<em>Create Link Object Action</em>' class.
@@ -140320,7 +140328,7 @@
 	int CREATE_OBJECT_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -140329,15 +140337,6 @@
 	int CREATE_OBJECT_ACTION__ACTIVITY = ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CREATE_OBJECT_ACTION__IN_GROUP = ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -140383,6 +140382,15 @@
 	int CREATE_OBJECT_ACTION__INCOMING = ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CREATE_OBJECT_ACTION__IN_GROUP = ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -140815,15 +140823,6 @@
 	int CREATE_OBJECT_ACTION___MUST_BE_OWNED = ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CREATE_OBJECT_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -140842,6 +140841,15 @@
 	int CREATE_OBJECT_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CREATE_OBJECT_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -141004,31 +141012,22 @@
 	int CREATE_OBJECT_ACTION___GET_CONTEXT = ACTION___GET_CONTEXT;
 
 	/**
-	 * The operation id for the '<em>Validate Classifier Not Abstract</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CREATE_OBJECT_ACTION___VALIDATE_CLASSIFIER_NOT_ABSTRACT__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 0;
-
-	/**
-	 * The operation id for the '<em>Validate Multiplicity</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CREATE_OBJECT_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 1;
-
-	/**
 	 * The operation id for the '<em>Validate Classifier Not Association Class</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CREATE_OBJECT_ACTION___VALIDATE_CLASSIFIER_NOT_ASSOCIATION_CLASS__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 2;
+	int CREATE_OBJECT_ACTION___VALIDATE_CLASSIFIER_NOT_ASSOCIATION_CLASS__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Validate Classifier Not Abstract</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CREATE_OBJECT_ACTION___VALIDATE_CLASSIFIER_NOT_ABSTRACT__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 1;
 
 	/**
 	 * The operation id for the '<em>Validate Same Type</em>' operation.
@@ -141037,7 +141036,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CREATE_OBJECT_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 3;
+	int CREATE_OBJECT_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>Validate Multiplicity</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CREATE_OBJECT_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 3;
 
 	/**
 	 * The number of operations of the '<em>Create Object Action</em>' class.
@@ -141166,7 +141174,7 @@
 	int DATA_STORE_NODE__REDEFINITION_CONTEXT = CENTRAL_BUFFER_NODE__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -141175,15 +141183,6 @@
 	int DATA_STORE_NODE__ACTIVITY = CENTRAL_BUFFER_NODE__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DATA_STORE_NODE__IN_GROUP = CENTRAL_BUFFER_NODE__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -141229,6 +141228,15 @@
 	int DATA_STORE_NODE__INCOMING = CENTRAL_BUFFER_NODE__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_STORE_NODE__IN_GROUP = CENTRAL_BUFFER_NODE__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -141634,15 +141642,6 @@
 	int DATA_STORE_NODE___MUST_BE_OWNED = CENTRAL_BUFFER_NODE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DATA_STORE_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CENTRAL_BUFFER_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -141661,6 +141660,15 @@
 	int DATA_STORE_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = CENTRAL_BUFFER_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_STORE_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CENTRAL_BUFFER_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -141814,13 +141822,13 @@
 	int DATA_STORE_NODE___VALIDATE_OWNED_STRUCTURED_NODE__DIAGNOSTICCHAIN_MAP = CENTRAL_BUFFER_NODE___VALIDATE_OWNED_STRUCTURED_NODE__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Input Output Parameter</em>' operation.
+	 * The operation id for the '<em>Validate Object Flow Edges</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_STORE_NODE___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP = CENTRAL_BUFFER_NODE___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP;
+	int DATA_STORE_NODE___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP = CENTRAL_BUFFER_NODE___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Selection Behavior</em>' operation.
@@ -141832,13 +141840,13 @@
 	int DATA_STORE_NODE___VALIDATE_SELECTION_BEHAVIOR__DIAGNOSTICCHAIN_MAP = CENTRAL_BUFFER_NODE___VALIDATE_SELECTION_BEHAVIOR__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Object Flow Edges</em>' operation.
+	 * The operation id for the '<em>Validate Input Output Parameter</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_STORE_NODE___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP = CENTRAL_BUFFER_NODE___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP;
+	int DATA_STORE_NODE___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP = CENTRAL_BUFFER_NODE___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The number of operations of the '<em>Data Store Node</em>' class.
@@ -141967,7 +141975,7 @@
 	int DECISION_NODE__REDEFINITION_CONTEXT = CONTROL_NODE__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -141976,15 +141984,6 @@
 	int DECISION_NODE__ACTIVITY = CONTROL_NODE__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DECISION_NODE__IN_GROUP = CONTROL_NODE__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -142030,6 +142029,15 @@
 	int DECISION_NODE__INCOMING = CONTROL_NODE__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DECISION_NODE__IN_GROUP = CONTROL_NODE__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -142399,15 +142407,6 @@
 	int DECISION_NODE___MUST_BE_OWNED = CONTROL_NODE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DECISION_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CONTROL_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -142426,6 +142425,15 @@
 	int DECISION_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = CONTROL_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DECISION_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CONTROL_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -142579,67 +142587,13 @@
 	int DECISION_NODE___VALIDATE_OWNED_STRUCTURED_NODE__DIAGNOSTICCHAIN_MAP = CONTROL_NODE___VALIDATE_OWNED_STRUCTURED_NODE__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Zero Input Parameters</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DECISION_NODE___VALIDATE_ZERO_INPUT_PARAMETERS__DIAGNOSTICCHAIN_MAP = CONTROL_NODE_OPERATION_COUNT + 0;
-
-	/**
-	 * The operation id for the '<em>Validate Edges</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DECISION_NODE___VALIDATE_EDGES__DIAGNOSTICCHAIN_MAP = CONTROL_NODE_OPERATION_COUNT + 1;
-
-	/**
-	 * The operation id for the '<em>Validate Decision Input Flow Incoming</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DECISION_NODE___VALIDATE_DECISION_INPUT_FLOW_INCOMING__DIAGNOSTICCHAIN_MAP = CONTROL_NODE_OPERATION_COUNT + 2;
-
-	/**
-	 * The operation id for the '<em>Validate Two Input Parameters</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DECISION_NODE___VALIDATE_TWO_INPUT_PARAMETERS__DIAGNOSTICCHAIN_MAP = CONTROL_NODE_OPERATION_COUNT + 3;
-
-	/**
-	 * The operation id for the '<em>Validate Incoming Outgoing Edges</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DECISION_NODE___VALIDATE_INCOMING_OUTGOING_EDGES__DIAGNOSTICCHAIN_MAP = CONTROL_NODE_OPERATION_COUNT + 4;
-
-	/**
-	 * The operation id for the '<em>Validate Incoming Control One Input Parameter</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DECISION_NODE___VALIDATE_INCOMING_CONTROL_ONE_INPUT_PARAMETER__DIAGNOSTICCHAIN_MAP = CONTROL_NODE_OPERATION_COUNT + 5;
-
-	/**
 	 * The operation id for the '<em>Validate Parameters</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int DECISION_NODE___VALIDATE_PARAMETERS__DIAGNOSTICCHAIN_MAP = CONTROL_NODE_OPERATION_COUNT + 6;
+	int DECISION_NODE___VALIDATE_PARAMETERS__DIAGNOSTICCHAIN_MAP = CONTROL_NODE_OPERATION_COUNT + 0;
 
 	/**
 	 * The operation id for the '<em>Validate Incoming Object One Input Parameter</em>' operation.
@@ -142648,7 +142602,61 @@
 	 * @generated
 	 * @ordered
 	 */
-	int DECISION_NODE___VALIDATE_INCOMING_OBJECT_ONE_INPUT_PARAMETER__DIAGNOSTICCHAIN_MAP = CONTROL_NODE_OPERATION_COUNT + 7;
+	int DECISION_NODE___VALIDATE_INCOMING_OBJECT_ONE_INPUT_PARAMETER__DIAGNOSTICCHAIN_MAP = CONTROL_NODE_OPERATION_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Validate Incoming Outgoing Edges</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DECISION_NODE___VALIDATE_INCOMING_OUTGOING_EDGES__DIAGNOSTICCHAIN_MAP = CONTROL_NODE_OPERATION_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>Validate Incoming Control One Input Parameter</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DECISION_NODE___VALIDATE_INCOMING_CONTROL_ONE_INPUT_PARAMETER__DIAGNOSTICCHAIN_MAP = CONTROL_NODE_OPERATION_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>Validate Two Input Parameters</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DECISION_NODE___VALIDATE_TWO_INPUT_PARAMETERS__DIAGNOSTICCHAIN_MAP = CONTROL_NODE_OPERATION_COUNT + 4;
+
+	/**
+	 * The operation id for the '<em>Validate Decision Input Flow Incoming</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DECISION_NODE___VALIDATE_DECISION_INPUT_FLOW_INCOMING__DIAGNOSTICCHAIN_MAP = CONTROL_NODE_OPERATION_COUNT + 5;
+
+	/**
+	 * The operation id for the '<em>Validate Zero Input Parameters</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DECISION_NODE___VALIDATE_ZERO_INPUT_PARAMETERS__DIAGNOSTICCHAIN_MAP = CONTROL_NODE_OPERATION_COUNT + 6;
+
+	/**
+	 * The operation id for the '<em>Validate Edges</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DECISION_NODE___VALIDATE_EDGES__DIAGNOSTICCHAIN_MAP = CONTROL_NODE_OPERATION_COUNT + 7;
 
 	/**
 	 * The number of operations of the '<em>Decision Node</em>' class.
@@ -142777,6 +142785,15 @@
 	int OBJECT_FLOW__REDEFINITION_CONTEXT = ACTIVITY_EDGE__REDEFINITION_CONTEXT;
 
 	/**
+	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OBJECT_FLOW__ACTIVITY = ACTIVITY_EDGE__ACTIVITY;
+
+	/**
 	 * The feature id for the '<em><b>Guard</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -142786,15 +142803,6 @@
 	int OBJECT_FLOW__GUARD = ACTIVITY_EDGE__GUARD;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int OBJECT_FLOW__IN_GROUP = ACTIVITY_EDGE__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -142858,13 +142866,13 @@
 	int OBJECT_FLOW__WEIGHT = ACTIVITY_EDGE__WEIGHT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int OBJECT_FLOW__ACTIVITY = ACTIVITY_EDGE__ACTIVITY;
+	int OBJECT_FLOW__IN_GROUP = ACTIVITY_EDGE__IN_GROUP;
 
 	/**
 	 * The feature id for the '<em><b>Is Multicast</b></em>' attribute.
@@ -143245,15 +143253,6 @@
 	int OBJECT_FLOW___MUST_BE_OWNED = ACTIVITY_EDGE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int OBJECT_FLOW___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTIVITY_EDGE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -143272,6 +143271,15 @@
 	int OBJECT_FLOW___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ACTIVITY_EDGE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OBJECT_FLOW___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTIVITY_EDGE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -143434,31 +143442,13 @@
 	int OBJECT_FLOW___VALIDATE_STRUCTURED_NODE__DIAGNOSTICCHAIN_MAP = ACTIVITY_EDGE___VALIDATE_STRUCTURED_NODE__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Input And Output Parameter</em>' operation.
+	 * The operation id for the '<em>Validate Is Multicast Or Is Multireceive</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int OBJECT_FLOW___VALIDATE_INPUT_AND_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP = ACTIVITY_EDGE_OPERATION_COUNT + 0;
-
-	/**
-	 * The operation id for the '<em>Validate No Actions</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int OBJECT_FLOW___VALIDATE_NO_ACTIONS__DIAGNOSTICCHAIN_MAP = ACTIVITY_EDGE_OPERATION_COUNT + 1;
-
-	/**
-	 * The operation id for the '<em>Validate Transformation Behaviour</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int OBJECT_FLOW___VALIDATE_TRANSFORMATION_BEHAVIOUR__DIAGNOSTICCHAIN_MAP = ACTIVITY_EDGE_OPERATION_COUNT + 2;
+	int OBJECT_FLOW___VALIDATE_IS_MULTICAST_OR_IS_MULTIRECEIVE__DIAGNOSTICCHAIN_MAP = ACTIVITY_EDGE_OPERATION_COUNT + 0;
 
 	/**
 	 * The operation id for the '<em>Validate Selection Behaviour</em>' operation.
@@ -143467,7 +143457,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int OBJECT_FLOW___VALIDATE_SELECTION_BEHAVIOUR__DIAGNOSTICCHAIN_MAP = ACTIVITY_EDGE_OPERATION_COUNT + 3;
+	int OBJECT_FLOW___VALIDATE_SELECTION_BEHAVIOUR__DIAGNOSTICCHAIN_MAP = ACTIVITY_EDGE_OPERATION_COUNT + 1;
 
 	/**
 	 * The operation id for the '<em>Validate Compatible Types</em>' operation.
@@ -143476,16 +143466,34 @@
 	 * @generated
 	 * @ordered
 	 */
-	int OBJECT_FLOW___VALIDATE_COMPATIBLE_TYPES__DIAGNOSTICCHAIN_MAP = ACTIVITY_EDGE_OPERATION_COUNT + 4;
+	int OBJECT_FLOW___VALIDATE_COMPATIBLE_TYPES__DIAGNOSTICCHAIN_MAP = ACTIVITY_EDGE_OPERATION_COUNT + 2;
 
 	/**
-	 * The operation id for the '<em>Validate Same Upper Bounds</em>' operation.
+	 * The operation id for the '<em>Validate No Actions</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int OBJECT_FLOW___VALIDATE_SAME_UPPER_BOUNDS__DIAGNOSTICCHAIN_MAP = ACTIVITY_EDGE_OPERATION_COUNT + 5;
+	int OBJECT_FLOW___VALIDATE_NO_ACTIONS__DIAGNOSTICCHAIN_MAP = ACTIVITY_EDGE_OPERATION_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>Validate Input And Output Parameter</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OBJECT_FLOW___VALIDATE_INPUT_AND_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP = ACTIVITY_EDGE_OPERATION_COUNT + 4;
+
+	/**
+	 * The operation id for the '<em>Validate Transformation Behaviour</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OBJECT_FLOW___VALIDATE_TRANSFORMATION_BEHAVIOUR__DIAGNOSTICCHAIN_MAP = ACTIVITY_EDGE_OPERATION_COUNT + 5;
 
 	/**
 	 * The operation id for the '<em>Validate Target</em>' operation.
@@ -143497,13 +143505,13 @@
 	int OBJECT_FLOW___VALIDATE_TARGET__DIAGNOSTICCHAIN_MAP = ACTIVITY_EDGE_OPERATION_COUNT + 6;
 
 	/**
-	 * The operation id for the '<em>Validate Is Multicast Or Is Multireceive</em>' operation.
+	 * The operation id for the '<em>Validate Same Upper Bounds</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int OBJECT_FLOW___VALIDATE_IS_MULTICAST_OR_IS_MULTIRECEIVE__DIAGNOSTICCHAIN_MAP = ACTIVITY_EDGE_OPERATION_COUNT + 7;
+	int OBJECT_FLOW___VALIDATE_SAME_UPPER_BOUNDS__DIAGNOSTICCHAIN_MAP = ACTIVITY_EDGE_OPERATION_COUNT + 7;
 
 	/**
 	 * The number of operations of the '<em>Object Flow</em>' class.
@@ -143632,7 +143640,7 @@
 	int DESTROY_LINK_ACTION__REDEFINITION_CONTEXT = WRITE_LINK_ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -143641,15 +143649,6 @@
 	int DESTROY_LINK_ACTION__ACTIVITY = WRITE_LINK_ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DESTROY_LINK_ACTION__IN_GROUP = WRITE_LINK_ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -143695,6 +143694,15 @@
 	int DESTROY_LINK_ACTION__INCOMING = WRITE_LINK_ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DESTROY_LINK_ACTION__IN_GROUP = WRITE_LINK_ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -144127,15 +144135,6 @@
 	int DESTROY_LINK_ACTION___MUST_BE_OWNED = WRITE_LINK_ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DESTROY_LINK_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = WRITE_LINK_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -144154,6 +144153,15 @@
 	int DESTROY_LINK_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = WRITE_LINK_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DESTROY_LINK_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = WRITE_LINK_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -144793,6 +144801,24 @@
 	int LINK_END_DESTRUCTION_DATA___MUST_BE_OWNED = LINK_END_DATA___MUST_BE_OWNED;
 
 	/**
+	 * The operation id for the '<em>Validate Property Is Association End</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LINK_END_DESTRUCTION_DATA___VALIDATE_PROPERTY_IS_ASSOCIATION_END__DIAGNOSTICCHAIN_MAP = LINK_END_DATA___VALIDATE_PROPERTY_IS_ASSOCIATION_END__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate End Object Input Pin</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LINK_END_DESTRUCTION_DATA___VALIDATE_END_OBJECT_INPUT_PIN__DIAGNOSTICCHAIN_MAP = LINK_END_DATA___VALIDATE_END_OBJECT_INPUT_PIN__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Validate Same Type</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -144811,24 +144837,6 @@
 	int LINK_END_DESTRUCTION_DATA___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = LINK_END_DATA___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate End Object Input Pin</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK_END_DESTRUCTION_DATA___VALIDATE_END_OBJECT_INPUT_PIN__DIAGNOSTICCHAIN_MAP = LINK_END_DATA___VALIDATE_END_OBJECT_INPUT_PIN__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Property Is Association End</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK_END_DESTRUCTION_DATA___VALIDATE_PROPERTY_IS_ASSOCIATION_END__DIAGNOSTICCHAIN_MAP = LINK_END_DATA___VALIDATE_PROPERTY_IS_ASSOCIATION_END__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Qualifiers</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -144838,22 +144846,22 @@
 	int LINK_END_DESTRUCTION_DATA___VALIDATE_QUALIFIERS__DIAGNOSTICCHAIN_MAP = LINK_END_DATA___VALIDATE_QUALIFIERS__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Unlimited Natural And Multiplicity</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK_END_DESTRUCTION_DATA___VALIDATE_UNLIMITED_NATURAL_AND_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = LINK_END_DATA_OPERATION_COUNT + 0;
-
-	/**
 	 * The operation id for the '<em>Validate Destroy Link Action</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int LINK_END_DESTRUCTION_DATA___VALIDATE_DESTROY_LINK_ACTION__DIAGNOSTICCHAIN_MAP = LINK_END_DATA_OPERATION_COUNT + 1;
+	int LINK_END_DESTRUCTION_DATA___VALIDATE_DESTROY_LINK_ACTION__DIAGNOSTICCHAIN_MAP = LINK_END_DATA_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Validate Unlimited Natural And Multiplicity</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LINK_END_DESTRUCTION_DATA___VALIDATE_UNLIMITED_NATURAL_AND_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = LINK_END_DATA_OPERATION_COUNT + 1;
 
 	/**
 	 * The number of operations of the '<em>Link End Destruction Data</em>' class.
@@ -144982,7 +144990,7 @@
 	int DESTROY_OBJECT_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -144991,15 +144999,6 @@
 	int DESTROY_OBJECT_ACTION__ACTIVITY = ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DESTROY_OBJECT_ACTION__IN_GROUP = ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -145045,6 +145044,15 @@
 	int DESTROY_OBJECT_ACTION__INCOMING = ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DESTROY_OBJECT_ACTION__IN_GROUP = ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -145486,15 +145494,6 @@
 	int DESTROY_OBJECT_ACTION___MUST_BE_OWNED = ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DESTROY_OBJECT_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -145513,6 +145512,15 @@
 	int DESTROY_OBJECT_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DESTROY_OBJECT_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -146197,15 +146205,6 @@
 	int MESSAGE_OCCURRENCE_SPECIFICATION___MUST_BE_OWNED = OCCURRENCE_SPECIFICATION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MESSAGE_OCCURRENCE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = OCCURRENCE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -146224,6 +146223,15 @@
 	int MESSAGE_OCCURRENCE_SPECIFICATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = OCCURRENCE_SPECIFICATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MESSAGE_OCCURRENCE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = OCCURRENCE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -146818,15 +146826,6 @@
 	int DESTRUCTION_OCCURRENCE_SPECIFICATION___MUST_BE_OWNED = MESSAGE_OCCURRENCE_SPECIFICATION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DESTRUCTION_OCCURRENCE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = MESSAGE_OCCURRENCE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -146845,6 +146844,15 @@
 	int DESTRUCTION_OCCURRENCE_SPECIFICATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = MESSAGE_OCCURRENCE_SPECIFICATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DESTRUCTION_OCCURRENCE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = MESSAGE_OCCURRENCE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -147790,15 +147798,6 @@
 	int NODE___MUST_BE_OWNED = CLASS___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -147817,6 +147816,15 @@
 	int NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -148114,24 +148122,6 @@
 	int NODE___PARAMETERABLE_ELEMENTS = CLASS___PARAMETERABLE_ELEMENTS;
 
 	/**
-	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NODE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NODE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Non Final Parents</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -148150,6 +148140,24 @@
 	int NODE___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NODE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NODE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = CLASS___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Get All Attributes</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -149293,15 +149301,6 @@
 	int DEVICE___MUST_BE_OWNED = NODE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DEVICE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -149320,6 +149319,15 @@
 	int DEVICE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DEVICE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -149617,24 +149625,6 @@
 	int DEVICE___PARAMETERABLE_ELEMENTS = NODE___PARAMETERABLE_ELEMENTS;
 
 	/**
-	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DEVICE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = NODE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DEVICE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = NODE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Non Final Parents</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -149653,6 +149643,24 @@
 	int DEVICE___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP = NODE___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DEVICE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = NODE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DEVICE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = NODE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Get All Attributes</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -150436,15 +150444,6 @@
 	int DURATION___MUST_BE_OWNED = VALUE_SPECIFICATION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DURATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = VALUE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -150463,6 +150462,15 @@
 	int DURATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = VALUE_SPECIFICATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DURATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = VALUE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -151093,15 +151101,6 @@
 	int OBSERVATION___MUST_BE_OWNED = PACKAGEABLE_ELEMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int OBSERVATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -151120,6 +151119,15 @@
 	int OBSERVATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OBSERVATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -151714,15 +151722,6 @@
 	int INTERVAL_CONSTRAINT___MUST_BE_OWNED = CONSTRAINT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERVAL_CONSTRAINT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CONSTRAINT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -151741,6 +151740,15 @@
 	int INTERVAL_CONSTRAINT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = CONSTRAINT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERVAL_CONSTRAINT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CONSTRAINT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -151849,13 +151857,13 @@
 	int INTERVAL_CONSTRAINT___IS_TEMPLATE_PARAMETER = CONSTRAINT___IS_TEMPLATE_PARAMETER;
 
 	/**
-	 * The operation id for the '<em>Validate Boolean Value</em>' operation.
+	 * The operation id for the '<em>Validate Not Apply To Self</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int INTERVAL_CONSTRAINT___VALIDATE_BOOLEAN_VALUE__DIAGNOSTICCHAIN_MAP = CONSTRAINT___VALIDATE_BOOLEAN_VALUE__DIAGNOSTICCHAIN_MAP;
+	int INTERVAL_CONSTRAINT___VALIDATE_NOT_APPLY_TO_SELF__DIAGNOSTICCHAIN_MAP = CONSTRAINT___VALIDATE_NOT_APPLY_TO_SELF__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate No Side Effects</em>' operation.
@@ -151867,13 +151875,13 @@
 	int INTERVAL_CONSTRAINT___VALIDATE_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP = CONSTRAINT___VALIDATE_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Not Apply To Self</em>' operation.
+	 * The operation id for the '<em>Validate Boolean Value</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int INTERVAL_CONSTRAINT___VALIDATE_NOT_APPLY_TO_SELF__DIAGNOSTICCHAIN_MAP = CONSTRAINT___VALIDATE_NOT_APPLY_TO_SELF__DIAGNOSTICCHAIN_MAP;
+	int INTERVAL_CONSTRAINT___VALIDATE_BOOLEAN_VALUE__DIAGNOSTICCHAIN_MAP = CONSTRAINT___VALIDATE_BOOLEAN_VALUE__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Value Specification Boolean</em>' operation.
@@ -152380,15 +152388,6 @@
 	int DURATION_CONSTRAINT___MUST_BE_OWNED = INTERVAL_CONSTRAINT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DURATION_CONSTRAINT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = INTERVAL_CONSTRAINT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -152407,6 +152406,15 @@
 	int DURATION_CONSTRAINT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = INTERVAL_CONSTRAINT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DURATION_CONSTRAINT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = INTERVAL_CONSTRAINT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -152515,13 +152523,13 @@
 	int DURATION_CONSTRAINT___IS_TEMPLATE_PARAMETER = INTERVAL_CONSTRAINT___IS_TEMPLATE_PARAMETER;
 
 	/**
-	 * The operation id for the '<em>Validate Boolean Value</em>' operation.
+	 * The operation id for the '<em>Validate Not Apply To Self</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int DURATION_CONSTRAINT___VALIDATE_BOOLEAN_VALUE__DIAGNOSTICCHAIN_MAP = INTERVAL_CONSTRAINT___VALIDATE_BOOLEAN_VALUE__DIAGNOSTICCHAIN_MAP;
+	int DURATION_CONSTRAINT___VALIDATE_NOT_APPLY_TO_SELF__DIAGNOSTICCHAIN_MAP = INTERVAL_CONSTRAINT___VALIDATE_NOT_APPLY_TO_SELF__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate No Side Effects</em>' operation.
@@ -152533,13 +152541,13 @@
 	int DURATION_CONSTRAINT___VALIDATE_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP = INTERVAL_CONSTRAINT___VALIDATE_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Not Apply To Self</em>' operation.
+	 * The operation id for the '<em>Validate Boolean Value</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int DURATION_CONSTRAINT___VALIDATE_NOT_APPLY_TO_SELF__DIAGNOSTICCHAIN_MAP = INTERVAL_CONSTRAINT___VALIDATE_NOT_APPLY_TO_SELF__DIAGNOSTICCHAIN_MAP;
+	int DURATION_CONSTRAINT___VALIDATE_BOOLEAN_VALUE__DIAGNOSTICCHAIN_MAP = INTERVAL_CONSTRAINT___VALIDATE_BOOLEAN_VALUE__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Value Specification Boolean</em>' operation.
@@ -153046,15 +153054,6 @@
 	int INTERVAL___MUST_BE_OWNED = VALUE_SPECIFICATION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERVAL___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = VALUE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -153073,6 +153072,15 @@
 	int INTERVAL___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = VALUE_SPECIFICATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERVAL___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = VALUE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -153730,15 +153738,6 @@
 	int DURATION_INTERVAL___MUST_BE_OWNED = INTERVAL___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DURATION_INTERVAL___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = INTERVAL___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -153757,6 +153756,15 @@
 	int DURATION_INTERVAL___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = INTERVAL___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DURATION_INTERVAL___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = INTERVAL___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -154405,15 +154413,6 @@
 	int DURATION_OBSERVATION___MUST_BE_OWNED = OBSERVATION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DURATION_OBSERVATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = OBSERVATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -154432,6 +154431,15 @@
 	int DURATION_OBSERVATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = OBSERVATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DURATION_OBSERVATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = OBSERVATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -155395,15 +155403,6 @@
 	int EXECUTION_ENVIRONMENT___MUST_BE_OWNED = NODE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXECUTION_ENVIRONMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -155422,6 +155421,15 @@
 	int EXECUTION_ENVIRONMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXECUTION_ENVIRONMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -155719,24 +155727,6 @@
 	int EXECUTION_ENVIRONMENT___PARAMETERABLE_ELEMENTS = NODE___PARAMETERABLE_ELEMENTS;
 
 	/**
-	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXECUTION_ENVIRONMENT___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = NODE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXECUTION_ENVIRONMENT___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = NODE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Non Final Parents</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -155755,6 +155745,24 @@
 	int EXECUTION_ENVIRONMENT___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP = NODE___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXECUTION_ENVIRONMENT___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = NODE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXECUTION_ENVIRONMENT___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = NODE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Get All Attributes</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -156556,15 +156564,6 @@
 	int EXECUTION_OCCURRENCE_SPECIFICATION___MUST_BE_OWNED = OCCURRENCE_SPECIFICATION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXECUTION_OCCURRENCE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = OCCURRENCE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -156583,6 +156582,15 @@
 	int EXECUTION_OCCURRENCE_SPECIFICATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = OCCURRENCE_SPECIFICATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXECUTION_OCCURRENCE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = OCCURRENCE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -156799,7 +156807,7 @@
 	int EXPANSION_NODE__REDEFINITION_CONTEXT = OBJECT_NODE__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -156808,15 +156816,6 @@
 	int EXPANSION_NODE__ACTIVITY = OBJECT_NODE__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXPANSION_NODE__IN_GROUP = OBJECT_NODE__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -156862,6 +156861,15 @@
 	int EXPANSION_NODE__INCOMING = OBJECT_NODE__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXPANSION_NODE__IN_GROUP = OBJECT_NODE__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -157285,15 +157293,6 @@
 	int EXPANSION_NODE___MUST_BE_OWNED = OBJECT_NODE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXPANSION_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = OBJECT_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -157312,6 +157311,15 @@
 	int EXPANSION_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = OBJECT_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXPANSION_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = OBJECT_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -157465,13 +157473,13 @@
 	int EXPANSION_NODE___VALIDATE_OWNED_STRUCTURED_NODE__DIAGNOSTICCHAIN_MAP = OBJECT_NODE___VALIDATE_OWNED_STRUCTURED_NODE__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Input Output Parameter</em>' operation.
+	 * The operation id for the '<em>Validate Object Flow Edges</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EXPANSION_NODE___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP = OBJECT_NODE___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP;
+	int EXPANSION_NODE___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP = OBJECT_NODE___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Selection Behavior</em>' operation.
@@ -157483,13 +157491,13 @@
 	int EXPANSION_NODE___VALIDATE_SELECTION_BEHAVIOR__DIAGNOSTICCHAIN_MAP = OBJECT_NODE___VALIDATE_SELECTION_BEHAVIOR__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Object Flow Edges</em>' operation.
+	 * The operation id for the '<em>Validate Input Output Parameter</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EXPANSION_NODE___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP = OBJECT_NODE___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP;
+	int EXPANSION_NODE___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP = OBJECT_NODE___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Region As Input Or Output</em>' operation.
@@ -157627,7 +157635,7 @@
 	int EXPANSION_REGION__REDEFINITION_CONTEXT = STRUCTURED_ACTIVITY_NODE__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -157636,15 +157644,6 @@
 	int EXPANSION_REGION__ACTIVITY = STRUCTURED_ACTIVITY_NODE__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXPANSION_REGION__IN_GROUP = STRUCTURED_ACTIVITY_NODE__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -157690,6 +157689,15 @@
 	int EXPANSION_REGION__INCOMING = STRUCTURED_ACTIVITY_NODE__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXPANSION_REGION__IN_GROUP = STRUCTURED_ACTIVITY_NODE__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -157816,6 +157824,15 @@
 	int EXPANSION_REGION__MEMBER = STRUCTURED_ACTIVITY_NODE__MEMBER;
 
 	/**
+	 * The feature id for the '<em><b>Contained Edge</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXPANSION_REGION__CONTAINED_EDGE = STRUCTURED_ACTIVITY_NODE__CONTAINED_EDGE;
+
+	/**
 	 * The feature id for the '<em><b>Contained Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -157825,7 +157842,7 @@
 	int EXPANSION_REGION__CONTAINED_NODE = STRUCTURED_ACTIVITY_NODE__CONTAINED_NODE;
 
 	/**
-	 * The feature id for the '<em><b>In Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>In Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -157852,15 +157869,6 @@
 	int EXPANSION_REGION__SUPER_GROUP = STRUCTURED_ACTIVITY_NODE__SUPER_GROUP;
 
 	/**
-	 * The feature id for the '<em><b>Contained Edge</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXPANSION_REGION__CONTAINED_EDGE = STRUCTURED_ACTIVITY_NODE__CONTAINED_EDGE;
-
-	/**
 	 * The feature id for the '<em><b>Must Isolate</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -158284,15 +158292,6 @@
 	int EXPANSION_REGION___MUST_BE_OWNED = STRUCTURED_ACTIVITY_NODE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXPANSION_REGION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -158311,6 +158310,15 @@
 	int EXPANSION_REGION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXPANSION_REGION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -158572,15 +158580,6 @@
 	int EXPANSION_REGION___GET_OWNED_MEMBERS = STRUCTURED_ACTIVITY_NODE___GET_OWNED_MEMBERS;
 
 	/**
-	 * The operation id for the '<em>Validate Nodes And Edges</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXPANSION_REGION___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Group Owned</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -158599,13 +158598,22 @@
 	int EXPANSION_REGION___VALIDATE_NOT_CONTAINED__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_NOT_CONTAINED__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Output Pin Edges</em>' operation.
+	 * The operation id for the '<em>Validate Nodes And Edges</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EXPANSION_REGION___VALIDATE_OUTPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_OUTPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP;
+	int EXPANSION_REGION___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Input Pin Edges</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXPANSION_REGION___VALIDATE_INPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_INPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Edges</em>' operation.
@@ -158617,13 +158625,13 @@
 	int EXPANSION_REGION___VALIDATE_EDGES__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_EDGES__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Input Pin Edges</em>' operation.
+	 * The operation id for the '<em>Validate Output Pin Edges</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EXPANSION_REGION___VALIDATE_INPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_INPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP;
+	int EXPANSION_REGION___VALIDATE_OUTPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_OUTPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Expansion Nodes</em>' operation.
@@ -159310,15 +159318,6 @@
 	int FINAL_STATE___MUST_BE_OWNED = STATE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FINAL_STATE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = STATE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -159337,6 +159336,15 @@
 	int FINAL_STATE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = STATE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FINAL_STATE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = STATE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -159607,15 +159615,6 @@
 	int FINAL_STATE___VALIDATE_ENTRY_OR_EXIT__DIAGNOSTICCHAIN_MAP = STATE___VALIDATE_ENTRY_OR_EXIT__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Submachine States</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FINAL_STATE___VALIDATE_SUBMACHINE_STATES__DIAGNOSTICCHAIN_MAP = STATE___VALIDATE_SUBMACHINE_STATES__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Composite States</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -159643,6 +159642,15 @@
 	int FINAL_STATE___VALIDATE_SUBMACHINE_OR_REGIONS__DIAGNOSTICCHAIN_MAP = STATE___VALIDATE_SUBMACHINE_OR_REGIONS__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Submachine States</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FINAL_STATE___VALIDATE_SUBMACHINE_STATES__DIAGNOSTICCHAIN_MAP = STATE___VALIDATE_SUBMACHINE_STATES__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Is Composite</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -159697,31 +159705,13 @@
 	int FINAL_STATE___REDEFINITION_CONTEXT = STATE___REDEFINITION_CONTEXT;
 
 	/**
-	 * The operation id for the '<em>Validate No Exit Behavior</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FINAL_STATE___VALIDATE_NO_EXIT_BEHAVIOR__DIAGNOSTICCHAIN_MAP = STATE_OPERATION_COUNT + 0;
-
-	/**
 	 * The operation id for the '<em>Validate No Outgoing Transitions</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int FINAL_STATE___VALIDATE_NO_OUTGOING_TRANSITIONS__DIAGNOSTICCHAIN_MAP = STATE_OPERATION_COUNT + 1;
-
-	/**
-	 * The operation id for the '<em>Validate No Regions</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FINAL_STATE___VALIDATE_NO_REGIONS__DIAGNOSTICCHAIN_MAP = STATE_OPERATION_COUNT + 2;
+	int FINAL_STATE___VALIDATE_NO_OUTGOING_TRANSITIONS__DIAGNOSTICCHAIN_MAP = STATE_OPERATION_COUNT + 0;
 
 	/**
 	 * The operation id for the '<em>Validate Cannot Reference Submachine</em>' operation.
@@ -159730,7 +159720,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int FINAL_STATE___VALIDATE_CANNOT_REFERENCE_SUBMACHINE__DIAGNOSTICCHAIN_MAP = STATE_OPERATION_COUNT + 3;
+	int FINAL_STATE___VALIDATE_CANNOT_REFERENCE_SUBMACHINE__DIAGNOSTICCHAIN_MAP = STATE_OPERATION_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Validate No Exit Behavior</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FINAL_STATE___VALIDATE_NO_EXIT_BEHAVIOR__DIAGNOSTICCHAIN_MAP = STATE_OPERATION_COUNT + 2;
 
 	/**
 	 * The operation id for the '<em>Validate No Entry Behavior</em>' operation.
@@ -159739,7 +159738,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int FINAL_STATE___VALIDATE_NO_ENTRY_BEHAVIOR__DIAGNOSTICCHAIN_MAP = STATE_OPERATION_COUNT + 4;
+	int FINAL_STATE___VALIDATE_NO_ENTRY_BEHAVIOR__DIAGNOSTICCHAIN_MAP = STATE_OPERATION_COUNT + 3;
 
 	/**
 	 * The operation id for the '<em>Validate No State Behavior</em>' operation.
@@ -159748,7 +159747,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int FINAL_STATE___VALIDATE_NO_STATE_BEHAVIOR__DIAGNOSTICCHAIN_MAP = STATE_OPERATION_COUNT + 5;
+	int FINAL_STATE___VALIDATE_NO_STATE_BEHAVIOR__DIAGNOSTICCHAIN_MAP = STATE_OPERATION_COUNT + 4;
+
+	/**
+	 * The operation id for the '<em>Validate No Regions</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FINAL_STATE___VALIDATE_NO_REGIONS__DIAGNOSTICCHAIN_MAP = STATE_OPERATION_COUNT + 5;
 
 	/**
 	 * The number of operations of the '<em>Final State</em>' class.
@@ -159877,7 +159885,7 @@
 	int FLOW_FINAL_NODE__REDEFINITION_CONTEXT = FINAL_NODE__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -159886,15 +159894,6 @@
 	int FLOW_FINAL_NODE__ACTIVITY = FINAL_NODE__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FLOW_FINAL_NODE__IN_GROUP = FINAL_NODE__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -159940,6 +159939,15 @@
 	int FLOW_FINAL_NODE__INCOMING = FINAL_NODE__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FLOW_FINAL_NODE__IN_GROUP = FINAL_NODE__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -160291,15 +160299,6 @@
 	int FLOW_FINAL_NODE___MUST_BE_OWNED = FINAL_NODE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FLOW_FINAL_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = FINAL_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -160318,6 +160317,15 @@
 	int FLOW_FINAL_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = FINAL_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FLOW_FINAL_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = FINAL_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -160606,7 +160614,7 @@
 	int FORK_NODE__REDEFINITION_CONTEXT = CONTROL_NODE__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -160615,15 +160623,6 @@
 	int FORK_NODE__ACTIVITY = CONTROL_NODE__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FORK_NODE__IN_GROUP = CONTROL_NODE__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -160669,6 +160668,15 @@
 	int FORK_NODE__INCOMING = CONTROL_NODE__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FORK_NODE__IN_GROUP = CONTROL_NODE__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -161020,15 +161028,6 @@
 	int FORK_NODE___MUST_BE_OWNED = CONTROL_NODE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FORK_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CONTROL_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -161047,6 +161046,15 @@
 	int FORK_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = CONTROL_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FORK_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CONTROL_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -162127,15 +162135,6 @@
 	int OPAQUE_BEHAVIOR___MUST_BE_OWNED = BEHAVIOR___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int OPAQUE_BEHAVIOR___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -162154,6 +162153,15 @@
 	int OPAQUE_BEHAVIOR___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OPAQUE_BEHAVIOR___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -162451,24 +162459,6 @@
 	int OPAQUE_BEHAVIOR___PARAMETERABLE_ELEMENTS = BEHAVIOR___PARAMETERABLE_ELEMENTS;
 
 	/**
-	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int OPAQUE_BEHAVIOR___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int OPAQUE_BEHAVIOR___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Non Final Parents</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -162487,6 +162477,24 @@
 	int OPAQUE_BEHAVIOR___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OPAQUE_BEHAVIOR___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OPAQUE_BEHAVIOR___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Get All Attributes</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -162748,24 +162756,6 @@
 	int OPAQUE_BEHAVIOR___GET_SUPER_CLASSES = BEHAVIOR___GET_SUPER_CLASSES;
 
 	/**
-	 * The operation id for the '<em>Validate Most One Behaviour</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int OPAQUE_BEHAVIOR___VALIDATE_MOST_ONE_BEHAVIOUR__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_MOST_ONE_BEHAVIOUR__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Must Realize</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int OPAQUE_BEHAVIOR___VALIDATE_MUST_REALIZE__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_MUST_REALIZE__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Parameters Match</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -162784,6 +162774,24 @@
 	int OPAQUE_BEHAVIOR___VALIDATE_FEATURE_OF_CONTEXT_CLASSIFIER__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_FEATURE_OF_CONTEXT_CLASSIFIER__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Must Realize</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OPAQUE_BEHAVIOR___VALIDATE_MUST_REALIZE__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_MUST_REALIZE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Most One Behaviour</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OPAQUE_BEHAVIOR___VALIDATE_MOST_ONE_BEHAVIOUR__DIAGNOSTICCHAIN_MAP = BEHAVIOR___VALIDATE_MOST_ONE_BEHAVIOUR__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Get Context</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -163702,15 +163710,6 @@
 	int FUNCTION_BEHAVIOR___MUST_BE_OWNED = OPAQUE_BEHAVIOR___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FUNCTION_BEHAVIOR___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = OPAQUE_BEHAVIOR___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -163729,6 +163728,15 @@
 	int FUNCTION_BEHAVIOR___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = OPAQUE_BEHAVIOR___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION_BEHAVIOR___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = OPAQUE_BEHAVIOR___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -164026,24 +164034,6 @@
 	int FUNCTION_BEHAVIOR___PARAMETERABLE_ELEMENTS = OPAQUE_BEHAVIOR___PARAMETERABLE_ELEMENTS;
 
 	/**
-	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FUNCTION_BEHAVIOR___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = OPAQUE_BEHAVIOR___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FUNCTION_BEHAVIOR___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = OPAQUE_BEHAVIOR___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Non Final Parents</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -164062,6 +164052,24 @@
 	int FUNCTION_BEHAVIOR___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP = OPAQUE_BEHAVIOR___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION_BEHAVIOR___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = OPAQUE_BEHAVIOR___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION_BEHAVIOR___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = OPAQUE_BEHAVIOR___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Get All Attributes</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -164323,24 +164331,6 @@
 	int FUNCTION_BEHAVIOR___GET_SUPER_CLASSES = OPAQUE_BEHAVIOR___GET_SUPER_CLASSES;
 
 	/**
-	 * The operation id for the '<em>Validate Most One Behaviour</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FUNCTION_BEHAVIOR___VALIDATE_MOST_ONE_BEHAVIOUR__DIAGNOSTICCHAIN_MAP = OPAQUE_BEHAVIOR___VALIDATE_MOST_ONE_BEHAVIOUR__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Must Realize</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FUNCTION_BEHAVIOR___VALIDATE_MUST_REALIZE__DIAGNOSTICCHAIN_MAP = OPAQUE_BEHAVIOR___VALIDATE_MUST_REALIZE__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Parameters Match</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -164359,6 +164349,24 @@
 	int FUNCTION_BEHAVIOR___VALIDATE_FEATURE_OF_CONTEXT_CLASSIFIER__DIAGNOSTICCHAIN_MAP = OPAQUE_BEHAVIOR___VALIDATE_FEATURE_OF_CONTEXT_CLASSIFIER__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Must Realize</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION_BEHAVIOR___VALIDATE_MUST_REALIZE__DIAGNOSTICCHAIN_MAP = OPAQUE_BEHAVIOR___VALIDATE_MUST_REALIZE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Most One Behaviour</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION_BEHAVIOR___VALIDATE_MOST_ONE_BEHAVIOUR__DIAGNOSTICCHAIN_MAP = OPAQUE_BEHAVIOR___VALIDATE_MOST_ONE_BEHAVIOUR__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Get Context</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -164935,15 +164943,6 @@
 	int INFORMATION_FLOW___MUST_BE_OWNED = PACKAGEABLE_ELEMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INFORMATION_FLOW___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -164962,6 +164961,15 @@
 	int INFORMATION_FLOW___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INFORMATION_FLOW___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -165070,22 +165078,22 @@
 	int INFORMATION_FLOW___IS_TEMPLATE_PARAMETER = PACKAGEABLE_ELEMENT___IS_TEMPLATE_PARAMETER;
 
 	/**
-	 * The operation id for the '<em>Validate Must Conform</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INFORMATION_FLOW___VALIDATE_MUST_CONFORM__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 0;
-
-	/**
 	 * The operation id for the '<em>Validate Sources And Targets Kind</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int INFORMATION_FLOW___VALIDATE_SOURCES_AND_TARGETS_KIND__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 1;
+	int INFORMATION_FLOW___VALIDATE_SOURCES_AND_TARGETS_KIND__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Validate Must Conform</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INFORMATION_FLOW___VALIDATE_MUST_CONFORM__DIAGNOSTICCHAIN_MAP = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 1;
 
 	/**
 	 * The operation id for the '<em>Validate Convey Classifiers</em>' operation.
@@ -165799,15 +165807,6 @@
 	int INFORMATION_ITEM___MUST_BE_OWNED = CLASSIFIER___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INFORMATION_ITEM___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -165826,6 +165825,15 @@
 	int INFORMATION_ITEM___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INFORMATION_ITEM___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -166123,24 +166131,6 @@
 	int INFORMATION_ITEM___PARAMETERABLE_ELEMENTS = CLASSIFIER___PARAMETERABLE_ELEMENTS;
 
 	/**
-	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INFORMATION_ITEM___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INFORMATION_ITEM___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Non Final Parents</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -166159,6 +166149,24 @@
 	int INFORMATION_ITEM___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_NO_CYCLES_IN_GENERALIZATION__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Specialize Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INFORMATION_ITEM___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Maps To Generalization Set</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INFORMATION_ITEM___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP = CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Get All Attributes</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -166312,22 +166320,13 @@
 	int INFORMATION_ITEM___PARENTS = CLASSIFIER___PARENTS;
 
 	/**
-	 * The operation id for the '<em>Validate Sources And Targets</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INFORMATION_ITEM___VALIDATE_SOURCES_AND_TARGETS__DIAGNOSTICCHAIN_MAP = CLASSIFIER_OPERATION_COUNT + 0;
-
-	/**
 	 * The operation id for the '<em>Validate Has No</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int INFORMATION_ITEM___VALIDATE_HAS_NO__DIAGNOSTICCHAIN_MAP = CLASSIFIER_OPERATION_COUNT + 1;
+	int INFORMATION_ITEM___VALIDATE_HAS_NO__DIAGNOSTICCHAIN_MAP = CLASSIFIER_OPERATION_COUNT + 0;
 
 	/**
 	 * The operation id for the '<em>Validate Not Instantiable</em>' operation.
@@ -166336,7 +166335,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INFORMATION_ITEM___VALIDATE_NOT_INSTANTIABLE__DIAGNOSTICCHAIN_MAP = CLASSIFIER_OPERATION_COUNT + 2;
+	int INFORMATION_ITEM___VALIDATE_NOT_INSTANTIABLE__DIAGNOSTICCHAIN_MAP = CLASSIFIER_OPERATION_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Validate Sources And Targets</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INFORMATION_ITEM___VALIDATE_SOURCES_AND_TARGETS__DIAGNOSTICCHAIN_MAP = CLASSIFIER_OPERATION_COUNT + 2;
 
 	/**
 	 * The number of operations of the '<em>Information Item</em>' class.
@@ -166465,7 +166473,7 @@
 	int INITIAL_NODE__REDEFINITION_CONTEXT = CONTROL_NODE__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -166474,15 +166482,6 @@
 	int INITIAL_NODE__ACTIVITY = CONTROL_NODE__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INITIAL_NODE__IN_GROUP = CONTROL_NODE__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -166528,6 +166527,15 @@
 	int INITIAL_NODE__INCOMING = CONTROL_NODE__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INITIAL_NODE__IN_GROUP = CONTROL_NODE__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -166879,15 +166887,6 @@
 	int INITIAL_NODE___MUST_BE_OWNED = CONTROL_NODE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INITIAL_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CONTROL_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -166906,6 +166905,15 @@
 	int INITIAL_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = CONTROL_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INITIAL_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CONTROL_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -167554,15 +167562,6 @@
 	int INSTANCE_VALUE___MUST_BE_OWNED = VALUE_SPECIFICATION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INSTANCE_VALUE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = VALUE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -167581,6 +167580,15 @@
 	int INSTANCE_VALUE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = VALUE_SPECIFICATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INSTANCE_VALUE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = VALUE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -167878,7 +167886,7 @@
 	int JOIN_NODE__REDEFINITION_CONTEXT = CONTROL_NODE__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -167887,15 +167895,6 @@
 	int JOIN_NODE__ACTIVITY = CONTROL_NODE__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int JOIN_NODE__IN_GROUP = CONTROL_NODE__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -167941,6 +167940,15 @@
 	int JOIN_NODE__INCOMING = CONTROL_NODE__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int JOIN_NODE__IN_GROUP = CONTROL_NODE__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -168310,15 +168318,6 @@
 	int JOIN_NODE___MUST_BE_OWNED = CONTROL_NODE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int JOIN_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CONTROL_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -168337,6 +168336,15 @@
 	int JOIN_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = CONTROL_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int JOIN_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CONTROL_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -168976,15 +168984,6 @@
 	int LITERAL_SPECIFICATION___MUST_BE_OWNED = VALUE_SPECIFICATION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LITERAL_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = VALUE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -169003,6 +169002,15 @@
 	int LITERAL_SPECIFICATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = VALUE_SPECIFICATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LITERAL_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = VALUE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -169651,15 +169659,6 @@
 	int LITERAL_BOOLEAN___MUST_BE_OWNED = LITERAL_SPECIFICATION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LITERAL_BOOLEAN___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = LITERAL_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -169678,6 +169677,15 @@
 	int LITERAL_BOOLEAN___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = LITERAL_SPECIFICATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LITERAL_BOOLEAN___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = LITERAL_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -170326,15 +170334,6 @@
 	int LITERAL_INTEGER___MUST_BE_OWNED = LITERAL_SPECIFICATION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LITERAL_INTEGER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = LITERAL_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -170353,6 +170352,15 @@
 	int LITERAL_INTEGER___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = LITERAL_SPECIFICATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LITERAL_INTEGER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = LITERAL_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -170992,15 +171000,6 @@
 	int LITERAL_NULL___MUST_BE_OWNED = LITERAL_SPECIFICATION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LITERAL_NULL___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = LITERAL_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -171019,6 +171018,15 @@
 	int LITERAL_NULL___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = LITERAL_SPECIFICATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LITERAL_NULL___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = LITERAL_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -171667,15 +171675,6 @@
 	int LITERAL_REAL___MUST_BE_OWNED = LITERAL_SPECIFICATION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LITERAL_REAL___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = LITERAL_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -171694,6 +171693,15 @@
 	int LITERAL_REAL___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = LITERAL_SPECIFICATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LITERAL_REAL___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = LITERAL_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -172342,15 +172350,6 @@
 	int LITERAL_STRING___MUST_BE_OWNED = LITERAL_SPECIFICATION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LITERAL_STRING___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = LITERAL_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -172369,6 +172368,15 @@
 	int LITERAL_STRING___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = LITERAL_SPECIFICATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LITERAL_STRING___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = LITERAL_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -173017,15 +173025,6 @@
 	int LITERAL_UNLIMITED_NATURAL___MUST_BE_OWNED = LITERAL_SPECIFICATION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LITERAL_UNLIMITED_NATURAL___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = LITERAL_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -173044,6 +173043,15 @@
 	int LITERAL_UNLIMITED_NATURAL___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = LITERAL_SPECIFICATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LITERAL_UNLIMITED_NATURAL___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = LITERAL_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -173341,7 +173349,7 @@
 	int LOOP_NODE__REDEFINITION_CONTEXT = STRUCTURED_ACTIVITY_NODE__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -173350,15 +173358,6 @@
 	int LOOP_NODE__ACTIVITY = STRUCTURED_ACTIVITY_NODE__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LOOP_NODE__IN_GROUP = STRUCTURED_ACTIVITY_NODE__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -173404,6 +173403,15 @@
 	int LOOP_NODE__INCOMING = STRUCTURED_ACTIVITY_NODE__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LOOP_NODE__IN_GROUP = STRUCTURED_ACTIVITY_NODE__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -173530,6 +173538,15 @@
 	int LOOP_NODE__MEMBER = STRUCTURED_ACTIVITY_NODE__MEMBER;
 
 	/**
+	 * The feature id for the '<em><b>Contained Edge</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LOOP_NODE__CONTAINED_EDGE = STRUCTURED_ACTIVITY_NODE__CONTAINED_EDGE;
+
+	/**
 	 * The feature id for the '<em><b>Contained Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -173539,7 +173556,7 @@
 	int LOOP_NODE__CONTAINED_NODE = STRUCTURED_ACTIVITY_NODE__CONTAINED_NODE;
 
 	/**
-	 * The feature id for the '<em><b>In Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>In Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -173566,15 +173583,6 @@
 	int LOOP_NODE__SUPER_GROUP = STRUCTURED_ACTIVITY_NODE__SUPER_GROUP;
 
 	/**
-	 * The feature id for the '<em><b>Contained Edge</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LOOP_NODE__CONTAINED_EDGE = STRUCTURED_ACTIVITY_NODE__CONTAINED_EDGE;
-
-	/**
 	 * The feature id for the '<em><b>Must Isolate</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -174052,15 +174060,6 @@
 	int LOOP_NODE___MUST_BE_OWNED = STRUCTURED_ACTIVITY_NODE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LOOP_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -174079,6 +174078,15 @@
 	int LOOP_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LOOP_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -174340,15 +174348,6 @@
 	int LOOP_NODE___GET_OWNED_MEMBERS = STRUCTURED_ACTIVITY_NODE___GET_OWNED_MEMBERS;
 
 	/**
-	 * The operation id for the '<em>Validate Nodes And Edges</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LOOP_NODE___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Group Owned</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -174367,22 +174366,13 @@
 	int LOOP_NODE___VALIDATE_NOT_CONTAINED__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_NOT_CONTAINED__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Output Pin Edges</em>' operation.
+	 * The operation id for the '<em>Validate Nodes And Edges</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int LOOP_NODE___VALIDATE_OUTPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_OUTPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Edges</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LOOP_NODE___VALIDATE_EDGES__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_EDGES__DIAGNOSTICCHAIN_MAP;
+	int LOOP_NODE___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Input Pin Edges</em>' operation.
@@ -174394,22 +174384,22 @@
 	int LOOP_NODE___VALIDATE_INPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_INPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Result No Incoming</em>' operation.
+	 * The operation id for the '<em>Validate Edges</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int LOOP_NODE___VALIDATE_RESULT_NO_INCOMING__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE_OPERATION_COUNT + 0;
+	int LOOP_NODE___VALIDATE_EDGES__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_EDGES__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Input Edges</em>' operation.
+	 * The operation id for the '<em>Validate Output Pin Edges</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int LOOP_NODE___VALIDATE_INPUT_EDGES__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE_OPERATION_COUNT + 1;
+	int LOOP_NODE___VALIDATE_OUTPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_OUTPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Executable Nodes</em>' operation.
@@ -174418,7 +174408,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int LOOP_NODE___VALIDATE_EXECUTABLE_NODES__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE_OPERATION_COUNT + 2;
+	int LOOP_NODE___VALIDATE_EXECUTABLE_NODES__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE_OPERATION_COUNT + 0;
 
 	/**
 	 * The operation id for the '<em>Validate Body Output Pins</em>' operation.
@@ -174427,7 +174417,25 @@
 	 * @generated
 	 * @ordered
 	 */
-	int LOOP_NODE___VALIDATE_BODY_OUTPUT_PINS__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE_OPERATION_COUNT + 3;
+	int LOOP_NODE___VALIDATE_BODY_OUTPUT_PINS__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE_OPERATION_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Validate Result No Incoming</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LOOP_NODE___VALIDATE_RESULT_NO_INCOMING__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE_OPERATION_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>Validate Input Edges</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LOOP_NODE___VALIDATE_INPUT_EDGES__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE_OPERATION_COUNT + 3;
 
 	/**
 	 * The number of operations of the '<em>Loop Node</em>' class.
@@ -174556,7 +174564,7 @@
 	int MERGE_NODE__REDEFINITION_CONTEXT = CONTROL_NODE__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -174565,15 +174573,6 @@
 	int MERGE_NODE__ACTIVITY = CONTROL_NODE__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MERGE_NODE__IN_GROUP = CONTROL_NODE__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -174619,6 +174618,15 @@
 	int MERGE_NODE__INCOMING = CONTROL_NODE__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MERGE_NODE__IN_GROUP = CONTROL_NODE__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -174970,15 +174978,6 @@
 	int MERGE_NODE___MUST_BE_OWNED = CONTROL_NODE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MERGE_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CONTROL_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -174997,6 +174996,15 @@
 	int MERGE_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = CONTROL_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MERGE_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CONTROL_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -175294,7 +175302,7 @@
 	int OPAQUE_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -175303,15 +175311,6 @@
 	int OPAQUE_ACTION__ACTIVITY = ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int OPAQUE_ACTION__IN_GROUP = ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -175357,6 +175356,15 @@
 	int OPAQUE_ACTION__INCOMING = ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OPAQUE_ACTION__IN_GROUP = ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -175807,15 +175815,6 @@
 	int OPAQUE_ACTION___MUST_BE_OWNED = ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int OPAQUE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -175834,6 +175833,15 @@
 	int OPAQUE_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OPAQUE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -176617,15 +176625,6 @@
 	int PROTOCOL_TRANSITION___MUST_BE_OWNED = TRANSITION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROTOCOL_TRANSITION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = TRANSITION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -176644,6 +176643,15 @@
 	int PROTOCOL_TRANSITION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = TRANSITION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROTOCOL_TRANSITION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = TRANSITION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -176878,40 +176886,22 @@
 	int PROTOCOL_TRANSITION___IS_REDEFINITION_CONTEXT_VALID__REDEFINABLEELEMENT = TRANSITION___IS_REDEFINITION_CONTEXT_VALID__REDEFINABLEELEMENT;
 
 	/**
-	 * The operation id for the '<em>Validate State Is External</em>' operation.
+	 * The operation id for the '<em>Validate State Is Local</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PROTOCOL_TRANSITION___VALIDATE_STATE_IS_EXTERNAL__DIAGNOSTICCHAIN_MAP = TRANSITION___VALIDATE_STATE_IS_EXTERNAL__DIAGNOSTICCHAIN_MAP;
+	int PROTOCOL_TRANSITION___VALIDATE_STATE_IS_LOCAL__DIAGNOSTICCHAIN_MAP = TRANSITION___VALIDATE_STATE_IS_LOCAL__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Join Segment Guards</em>' operation.
+	 * The operation id for the '<em>Validate Fork Segment Guards</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PROTOCOL_TRANSITION___VALIDATE_JOIN_SEGMENT_GUARDS__DIAGNOSTICCHAIN_MAP = TRANSITION___VALIDATE_JOIN_SEGMENT_GUARDS__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate State Is Internal</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROTOCOL_TRANSITION___VALIDATE_STATE_IS_INTERNAL__DIAGNOSTICCHAIN_MAP = TRANSITION___VALIDATE_STATE_IS_INTERNAL__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Outgoing Pseudostates</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROTOCOL_TRANSITION___VALIDATE_OUTGOING_PSEUDOSTATES__DIAGNOSTICCHAIN_MAP = TRANSITION___VALIDATE_OUTGOING_PSEUDOSTATES__DIAGNOSTICCHAIN_MAP;
+	int PROTOCOL_TRANSITION___VALIDATE_FORK_SEGMENT_GUARDS__DIAGNOSTICCHAIN_MAP = TRANSITION___VALIDATE_FORK_SEGMENT_GUARDS__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Join Segment State</em>' operation.
@@ -176923,13 +176913,22 @@
 	int PROTOCOL_TRANSITION___VALIDATE_JOIN_SEGMENT_STATE__DIAGNOSTICCHAIN_MAP = TRANSITION___VALIDATE_JOIN_SEGMENT_STATE__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Fork Segment State</em>' operation.
+	 * The operation id for the '<em>Validate Initial Transition</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PROTOCOL_TRANSITION___VALIDATE_FORK_SEGMENT_STATE__DIAGNOSTICCHAIN_MAP = TRANSITION___VALIDATE_FORK_SEGMENT_STATE__DIAGNOSTICCHAIN_MAP;
+	int PROTOCOL_TRANSITION___VALIDATE_INITIAL_TRANSITION__DIAGNOSTICCHAIN_MAP = TRANSITION___VALIDATE_INITIAL_TRANSITION__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Outgoing Pseudostates</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROTOCOL_TRANSITION___VALIDATE_OUTGOING_PSEUDOSTATES__DIAGNOSTICCHAIN_MAP = TRANSITION___VALIDATE_OUTGOING_PSEUDOSTATES__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Signatures Compatible</em>' operation.
@@ -176941,31 +176940,40 @@
 	int PROTOCOL_TRANSITION___VALIDATE_SIGNATURES_COMPATIBLE__DIAGNOSTICCHAIN_MAP = TRANSITION___VALIDATE_SIGNATURES_COMPATIBLE__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate State Is Local</em>' operation.
+	 * The operation id for the '<em>Validate State Is Internal</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PROTOCOL_TRANSITION___VALIDATE_STATE_IS_LOCAL__DIAGNOSTICCHAIN_MAP = TRANSITION___VALIDATE_STATE_IS_LOCAL__DIAGNOSTICCHAIN_MAP;
+	int PROTOCOL_TRANSITION___VALIDATE_STATE_IS_INTERNAL__DIAGNOSTICCHAIN_MAP = TRANSITION___VALIDATE_STATE_IS_INTERNAL__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Initial Transition</em>' operation.
+	 * The operation id for the '<em>Validate Join Segment Guards</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PROTOCOL_TRANSITION___VALIDATE_INITIAL_TRANSITION__DIAGNOSTICCHAIN_MAP = TRANSITION___VALIDATE_INITIAL_TRANSITION__DIAGNOSTICCHAIN_MAP;
+	int PROTOCOL_TRANSITION___VALIDATE_JOIN_SEGMENT_GUARDS__DIAGNOSTICCHAIN_MAP = TRANSITION___VALIDATE_JOIN_SEGMENT_GUARDS__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Fork Segment Guards</em>' operation.
+	 * The operation id for the '<em>Validate Fork Segment State</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PROTOCOL_TRANSITION___VALIDATE_FORK_SEGMENT_GUARDS__DIAGNOSTICCHAIN_MAP = TRANSITION___VALIDATE_FORK_SEGMENT_GUARDS__DIAGNOSTICCHAIN_MAP;
+	int PROTOCOL_TRANSITION___VALIDATE_FORK_SEGMENT_STATE__DIAGNOSTICCHAIN_MAP = TRANSITION___VALIDATE_FORK_SEGMENT_STATE__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate State Is External</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROTOCOL_TRANSITION___VALIDATE_STATE_IS_EXTERNAL__DIAGNOSTICCHAIN_MAP = TRANSITION___VALIDATE_STATE_IS_EXTERNAL__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Containing State Machine</em>' operation.
@@ -177148,7 +177156,7 @@
 	int RAISE_EXCEPTION_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -177157,15 +177165,6 @@
 	int RAISE_EXCEPTION_ACTION__ACTIVITY = ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int RAISE_EXCEPTION_ACTION__IN_GROUP = ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -177211,6 +177210,15 @@
 	int RAISE_EXCEPTION_ACTION__INCOMING = ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RAISE_EXCEPTION_ACTION__IN_GROUP = ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -177634,15 +177642,6 @@
 	int RAISE_EXCEPTION_ACTION___MUST_BE_OWNED = ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int RAISE_EXCEPTION_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -177661,6 +177660,15 @@
 	int RAISE_EXCEPTION_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RAISE_EXCEPTION_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -177949,7 +177957,7 @@
 	int READ_EXTENT_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -177958,15 +177966,6 @@
 	int READ_EXTENT_ACTION__ACTIVITY = ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int READ_EXTENT_ACTION__IN_GROUP = ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -178012,6 +178011,15 @@
 	int READ_EXTENT_ACTION__INCOMING = ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int READ_EXTENT_ACTION__IN_GROUP = ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -178444,15 +178452,6 @@
 	int READ_EXTENT_ACTION___MUST_BE_OWNED = ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int READ_EXTENT_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -178471,6 +178470,15 @@
 	int READ_EXTENT_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int READ_EXTENT_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -178777,7 +178785,7 @@
 	int READ_IS_CLASSIFIED_OBJECT_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -178786,15 +178794,6 @@
 	int READ_IS_CLASSIFIED_OBJECT_ACTION__ACTIVITY = ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int READ_IS_CLASSIFIED_OBJECT_ACTION__IN_GROUP = ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -178840,6 +178839,15 @@
 	int READ_IS_CLASSIFIED_OBJECT_ACTION__INCOMING = ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int READ_IS_CLASSIFIED_OBJECT_ACTION__IN_GROUP = ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -179290,15 +179298,6 @@
 	int READ_IS_CLASSIFIED_OBJECT_ACTION___MUST_BE_OWNED = ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int READ_IS_CLASSIFIED_OBJECT_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -179317,6 +179316,15 @@
 	int READ_IS_CLASSIFIED_OBJECT_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int READ_IS_CLASSIFIED_OBJECT_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -179641,7 +179649,7 @@
 	int READ_LINK_ACTION__REDEFINITION_CONTEXT = LINK_ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -179650,15 +179658,6 @@
 	int READ_LINK_ACTION__ACTIVITY = LINK_ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int READ_LINK_ACTION__IN_GROUP = LINK_ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -179704,6 +179703,15 @@
 	int READ_LINK_ACTION__INCOMING = LINK_ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int READ_LINK_ACTION__IN_GROUP = LINK_ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -180145,15 +180153,6 @@
 	int READ_LINK_ACTION___MUST_BE_OWNED = LINK_ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int READ_LINK_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = LINK_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -180172,6 +180171,15 @@
 	int READ_LINK_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = LINK_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int READ_LINK_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = LINK_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -180379,31 +180387,22 @@
 	int READ_LINK_ACTION___VALIDATE_TYPE_AND_ORDERING__DIAGNOSTICCHAIN_MAP = LINK_ACTION_OPERATION_COUNT + 0;
 
 	/**
-	 * The operation id for the '<em>Validate Compatible Multiplicity</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int READ_LINK_ACTION___VALIDATE_COMPATIBLE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = LINK_ACTION_OPERATION_COUNT + 1;
-
-	/**
-	 * The operation id for the '<em>Validate Visibility</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int READ_LINK_ACTION___VALIDATE_VISIBILITY__DIAGNOSTICCHAIN_MAP = LINK_ACTION_OPERATION_COUNT + 2;
-
-	/**
 	 * The operation id for the '<em>Validate One Open End</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int READ_LINK_ACTION___VALIDATE_ONE_OPEN_END__DIAGNOSTICCHAIN_MAP = LINK_ACTION_OPERATION_COUNT + 3;
+	int READ_LINK_ACTION___VALIDATE_ONE_OPEN_END__DIAGNOSTICCHAIN_MAP = LINK_ACTION_OPERATION_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Validate Compatible Multiplicity</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int READ_LINK_ACTION___VALIDATE_COMPATIBLE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = LINK_ACTION_OPERATION_COUNT + 2;
 
 	/**
 	 * The operation id for the '<em>Validate Navigable Open End</em>' operation.
@@ -180412,7 +180411,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int READ_LINK_ACTION___VALIDATE_NAVIGABLE_OPEN_END__DIAGNOSTICCHAIN_MAP = LINK_ACTION_OPERATION_COUNT + 4;
+	int READ_LINK_ACTION___VALIDATE_NAVIGABLE_OPEN_END__DIAGNOSTICCHAIN_MAP = LINK_ACTION_OPERATION_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>Validate Visibility</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int READ_LINK_ACTION___VALIDATE_VISIBILITY__DIAGNOSTICCHAIN_MAP = LINK_ACTION_OPERATION_COUNT + 4;
 
 	/**
 	 * The number of operations of the '<em>Read Link Action</em>' class.
@@ -180541,7 +180549,7 @@
 	int READ_LINK_OBJECT_END_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -180550,15 +180558,6 @@
 	int READ_LINK_OBJECT_END_ACTION__ACTIVITY = ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int READ_LINK_OBJECT_END_ACTION__IN_GROUP = ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -180604,6 +180603,15 @@
 	int READ_LINK_OBJECT_END_ACTION__INCOMING = ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int READ_LINK_OBJECT_END_ACTION__IN_GROUP = ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -181045,15 +181053,6 @@
 	int READ_LINK_OBJECT_END_ACTION___MUST_BE_OWNED = ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int READ_LINK_OBJECT_END_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -181072,6 +181071,15 @@
 	int READ_LINK_OBJECT_END_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int READ_LINK_OBJECT_END_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -181234,13 +181242,13 @@
 	int READ_LINK_OBJECT_END_ACTION___GET_CONTEXT = ACTION___GET_CONTEXT;
 
 	/**
-	 * The operation id for the '<em>Validate Property</em>' operation.
+	 * The operation id for the '<em>Validate Association Of Association</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int READ_LINK_OBJECT_END_ACTION___VALIDATE_PROPERTY__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 0;
+	int READ_LINK_OBJECT_END_ACTION___VALIDATE_ASSOCIATION_OF_ASSOCIATION__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 0;
 
 	/**
 	 * The operation id for the '<em>Validate Multiplicity Of Object</em>' operation.
@@ -181252,31 +181260,13 @@
 	int READ_LINK_OBJECT_END_ACTION___VALIDATE_MULTIPLICITY_OF_OBJECT__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 1;
 
 	/**
-	 * The operation id for the '<em>Validate Ends Of Association</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int READ_LINK_OBJECT_END_ACTION___VALIDATE_ENDS_OF_ASSOCIATION__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 2;
-
-	/**
 	 * The operation id for the '<em>Validate Type Of Result</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int READ_LINK_OBJECT_END_ACTION___VALIDATE_TYPE_OF_RESULT__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 3;
-
-	/**
-	 * The operation id for the '<em>Validate Multiplicity Of Result</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int READ_LINK_OBJECT_END_ACTION___VALIDATE_MULTIPLICITY_OF_RESULT__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 4;
+	int READ_LINK_OBJECT_END_ACTION___VALIDATE_TYPE_OF_RESULT__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 2;
 
 	/**
 	 * The operation id for the '<em>Validate Type Of Object</em>' operation.
@@ -181285,16 +181275,34 @@
 	 * @generated
 	 * @ordered
 	 */
-	int READ_LINK_OBJECT_END_ACTION___VALIDATE_TYPE_OF_OBJECT__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 5;
+	int READ_LINK_OBJECT_END_ACTION___VALIDATE_TYPE_OF_OBJECT__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 3;
 
 	/**
-	 * The operation id for the '<em>Validate Association Of Association</em>' operation.
+	 * The operation id for the '<em>Validate Property</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int READ_LINK_OBJECT_END_ACTION___VALIDATE_ASSOCIATION_OF_ASSOCIATION__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 6;
+	int READ_LINK_OBJECT_END_ACTION___VALIDATE_PROPERTY__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 4;
+
+	/**
+	 * The operation id for the '<em>Validate Multiplicity Of Result</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int READ_LINK_OBJECT_END_ACTION___VALIDATE_MULTIPLICITY_OF_RESULT__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 5;
+
+	/**
+	 * The operation id for the '<em>Validate Ends Of Association</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int READ_LINK_OBJECT_END_ACTION___VALIDATE_ENDS_OF_ASSOCIATION__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 6;
 
 	/**
 	 * The number of operations of the '<em>Read Link Object End Action</em>' class.
@@ -181423,7 +181431,7 @@
 	int READ_LINK_OBJECT_END_QUALIFIER_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -181432,15 +181440,6 @@
 	int READ_LINK_OBJECT_END_QUALIFIER_ACTION__ACTIVITY = ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int READ_LINK_OBJECT_END_QUALIFIER_ACTION__IN_GROUP = ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -181486,6 +181485,15 @@
 	int READ_LINK_OBJECT_END_QUALIFIER_ACTION__INCOMING = ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int READ_LINK_OBJECT_END_QUALIFIER_ACTION__IN_GROUP = ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -181927,15 +181935,6 @@
 	int READ_LINK_OBJECT_END_QUALIFIER_ACTION___MUST_BE_OWNED = ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int READ_LINK_OBJECT_END_QUALIFIER_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -181954,6 +181953,15 @@
 	int READ_LINK_OBJECT_END_QUALIFIER_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int READ_LINK_OBJECT_END_QUALIFIER_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -182116,31 +182124,31 @@
 	int READ_LINK_OBJECT_END_QUALIFIER_ACTION___GET_CONTEXT = ACTION___GET_CONTEXT;
 
 	/**
-	 * The operation id for the '<em>Validate Multiplicity Of Object</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int READ_LINK_OBJECT_END_QUALIFIER_ACTION___VALIDATE_MULTIPLICITY_OF_OBJECT__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 0;
-
-	/**
 	 * The operation id for the '<em>Validate Type Of Object</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int READ_LINK_OBJECT_END_QUALIFIER_ACTION___VALIDATE_TYPE_OF_OBJECT__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 1;
+	int READ_LINK_OBJECT_END_QUALIFIER_ACTION___VALIDATE_TYPE_OF_OBJECT__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 0;
 
 	/**
-	 * The operation id for the '<em>Validate Multiplicity Of Qualifier</em>' operation.
+	 * The operation id for the '<em>Validate Multiplicity Of Result</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int READ_LINK_OBJECT_END_QUALIFIER_ACTION___VALIDATE_MULTIPLICITY_OF_QUALIFIER__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 2;
+	int READ_LINK_OBJECT_END_QUALIFIER_ACTION___VALIDATE_MULTIPLICITY_OF_RESULT__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Validate Same Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int READ_LINK_OBJECT_END_QUALIFIER_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 2;
 
 	/**
 	 * The operation id for the '<em>Validate Ends Of Association</em>' operation.
@@ -182152,22 +182160,22 @@
 	int READ_LINK_OBJECT_END_QUALIFIER_ACTION___VALIDATE_ENDS_OF_ASSOCIATION__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 3;
 
 	/**
-	 * The operation id for the '<em>Validate Multiplicity Of Result</em>' operation.
+	 * The operation id for the '<em>Validate Multiplicity Of Qualifier</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int READ_LINK_OBJECT_END_QUALIFIER_ACTION___VALIDATE_MULTIPLICITY_OF_RESULT__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 4;
+	int READ_LINK_OBJECT_END_QUALIFIER_ACTION___VALIDATE_MULTIPLICITY_OF_QUALIFIER__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 4;
 
 	/**
-	 * The operation id for the '<em>Validate Same Type</em>' operation.
+	 * The operation id for the '<em>Validate Multiplicity Of Object</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int READ_LINK_OBJECT_END_QUALIFIER_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 5;
+	int READ_LINK_OBJECT_END_QUALIFIER_ACTION___VALIDATE_MULTIPLICITY_OF_OBJECT__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 5;
 
 	/**
 	 * The operation id for the '<em>Validate Association Of Association</em>' operation.
@@ -182314,7 +182322,7 @@
 	int READ_SELF_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -182323,15 +182331,6 @@
 	int READ_SELF_ACTION__ACTIVITY = ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int READ_SELF_ACTION__IN_GROUP = ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -182377,6 +182376,15 @@
 	int READ_SELF_ACTION__INCOMING = ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int READ_SELF_ACTION__IN_GROUP = ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -182800,15 +182808,6 @@
 	int READ_SELF_ACTION___MUST_BE_OWNED = ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int READ_SELF_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -182827,6 +182826,15 @@
 	int READ_SELF_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int READ_SELF_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -182998,13 +183006,13 @@
 	int READ_SELF_ACTION___VALIDATE_CONTAINED__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 0;
 
 	/**
-	 * The operation id for the '<em>Validate Multiplicity</em>' operation.
+	 * The operation id for the '<em>Validate Type</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int READ_SELF_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 1;
+	int READ_SELF_ACTION___VALIDATE_TYPE__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 1;
 
 	/**
 	 * The operation id for the '<em>Validate Not Static</em>' operation.
@@ -183016,13 +183024,13 @@
 	int READ_SELF_ACTION___VALIDATE_NOT_STATIC__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 2;
 
 	/**
-	 * The operation id for the '<em>Validate Type</em>' operation.
+	 * The operation id for the '<em>Validate Multiplicity</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int READ_SELF_ACTION___VALIDATE_TYPE__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 3;
+	int READ_SELF_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 3;
 
 	/**
 	 * The number of operations of the '<em>Read Self Action</em>' class.
@@ -183151,7 +183159,7 @@
 	int READ_STRUCTURAL_FEATURE_ACTION__REDEFINITION_CONTEXT = STRUCTURAL_FEATURE_ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -183160,15 +183168,6 @@
 	int READ_STRUCTURAL_FEATURE_ACTION__ACTIVITY = STRUCTURAL_FEATURE_ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int READ_STRUCTURAL_FEATURE_ACTION__IN_GROUP = STRUCTURAL_FEATURE_ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -183214,6 +183213,15 @@
 	int READ_STRUCTURAL_FEATURE_ACTION__INCOMING = STRUCTURAL_FEATURE_ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int READ_STRUCTURAL_FEATURE_ACTION__IN_GROUP = STRUCTURAL_FEATURE_ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -183655,15 +183663,6 @@
 	int READ_STRUCTURAL_FEATURE_ACTION___MUST_BE_OWNED = STRUCTURAL_FEATURE_ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int READ_STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -183682,6 +183681,15 @@
 	int READ_STRUCTURAL_FEATURE_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int READ_STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -183844,24 +183852,6 @@
 	int READ_STRUCTURAL_FEATURE_ACTION___GET_CONTEXT = STRUCTURAL_FEATURE_ACTION___GET_CONTEXT;
 
 	/**
-	 * The operation id for the '<em>Validate Multiplicity</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int READ_STRUCTURAL_FEATURE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Same Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int READ_STRUCTURAL_FEATURE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Visibility</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -183871,6 +183861,15 @@
 	int READ_STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Multiplicity</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int READ_STRUCTURAL_FEATURE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Validate Not Static</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -183889,6 +183888,15 @@
 	int READ_STRUCTURAL_FEATURE_ACTION___VALIDATE_ONE_FEATURING_CLASSIFIER__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_ACTION___VALIDATE_ONE_FEATURING_CLASSIFIER__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Same Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int READ_STRUCTURAL_FEATURE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP = STRUCTURAL_FEATURE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Validate Type And Ordering</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -184024,7 +184032,7 @@
 	int READ_VARIABLE_ACTION__REDEFINITION_CONTEXT = VARIABLE_ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -184033,15 +184041,6 @@
 	int READ_VARIABLE_ACTION__ACTIVITY = VARIABLE_ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int READ_VARIABLE_ACTION__IN_GROUP = VARIABLE_ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -184087,6 +184086,15 @@
 	int READ_VARIABLE_ACTION__INCOMING = VARIABLE_ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int READ_VARIABLE_ACTION__IN_GROUP = VARIABLE_ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -184519,15 +184527,6 @@
 	int READ_VARIABLE_ACTION___MUST_BE_OWNED = VARIABLE_ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int READ_VARIABLE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = VARIABLE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -184546,6 +184545,15 @@
 	int READ_VARIABLE_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = VARIABLE_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int READ_VARIABLE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = VARIABLE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -184861,7 +184869,7 @@
 	int RECLASSIFY_OBJECT_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -184870,15 +184878,6 @@
 	int RECLASSIFY_OBJECT_ACTION__ACTIVITY = ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int RECLASSIFY_OBJECT_ACTION__IN_GROUP = ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -184924,6 +184923,15 @@
 	int RECLASSIFY_OBJECT_ACTION__INCOMING = ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RECLASSIFY_OBJECT_ACTION__IN_GROUP = ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -185374,15 +185382,6 @@
 	int RECLASSIFY_OBJECT_ACTION___MUST_BE_OWNED = ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int RECLASSIFY_OBJECT_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -185401,6 +185400,15 @@
 	int RECLASSIFY_OBJECT_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RECLASSIFY_OBJECT_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -185572,22 +185580,22 @@
 	int RECLASSIFY_OBJECT_ACTION___VALIDATE_INPUT_PIN__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 0;
 
 	/**
-	 * The operation id for the '<em>Validate Classifier Not Abstract</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int RECLASSIFY_OBJECT_ACTION___VALIDATE_CLASSIFIER_NOT_ABSTRACT__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 1;
-
-	/**
 	 * The operation id for the '<em>Validate Multiplicity</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int RECLASSIFY_OBJECT_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 2;
+	int RECLASSIFY_OBJECT_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Validate Classifier Not Abstract</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RECLASSIFY_OBJECT_ACTION___VALIDATE_CLASSIFIER_NOT_ABSTRACT__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 2;
 
 	/**
 	 * The number of operations of the '<em>Reclassify Object Action</em>' class.
@@ -185716,7 +185724,7 @@
 	int REDUCE_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -185725,15 +185733,6 @@
 	int REDUCE_ACTION__ACTIVITY = ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REDUCE_ACTION__IN_GROUP = ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -185779,6 +185778,15 @@
 	int REDUCE_ACTION__INCOMING = ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REDUCE_ACTION__IN_GROUP = ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -186229,15 +186237,6 @@
 	int REDUCE_ACTION___MUST_BE_OWNED = ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REDUCE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -186256,6 +186255,15 @@
 	int REDUCE_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REDUCE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -186418,13 +186426,22 @@
 	int REDUCE_ACTION___GET_CONTEXT = ACTION___GET_CONTEXT;
 
 	/**
+	 * The operation id for the '<em>Validate Output Types Are Compatible</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REDUCE_ACTION___VALIDATE_OUTPUT_TYPES_ARE_COMPATIBLE__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 0;
+
+	/**
 	 * The operation id for the '<em>Validate Reducer Inputs Output</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int REDUCE_ACTION___VALIDATE_REDUCER_INPUTS_OUTPUT__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 0;
+	int REDUCE_ACTION___VALIDATE_REDUCER_INPUTS_OUTPUT__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 1;
 
 	/**
 	 * The operation id for the '<em>Validate Input Type Is Collection</em>' operation.
@@ -186433,16 +186450,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int REDUCE_ACTION___VALIDATE_INPUT_TYPE_IS_COLLECTION__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 1;
-
-	/**
-	 * The operation id for the '<em>Validate Output Types Are Compatible</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REDUCE_ACTION___VALIDATE_OUTPUT_TYPES_ARE_COMPATIBLE__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 2;
+	int REDUCE_ACTION___VALIDATE_INPUT_TYPE_IS_COLLECTION__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 2;
 
 	/**
 	 * The number of operations of the '<em>Reduce Action</em>' class.
@@ -186571,7 +186579,7 @@
 	int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__REDEFINITION_CONTEXT = WRITE_STRUCTURAL_FEATURE_ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -186580,15 +186588,6 @@
 	int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__ACTIVITY = WRITE_STRUCTURAL_FEATURE_ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IN_GROUP = WRITE_STRUCTURAL_FEATURE_ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -186634,6 +186633,15 @@
 	int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__INCOMING = WRITE_STRUCTURAL_FEATURE_ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IN_GROUP = WRITE_STRUCTURAL_FEATURE_ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -187102,15 +187110,6 @@
 	int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION___MUST_BE_OWNED = WRITE_STRUCTURAL_FEATURE_ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -187129,6 +187128,15 @@
 	int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -187291,24 +187299,6 @@
 	int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION___GET_CONTEXT = WRITE_STRUCTURAL_FEATURE_ACTION___GET_CONTEXT;
 
 	/**
-	 * The operation id for the '<em>Validate Multiplicity</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Same Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP = WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Visibility</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -187318,6 +187308,15 @@
 	int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_VISIBILITY__DIAGNOSTICCHAIN_MAP = WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Multiplicity</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Validate Not Static</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -187336,13 +187335,13 @@
 	int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_ONE_FEATURING_CLASSIFIER__DIAGNOSTICCHAIN_MAP = WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_ONE_FEATURING_CLASSIFIER__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Multiplicity Of Result</em>' operation.
+	 * The operation id for the '<em>Validate Same Type</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_MULTIPLICITY_OF_RESULT__DIAGNOSTICCHAIN_MAP = WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_MULTIPLICITY_OF_RESULT__DIAGNOSTICCHAIN_MAP;
+	int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP = WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Input Pin</em>' operation.
@@ -187363,6 +187362,15 @@
 	int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_TYPE_OF_RESULT__DIAGNOSTICCHAIN_MAP = WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_TYPE_OF_RESULT__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Multiplicity Of Result</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_MULTIPLICITY_OF_RESULT__DIAGNOSTICCHAIN_MAP = WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_MULTIPLICITY_OF_RESULT__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Validate Non Unique Removal</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -187498,7 +187506,7 @@
 	int REMOVE_VARIABLE_VALUE_ACTION__REDEFINITION_CONTEXT = WRITE_VARIABLE_ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -187507,15 +187515,6 @@
 	int REMOVE_VARIABLE_VALUE_ACTION__ACTIVITY = WRITE_VARIABLE_ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REMOVE_VARIABLE_VALUE_ACTION__IN_GROUP = WRITE_VARIABLE_ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -187561,6 +187560,15 @@
 	int REMOVE_VARIABLE_VALUE_ACTION__INCOMING = WRITE_VARIABLE_ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REMOVE_VARIABLE_VALUE_ACTION__IN_GROUP = WRITE_VARIABLE_ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -188011,15 +188019,6 @@
 	int REMOVE_VARIABLE_VALUE_ACTION___MUST_BE_OWNED = WRITE_VARIABLE_ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REMOVE_VARIABLE_VALUE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = WRITE_VARIABLE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -188038,6 +188037,15 @@
 	int REMOVE_VARIABLE_VALUE_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = WRITE_VARIABLE_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REMOVE_VARIABLE_VALUE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = WRITE_VARIABLE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -188209,15 +188217,6 @@
 	int REMOVE_VARIABLE_VALUE_ACTION___VALIDATE_SCOPE_OF_VARIABLE__DIAGNOSTICCHAIN_MAP = WRITE_VARIABLE_ACTION___VALIDATE_SCOPE_OF_VARIABLE__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Same Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REMOVE_VARIABLE_VALUE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP = WRITE_VARIABLE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Multiplicity</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -188227,6 +188226,15 @@
 	int REMOVE_VARIABLE_VALUE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = WRITE_VARIABLE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Same Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REMOVE_VARIABLE_VALUE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP = WRITE_VARIABLE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Validate Unlimited Natural</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -188362,7 +188370,7 @@
 	int REPLY_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -188371,15 +188379,6 @@
 	int REPLY_ACTION__ACTIVITY = ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REPLY_ACTION__IN_GROUP = ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -188425,6 +188424,15 @@
 	int REPLY_ACTION__INCOMING = ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPLY_ACTION__IN_GROUP = ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -188866,15 +188874,6 @@
 	int REPLY_ACTION___MUST_BE_OWNED = ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REPLY_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -188893,6 +188892,15 @@
 	int REPLY_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPLY_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -189055,22 +189063,22 @@
 	int REPLY_ACTION___GET_CONTEXT = ACTION___GET_CONTEXT;
 
 	/**
-	 * The operation id for the '<em>Validate Pins Match Parameter</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REPLY_ACTION___VALIDATE_PINS_MATCH_PARAMETER__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 0;
-
-	/**
 	 * The operation id for the '<em>Validate Event On Reply To Call Trigger</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int REPLY_ACTION___VALIDATE_EVENT_ON_REPLY_TO_CALL_TRIGGER__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 1;
+	int REPLY_ACTION___VALIDATE_EVENT_ON_REPLY_TO_CALL_TRIGGER__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Validate Pins Match Parameter</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPLY_ACTION___VALIDATE_PINS_MATCH_PARAMETER__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 1;
 
 	/**
 	 * The number of operations of the '<em>Reply Action</em>' class.
@@ -189199,7 +189207,7 @@
 	int SEND_OBJECT_ACTION__REDEFINITION_CONTEXT = INVOCATION_ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -189208,15 +189216,6 @@
 	int SEND_OBJECT_ACTION__ACTIVITY = INVOCATION_ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SEND_OBJECT_ACTION__IN_GROUP = INVOCATION_ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -189262,6 +189261,15 @@
 	int SEND_OBJECT_ACTION__INCOMING = INVOCATION_ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEND_OBJECT_ACTION__IN_GROUP = INVOCATION_ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -189712,15 +189720,6 @@
 	int SEND_OBJECT_ACTION___MUST_BE_OWNED = INVOCATION_ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SEND_OBJECT_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = INVOCATION_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -189739,6 +189738,15 @@
 	int SEND_OBJECT_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = INVOCATION_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEND_OBJECT_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = INVOCATION_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -190036,7 +190044,7 @@
 	int SEND_SIGNAL_ACTION__REDEFINITION_CONTEXT = INVOCATION_ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -190045,15 +190053,6 @@
 	int SEND_SIGNAL_ACTION__ACTIVITY = INVOCATION_ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SEND_SIGNAL_ACTION__IN_GROUP = INVOCATION_ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -190099,6 +190098,15 @@
 	int SEND_SIGNAL_ACTION__INCOMING = INVOCATION_ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEND_SIGNAL_ACTION__IN_GROUP = INVOCATION_ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -190549,15 +190557,6 @@
 	int SEND_SIGNAL_ACTION___MUST_BE_OWNED = INVOCATION_ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SEND_SIGNAL_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = INVOCATION_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -190576,6 +190575,15 @@
 	int SEND_SIGNAL_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = INVOCATION_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEND_SIGNAL_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = INVOCATION_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -190891,7 +190899,7 @@
 	int SEQUENCE_NODE__REDEFINITION_CONTEXT = STRUCTURED_ACTIVITY_NODE__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -190900,15 +190908,6 @@
 	int SEQUENCE_NODE__ACTIVITY = STRUCTURED_ACTIVITY_NODE__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SEQUENCE_NODE__IN_GROUP = STRUCTURED_ACTIVITY_NODE__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -190954,6 +190953,15 @@
 	int SEQUENCE_NODE__INCOMING = STRUCTURED_ACTIVITY_NODE__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEQUENCE_NODE__IN_GROUP = STRUCTURED_ACTIVITY_NODE__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -191080,6 +191088,15 @@
 	int SEQUENCE_NODE__MEMBER = STRUCTURED_ACTIVITY_NODE__MEMBER;
 
 	/**
+	 * The feature id for the '<em><b>Contained Edge</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEQUENCE_NODE__CONTAINED_EDGE = STRUCTURED_ACTIVITY_NODE__CONTAINED_EDGE;
+
+	/**
 	 * The feature id for the '<em><b>Contained Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -191089,7 +191106,7 @@
 	int SEQUENCE_NODE__CONTAINED_NODE = STRUCTURED_ACTIVITY_NODE__CONTAINED_NODE;
 
 	/**
-	 * The feature id for the '<em><b>In Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>In Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -191116,15 +191133,6 @@
 	int SEQUENCE_NODE__SUPER_GROUP = STRUCTURED_ACTIVITY_NODE__SUPER_GROUP;
 
 	/**
-	 * The feature id for the '<em><b>Contained Edge</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SEQUENCE_NODE__CONTAINED_EDGE = STRUCTURED_ACTIVITY_NODE__CONTAINED_EDGE;
-
-	/**
 	 * The feature id for the '<em><b>Must Isolate</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -191530,15 +191538,6 @@
 	int SEQUENCE_NODE___MUST_BE_OWNED = STRUCTURED_ACTIVITY_NODE___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SEQUENCE_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -191557,6 +191556,15 @@
 	int SEQUENCE_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEQUENCE_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -191818,15 +191826,6 @@
 	int SEQUENCE_NODE___GET_OWNED_MEMBERS = STRUCTURED_ACTIVITY_NODE___GET_OWNED_MEMBERS;
 
 	/**
-	 * The operation id for the '<em>Validate Nodes And Edges</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SEQUENCE_NODE___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Group Owned</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -191845,13 +191844,22 @@
 	int SEQUENCE_NODE___VALIDATE_NOT_CONTAINED__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_NOT_CONTAINED__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Output Pin Edges</em>' operation.
+	 * The operation id for the '<em>Validate Nodes And Edges</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int SEQUENCE_NODE___VALIDATE_OUTPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_OUTPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP;
+	int SEQUENCE_NODE___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Validate Input Pin Edges</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEQUENCE_NODE___VALIDATE_INPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_INPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Edges</em>' operation.
@@ -191863,13 +191871,13 @@
 	int SEQUENCE_NODE___VALIDATE_EDGES__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_EDGES__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Input Pin Edges</em>' operation.
+	 * The operation id for the '<em>Validate Output Pin Edges</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int SEQUENCE_NODE___VALIDATE_INPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_INPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP;
+	int SEQUENCE_NODE___VALIDATE_OUTPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP = STRUCTURED_ACTIVITY_NODE___VALIDATE_OUTPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The number of operations of the '<em>Sequence Node</em>' class.
@@ -192340,15 +192348,6 @@
 	int SIGNAL_EVENT___MUST_BE_OWNED = MESSAGE_EVENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SIGNAL_EVENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = MESSAGE_EVENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -192367,6 +192366,15 @@
 	int SIGNAL_EVENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = MESSAGE_EVENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SIGNAL_EVENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = MESSAGE_EVENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -192601,7 +192609,7 @@
 	int START_CLASSIFIER_BEHAVIOR_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -192610,15 +192618,6 @@
 	int START_CLASSIFIER_BEHAVIOR_ACTION__ACTIVITY = ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int START_CLASSIFIER_BEHAVIOR_ACTION__IN_GROUP = ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -192664,6 +192663,15 @@
 	int START_CLASSIFIER_BEHAVIOR_ACTION__INCOMING = ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int START_CLASSIFIER_BEHAVIOR_ACTION__IN_GROUP = ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -193087,15 +193095,6 @@
 	int START_CLASSIFIER_BEHAVIOR_ACTION___MUST_BE_OWNED = ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int START_CLASSIFIER_BEHAVIOR_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -193114,6 +193113,15 @@
 	int START_CLASSIFIER_BEHAVIOR_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int START_CLASSIFIER_BEHAVIOR_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -193276,22 +193284,22 @@
 	int START_CLASSIFIER_BEHAVIOR_ACTION___GET_CONTEXT = ACTION___GET_CONTEXT;
 
 	/**
-	 * The operation id for the '<em>Validate Multiplicity</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int START_CLASSIFIER_BEHAVIOR_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 0;
-
-	/**
 	 * The operation id for the '<em>Validate Type Has Classifier</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int START_CLASSIFIER_BEHAVIOR_ACTION___VALIDATE_TYPE_HAS_CLASSIFIER__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 1;
+	int START_CLASSIFIER_BEHAVIOR_ACTION___VALIDATE_TYPE_HAS_CLASSIFIER__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Validate Multiplicity</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int START_CLASSIFIER_BEHAVIOR_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 1;
 
 	/**
 	 * The number of operations of the '<em>Start Classifier Behavior Action</em>' class.
@@ -193420,7 +193428,7 @@
 	int START_OBJECT_BEHAVIOR_ACTION__REDEFINITION_CONTEXT = CALL_ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -193429,15 +193437,6 @@
 	int START_OBJECT_BEHAVIOR_ACTION__ACTIVITY = CALL_ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int START_OBJECT_BEHAVIOR_ACTION__IN_GROUP = CALL_ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -193483,6 +193482,15 @@
 	int START_OBJECT_BEHAVIOR_ACTION__INCOMING = CALL_ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int START_OBJECT_BEHAVIOR_ACTION__IN_GROUP = CALL_ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -193942,15 +193950,6 @@
 	int START_OBJECT_BEHAVIOR_ACTION___MUST_BE_OWNED = CALL_ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int START_OBJECT_BEHAVIOR_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CALL_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -193969,6 +193968,15 @@
 	int START_OBJECT_BEHAVIOR_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = CALL_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int START_OBJECT_BEHAVIOR_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = CALL_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -194140,13 +194148,13 @@
 	int START_OBJECT_BEHAVIOR_ACTION___VALIDATE_ON_PORT_RECEIVER__DIAGNOSTICCHAIN_MAP = CALL_ACTION___VALIDATE_ON_PORT_RECEIVER__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Type Ordering Multiplicity</em>' operation.
+	 * The operation id for the '<em>Validate Synchronous Call</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int START_OBJECT_BEHAVIOR_ACTION___VALIDATE_TYPE_ORDERING_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = CALL_ACTION___VALIDATE_TYPE_ORDERING_MULTIPLICITY__DIAGNOSTICCHAIN_MAP;
+	int START_OBJECT_BEHAVIOR_ACTION___VALIDATE_SYNCHRONOUS_CALL__DIAGNOSTICCHAIN_MAP = CALL_ACTION___VALIDATE_SYNCHRONOUS_CALL__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Number And Order</em>' operation.
@@ -194158,40 +194166,13 @@
 	int START_OBJECT_BEHAVIOR_ACTION___VALIDATE_NUMBER_AND_ORDER__DIAGNOSTICCHAIN_MAP = CALL_ACTION___VALIDATE_NUMBER_AND_ORDER__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Synchronous Call</em>' operation.
+	 * The operation id for the '<em>Validate Type Ordering Multiplicity</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int START_OBJECT_BEHAVIOR_ACTION___VALIDATE_SYNCHRONOUS_CALL__DIAGNOSTICCHAIN_MAP = CALL_ACTION___VALIDATE_SYNCHRONOUS_CALL__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Number Order Results</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int START_OBJECT_BEHAVIOR_ACTION___VALIDATE_NUMBER_ORDER_RESULTS__DIAGNOSTICCHAIN_MAP = CALL_ACTION_OPERATION_COUNT + 0;
-
-	/**
-	 * The operation id for the '<em>Validate Multiplicity Of Object</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int START_OBJECT_BEHAVIOR_ACTION___VALIDATE_MULTIPLICITY_OF_OBJECT__DIAGNOSTICCHAIN_MAP = CALL_ACTION_OPERATION_COUNT + 1;
-
-	/**
-	 * The operation id for the '<em>Validate Type Ordering Multiplicity Match</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int START_OBJECT_BEHAVIOR_ACTION___VALIDATE_TYPE_ORDERING_MULTIPLICITY_MATCH__DIAGNOSTICCHAIN_MAP = CALL_ACTION_OPERATION_COUNT + 2;
+	int START_OBJECT_BEHAVIOR_ACTION___VALIDATE_TYPE_ORDERING_MULTIPLICITY__DIAGNOSTICCHAIN_MAP = CALL_ACTION___VALIDATE_TYPE_ORDERING_MULTIPLICITY__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Number Order Arguments</em>' operation.
@@ -194200,7 +194181,25 @@
 	 * @generated
 	 * @ordered
 	 */
-	int START_OBJECT_BEHAVIOR_ACTION___VALIDATE_NUMBER_ORDER_ARGUMENTS__DIAGNOSTICCHAIN_MAP = CALL_ACTION_OPERATION_COUNT + 3;
+	int START_OBJECT_BEHAVIOR_ACTION___VALIDATE_NUMBER_ORDER_ARGUMENTS__DIAGNOSTICCHAIN_MAP = CALL_ACTION_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Validate Type Ordering Multiplicity Match</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int START_OBJECT_BEHAVIOR_ACTION___VALIDATE_TYPE_ORDERING_MULTIPLICITY_MATCH__DIAGNOSTICCHAIN_MAP = CALL_ACTION_OPERATION_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Validate Number Order Results</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int START_OBJECT_BEHAVIOR_ACTION___VALIDATE_NUMBER_ORDER_RESULTS__DIAGNOSTICCHAIN_MAP = CALL_ACTION_OPERATION_COUNT + 2;
 
 	/**
 	 * The operation id for the '<em>Validate Type Of Object</em>' operation.
@@ -194209,7 +194208,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int START_OBJECT_BEHAVIOR_ACTION___VALIDATE_TYPE_OF_OBJECT__DIAGNOSTICCHAIN_MAP = CALL_ACTION_OPERATION_COUNT + 4;
+	int START_OBJECT_BEHAVIOR_ACTION___VALIDATE_TYPE_OF_OBJECT__DIAGNOSTICCHAIN_MAP = CALL_ACTION_OPERATION_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>Validate Multiplicity Of Object</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int START_OBJECT_BEHAVIOR_ACTION___VALIDATE_MULTIPLICITY_OF_OBJECT__DIAGNOSTICCHAIN_MAP = CALL_ACTION_OPERATION_COUNT + 4;
 
 	/**
 	 * The number of operations of the '<em>Start Object Behavior Action</em>' class.
@@ -194698,15 +194706,6 @@
 	int STATE_INVARIANT___MUST_BE_OWNED = INTERACTION_FRAGMENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STATE_INVARIANT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -194725,6 +194724,15 @@
 	int STATE_INVARIANT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STATE_INVARIANT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = INTERACTION_FRAGMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -194941,7 +194949,7 @@
 	int TEST_IDENTITY_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -194950,15 +194958,6 @@
 	int TEST_IDENTITY_ACTION__ACTIVITY = ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TEST_IDENTITY_ACTION__IN_GROUP = ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -195004,6 +195003,15 @@
 	int TEST_IDENTITY_ACTION__INCOMING = ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEST_IDENTITY_ACTION__IN_GROUP = ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -195445,15 +195453,6 @@
 	int TEST_IDENTITY_ACTION___MUST_BE_OWNED = ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TEST_IDENTITY_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -195472,6 +195471,15 @@
 	int TEST_IDENTITY_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEST_IDENTITY_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -196156,15 +196164,6 @@
 	int TIME_CONSTRAINT___MUST_BE_OWNED = INTERVAL_CONSTRAINT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TIME_CONSTRAINT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = INTERVAL_CONSTRAINT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -196183,6 +196182,15 @@
 	int TIME_CONSTRAINT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = INTERVAL_CONSTRAINT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TIME_CONSTRAINT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = INTERVAL_CONSTRAINT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -196291,13 +196299,13 @@
 	int TIME_CONSTRAINT___IS_TEMPLATE_PARAMETER = INTERVAL_CONSTRAINT___IS_TEMPLATE_PARAMETER;
 
 	/**
-	 * The operation id for the '<em>Validate Boolean Value</em>' operation.
+	 * The operation id for the '<em>Validate Not Apply To Self</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int TIME_CONSTRAINT___VALIDATE_BOOLEAN_VALUE__DIAGNOSTICCHAIN_MAP = INTERVAL_CONSTRAINT___VALIDATE_BOOLEAN_VALUE__DIAGNOSTICCHAIN_MAP;
+	int TIME_CONSTRAINT___VALIDATE_NOT_APPLY_TO_SELF__DIAGNOSTICCHAIN_MAP = INTERVAL_CONSTRAINT___VALIDATE_NOT_APPLY_TO_SELF__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate No Side Effects</em>' operation.
@@ -196309,13 +196317,13 @@
 	int TIME_CONSTRAINT___VALIDATE_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP = INTERVAL_CONSTRAINT___VALIDATE_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Not Apply To Self</em>' operation.
+	 * The operation id for the '<em>Validate Boolean Value</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int TIME_CONSTRAINT___VALIDATE_NOT_APPLY_TO_SELF__DIAGNOSTICCHAIN_MAP = INTERVAL_CONSTRAINT___VALIDATE_NOT_APPLY_TO_SELF__DIAGNOSTICCHAIN_MAP;
+	int TIME_CONSTRAINT___VALIDATE_BOOLEAN_VALUE__DIAGNOSTICCHAIN_MAP = INTERVAL_CONSTRAINT___VALIDATE_BOOLEAN_VALUE__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Value Specification Boolean</em>' operation.
@@ -196813,15 +196821,6 @@
 	int TIME_INTERVAL___MUST_BE_OWNED = INTERVAL___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TIME_INTERVAL___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = INTERVAL___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -196840,6 +196839,15 @@
 	int TIME_INTERVAL___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = INTERVAL___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TIME_INTERVAL___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = INTERVAL___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -197497,15 +197505,6 @@
 	int TIME_EXPRESSION___MUST_BE_OWNED = VALUE_SPECIFICATION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TIME_EXPRESSION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = VALUE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -197524,6 +197523,15 @@
 	int TIME_EXPRESSION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = VALUE_SPECIFICATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TIME_EXPRESSION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = VALUE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -198172,15 +198180,6 @@
 	int TIME_EVENT___MUST_BE_OWNED = EVENT___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TIME_EVENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = EVENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -198199,6 +198198,15 @@
 	int TIME_EVENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = EVENT___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TIME_EVENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = EVENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -198307,22 +198315,22 @@
 	int TIME_EVENT___IS_TEMPLATE_PARAMETER = EVENT___IS_TEMPLATE_PARAMETER;
 
 	/**
-	 * The operation id for the '<em>Validate When Non Negative</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TIME_EVENT___VALIDATE_WHEN_NON_NEGATIVE__DIAGNOSTICCHAIN_MAP = EVENT_OPERATION_COUNT + 0;
-
-	/**
 	 * The operation id for the '<em>Validate Starting Time</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int TIME_EVENT___VALIDATE_STARTING_TIME__DIAGNOSTICCHAIN_MAP = EVENT_OPERATION_COUNT + 1;
+	int TIME_EVENT___VALIDATE_STARTING_TIME__DIAGNOSTICCHAIN_MAP = EVENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Validate When Non Negative</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TIME_EVENT___VALIDATE_WHEN_NON_NEGATIVE__DIAGNOSTICCHAIN_MAP = EVENT_OPERATION_COUNT + 1;
 
 	/**
 	 * The number of operations of the '<em>Time Event</em>' class.
@@ -198802,15 +198810,6 @@
 	int TIME_OBSERVATION___MUST_BE_OWNED = OBSERVATION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TIME_OBSERVATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = OBSERVATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -198829,6 +198828,15 @@
 	int TIME_OBSERVATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = OBSERVATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TIME_OBSERVATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = OBSERVATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -199063,7 +199071,7 @@
 	int UNMARSHALL_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -199072,15 +199080,6 @@
 	int UNMARSHALL_ACTION__ACTIVITY = ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int UNMARSHALL_ACTION__IN_GROUP = ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -199126,6 +199125,15 @@
 	int UNMARSHALL_ACTION__INCOMING = ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int UNMARSHALL_ACTION__IN_GROUP = ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -199567,15 +199575,6 @@
 	int UNMARSHALL_ACTION___MUST_BE_OWNED = ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int UNMARSHALL_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -199594,6 +199593,15 @@
 	int UNMARSHALL_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int UNMARSHALL_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -199756,31 +199764,31 @@
 	int UNMARSHALL_ACTION___GET_CONTEXT = ACTION___GET_CONTEXT;
 
 	/**
+	 * The operation id for the '<em>Validate Same Type</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int UNMARSHALL_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 0;
+
+	/**
 	 * The operation id for the '<em>Validate Structural Feature</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int UNMARSHALL_ACTION___VALIDATE_STRUCTURAL_FEATURE__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 0;
+	int UNMARSHALL_ACTION___VALIDATE_STRUCTURAL_FEATURE__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 1;
 
 	/**
-	 * The operation id for the '<em>Validate Number Of Result</em>' operation.
+	 * The operation id for the '<em>Validate Multiplicity Of Object</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int UNMARSHALL_ACTION___VALIDATE_NUMBER_OF_RESULT__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 1;
-
-	/**
-	 * The operation id for the '<em>Validate Multiplicity Of Result</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int UNMARSHALL_ACTION___VALIDATE_MULTIPLICITY_OF_RESULT__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 2;
+	int UNMARSHALL_ACTION___VALIDATE_MULTIPLICITY_OF_OBJECT__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 2;
 
 	/**
 	 * The operation id for the '<em>Validate Type And Ordering</em>' operation.
@@ -199792,31 +199800,31 @@
 	int UNMARSHALL_ACTION___VALIDATE_TYPE_AND_ORDERING__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 3;
 
 	/**
+	 * The operation id for the '<em>Validate Number Of Result</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int UNMARSHALL_ACTION___VALIDATE_NUMBER_OF_RESULT__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 4;
+
+	/**
 	 * The operation id for the '<em>Validate Unmarshall Type Is Classifier</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int UNMARSHALL_ACTION___VALIDATE_UNMARSHALL_TYPE_IS_CLASSIFIER__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 4;
+	int UNMARSHALL_ACTION___VALIDATE_UNMARSHALL_TYPE_IS_CLASSIFIER__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 5;
 
 	/**
-	 * The operation id for the '<em>Validate Multiplicity Of Object</em>' operation.
+	 * The operation id for the '<em>Validate Multiplicity Of Result</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int UNMARSHALL_ACTION___VALIDATE_MULTIPLICITY_OF_OBJECT__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 5;
-
-	/**
-	 * The operation id for the '<em>Validate Same Type</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int UNMARSHALL_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 6;
+	int UNMARSHALL_ACTION___VALIDATE_MULTIPLICITY_OF_RESULT__DIAGNOSTICCHAIN_MAP = ACTION_OPERATION_COUNT + 6;
 
 	/**
 	 * The number of operations of the '<em>Unmarshall Action</em>' class.
@@ -199945,7 +199953,7 @@
 	int VALUE_PIN__REDEFINITION_CONTEXT = INPUT_PIN__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -199954,15 +199962,6 @@
 	int VALUE_PIN__ACTIVITY = INPUT_PIN__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int VALUE_PIN__IN_GROUP = INPUT_PIN__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -200008,6 +200007,15 @@
 	int VALUE_PIN__INCOMING = INPUT_PIN__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VALUE_PIN__IN_GROUP = INPUT_PIN__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -200485,15 +200493,6 @@
 	int VALUE_PIN___MUST_BE_OWNED = INPUT_PIN___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int VALUE_PIN___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = INPUT_PIN___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -200512,6 +200511,15 @@
 	int VALUE_PIN___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = INPUT_PIN___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VALUE_PIN___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = INPUT_PIN___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -200665,13 +200673,13 @@
 	int VALUE_PIN___VALIDATE_OWNED_STRUCTURED_NODE__DIAGNOSTICCHAIN_MAP = INPUT_PIN___VALIDATE_OWNED_STRUCTURED_NODE__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Input Output Parameter</em>' operation.
+	 * The operation id for the '<em>Validate Object Flow Edges</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int VALUE_PIN___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP = INPUT_PIN___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP;
+	int VALUE_PIN___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP = INPUT_PIN___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Selection Behavior</em>' operation.
@@ -200683,22 +200691,13 @@
 	int VALUE_PIN___VALIDATE_SELECTION_BEHAVIOR__DIAGNOSTICCHAIN_MAP = INPUT_PIN___VALIDATE_SELECTION_BEHAVIOR__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Object Flow Edges</em>' operation.
+	 * The operation id for the '<em>Validate Input Output Parameter</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int VALUE_PIN___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP = INPUT_PIN___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Validate Upper Ge Lower</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int VALUE_PIN___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP = INPUT_PIN___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP;
+	int VALUE_PIN___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP = INPUT_PIN___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Lower Ge0</em>' operation.
@@ -200710,13 +200709,13 @@
 	int VALUE_PIN___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP = INPUT_PIN___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate Value Specification No Side Effects</em>' operation.
+	 * The operation id for the '<em>Validate Upper Ge Lower</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int VALUE_PIN___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP = INPUT_PIN___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP;
+	int VALUE_PIN___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP = INPUT_PIN___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP;
 
 	/**
 	 * The operation id for the '<em>Validate Value Specification Constant</em>' operation.
@@ -200728,6 +200727,15 @@
 	int VALUE_PIN___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP = INPUT_PIN___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Value Specification No Side Effects</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VALUE_PIN___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP = INPUT_PIN___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Set Lower</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -200845,22 +200853,22 @@
 	int VALUE_PIN___VALIDATE_OUTGOING_EDGES_STRUCTURED_ONLY__DIAGNOSTICCHAIN_MAP = INPUT_PIN___VALIDATE_OUTGOING_EDGES_STRUCTURED_ONLY__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Validate No Incoming Edges</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int VALUE_PIN___VALIDATE_NO_INCOMING_EDGES__DIAGNOSTICCHAIN_MAP = INPUT_PIN_OPERATION_COUNT + 0;
-
-	/**
 	 * The operation id for the '<em>Validate Compatible Type</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int VALUE_PIN___VALIDATE_COMPATIBLE_TYPE__DIAGNOSTICCHAIN_MAP = INPUT_PIN_OPERATION_COUNT + 1;
+	int VALUE_PIN___VALIDATE_COMPATIBLE_TYPE__DIAGNOSTICCHAIN_MAP = INPUT_PIN_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Validate No Incoming Edges</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VALUE_PIN___VALIDATE_NO_INCOMING_EDGES__DIAGNOSTICCHAIN_MAP = INPUT_PIN_OPERATION_COUNT + 1;
 
 	/**
 	 * The number of operations of the '<em>Value Pin</em>' class.
@@ -200989,7 +200997,7 @@
 	int VALUE_SPECIFICATION_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT;
 
 	/**
-	 * The feature id for the '<em><b>Activity</b></em>' container reference.
+	 * The feature id for the '<em><b>Activity</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -200998,15 +201006,6 @@
 	int VALUE_SPECIFICATION_ACTION__ACTIVITY = ACTION__ACTIVITY;
 
 	/**
-	 * The feature id for the '<em><b>In Group</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int VALUE_SPECIFICATION_ACTION__IN_GROUP = ACTION__IN_GROUP;
-
-	/**
 	 * The feature id for the '<em><b>In Partition</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -201052,6 +201051,15 @@
 	int VALUE_SPECIFICATION_ACTION__INCOMING = ACTION__INCOMING;
 
 	/**
+	 * The feature id for the '<em><b>In Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VALUE_SPECIFICATION_ACTION__IN_GROUP = ACTION__IN_GROUP;
+
+	/**
 	 * The feature id for the '<em><b>Redefined Node</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -201484,15 +201492,6 @@
 	int VALUE_SPECIFICATION_ACTION___MUST_BE_OWNED = ACTION___MUST_BE_OWNED;
 
 	/**
-	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int VALUE_SPECIFICATION_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
-
-	/**
 	 * The operation id for the '<em>Validate Has Qualified Name</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -201511,6 +201510,15 @@
 	int VALUE_SPECIFICATION_ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Validate Visibility Needs Ownership</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VALUE_SPECIFICATION_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP = ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP;
+
+	/**
 	 * The operation id for the '<em>Create Dependency</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -201727,7 +201735,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getTransitionKind()
 	 * @generated
 	 */
-	int TRANSITION_KIND = 246;
+	int TRANSITION_KIND = 244;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.PseudostateKind <em>Pseudostate Kind</em>}' enum.
@@ -201737,7 +201745,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getPseudostateKind()
 	 * @generated
 	 */
-	int PSEUDOSTATE_KIND = 247;
+	int PSEUDOSTATE_KIND = 245;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.AggregationKind <em>Aggregation Kind</em>}' enum.
@@ -201757,7 +201765,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getParameterDirectionKind()
 	 * @generated
 	 */
-	int PARAMETER_DIRECTION_KIND = 244;
+	int PARAMETER_DIRECTION_KIND = 246;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.ParameterEffectKind <em>Parameter Effect Kind</em>}' enum.
@@ -201767,7 +201775,7 @@
 	 * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getParameterEffectKind()
 	 * @generated
 	 */
-	int PARAMETER_EFFECT_KIND = 245;
+	int PARAMETER_EFFECT_KIND = 247;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.uml2.uml.ConnectorKind <em>Connector Kind</em>}' enum.
@@ -211044,10 +211052,10 @@
 	EReference getActivityNode_InStructuredNode();
 
 	/**
-	 * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.ActivityNode#getActivity <em>Activity</em>}'.
+	 * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.ActivityNode#getActivity <em>Activity</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the container reference '<em>Activity</em>'.
+	 * @return the meta object for the reference '<em>Activity</em>'.
 	 * @see org.eclipse.uml2.uml.ActivityNode#getActivity()
 	 * @see #getActivityNode()
 	 * @generated
@@ -211268,6 +211276,17 @@
 	EClass getActivity();
 
 	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Activity#getOwnedGroups <em>Owned Group</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Owned Group</em>'.
+	 * @see org.eclipse.uml2.uml.Activity#getOwnedGroups()
+	 * @see #getActivity()
+	 * @generated
+	 */
+	EReference getActivity_OwnedGroup();
+
+	/**
 	 * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Activity#isReadOnly <em>Is Read Only</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -211290,10 +211309,10 @@
 	EReference getActivity_Partition();
 
 	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Activity#getGroups <em>Group</em>}'.
+	 * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Activity#getGroups <em>Group</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Group</em>'.
+	 * @return the meta object for the reference list '<em>Group</em>'.
 	 * @see org.eclipse.uml2.uml.Activity#getGroups()
 	 * @see #getActivity()
 	 * @generated
@@ -211301,6 +211320,17 @@
 	EReference getActivity_Group();
 
 	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Activity#getOwnedNodes <em>Owned Node</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Owned Node</em>'.
+	 * @see org.eclipse.uml2.uml.Activity#getOwnedNodes()
+	 * @see #getActivity()
+	 * @generated
+	 */
+	EReference getActivity_OwnedNode();
+
+	/**
 	 * Returns the meta object for the '{@link org.eclipse.uml2.uml.Activity#validateNoSupergroups(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Supergroups</em>}' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -211321,16 +211351,6 @@
 	EOperation getActivity__ValidateActivityParameterNode__DiagnosticChain_Map();
 
 	/**
-	 * Returns the meta object for the '{@link org.eclipse.uml2.uml.Activity#getStructuredNodes() <em>Get Structured Nodes</em>}' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the '<em>Get Structured Nodes</em>' operation.
-	 * @see org.eclipse.uml2.uml.Activity#getStructuredNodes()
-	 * @generated
-	 */
-	EOperation getActivity__GetStructuredNodes();
-
-	/**
 	 * Returns the meta object for the '{@link org.eclipse.uml2.uml.Activity#validateAutonomous(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Autonomous</em>}' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -211352,10 +211372,10 @@
 	EAttribute getActivity_IsSingleExecution();
 
 	/**
-	 * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Activity#getStructuredNodes <em>Structured Node</em>}'.
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Activity#getStructuredNodes <em>Structured Node</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>Structured Node</em>'.
+	 * @return the meta object for the containment reference list '<em>Structured Node</em>'.
 	 * @see org.eclipse.uml2.uml.Activity#getStructuredNodes()
 	 * @see #getActivity()
 	 * @generated
@@ -211374,10 +211394,10 @@
 	EReference getActivity_Variable();
 
 	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Activity#getNodes <em>Node</em>}'.
+	 * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Activity#getNodes <em>Node</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Node</em>'.
+	 * @return the meta object for the reference list '<em>Node</em>'.
 	 * @see org.eclipse.uml2.uml.Activity#getNodes()
 	 * @see #getActivity()
 	 * @generated
@@ -211596,10 +211616,10 @@
 	EOperation getActivityGroup__ValidateGroupOwned__DiagnosticChain_Map();
 
 	/**
-	 * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.ActivityGroup#getInActivity <em>In Activity</em>}'.
+	 * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.ActivityGroup#getInActivity <em>In Activity</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the container reference '<em>In Activity</em>'.
+	 * @return the meta object for the reference '<em>In Activity</em>'.
 	 * @see org.eclipse.uml2.uml.ActivityGroup#getInActivity()
 	 * @see #getActivityGroup()
 	 * @generated
@@ -225206,7 +225226,7 @@
 			.getActivityNode_InStructuredNode();
 
 		/**
-		 * The meta object literal for the '<em><b>Activity</b></em>' container reference feature.
+		 * The meta object literal for the '<em><b>Activity</b></em>' reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
@@ -225406,7 +225426,7 @@
 			.getActivityGroup_SuperGroup();
 
 		/**
-		 * The meta object literal for the '<em><b>In Activity</b></em>' container reference feature.
+		 * The meta object literal for the '<em><b>In Activity</b></em>' reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
@@ -225470,7 +225490,15 @@
 		EClass ACTIVITY = eINSTANCE.getActivity();
 
 		/**
-		 * The meta object literal for the '<em><b>Structured Node</b></em>' reference list feature.
+		 * The meta object literal for the '<em><b>Owned Group</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ACTIVITY__OWNED_GROUP = eINSTANCE.getActivity_OwnedGroup();
+
+		/**
+		 * The meta object literal for the '<em><b>Structured Node</b></em>' containment reference list feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
@@ -225487,7 +225515,7 @@
 		EReference ACTIVITY__VARIABLE = eINSTANCE.getActivity_Variable();
 
 		/**
-		 * The meta object literal for the '<em><b>Node</b></em>' containment reference list feature.
+		 * The meta object literal for the '<em><b>Node</b></em>' reference list feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
@@ -225528,7 +225556,7 @@
 			.getActivity_IsSingleExecution();
 
 		/**
-		 * The meta object literal for the '<em><b>Group</b></em>' containment reference list feature.
+		 * The meta object literal for the '<em><b>Group</b></em>' reference list feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
@@ -225536,6 +225564,14 @@
 		EReference ACTIVITY__GROUP = eINSTANCE.getActivity_Group();
 
 		/**
+		 * The meta object literal for the '<em><b>Owned Node</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ACTIVITY__OWNED_NODE = eINSTANCE.getActivity_OwnedNode();
+
+		/**
 		 * The meta object literal for the '<em><b>Validate No Supergroups</b></em>' operation.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
@@ -225554,15 +225590,6 @@
 			.getActivity__ValidateActivityParameterNode__DiagnosticChain_Map();
 
 		/**
-		 * The meta object literal for the '<em><b>Get Structured Nodes</b></em>' operation.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EOperation ACTIVITY___GET_STRUCTURED_NODES = eINSTANCE
-			.getActivity__GetStructuredNodes();
-
-		/**
 		 * The meta object literal for the '<em><b>Validate Autonomous</b></em>' operation.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AcceptCallActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AcceptCallActionImpl.java
index 38edd77..1201dcc 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AcceptCallActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AcceptCallActionImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: AcceptCallActionImpl.java,v 1.24 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -297,8 +296,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.ACCEPT_CALL_ACTION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.ACCEPT_CALL_ACTION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.ACCEPT_CALL_ACTION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -378,8 +375,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.ACCEPT_CALL_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.ACCEPT_CALL_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.ACCEPT_CALL_ACTION__IN_STRUCTURED_NODE :
@@ -392,6 +387,8 @@
 				return getOutgoings();
 			case UMLPackage.ACCEPT_CALL_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.ACCEPT_CALL_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.ACCEPT_CALL_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.ACCEPT_CALL_ACTION__HANDLER :
@@ -645,8 +642,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.ACCEPT_CALL_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.ACCEPT_CALL_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.ACCEPT_CALL_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.ACCEPT_CALL_ACTION__IN_STRUCTURED_NODE :
@@ -658,6 +653,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.ACCEPT_CALL_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.ACCEPT_CALL_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.ACCEPT_CALL_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.ACCEPT_CALL_ACTION__HANDLER :
@@ -780,10 +777,6 @@
 				return allOwnedElements();
 			case UMLPackage.ACCEPT_CALL_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.ACCEPT_CALL_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACCEPT_CALL_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -792,6 +785,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ACCEPT_CALL_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACCEPT_CALL_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.ACCEPT_CALL_ACTION___CREATE_USAGE__NAMEDELEMENT :
@@ -839,22 +836,19 @@
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACCEPT_CALL_ACTION___GET_CONTEXT :
 				return getContext();
-			case UMLPackage.ACCEPT_CALL_ACTION___VALIDATE_TRIGGER_EVENTS__DIAGNOSTICCHAIN_MAP :
-				return validateTriggerEvents(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACCEPT_CALL_ACTION___VALIDATE_NO_INPUT_PINS__DIAGNOSTICCHAIN_MAP :
 				return validateNoInputPins((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.ACCEPT_CALL_ACTION___VALIDATE_NO_OUTPUT_PINS__DIAGNOSTICCHAIN_MAP :
-				return validateNoOutputPins((DiagnosticChain) arguments.get(0),
+			case UMLPackage.ACCEPT_CALL_ACTION___VALIDATE_TRIGGER_EVENTS__DIAGNOSTICCHAIN_MAP :
+				return validateTriggerEvents(
+					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACCEPT_CALL_ACTION___VALIDATE_UNMARSHALL_SIGNAL_EVENTS__DIAGNOSTICCHAIN_MAP :
 				return validateUnmarshallSignalEvents(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.ACCEPT_CALL_ACTION___VALIDATE_RESULT_PINS__DIAGNOSTICCHAIN_MAP :
-				return validateResultPins((DiagnosticChain) arguments.get(0),
+			case UMLPackage.ACCEPT_CALL_ACTION___VALIDATE_NO_OUTPUT_PINS__DIAGNOSTICCHAIN_MAP :
+				return validateNoOutputPins((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACCEPT_CALL_ACTION___VALIDATE_TRIGGER_CALL_EVENT__DIAGNOSTICCHAIN_MAP :
 				return validateTriggerCallEvent(
@@ -863,6 +857,9 @@
 			case UMLPackage.ACCEPT_CALL_ACTION___VALIDATE_UNMARSHALL__DIAGNOSTICCHAIN_MAP :
 				return validateUnmarshall((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ACCEPT_CALL_ACTION___VALIDATE_RESULT_PINS__DIAGNOSTICCHAIN_MAP :
+				return validateResultPins((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AcceptEventActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AcceptEventActionImpl.java
index 82dc16a..b46e779 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AcceptEventActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AcceptEventActionImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: AcceptEventActionImpl.java,v 1.31 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -383,8 +382,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.ACCEPT_EVENT_ACTION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.ACCEPT_EVENT_ACTION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.ACCEPT_EVENT_ACTION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -462,8 +459,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.ACCEPT_EVENT_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.ACCEPT_EVENT_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.ACCEPT_EVENT_ACTION__IN_STRUCTURED_NODE :
@@ -476,6 +471,8 @@
 				return getOutgoings();
 			case UMLPackage.ACCEPT_EVENT_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.ACCEPT_EVENT_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.ACCEPT_EVENT_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.ACCEPT_EVENT_ACTION__HANDLER :
@@ -719,8 +716,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.ACCEPT_EVENT_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.ACCEPT_EVENT_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.ACCEPT_EVENT_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.ACCEPT_EVENT_ACTION__IN_STRUCTURED_NODE :
@@ -732,6 +727,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.ACCEPT_EVENT_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.ACCEPT_EVENT_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.ACCEPT_EVENT_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.ACCEPT_EVENT_ACTION__HANDLER :
@@ -852,10 +849,6 @@
 				return allOwnedElements();
 			case UMLPackage.ACCEPT_EVENT_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.ACCEPT_EVENT_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACCEPT_EVENT_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -864,6 +857,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ACCEPT_EVENT_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACCEPT_EVENT_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.ACCEPT_EVENT_ACTION___CREATE_USAGE__NAMEDELEMENT :
@@ -911,20 +908,20 @@
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACCEPT_EVENT_ACTION___GET_CONTEXT :
 				return getContext();
+			case UMLPackage.ACCEPT_EVENT_ACTION___VALIDATE_NO_INPUT_PINS__DIAGNOSTICCHAIN_MAP :
+				return validateNoInputPins((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACCEPT_EVENT_ACTION___VALIDATE_TRIGGER_EVENTS__DIAGNOSTICCHAIN_MAP :
 				return validateTriggerEvents(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.ACCEPT_EVENT_ACTION___VALIDATE_NO_INPUT_PINS__DIAGNOSTICCHAIN_MAP :
-				return validateNoInputPins((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.ACCEPT_EVENT_ACTION___VALIDATE_NO_OUTPUT_PINS__DIAGNOSTICCHAIN_MAP :
-				return validateNoOutputPins((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACCEPT_EVENT_ACTION___VALIDATE_UNMARSHALL_SIGNAL_EVENTS__DIAGNOSTICCHAIN_MAP :
 				return validateUnmarshallSignalEvents(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ACCEPT_EVENT_ACTION___VALIDATE_NO_OUTPUT_PINS__DIAGNOSTICCHAIN_MAP :
+				return validateNoOutputPins((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActionExecutionSpecificationImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActionExecutionSpecificationImpl.java
index f89bbfe..baa7272 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActionExecutionSpecificationImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActionExecutionSpecificationImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ActionExecutionSpecificationImpl.java,v 1.18 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -461,10 +460,6 @@
 				return allOwnedElements();
 			case UMLPackage.ACTION_EXECUTION_SPECIFICATION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.ACTION_EXECUTION_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACTION_EXECUTION_SPECIFICATION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -473,6 +468,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ACTION_EXECUTION_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACTION_EXECUTION_SPECIFICATION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.ACTION_EXECUTION_SPECIFICATION___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActionImpl.java
index 716438b..39200e8 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActionImpl.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ActionImpl.java,v 1.30 2009/01/07 15:55:31 jbruck Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -477,8 +476,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.ACTION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.ACTION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.ACTION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -550,8 +547,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.ACTION__IN_STRUCTURED_NODE :
@@ -564,6 +559,8 @@
 				return getOutgoings();
 			case UMLPackage.ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.ACTION__HANDLER :
@@ -781,8 +778,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.ACTION__IN_STRUCTURED_NODE :
@@ -794,6 +789,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.ACTION__HANDLER :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActionInputPinImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActionInputPinImpl.java
index 8581a8b..179d352 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActionInputPinImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActionInputPinImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ActionInputPinImpl.java,v 1.33 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -292,8 +291,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.ACTION_INPUT_PIN__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.ACTION_INPUT_PIN__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.ACTION_INPUT_PIN__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -364,8 +361,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.ACTION_INPUT_PIN__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.ACTION_INPUT_PIN__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.ACTION_INPUT_PIN__IN_STRUCTURED_NODE :
@@ -378,6 +373,8 @@
 				return getOutgoings();
 			case UMLPackage.ACTION_INPUT_PIN__INCOMING :
 				return getIncomings();
+			case UMLPackage.ACTION_INPUT_PIN__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.ACTION_INPUT_PIN__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.ACTION_INPUT_PIN__TYPE :
@@ -674,8 +671,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.ACTION_INPUT_PIN__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.ACTION_INPUT_PIN__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.ACTION_INPUT_PIN__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.ACTION_INPUT_PIN__IN_STRUCTURED_NODE :
@@ -687,6 +682,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.ACTION_INPUT_PIN__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.ACTION_INPUT_PIN__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.ACTION_INPUT_PIN__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.ACTION_INPUT_PIN__TYPE :
@@ -813,10 +810,6 @@
 				return allOwnedElements();
 			case UMLPackage.ACTION_INPUT_PIN___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.ACTION_INPUT_PIN___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACTION_INPUT_PIN___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -825,6 +818,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ACTION_INPUT_PIN___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACTION_INPUT_PIN___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.ACTION_INPUT_PIN___CREATE_USAGE__NAMEDELEMENT :
@@ -870,32 +867,32 @@
 				return validateOwnedStructuredNode(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.ACTION_INPUT_PIN___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP :
-				return validateInputOutputParameter(
+			case UMLPackage.ACTION_INPUT_PIN___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP :
+				return validateObjectFlowEdges(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACTION_INPUT_PIN___VALIDATE_SELECTION_BEHAVIOR__DIAGNOSTICCHAIN_MAP :
 				return validateSelectionBehavior(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.ACTION_INPUT_PIN___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP :
-				return validateObjectFlowEdges(
+			case UMLPackage.ACTION_INPUT_PIN___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP :
+				return validateInputOutputParameter(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.ACTION_INPUT_PIN___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP :
-				return validateUpperGeLower((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACTION_INPUT_PIN___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP :
 				return validateLowerGe0((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.ACTION_INPUT_PIN___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP :
-				return validateValueSpecificationNoSideEffects(
-					(DiagnosticChain) arguments.get(0),
+			case UMLPackage.ACTION_INPUT_PIN___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP :
+				return validateUpperGeLower((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACTION_INPUT_PIN___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP :
 				return validateValueSpecificationConstant(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ACTION_INPUT_PIN___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP :
+				return validateValueSpecificationNoSideEffects(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACTION_INPUT_PIN___SET_LOWER__INT :
 				setLower((Integer) arguments.get(0));
 				return null;
@@ -932,13 +929,13 @@
 			case UMLPackage.ACTION_INPUT_PIN___VALIDATE_INPUT_PIN__DIAGNOSTICCHAIN_MAP :
 				return validateInputPin((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.ACTION_INPUT_PIN___VALIDATE_ONE_OUTPUT_PIN__DIAGNOSTICCHAIN_MAP :
-				return validateOneOutputPin((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACTION_INPUT_PIN___VALIDATE_NO_CONTROL_OR_DATA_FLOW__DIAGNOSTICCHAIN_MAP :
 				return validateNoControlOrDataFlow(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ACTION_INPUT_PIN___VALIDATE_ONE_OUTPUT_PIN__DIAGNOSTICCHAIN_MAP :
+				return validateOneOutputPin((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityEdgeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityEdgeImpl.java
index f7f412f..857ae03 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityEdgeImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityEdgeImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ActivityEdgeImpl.java,v 1.29 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -70,10 +69,11 @@
  * <p>
  * The following features are implemented:
  * <ul>
+ *   <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl#getOwner <em>Owner</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl#getOwnedElements <em>Owned Element</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl#getInGroups <em>In Group</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl#getOwner <em>Owner</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl#getRedefinedElements <em>Redefined Element</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl#getActivity <em>Activity</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl#getGuard <em>Guard</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl#getInPartitions <em>In Partition</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl#getInStructuredNode <em>In Structured Node</em>}</li>
@@ -82,7 +82,6 @@
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl#getSource <em>Source</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl#getTarget <em>Target</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl#getWeight <em>Weight</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl#getActivity <em>Activity</em>}</li>
  * </ul>
  * </p>
  *
@@ -932,6 +931,10 @@
 			case UMLPackage.ACTIVITY_EDGE__CLIENT_DEPENDENCY :
 				return ((InternalEList<InternalEObject>) (InternalEList<?>) getClientDependencies())
 					.basicAdd(otherEnd, msgs);
+			case UMLPackage.ACTIVITY_EDGE__ACTIVITY :
+				if (eInternalContainer() != null)
+					msgs = eBasicRemoveFromContainer(msgs);
+				return basicSetActivity((Activity) otherEnd, msgs);
 			case UMLPackage.ACTIVITY_EDGE__IN_PARTITION :
 				return ((InternalEList<InternalEObject>) (InternalEList<?>) getInPartitions())
 					.basicAdd(otherEnd, msgs);
@@ -961,10 +964,6 @@
 						UMLPackage.ACTIVITY_NODE__INCOMING, ActivityNode.class,
 						msgs);
 				return basicSetTarget((ActivityNode) otherEnd, msgs);
-			case UMLPackage.ACTIVITY_EDGE__ACTIVITY :
-				if (eInternalContainer() != null)
-					msgs = eBasicRemoveFromContainer(msgs);
-				return basicSetActivity((Activity) otherEnd, msgs);
 		}
 		return eDynamicInverseAdd(otherEnd, featureID, msgs);
 	}
@@ -989,6 +988,8 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.ACTIVITY_EDGE__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
+			case UMLPackage.ACTIVITY_EDGE__ACTIVITY :
+				return basicSetActivity(null, msgs);
 			case UMLPackage.ACTIVITY_EDGE__GUARD :
 				return basicSetGuard(null, msgs);
 			case UMLPackage.ACTIVITY_EDGE__IN_PARTITION :
@@ -1004,8 +1005,6 @@
 				return basicSetTarget(null, msgs);
 			case UMLPackage.ACTIVITY_EDGE__WEIGHT :
 				return basicSetWeight(null, msgs);
-			case UMLPackage.ACTIVITY_EDGE__ACTIVITY :
-				return basicSetActivity(null, msgs);
 		}
 		return eDynamicInverseRemove(otherEnd, featureID, msgs);
 	}
@@ -1019,13 +1018,13 @@
 	public NotificationChain eBasicRemoveFromContainerFeature(
 			NotificationChain msgs) {
 		switch (eContainerFeatureID()) {
+			case UMLPackage.ACTIVITY_EDGE__ACTIVITY :
+				return eInternalContainer().eInverseRemove(this,
+					UMLPackage.ACTIVITY__EDGE, Activity.class, msgs);
 			case UMLPackage.ACTIVITY_EDGE__IN_STRUCTURED_NODE :
 				return eInternalContainer().eInverseRemove(this,
 					UMLPackage.STRUCTURED_ACTIVITY_NODE__EDGE,
 					StructuredActivityNode.class, msgs);
-			case UMLPackage.ACTIVITY_EDGE__ACTIVITY :
-				return eInternalContainer().eInverseRemove(this,
-					UMLPackage.ACTIVITY__EDGE, Activity.class, msgs);
 		}
 		return eDynamicBasicRemoveFromContainer(msgs);
 	}
@@ -1070,12 +1069,14 @@
 				return getRedefinedElements();
 			case UMLPackage.ACTIVITY_EDGE__REDEFINITION_CONTEXT :
 				return getRedefinitionContexts();
+			case UMLPackage.ACTIVITY_EDGE__ACTIVITY :
+				if (resolve)
+					return getActivity();
+				return basicGetActivity();
 			case UMLPackage.ACTIVITY_EDGE__GUARD :
 				if (resolve)
 					return getGuard();
 				return basicGetGuard();
-			case UMLPackage.ACTIVITY_EDGE__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.ACTIVITY_EDGE__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.ACTIVITY_EDGE__IN_STRUCTURED_NODE :
@@ -1100,10 +1101,8 @@
 				if (resolve)
 					return getWeight();
 				return basicGetWeight();
-			case UMLPackage.ACTIVITY_EDGE__ACTIVITY :
-				if (resolve)
-					return getActivity();
-				return basicGetActivity();
+			case UMLPackage.ACTIVITY_EDGE__IN_GROUP :
+				return getInGroups();
 		}
 		return eDynamicGet(featureID, resolve, coreType);
 	}
@@ -1144,6 +1143,9 @@
 			case UMLPackage.ACTIVITY_EDGE__IS_LEAF :
 				setIsLeaf((Boolean) newValue);
 				return;
+			case UMLPackage.ACTIVITY_EDGE__ACTIVITY :
+				setActivity((Activity) newValue);
+				return;
 			case UMLPackage.ACTIVITY_EDGE__GUARD :
 				setGuard((ValueSpecification) newValue);
 				return;
@@ -1172,9 +1174,6 @@
 			case UMLPackage.ACTIVITY_EDGE__WEIGHT :
 				setWeight((ValueSpecification) newValue);
 				return;
-			case UMLPackage.ACTIVITY_EDGE__ACTIVITY :
-				setActivity((Activity) newValue);
-				return;
 		}
 		eDynamicSet(featureID, newValue);
 	}
@@ -1208,6 +1207,9 @@
 			case UMLPackage.ACTIVITY_EDGE__IS_LEAF :
 				setIsLeaf(IS_LEAF_EDEFAULT);
 				return;
+			case UMLPackage.ACTIVITY_EDGE__ACTIVITY :
+				setActivity((Activity) null);
+				return;
 			case UMLPackage.ACTIVITY_EDGE__GUARD :
 				setGuard((ValueSpecification) null);
 				return;
@@ -1232,9 +1234,6 @@
 			case UMLPackage.ACTIVITY_EDGE__WEIGHT :
 				setWeight((ValueSpecification) null);
 				return;
-			case UMLPackage.ACTIVITY_EDGE__ACTIVITY :
-				setActivity((Activity) null);
-				return;
 		}
 		eDynamicUnset(featureID);
 	}
@@ -1276,10 +1275,10 @@
 				return isSetRedefinedElements();
 			case UMLPackage.ACTIVITY_EDGE__REDEFINITION_CONTEXT :
 				return isSetRedefinitionContexts();
+			case UMLPackage.ACTIVITY_EDGE__ACTIVITY :
+				return basicGetActivity() != null;
 			case UMLPackage.ACTIVITY_EDGE__GUARD :
 				return guard != null;
-			case UMLPackage.ACTIVITY_EDGE__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.ACTIVITY_EDGE__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.ACTIVITY_EDGE__IN_STRUCTURED_NODE :
@@ -1294,8 +1293,8 @@
 				return target != null;
 			case UMLPackage.ACTIVITY_EDGE__WEIGHT :
 				return weight != null;
-			case UMLPackage.ACTIVITY_EDGE__ACTIVITY :
-				return basicGetActivity() != null;
+			case UMLPackage.ACTIVITY_EDGE__IN_GROUP :
+				return isSetInGroups();
 		}
 		return eDynamicIsSet(featureID);
 	}
@@ -1392,10 +1391,6 @@
 				return allOwnedElements();
 			case UMLPackage.ACTIVITY_EDGE___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.ACTIVITY_EDGE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACTIVITY_EDGE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1404,6 +1399,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ACTIVITY_EDGE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACTIVITY_EDGE___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.ACTIVITY_EDGE___CREATE_USAGE__NAMEDELEMENT :
@@ -1464,14 +1463,14 @@
 	 */
 	@Override
 	public Element basicGetOwner() {
-		StructuredActivityNode inStructuredNode = basicGetInStructuredNode();
-		if (inStructuredNode != null) {
-			return inStructuredNode;
-		}
 		Activity activity = basicGetActivity();
 		if (activity != null) {
 			return activity;
 		}
+		StructuredActivityNode inStructuredNode = basicGetInStructuredNode();
+		if (inStructuredNode != null) {
+			return inStructuredNode;
+		}
 		return super.basicGetOwner();
 	}
 
@@ -1482,9 +1481,8 @@
 	 */
 	@Override
 	public boolean isSetOwner() {
-		return super.isSetOwner()
-			|| eIsSet(UMLPackage.ACTIVITY_EDGE__IN_STRUCTURED_NODE)
-			|| eIsSet(UMLPackage.ACTIVITY_EDGE__ACTIVITY);
+		return super.isSetOwner() || eIsSet(UMLPackage.ACTIVITY_EDGE__ACTIVITY)
+			|| eIsSet(UMLPackage.ACTIVITY_EDGE__IN_STRUCTURED_NODE);
 	}
 
 	/**
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityGroupImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityGroupImpl.java
index 2b1348d..828e6c2 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityGroupImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityGroupImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ActivityGroupImpl.java,v 1.23 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -62,12 +61,12 @@
  * <p>
  * The following features are implemented:
  * <ul>
+ *   <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityGroupImpl#getContainedEdges <em>Contained Edge</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityGroupImpl#getContainedNodes <em>Contained Node</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityGroupImpl#getOwner <em>Owner</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityGroupImpl#getSubgroups <em>Subgroup</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityGroupImpl#getOwnedElements <em>Owned Element</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityGroupImpl#getSuperGroup <em>Super Group</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityGroupImpl#getContainedEdges <em>Contained Edge</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityGroupImpl#getInActivity <em>In Activity</em>}</li>
  * </ul>
  * </p>
@@ -297,42 +296,40 @@
 	 * @generated
 	 */
 	public Activity getInActivity() {
-		if (eContainerFeatureID() != UMLPackage.ACTIVITY_GROUP__IN_ACTIVITY)
-			return null;
-		return (Activity) eContainer();
+		Activity inActivity = basicGetInActivity();
+		return inActivity != null && inActivity.eIsProxy()
+			? (Activity) eResolveProxy((InternalEObject) inActivity)
+			: inActivity;
 	}
 
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @generated
+	 * @generated NOT
 	 */
 	public Activity basicGetInActivity() {
-		if (eContainerFeatureID() != UMLPackage.ACTIVITY_GROUP__IN_ACTIVITY)
-			return null;
-		return (Activity) eInternalContainer();
+		InternalEObject eInternalContainer = eInternalContainer();
+		return eInternalContainer instanceof Activity
+			? (Activity) eInternalContainer
+			: null;
+	}
+
+	public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) {
+		InternalEObject eInternalContainer = eInternalContainer();
+		if (eInternalContainer instanceof Activity) {
+			return ((InternalEList<ActivityGroup>) ((Activity) eInternalContainer)
+				.getGroups()).basicRemove(this, msgs);
+		}
+		return super.eBasicRemoveFromContainer(msgs);
 	}
 
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetInActivity(Activity newInActivity,
-			NotificationChain msgs) {
-		msgs = eBasicSetContainer((InternalEObject) newInActivity,
-			UMLPackage.ACTIVITY_GROUP__IN_ACTIVITY, msgs);
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
+	 * @generated NOT
 	 */
 	public void setInActivity(Activity newInActivity) {
-		if (newInActivity != eInternalContainer()
-			|| (eContainerFeatureID() != UMLPackage.ACTIVITY_GROUP__IN_ACTIVITY && newInActivity != null)) {
+		if (newInActivity != eInternalContainer()) {
 			if (EcoreUtil.isAncestor(this, newInActivity))
 				throw new IllegalArgumentException(
 					"Recursive containment not allowed for " + toString()); //$NON-NLS-1$
@@ -340,9 +337,11 @@
 			if (eInternalContainer() != null)
 				msgs = eBasicRemoveFromContainer(msgs);
 			if (newInActivity != null)
-				msgs = ((InternalEObject) newInActivity).eInverseAdd(this,
-					UMLPackage.ACTIVITY__GROUP, Activity.class, msgs);
-			msgs = basicSetInActivity(newInActivity, msgs);
+				msgs = ((InternalEList<ActivityGroup>) newInActivity
+					.getOwnedGroups()).basicAdd(this, msgs);
+			msgs = eBasicSetContainer((InternalEObject) newInActivity,
+				InternalEObject.EOPPOSITE_FEATURE_BASE
+					- UMLPackage.ACTIVITY__OWNED_GROUP, msgs);
 			if (msgs != null)
 				msgs.dispatch();
 		} else if (eNotificationRequired())
@@ -389,72 +388,6 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public NotificationChain eInverseAdd(InternalEObject otherEnd,
-			int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case UMLPackage.ACTIVITY_GROUP__EANNOTATIONS :
-				return ((InternalEList<InternalEObject>) (InternalEList<?>) getEAnnotations())
-					.basicAdd(otherEnd, msgs);
-			case UMLPackage.ACTIVITY_GROUP__CLIENT_DEPENDENCY :
-				return ((InternalEList<InternalEObject>) (InternalEList<?>) getClientDependencies())
-					.basicAdd(otherEnd, msgs);
-			case UMLPackage.ACTIVITY_GROUP__IN_ACTIVITY :
-				if (eInternalContainer() != null)
-					msgs = eBasicRemoveFromContainer(msgs);
-				return basicSetInActivity((Activity) otherEnd, msgs);
-		}
-		return eDynamicInverseAdd(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd,
-			int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case UMLPackage.ACTIVITY_GROUP__EANNOTATIONS :
-				return ((InternalEList<?>) getEAnnotations()).basicRemove(
-					otherEnd, msgs);
-			case UMLPackage.ACTIVITY_GROUP__OWNED_COMMENT :
-				return ((InternalEList<?>) getOwnedComments()).basicRemove(
-					otherEnd, msgs);
-			case UMLPackage.ACTIVITY_GROUP__CLIENT_DEPENDENCY :
-				return ((InternalEList<?>) getClientDependencies())
-					.basicRemove(otherEnd, msgs);
-			case UMLPackage.ACTIVITY_GROUP__NAME_EXPRESSION :
-				return basicSetNameExpression(null, msgs);
-			case UMLPackage.ACTIVITY_GROUP__IN_ACTIVITY :
-				return basicSetInActivity(null, msgs);
-		}
-		return eDynamicInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eBasicRemoveFromContainerFeature(
-			NotificationChain msgs) {
-		switch (eContainerFeatureID()) {
-			case UMLPackage.ACTIVITY_GROUP__IN_ACTIVITY :
-				return eInternalContainer().eInverseRemove(this,
-					UMLPackage.ACTIVITY__GROUP, Activity.class, msgs);
-		}
-		return eDynamicBasicRemoveFromContainer(msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
@@ -484,6 +417,8 @@
 				return getQualifiedName();
 			case UMLPackage.ACTIVITY_GROUP__VISIBILITY :
 				return getVisibility();
+			case UMLPackage.ACTIVITY_GROUP__CONTAINED_EDGE :
+				return getContainedEdges();
 			case UMLPackage.ACTIVITY_GROUP__CONTAINED_NODE :
 				return getContainedNodes();
 			case UMLPackage.ACTIVITY_GROUP__IN_ACTIVITY :
@@ -496,8 +431,6 @@
 				if (resolve)
 					return getSuperGroup();
 				return basicGetSuperGroup();
-			case UMLPackage.ACTIVITY_GROUP__CONTAINED_EDGE :
-				return getContainedEdges();
 		}
 		return eDynamicGet(featureID, resolve, coreType);
 	}
@@ -606,6 +539,8 @@
 					: !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName());
 			case UMLPackage.ACTIVITY_GROUP__VISIBILITY :
 				return isSetVisibility();
+			case UMLPackage.ACTIVITY_GROUP__CONTAINED_EDGE :
+				return isSetContainedEdges();
 			case UMLPackage.ACTIVITY_GROUP__CONTAINED_NODE :
 				return isSetContainedNodes();
 			case UMLPackage.ACTIVITY_GROUP__IN_ACTIVITY :
@@ -614,8 +549,6 @@
 				return isSetSubgroups();
 			case UMLPackage.ACTIVITY_GROUP__SUPER_GROUP :
 				return isSetSuperGroup();
-			case UMLPackage.ACTIVITY_GROUP__CONTAINED_EDGE :
-				return isSetContainedEdges();
 		}
 		return eDynamicIsSet(featureID);
 	}
@@ -712,10 +645,6 @@
 				return allOwnedElements();
 			case UMLPackage.ACTIVITY_GROUP___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.ACTIVITY_GROUP___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACTIVITY_GROUP___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -724,6 +653,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ACTIVITY_GROUP___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACTIVITY_GROUP___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.ACTIVITY_GROUP___CREATE_USAGE__NAMEDELEMENT :
@@ -745,16 +678,16 @@
 				return getQualifiedName();
 			case UMLPackage.ACTIVITY_GROUP___SEPARATOR :
 				return separator();
-			case UMLPackage.ACTIVITY_GROUP___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP :
-				return validateNodesAndEdges(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACTIVITY_GROUP___VALIDATE_GROUP_OWNED__DIAGNOSTICCHAIN_MAP :
 				return validateGroupOwned((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACTIVITY_GROUP___VALIDATE_NOT_CONTAINED__DIAGNOSTICCHAIN_MAP :
 				return validateNotContained((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ACTIVITY_GROUP___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP :
+				return validateNodesAndEdges(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityImpl.java
index 1be35f1..4a75095 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ActivityImpl.java,v 1.38 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -34,13 +33,13 @@
 
 import org.eclipse.emf.ecore.resource.Resource;
 
+//import org.eclipse.emf.ecore.util.EObjectContainmentEList;
 import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
 import org.eclipse.emf.ecore.util.InternalEList;
 
 import org.eclipse.uml2.common.util.CacheAdapter;
-import org.eclipse.uml2.common.util.DerivedEObjectEList;
 import org.eclipse.uml2.common.util.DerivedUnionEObjectEList;
-import org.eclipse.uml2.common.util.SubsetSupersetEObjectContainmentWithInverseEList;
+import org.eclipse.uml2.common.util.SubsetSupersetEObjectContainmentEList;
 import org.eclipse.uml2.common.util.SubsetSupersetEObjectResolvingEList;
 
 import org.eclipse.uml2.uml.Activity;
@@ -97,14 +96,16 @@
  * <ul>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityImpl#getOwnedElements <em>Owned Element</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityImpl#getOwnedMembers <em>Owned Member</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityImpl#getGroups <em>Group</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityImpl#getNodes <em>Node</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityImpl#getOwnedGroups <em>Owned Group</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityImpl#getEdges <em>Edge</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityImpl#getStructuredNodes <em>Structured Node</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityImpl#getVariables <em>Variable</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityImpl#getGroups <em>Group</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityImpl#getOwnedNodes <em>Owned Node</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityImpl#isReadOnly <em>Is Read Only</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityImpl#isSingleExecution <em>Is Single Execution</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityImpl#getPartitions <em>Partition</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityImpl#getStructuredNodes <em>Structured Node</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityImpl#getNodes <em>Node</em>}</li>
  * </ul>
  * </p>
  *
@@ -115,24 +116,24 @@
 		implements Activity {
 
 	/**
-	 * The cached value of the '{@link #getGroups() <em>Group</em>}' containment reference list.
+	 * The cached value of the '{@link #getGroups() <em>Group</em>}' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @see #getGroups()
-	 * @generated
+	 * @generated NOT
 	 * @ordered
 	 */
 	protected EList<ActivityGroup> groups;
 
 	/**
-	 * The cached value of the '{@link #getNodes() <em>Node</em>}' containment reference list.
+	 * The cached value of the '{@link #getOwnedGroups() <em>Owned Group</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getNodes()
+	 * @see #getOwnedGroups()
 	 * @generated
 	 * @ordered
 	 */
-	protected EList<ActivityNode> nodes;
+	protected EList<ActivityGroup> ownedGroups;
 
 	/**
 	 * The cached value of the '{@link #getEdges() <em>Edge</em>}' containment reference list.
@@ -155,6 +156,26 @@
 	protected EList<Variable> variables;
 
 	/**
+	 * The cached value of the '{@link #getNodes() <em>Node</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getNodes()
+	 * @generated NOT
+	 * @ordered
+	 */
+	protected EList<ActivityNode> nodes;
+
+	/**
+	 * The cached value of the '{@link #getOwnedNodes() <em>Owned Node</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOwnedNodes()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<ActivityNode> ownedNodes;
+
+	/**
 	 * The default value of the '{@link #isReadOnly() <em>Is Read Only</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -205,6 +226,16 @@
 	protected EList<ActivityPartition> partitions;
 
 	/**
+	 * The cached value of the '{@link #getStructuredNodes() <em>Structured Node</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getStructuredNodes()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<StructuredActivityNode> structuredNodes;
+
+	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -280,13 +311,13 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @generated
+	 * @generated NOT
 	 */
 	public EList<ActivityGroup> getGroups() {
 		if (groups == null) {
-			groups = new SubsetSupersetEObjectContainmentWithInverseEList.Resolving<ActivityGroup>(
+			groups = new SubsetSupersetEObjectResolvingEList<ActivityGroup>(
 				ActivityGroup.class, this, UMLPackage.ACTIVITY__GROUP, null,
-				GROUP_ESUBSETS, UMLPackage.ACTIVITY_GROUP__IN_ACTIVITY);
+				GROUP_ESUBSETS);
 		}
 		return groups;
 	}
@@ -294,13 +325,13 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @generated
+	 * @generated NOT
 	 */
 	public EList<ActivityNode> getNodes() {
 		if (nodes == null) {
-			nodes = new EObjectContainmentWithInverseEList.Resolving<ActivityNode>(
-				ActivityNode.class, this, UMLPackage.ACTIVITY__NODE,
-				UMLPackage.ACTIVITY_NODE__ACTIVITY);
+			nodes = new SubsetSupersetEObjectResolvingEList<ActivityNode>(
+				ActivityNode.class, this, UMLPackage.ACTIVITY__NODE, null,
+				NODE_ESUBSETS);
 		}
 		return nodes;
 	}
@@ -310,30 +341,16 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public ActivityNode createNode(String name, EClass eClass) {
-		ActivityNode newNode = (ActivityNode) create(eClass);
-		getNodes().add(newNode);
-		if (name != null)
-			newNode.setName(name);
-		return newNode;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
 	public ActivityNode getNode(String name) {
-		return getNode(name, false, null, false);
+		return getNode(name, false, null);
 	}
 
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @generated
+	 * @generated NOT
 	 */
-	public ActivityNode getNode(String name, boolean ignoreCase, EClass eClass,
-			boolean createOnDemand) {
+	public ActivityNode getNode(String name, boolean ignoreCase, EClass eClass) {
 		nodeLoop : for (ActivityNode node : getNodes()) {
 			if (eClass != null && !eClass.isInstance(node))
 				continue nodeLoop;
@@ -343,9 +360,7 @@
 				continue nodeLoop;
 			return node;
 		}
-		return createOnDemand && eClass != null
-			? createNode(name, eClass)
-			: null;
+		return null;
 	}
 
 	/**
@@ -405,29 +420,37 @@
 	 * @generated NOT
 	 */
 	public EList<StructuredActivityNode> getStructuredNodes() {
-		CacheAdapter cache = getCacheAdapter();
-		if (cache != null) {
-			Resource eResource = eResource();
-			@SuppressWarnings("unchecked")
-			EList<StructuredActivityNode> structuredNodes = (EList<StructuredActivityNode>) cache
-				.get(eResource, this,
-					UMLPackage.Literals.ACTIVITY__STRUCTURED_NODE);
-			if (structuredNodes == null) {
-				cache
-					.put(
-						eResource,
-						this,
-						UMLPackage.Literals.ACTIVITY__STRUCTURED_NODE,
-						structuredNodes = new DerivedEObjectEList<StructuredActivityNode>(
-							StructuredActivityNode.class, this,
-							UMLPackage.ACTIVITY__STRUCTURED_NODE,
-							STRUCTURED_NODE_ESUPERSETS));
-			}
-			return structuredNodes;
+		if (structuredNodes == null) {
+			structuredNodes = new SubsetSupersetEObjectContainmentEList.Resolving<StructuredActivityNode>(
+				StructuredActivityNode.class, this,
+				UMLPackage.ACTIVITY__STRUCTURED_NODE,
+				STRUCTURED_NODE_ESUPERSETS, null);
 		}
-		return new DerivedEObjectEList<StructuredActivityNode>(
-			StructuredActivityNode.class, this,
-			UMLPackage.ACTIVITY__STRUCTURED_NODE, STRUCTURED_NODE_ESUPERSETS);
+		return structuredNodes;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public StructuredActivityNode createStructuredNode(String name,
+			EClass eClass) {
+		StructuredActivityNode newStructuredNode = (StructuredActivityNode) create(eClass);
+		getStructuredNodes().add(newStructuredNode);
+		if (name != null)
+			newStructuredNode.setName(name);
+		return newStructuredNode;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public StructuredActivityNode createStructuredNode(String name) {
+		return createStructuredNode(name,
+			UMLPackage.Literals.STRUCTURED_ACTIVITY_NODE);
 	}
 
 	/**
@@ -669,15 +692,9 @@
 			case UMLPackage.ACTIVITY__EDGE :
 				return ((InternalEList<InternalEObject>) (InternalEList<?>) getEdges())
 					.basicAdd(otherEnd, msgs);
-			case UMLPackage.ACTIVITY__GROUP :
-				return ((InternalEList<InternalEObject>) (InternalEList<?>) getGroups())
-					.basicAdd(otherEnd, msgs);
 			case UMLPackage.ACTIVITY__VARIABLE :
 				return ((InternalEList<InternalEObject>) (InternalEList<?>) getVariables())
 					.basicAdd(otherEnd, msgs);
-			case UMLPackage.ACTIVITY__NODE :
-				return ((InternalEList<InternalEObject>) (InternalEList<?>) getNodes())
-					.basicAdd(otherEnd, msgs);
 		}
 		return eDynamicInverseAdd(otherEnd, featureID, msgs);
 	}
@@ -767,18 +784,21 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.ACTIVITY__SPECIFICATION :
 				return basicSetSpecification(null, msgs);
+			case UMLPackage.ACTIVITY__OWNED_GROUP :
+				return ((InternalEList<?>) getOwnedGroups()).basicRemove(
+					otherEnd, msgs);
 			case UMLPackage.ACTIVITY__EDGE :
 				return ((InternalEList<?>) getEdges()).basicRemove(otherEnd,
 					msgs);
-			case UMLPackage.ACTIVITY__GROUP :
-				return ((InternalEList<?>) getGroups()).basicRemove(otherEnd,
-					msgs);
 			case UMLPackage.ACTIVITY__VARIABLE :
 				return ((InternalEList<?>) getVariables()).basicRemove(
 					otherEnd, msgs);
-			case UMLPackage.ACTIVITY__NODE :
-				return ((InternalEList<?>) getNodes()).basicRemove(otherEnd,
-					msgs);
+			case UMLPackage.ACTIVITY__OWNED_NODE :
+				return ((InternalEList<?>) getOwnedNodes()).basicRemove(
+					otherEnd, msgs);
+			case UMLPackage.ACTIVITY__STRUCTURED_NODE :
+				return ((InternalEList<?>) getStructuredNodes()).basicRemove(
+					otherEnd, msgs);
 		}
 		return eDynamicInverseRemove(otherEnd, featureID, msgs);
 	}
@@ -933,20 +953,24 @@
 				if (resolve)
 					return getSpecification();
 				return basicGetSpecification();
+			case UMLPackage.ACTIVITY__OWNED_GROUP :
+				return getOwnedGroups();
 			case UMLPackage.ACTIVITY__EDGE :
 				return getEdges();
-			case UMLPackage.ACTIVITY__GROUP :
-				return getGroups();
-			case UMLPackage.ACTIVITY__STRUCTURED_NODE :
-				return getStructuredNodes();
 			case UMLPackage.ACTIVITY__VARIABLE :
 				return getVariables();
+			case UMLPackage.ACTIVITY__GROUP :
+				return getGroups();
+			case UMLPackage.ACTIVITY__OWNED_NODE :
+				return getOwnedNodes();
 			case UMLPackage.ACTIVITY__IS_READ_ONLY :
 				return isReadOnly();
 			case UMLPackage.ACTIVITY__IS_SINGLE_EXECUTION :
 				return isSingleExecution();
 			case UMLPackage.ACTIVITY__PARTITION :
 				return getPartitions();
+			case UMLPackage.ACTIVITY__STRUCTURED_NODE :
+				return getStructuredNodes();
 			case UMLPackage.ACTIVITY__NODE :
 				return getNodes();
 		}
@@ -1147,20 +1171,30 @@
 			case UMLPackage.ACTIVITY__SPECIFICATION :
 				setSpecification((BehavioralFeature) newValue);
 				return;
+			case UMLPackage.ACTIVITY__OWNED_GROUP :
+				getOwnedGroups().clear();
+				getOwnedGroups().addAll(
+					(Collection<? extends ActivityGroup>) newValue);
+				return;
 			case UMLPackage.ACTIVITY__EDGE :
 				getEdges().clear();
 				getEdges()
 					.addAll((Collection<? extends ActivityEdge>) newValue);
 				return;
+			case UMLPackage.ACTIVITY__VARIABLE :
+				getVariables().clear();
+				getVariables()
+					.addAll((Collection<? extends Variable>) newValue);
+				return;
 			case UMLPackage.ACTIVITY__GROUP :
 				getGroups().clear();
 				getGroups().addAll(
 					(Collection<? extends ActivityGroup>) newValue);
 				return;
-			case UMLPackage.ACTIVITY__VARIABLE :
-				getVariables().clear();
-				getVariables()
-					.addAll((Collection<? extends Variable>) newValue);
+			case UMLPackage.ACTIVITY__OWNED_NODE :
+				getOwnedNodes().clear();
+				getOwnedNodes().addAll(
+					(Collection<? extends ActivityNode>) newValue);
 				return;
 			case UMLPackage.ACTIVITY__IS_READ_ONLY :
 				setIsReadOnly((Boolean) newValue);
@@ -1173,6 +1207,11 @@
 				getPartitions().addAll(
 					(Collection<? extends ActivityPartition>) newValue);
 				return;
+			case UMLPackage.ACTIVITY__STRUCTURED_NODE :
+				getStructuredNodes().clear();
+				getStructuredNodes().addAll(
+					(Collection<? extends StructuredActivityNode>) newValue);
+				return;
 			case UMLPackage.ACTIVITY__NODE :
 				getNodes().clear();
 				getNodes()
@@ -1319,14 +1358,20 @@
 			case UMLPackage.ACTIVITY__SPECIFICATION :
 				setSpecification((BehavioralFeature) null);
 				return;
+			case UMLPackage.ACTIVITY__OWNED_GROUP :
+				getOwnedGroups().clear();
+				return;
 			case UMLPackage.ACTIVITY__EDGE :
 				getEdges().clear();
 				return;
+			case UMLPackage.ACTIVITY__VARIABLE :
+				getVariables().clear();
+				return;
 			case UMLPackage.ACTIVITY__GROUP :
 				getGroups().clear();
 				return;
-			case UMLPackage.ACTIVITY__VARIABLE :
-				getVariables().clear();
+			case UMLPackage.ACTIVITY__OWNED_NODE :
+				getOwnedNodes().clear();
 				return;
 			case UMLPackage.ACTIVITY__IS_READ_ONLY :
 				setIsReadOnly(IS_READ_ONLY_EDEFAULT);
@@ -1337,6 +1382,9 @@
 			case UMLPackage.ACTIVITY__PARTITION :
 				getPartitions().clear();
 				return;
+			case UMLPackage.ACTIVITY__STRUCTURED_NODE :
+				getStructuredNodes().clear();
+				return;
 			case UMLPackage.ACTIVITY__NODE :
 				getNodes().clear();
 				return;
@@ -1481,22 +1529,26 @@
 					&& !redefinedBehaviors.isEmpty();
 			case UMLPackage.ACTIVITY__SPECIFICATION :
 				return specification != null;
+			case UMLPackage.ACTIVITY__OWNED_GROUP :
+				return ownedGroups != null && !ownedGroups.isEmpty();
 			case UMLPackage.ACTIVITY__EDGE :
 				return edges != null && !edges.isEmpty();
-			case UMLPackage.ACTIVITY__GROUP :
-				return groups != null && !groups.isEmpty();
-			case UMLPackage.ACTIVITY__STRUCTURED_NODE :
-				return !getStructuredNodes().isEmpty();
 			case UMLPackage.ACTIVITY__VARIABLE :
 				return variables != null && !variables.isEmpty();
+			case UMLPackage.ACTIVITY__GROUP :
+				return !getGroups().isEmpty();
+			case UMLPackage.ACTIVITY__OWNED_NODE :
+				return ownedNodes != null && !ownedNodes.isEmpty();
 			case UMLPackage.ACTIVITY__IS_READ_ONLY :
 				return ((eFlags & IS_READ_ONLY_EFLAG) != 0) != IS_READ_ONLY_EDEFAULT;
 			case UMLPackage.ACTIVITY__IS_SINGLE_EXECUTION :
 				return ((eFlags & IS_SINGLE_EXECUTION_EFLAG) != 0) != IS_SINGLE_EXECUTION_EDEFAULT;
 			case UMLPackage.ACTIVITY__PARTITION :
 				return partitions != null && !partitions.isEmpty();
+			case UMLPackage.ACTIVITY__STRUCTURED_NODE :
+				return structuredNodes != null && !structuredNodes.isEmpty();
 			case UMLPackage.ACTIVITY__NODE :
-				return nodes != null && !nodes.isEmpty();
+				return !getNodes().isEmpty();
 		}
 		return eDynamicIsSet(featureID);
 	}
@@ -1593,10 +1645,6 @@
 				return allOwnedElements();
 			case UMLPackage.ACTIVITY___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.ACTIVITY___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACTIVITY___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1605,6 +1653,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ACTIVITY___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACTIVITY___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.ACTIVITY___CREATE_USAGE__NAMEDELEMENT :
@@ -1694,14 +1746,6 @@
 				return isTemplate();
 			case UMLPackage.ACTIVITY___PARAMETERABLE_ELEMENTS :
 				return parameterableElements();
-			case UMLPackage.ACTIVITY___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
-				return validateSpecializeType(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.ACTIVITY___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
-				return validateMapsToGeneralizationSet(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACTIVITY___VALIDATE_NON_FINAL_PARENTS__DIAGNOSTICCHAIN_MAP :
 				return validateNonFinalParents(
 					(DiagnosticChain) arguments.get(0),
@@ -1710,6 +1754,14 @@
 				return validateNoCyclesInGeneralization(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ACTIVITY___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
+				return validateSpecializeType(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ACTIVITY___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
+				return validateMapsToGeneralizationSet(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACTIVITY___GET_ALL_ATTRIBUTES :
 				return getAllAttributes();
 			case UMLPackage.ACTIVITY___GET_ALL_OPERATIONS :
@@ -1781,13 +1833,6 @@
 				return getExtensions();
 			case UMLPackage.ACTIVITY___GET_SUPER_CLASSES :
 				return getSuperClasses();
-			case UMLPackage.ACTIVITY___VALIDATE_MOST_ONE_BEHAVIOUR__DIAGNOSTICCHAIN_MAP :
-				return validateMostOneBehaviour(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.ACTIVITY___VALIDATE_MUST_REALIZE__DIAGNOSTICCHAIN_MAP :
-				return validateMustRealize((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACTIVITY___VALIDATE_PARAMETERS_MATCH__DIAGNOSTICCHAIN_MAP :
 				return validateParametersMatch(
 					(DiagnosticChain) arguments.get(0),
@@ -1796,8 +1841,19 @@
 				return validateFeatureOfContextClassifier(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ACTIVITY___VALIDATE_MUST_REALIZE__DIAGNOSTICCHAIN_MAP :
+				return validateMustRealize((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ACTIVITY___VALIDATE_MOST_ONE_BEHAVIOUR__DIAGNOSTICCHAIN_MAP :
+				return validateMostOneBehaviour(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACTIVITY___GET_CONTEXT :
 				return getContext();
+			case UMLPackage.ACTIVITY___VALIDATE_ACTIVITY_PARAMETER_NODE__DIAGNOSTICCHAIN_MAP :
+				return validateActivityParameterNode(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACTIVITY___VALIDATE_AUTONOMOUS__DIAGNOSTICCHAIN_MAP :
 				return validateAutonomous((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
@@ -1805,12 +1861,6 @@
 				return validateNoSupergroups(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.ACTIVITY___VALIDATE_ACTIVITY_PARAMETER_NODE__DIAGNOSTICCHAIN_MAP :
-				return validateActivityParameterNode(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.ACTIVITY___GET_STRUCTURED_NODES :
-				return getStructuredNodes();
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
@@ -1897,22 +1947,42 @@
 		UMLPackage.ACTIVITY__OWNED_PARAMETER_SET, UMLPackage.ACTIVITY__VARIABLE};
 
 	/**
-	 * The array of subset feature identifiers for the '{@link #getGroups() <em>Group</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getGroups()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final int[] GROUP_ESUBSETS = new int[]{UMLPackage.ACTIVITY__PARTITION};
-
-	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated NOT
 	 */
-	public ActivityGroup createGroup(EClass eClass) {
-		return createGroup(null, eClass);
+	public EList<ActivityGroup> getOwnedGroups() {
+		if (ownedGroups == null) {
+			ownedGroups = new SubsetSupersetEObjectContainmentEList.Resolving<ActivityGroup>(
+				ActivityGroup.class, this, UMLPackage.ACTIVITY__OWNED_GROUP,
+				OWNED_GROUP_ESUPERSETS, OWNED_GROUP_ESUBSETS);
+		}
+		return ownedGroups;
+	}
+
+	/**
+	 * The array of subset feature identifiers for the '{@link #getOwnedGroups() <em>Owned Group</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOwnedGroups()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int[] OWNED_GROUP_ESUBSETS = new int[]{UMLPackage.ACTIVITY__PARTITION};
+
+	protected static final int[] OWNED_GROUP_ESUPERSETS = new int[]{UMLPackage.ACTIVITY__GROUP};
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ActivityGroup createOwnedGroup(String name, EClass eClass) {
+		ActivityGroup newOwnedGroup = (ActivityGroup) create(eClass);
+		getOwnedGroups().add(newOwnedGroup);
+		if (name != null)
+			newOwnedGroup.setName(name);
+		return newOwnedGroup;
 	}
 
 	/**
@@ -1920,12 +1990,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public ActivityGroup createGroup(String name, EClass eClass) {
-		ActivityGroup newGroup = (ActivityGroup) create(eClass);
-		getGroups().add(newGroup);
-		if (name != null)
-			newGroup.setName(name);
-		return newGroup;
+	public ActivityGroup getOwnedGroup(String name) {
+		return getOwnedGroup(name, false, null, false);
 	}
 
 	/**
@@ -1933,17 +1999,48 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public ActivityGroup getOwnedGroup(String name, boolean ignoreCase,
+			EClass eClass, boolean createOnDemand) {
+		ownedGroupLoop : for (ActivityGroup ownedGroup : getOwnedGroups()) {
+			if (eClass != null && !eClass.isInstance(ownedGroup))
+				continue ownedGroupLoop;
+			if (name != null && !(ignoreCase
+				? name.equalsIgnoreCase(ownedGroup.getName())
+				: name.equals(ownedGroup.getName())))
+				continue ownedGroupLoop;
+			return ownedGroup;
+		}
+		return createOnDemand && eClass != null
+			? createOwnedGroup(name, eClass)
+			: null;
+	}
+
+	/**
+	 * The array of subset feature identifiers for the '{@link #getGroups() <em>Group</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getGroups()
+	 * @generated NOT
+	 * @ordered
+	 */
+	protected static final int[] GROUP_ESUBSETS = new int[]{
+		UMLPackage.ACTIVITY__OWNED_GROUP, UMLPackage.ACTIVITY__STRUCTURED_NODE};
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public ActivityGroup getGroup(String name) {
-		return getGroup(name, false, null, false);
+		return getGroup(name, false, null);
 	}
 
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @generated
+	 * @generated NOT
 	 */
-	public ActivityGroup getGroup(String name, boolean ignoreCase,
-			EClass eClass, boolean createOnDemand) {
+	public ActivityGroup getGroup(String name, boolean ignoreCase, EClass eClass) {
 		groupLoop : for (ActivityGroup group : getGroups()) {
 			if (eClass != null && !eClass.isInstance(group))
 				continue groupLoop;
@@ -1953,9 +2050,7 @@
 				continue groupLoop;
 			return group;
 		}
-		return createOnDemand && eClass != null
-			? createGroup(name, eClass)
-			: null;
+		return null;
 	}
 
 	/**
@@ -1963,7 +2058,7 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @see #getStructuredNodes()
-	 * @generated
+	 * @generated NOT
 	 * @ordered
 	 */
 	protected static final int[] STRUCTURED_NODE_ESUPERSETS = new int[]{
@@ -1972,10 +2067,79 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @generated NOT
+	 */
+	public EList<ActivityNode> getOwnedNodes() {
+		if (ownedNodes == null) {
+			ownedNodes = new SubsetSupersetEObjectContainmentEList.Resolving<ActivityNode>(
+				ActivityNode.class, this, UMLPackage.ACTIVITY__OWNED_NODE,
+				OWNED_NODE_ESUPERSETS, null);
+		}
+		return ownedNodes;
+	}
+
+	protected static final int[] OWNED_NODE_ESUPERSETS = new int[]{UMLPackage.ACTIVITY__NODE};
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ActivityNode createOwnedNode(String name, EClass eClass) {
+		ActivityNode newOwnedNode = (ActivityNode) create(eClass);
+		getOwnedNodes().add(newOwnedNode);
+		if (name != null)
+			newOwnedNode.setName(name);
+		return newOwnedNode;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ActivityNode getOwnedNode(String name) {
+		return getOwnedNode(name, false, null, false);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ActivityNode getOwnedNode(String name, boolean ignoreCase,
+			EClass eClass, boolean createOnDemand) {
+		ownedNodeLoop : for (ActivityNode ownedNode : getOwnedNodes()) {
+			if (eClass != null && !eClass.isInstance(ownedNode))
+				continue ownedNodeLoop;
+			if (name != null && !(ignoreCase
+				? name.equalsIgnoreCase(ownedNode.getName())
+				: name.equals(ownedNode.getName())))
+				continue ownedNodeLoop;
+			return ownedNode;
+		}
+		return createOnDemand && eClass != null
+			? createOwnedNode(name, eClass)
+			: null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
 	 * @generated
 	 */
 	public StructuredActivityNode getStructuredNode(String name) {
-		return getStructuredNode(name, false, null);
+		return getStructuredNode(name, false, null, false);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated NOT
+	 */
+	public StructuredActivityNode getStructuredNode(String name,
+			boolean ignoreCase, EClass eClass) {
+		return getStructuredNode(name, ignoreCase, eClass, false);
 	}
 
 	/**
@@ -1984,7 +2148,7 @@
 	 * @generated
 	 */
 	public StructuredActivityNode getStructuredNode(String name,
-			boolean ignoreCase, EClass eClass) {
+			boolean ignoreCase, EClass eClass, boolean createOnDemand) {
 		structuredNodeLoop : for (StructuredActivityNode structuredNode : getStructuredNodes()) {
 			if (eClass != null && !eClass.isInstance(structuredNode))
 				continue structuredNodeLoop;
@@ -1994,7 +2158,9 @@
 				continue structuredNodeLoop;
 			return structuredNode;
 		}
-		return null;
+		return createOnDemand && eClass != null
+			? createStructuredNode(name, eClass)
+			: null;
 	}
 
 	/**
@@ -2005,7 +2171,18 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected static final int[] PARTITION_ESUPERSETS = new int[]{UMLPackage.ACTIVITY__GROUP};
+	protected static final int[] PARTITION_ESUPERSETS = new int[]{UMLPackage.ACTIVITY__OWNED_GROUP};
+
+	/**
+	 * The array of subset feature identifiers for the '{@link #getNodes() <em>Node</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getNodes()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int[] NODE_ESUBSETS = new int[]{
+		UMLPackage.ACTIVITY__OWNED_NODE, UMLPackage.ACTIVITY__STRUCTURED_NODE};
 
 	/**
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityNodeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityNodeImpl.java
index 19fe41c..c21161a 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityNodeImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityNodeImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ActivityNodeImpl.java,v 1.25 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -363,42 +362,40 @@
 	 * @generated
 	 */
 	public Activity getActivity() {
-		if (eContainerFeatureID() != UMLPackage.ACTIVITY_NODE__ACTIVITY)
-			return null;
-		return (Activity) eContainer();
+		Activity activity = basicGetActivity();
+		return activity != null && activity.eIsProxy()
+			? (Activity) eResolveProxy((InternalEObject) activity)
+			: activity;
 	}
 
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @generated
+	 * @generated NOT
 	 */
 	public Activity basicGetActivity() {
-		if (eContainerFeatureID() != UMLPackage.ACTIVITY_NODE__ACTIVITY)
-			return null;
-		return (Activity) eInternalContainer();
+		InternalEObject eInternalContainer = eInternalContainer();
+		return eInternalContainer instanceof Activity
+			? (Activity) eInternalContainer
+			: null;
+	}
+
+	public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) {
+		InternalEObject eInternalContainer = eInternalContainer();
+		if (eInternalContainer instanceof Activity) {
+			return ((InternalEList<ActivityNode>) ((Activity) eInternalContainer)
+				.getNodes()).basicRemove(this, msgs);
+		}
+		return super.eBasicRemoveFromContainer(msgs);
 	}
 
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetActivity(Activity newActivity,
-			NotificationChain msgs) {
-		msgs = eBasicSetContainer((InternalEObject) newActivity,
-			UMLPackage.ACTIVITY_NODE__ACTIVITY, msgs);
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
+	 * @generated NOT
 	 */
 	public void setActivity(Activity newActivity) {
-		if (newActivity != eInternalContainer()
-			|| (eContainerFeatureID() != UMLPackage.ACTIVITY_NODE__ACTIVITY && newActivity != null)) {
+		if (newActivity != eInternalContainer()) {
 			if (EcoreUtil.isAncestor(this, newActivity))
 				throw new IllegalArgumentException(
 					"Recursive containment not allowed for " + toString()); //$NON-NLS-1$
@@ -406,9 +403,11 @@
 			if (eInternalContainer() != null)
 				msgs = eBasicRemoveFromContainer(msgs);
 			if (newActivity != null)
-				msgs = ((InternalEObject) newActivity).eInverseAdd(this,
-					UMLPackage.ACTIVITY__NODE, Activity.class, msgs);
-			msgs = basicSetActivity(newActivity, msgs);
+				msgs = ((InternalEList<ActivityNode>) newActivity
+					.getOwnedNodes()).basicAdd(this, msgs);
+			msgs = eBasicSetContainer((InternalEObject) newActivity,
+				InternalEObject.EOPPOSITE_FEATURE_BASE
+					- UMLPackage.ACTIVITY__OWNED_NODE, msgs);
 			if (msgs != null)
 				msgs.dispatch();
 		} else if (eNotificationRequired())
@@ -578,10 +577,6 @@
 			case UMLPackage.ACTIVITY_NODE__CLIENT_DEPENDENCY :
 				return ((InternalEList<InternalEObject>) (InternalEList<?>) getClientDependencies())
 					.basicAdd(otherEnd, msgs);
-			case UMLPackage.ACTIVITY_NODE__ACTIVITY :
-				if (eInternalContainer() != null)
-					msgs = eBasicRemoveFromContainer(msgs);
-				return basicSetActivity((Activity) otherEnd, msgs);
 			case UMLPackage.ACTIVITY_NODE__IN_PARTITION :
 				return ((InternalEList<InternalEObject>) (InternalEList<?>) getInPartitions())
 					.basicAdd(otherEnd, msgs);
@@ -623,8 +618,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.ACTIVITY_NODE__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.ACTIVITY_NODE__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.ACTIVITY_NODE__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -652,9 +645,6 @@
 	public NotificationChain eBasicRemoveFromContainerFeature(
 			NotificationChain msgs) {
 		switch (eContainerFeatureID()) {
-			case UMLPackage.ACTIVITY_NODE__ACTIVITY :
-				return eInternalContainer().eInverseRemove(this,
-					UMLPackage.ACTIVITY__NODE, Activity.class, msgs);
 			case UMLPackage.ACTIVITY_NODE__IN_STRUCTURED_NODE :
 				return eInternalContainer().eInverseRemove(this,
 					UMLPackage.STRUCTURED_ACTIVITY_NODE__NODE,
@@ -707,8 +697,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.ACTIVITY_NODE__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.ACTIVITY_NODE__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.ACTIVITY_NODE__IN_STRUCTURED_NODE :
@@ -721,6 +709,8 @@
 				return getOutgoings();
 			case UMLPackage.ACTIVITY_NODE__INCOMING :
 				return getIncomings();
+			case UMLPackage.ACTIVITY_NODE__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.ACTIVITY_NODE__REDEFINED_NODE :
 				return getRedefinedNodes();
 		}
@@ -892,8 +882,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.ACTIVITY_NODE__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.ACTIVITY_NODE__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.ACTIVITY_NODE__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.ACTIVITY_NODE__IN_STRUCTURED_NODE :
@@ -905,6 +893,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.ACTIVITY_NODE__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.ACTIVITY_NODE__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.ACTIVITY_NODE__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 		}
@@ -1003,10 +993,6 @@
 				return allOwnedElements();
 			case UMLPackage.ACTIVITY_NODE___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.ACTIVITY_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACTIVITY_NODE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1015,6 +1001,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ACTIVITY_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACTIVITY_NODE___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.ACTIVITY_NODE___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityParameterNodeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityParameterNodeImpl.java
index 0568cbd..c9c268b 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityParameterNodeImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityParameterNodeImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ActivityParameterNodeImpl.java,v 1.23 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -264,8 +263,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.ACTIVITY_PARAMETER_NODE__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.ACTIVITY_PARAMETER_NODE__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.ACTIVITY_PARAMETER_NODE__IN_STRUCTURED_NODE :
@@ -278,6 +275,8 @@
 				return getOutgoings();
 			case UMLPackage.ACTIVITY_PARAMETER_NODE__INCOMING :
 				return getIncomings();
+			case UMLPackage.ACTIVITY_PARAMETER_NODE__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.ACTIVITY_PARAMETER_NODE__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.ACTIVITY_PARAMETER_NODE__TYPE :
@@ -514,8 +513,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.ACTIVITY_PARAMETER_NODE__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.ACTIVITY_PARAMETER_NODE__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.ACTIVITY_PARAMETER_NODE__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.ACTIVITY_PARAMETER_NODE__IN_STRUCTURED_NODE :
@@ -527,6 +524,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.ACTIVITY_PARAMETER_NODE__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.ACTIVITY_PARAMETER_NODE__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.ACTIVITY_PARAMETER_NODE__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.ACTIVITY_PARAMETER_NODE__TYPE :
@@ -639,10 +638,6 @@
 				return allOwnedElements();
 			case UMLPackage.ACTIVITY_PARAMETER_NODE___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.ACTIVITY_PARAMETER_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACTIVITY_PARAMETER_NODE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -651,6 +646,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ACTIVITY_PARAMETER_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACTIVITY_PARAMETER_NODE___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.ACTIVITY_PARAMETER_NODE___CREATE_USAGE__NAMEDELEMENT :
@@ -696,43 +695,43 @@
 				return validateOwnedStructuredNode(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.ACTIVITY_PARAMETER_NODE___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP :
-				return validateInputOutputParameter(
+			case UMLPackage.ACTIVITY_PARAMETER_NODE___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP :
+				return validateObjectFlowEdges(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACTIVITY_PARAMETER_NODE___VALIDATE_SELECTION_BEHAVIOR__DIAGNOSTICCHAIN_MAP :
 				return validateSelectionBehavior(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.ACTIVITY_PARAMETER_NODE___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP :
-				return validateObjectFlowEdges(
+			case UMLPackage.ACTIVITY_PARAMETER_NODE___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP :
+				return validateInputOutputParameter(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.ACTIVITY_PARAMETER_NODE___VALIDATE_NO_OUTGOING_EDGES__DIAGNOSTICCHAIN_MAP :
-				return validateNoOutgoingEdges(
+			case UMLPackage.ACTIVITY_PARAMETER_NODE___VALIDATE_MAXIMUM_ONE_PARAMETER_NODE__DIAGNOSTICCHAIN_MAP :
+				return validateMaximumOneParameterNode(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACTIVITY_PARAMETER_NODE___VALIDATE_MAXIMUM_TWO_PARAMETER_NODES__DIAGNOSTICCHAIN_MAP :
 				return validateMaximumTwoParameterNodes(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.ACTIVITY_PARAMETER_NODE___VALIDATE_HAS_PARAMETERS__DIAGNOSTICCHAIN_MAP :
-				return validateHasParameters(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.ACTIVITY_PARAMETER_NODE___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP :
-				return validateSameType((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.ACTIVITY_PARAMETER_NODE___VALIDATE_MAXIMUM_ONE_PARAMETER_NODE__DIAGNOSTICCHAIN_MAP :
-				return validateMaximumOneParameterNode(
-					(DiagnosticChain) arguments.get(0),
+			case UMLPackage.ACTIVITY_PARAMETER_NODE___VALIDATE_NO_EDGES__DIAGNOSTICCHAIN_MAP :
+				return validateNoEdges((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACTIVITY_PARAMETER_NODE___VALIDATE_NO_INCOMING_EDGES__DIAGNOSTICCHAIN_MAP :
 				return validateNoIncomingEdges(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.ACTIVITY_PARAMETER_NODE___VALIDATE_NO_EDGES__DIAGNOSTICCHAIN_MAP :
-				return validateNoEdges((DiagnosticChain) arguments.get(0),
+			case UMLPackage.ACTIVITY_PARAMETER_NODE___VALIDATE_NO_OUTGOING_EDGES__DIAGNOSTICCHAIN_MAP :
+				return validateNoOutgoingEdges(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ACTIVITY_PARAMETER_NODE___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP :
+				return validateSameType((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ACTIVITY_PARAMETER_NODE___VALIDATE_HAS_PARAMETERS__DIAGNOSTICCHAIN_MAP :
+				return validateHasParameters(
+					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityPartitionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityPartitionImpl.java
index bebea7a..e0f5115 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityPartitionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityPartitionImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ActivityPartitionImpl.java,v 1.31 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -629,10 +628,6 @@
 			case UMLPackage.ACTIVITY_PARTITION__CLIENT_DEPENDENCY :
 				return ((InternalEList<InternalEObject>) (InternalEList<?>) getClientDependencies())
 					.basicAdd(otherEnd, msgs);
-			case UMLPackage.ACTIVITY_PARTITION__IN_ACTIVITY :
-				if (eInternalContainer() != null)
-					msgs = eBasicRemoveFromContainer(msgs);
-				return basicSetInActivity((Activity) otherEnd, msgs);
 			case UMLPackage.ACTIVITY_PARTITION__NODE :
 				return ((InternalEList<InternalEObject>) (InternalEList<?>) getNodes())
 					.basicAdd(otherEnd, msgs);
@@ -671,8 +666,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.ACTIVITY_PARTITION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.ACTIVITY_PARTITION__IN_ACTIVITY :
-				return basicSetInActivity(null, msgs);
 			case UMLPackage.ACTIVITY_PARTITION__NODE :
 				return ((InternalEList<?>) getNodes()).basicRemove(otherEnd,
 					msgs);
@@ -697,9 +690,6 @@
 	public NotificationChain eBasicRemoveFromContainerFeature(
 			NotificationChain msgs) {
 		switch (eContainerFeatureID()) {
-			case UMLPackage.ACTIVITY_PARTITION__IN_ACTIVITY :
-				return eInternalContainer().eInverseRemove(this,
-					UMLPackage.ACTIVITY__GROUP, Activity.class, msgs);
 			case UMLPackage.ACTIVITY_PARTITION__SUPER_PARTITION :
 				return eInternalContainer().eInverseRemove(this,
 					UMLPackage.ACTIVITY_PARTITION__SUBPARTITION,
@@ -742,6 +732,8 @@
 				return getQualifiedName();
 			case UMLPackage.ACTIVITY_PARTITION__VISIBILITY :
 				return getVisibility();
+			case UMLPackage.ACTIVITY_PARTITION__CONTAINED_EDGE :
+				return getContainedEdges();
 			case UMLPackage.ACTIVITY_PARTITION__CONTAINED_NODE :
 				return getContainedNodes();
 			case UMLPackage.ACTIVITY_PARTITION__IN_ACTIVITY :
@@ -754,8 +746,6 @@
 				if (resolve)
 					return getSuperGroup();
 				return basicGetSuperGroup();
-			case UMLPackage.ACTIVITY_PARTITION__CONTAINED_EDGE :
-				return getContainedEdges();
 			case UMLPackage.ACTIVITY_PARTITION__IS_DIMENSION :
 				return isDimension();
 			case UMLPackage.ACTIVITY_PARTITION__IS_EXTERNAL :
@@ -930,6 +920,8 @@
 					: !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName());
 			case UMLPackage.ACTIVITY_PARTITION__VISIBILITY :
 				return isSetVisibility();
+			case UMLPackage.ACTIVITY_PARTITION__CONTAINED_EDGE :
+				return isSetContainedEdges();
 			case UMLPackage.ACTIVITY_PARTITION__CONTAINED_NODE :
 				return isSetContainedNodes();
 			case UMLPackage.ACTIVITY_PARTITION__IN_ACTIVITY :
@@ -938,8 +930,6 @@
 				return isSetSubgroups();
 			case UMLPackage.ACTIVITY_PARTITION__SUPER_GROUP :
 				return isSetSuperGroup();
-			case UMLPackage.ACTIVITY_PARTITION__CONTAINED_EDGE :
-				return isSetContainedEdges();
 			case UMLPackage.ACTIVITY_PARTITION__IS_DIMENSION :
 				return ((eFlags & IS_DIMENSION_EFLAG) != 0) != IS_DIMENSION_EDEFAULT;
 			case UMLPackage.ACTIVITY_PARTITION__IS_EXTERNAL :
@@ -1050,10 +1040,6 @@
 				return allOwnedElements();
 			case UMLPackage.ACTIVITY_PARTITION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.ACTIVITY_PARTITION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACTIVITY_PARTITION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1062,6 +1048,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ACTIVITY_PARTITION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACTIVITY_PARTITION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.ACTIVITY_PARTITION___CREATE_USAGE__NAMEDELEMENT :
@@ -1083,16 +1073,20 @@
 				return getQualifiedName();
 			case UMLPackage.ACTIVITY_PARTITION___SEPARATOR :
 				return separator();
-			case UMLPackage.ACTIVITY_PARTITION___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP :
-				return validateNodesAndEdges(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACTIVITY_PARTITION___VALIDATE_GROUP_OWNED__DIAGNOSTICCHAIN_MAP :
 				return validateGroupOwned((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACTIVITY_PARTITION___VALIDATE_NOT_CONTAINED__DIAGNOSTICCHAIN_MAP :
 				return validateNotContained((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ACTIVITY_PARTITION___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP :
+				return validateNodesAndEdges(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ACTIVITY_PARTITION___VALIDATE_REPRESENTS_PART__DIAGNOSTICCHAIN_MAP :
+				return validateRepresentsPart(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACTIVITY_PARTITION___VALIDATE_REPRESENTS_CLASSIFIER__DIAGNOSTICCHAIN_MAP :
 				return validateRepresentsClassifier(
 					(DiagnosticChain) arguments.get(0),
@@ -1101,10 +1095,6 @@
 				return validateRepresentsPartAndIsContained(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.ACTIVITY_PARTITION___VALIDATE_REPRESENTS_PART__DIAGNOSTICCHAIN_MAP :
-				return validateRepresentsPart(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACTIVITY_PARTITION___VALIDATE_DIMENSION_NOT_CONTAINED__DIAGNOSTICCHAIN_MAP :
 				return validateDimensionNotContained(
 					(DiagnosticChain) arguments.get(0),
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActorImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActorImpl.java
index be80646..93c1945 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActorImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActorImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ActorImpl.java,v 1.5 2010/09/28 21:02:12 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -181,10 +180,6 @@
 				return allOwnedElements();
 			case UMLPackage.ACTOR___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.ACTOR___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACTOR___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -193,6 +188,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ACTOR___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACTOR___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.ACTOR___CREATE_USAGE__NAMEDELEMENT :
@@ -282,14 +281,6 @@
 				return isTemplate();
 			case UMLPackage.ACTOR___PARAMETERABLE_ELEMENTS :
 				return parameterableElements();
-			case UMLPackage.ACTOR___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
-				return validateSpecializeType(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.ACTOR___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
-				return validateMapsToGeneralizationSet(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACTOR___VALIDATE_NON_FINAL_PARENTS__DIAGNOSTICCHAIN_MAP :
 				return validateNonFinalParents(
 					(DiagnosticChain) arguments.get(0),
@@ -298,6 +289,14 @@
 				return validateNoCyclesInGeneralization(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ACTOR___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
+				return validateSpecializeType(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ACTOR___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
+				return validateMapsToGeneralizationSet(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ACTOR___GET_ALL_ATTRIBUTES :
 				return getAllAttributes();
 			case UMLPackage.ACTOR___GET_ALL_OPERATIONS :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AddStructuralFeatureValueActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AddStructuralFeatureValueActionImpl.java
index 60ad63d..04b7b0f 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AddStructuralFeatureValueActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AddStructuralFeatureValueActionImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: AddStructuralFeatureValueActionImpl.java,v 1.31 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -351,8 +350,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -432,8 +429,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IN_STRUCTURED_NODE :
@@ -446,6 +441,8 @@
 				return getOutgoings();
 			case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__HANDLER :
@@ -721,8 +718,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IN_STRUCTURED_NODE :
@@ -734,6 +729,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__HANDLER :
@@ -860,10 +857,6 @@
 				return allOwnedElements();
 			case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -872,6 +865,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION___CREATE_USAGE__NAMEDELEMENT :
@@ -919,15 +916,12 @@
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION___GET_CONTEXT :
 				return getContext();
-			case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
-				return validateMultiplicity((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP :
-				return validateSameType((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_VISIBILITY__DIAGNOSTICCHAIN_MAP :
 				return validateVisibility((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
+				return validateMultiplicity((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_NOT_STATIC__DIAGNOSTICCHAIN_MAP :
 				return validateNotStatic((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
@@ -935,9 +929,8 @@
 				return validateOneFeaturingClassifier(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_MULTIPLICITY_OF_RESULT__DIAGNOSTICCHAIN_MAP :
-				return validateMultiplicityOfResult(
-					(DiagnosticChain) arguments.get(0),
+			case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP :
+				return validateSameType((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_INPUT_PIN__DIAGNOSTICCHAIN_MAP :
 				return validateInputPin((DiagnosticChain) arguments.get(0),
@@ -945,14 +938,18 @@
 			case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_TYPE_OF_RESULT__DIAGNOSTICCHAIN_MAP :
 				return validateTypeOfResult((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_REQUIRED_VALUE__DIAGNOSTICCHAIN_MAP :
-				return validateRequiredValue(
+			case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_MULTIPLICITY_OF_RESULT__DIAGNOSTICCHAIN_MAP :
+				return validateMultiplicityOfResult(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_UNLIMITED_NATURAL_AND_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
 				return validateUnlimitedNaturalAndMultiplicity(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_REQUIRED_VALUE__DIAGNOSTICCHAIN_MAP :
+				return validateRequiredValue(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AddVariableValueActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AddVariableValueActionImpl.java
index 14ff52e..f0251c0 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AddVariableValueActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AddVariableValueActionImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: AddVariableValueActionImpl.java,v 1.30 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -338,8 +337,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.ADD_VARIABLE_VALUE_ACTION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.ADD_VARIABLE_VALUE_ACTION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.ADD_VARIABLE_VALUE_ACTION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -415,8 +412,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.ADD_VARIABLE_VALUE_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.ADD_VARIABLE_VALUE_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.ADD_VARIABLE_VALUE_ACTION__IN_STRUCTURED_NODE :
@@ -429,6 +424,8 @@
 				return getOutgoings();
 			case UMLPackage.ADD_VARIABLE_VALUE_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.ADD_VARIABLE_VALUE_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.ADD_VARIABLE_VALUE_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.ADD_VARIABLE_VALUE_ACTION__HANDLER :
@@ -684,8 +681,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.ADD_VARIABLE_VALUE_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.ADD_VARIABLE_VALUE_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.ADD_VARIABLE_VALUE_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.ADD_VARIABLE_VALUE_ACTION__IN_STRUCTURED_NODE :
@@ -697,6 +692,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.ADD_VARIABLE_VALUE_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.ADD_VARIABLE_VALUE_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.ADD_VARIABLE_VALUE_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.ADD_VARIABLE_VALUE_ACTION__HANDLER :
@@ -819,10 +816,6 @@
 				return allOwnedElements();
 			case UMLPackage.ADD_VARIABLE_VALUE_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.ADD_VARIABLE_VALUE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ADD_VARIABLE_VALUE_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -831,6 +824,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ADD_VARIABLE_VALUE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ADD_VARIABLE_VALUE_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.ADD_VARIABLE_VALUE_ACTION___CREATE_USAGE__NAMEDELEMENT :
@@ -882,12 +879,12 @@
 				return validateScopeOfVariable(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.ADD_VARIABLE_VALUE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP :
-				return validateSameType((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ADD_VARIABLE_VALUE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
 				return validateMultiplicity((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ADD_VARIABLE_VALUE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP :
+				return validateSameType((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ADD_VARIABLE_VALUE_ACTION___VALIDATE_REQUIRED_VALUE__DIAGNOSTICCHAIN_MAP :
 				return validateRequiredValue(
 					(DiagnosticChain) arguments.get(0),
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ArtifactImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ArtifactImpl.java
index 7cb7d5e..79ff868 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ArtifactImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ArtifactImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ArtifactImpl.java,v 1.34 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -1323,10 +1322,6 @@
 				return allOwnedElements();
 			case UMLPackage.ARTIFACT___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.ARTIFACT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ARTIFACT___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1335,6 +1330,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ARTIFACT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ARTIFACT___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.ARTIFACT___CREATE_USAGE__NAMEDELEMENT :
@@ -1424,14 +1423,6 @@
 				return isTemplate();
 			case UMLPackage.ARTIFACT___PARAMETERABLE_ELEMENTS :
 				return parameterableElements();
-			case UMLPackage.ARTIFACT___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
-				return validateSpecializeType(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.ARTIFACT___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
-				return validateMapsToGeneralizationSet(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ARTIFACT___VALIDATE_NON_FINAL_PARENTS__DIAGNOSTICCHAIN_MAP :
 				return validateNonFinalParents(
 					(DiagnosticChain) arguments.get(0),
@@ -1440,6 +1431,14 @@
 				return validateNoCyclesInGeneralization(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ARTIFACT___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
+				return validateSpecializeType(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ARTIFACT___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
+				return validateMapsToGeneralizationSet(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ARTIFACT___GET_ALL_ATTRIBUTES :
 				return getAllAttributes();
 			case UMLPackage.ARTIFACT___GET_ALL_OPERATIONS :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AssociationClassImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AssociationClassImpl.java
index 70907b3..02a0b27 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AssociationClassImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AssociationClassImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: AssociationClassImpl.java,v 1.35 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -1328,12 +1327,12 @@
 			switch (baseOperationID) {
 				case UMLPackage.ASSOCIATION___VALIDATE_SPECIALIZED_END_NUMBER__DIAGNOSTICCHAIN_MAP :
 					return UMLPackage.ASSOCIATION_CLASS___VALIDATE_SPECIALIZED_END_NUMBER__DIAGNOSTICCHAIN_MAP;
-				case UMLPackage.ASSOCIATION___VALIDATE_SPECIALIZED_END_TYPES__DIAGNOSTICCHAIN_MAP :
-					return UMLPackage.ASSOCIATION_CLASS___VALIDATE_SPECIALIZED_END_TYPES__DIAGNOSTICCHAIN_MAP;
-				case UMLPackage.ASSOCIATION___VALIDATE_BINARY_ASSOCIATIONS__DIAGNOSTICCHAIN_MAP :
-					return UMLPackage.ASSOCIATION_CLASS___VALIDATE_BINARY_ASSOCIATIONS__DIAGNOSTICCHAIN_MAP;
 				case UMLPackage.ASSOCIATION___VALIDATE_ASSOCIATION_ENDS__DIAGNOSTICCHAIN_MAP :
 					return UMLPackage.ASSOCIATION_CLASS___VALIDATE_ASSOCIATION_ENDS__DIAGNOSTICCHAIN_MAP;
+				case UMLPackage.ASSOCIATION___VALIDATE_BINARY_ASSOCIATIONS__DIAGNOSTICCHAIN_MAP :
+					return UMLPackage.ASSOCIATION_CLASS___VALIDATE_BINARY_ASSOCIATIONS__DIAGNOSTICCHAIN_MAP;
+				case UMLPackage.ASSOCIATION___VALIDATE_SPECIALIZED_END_TYPES__DIAGNOSTICCHAIN_MAP :
+					return UMLPackage.ASSOCIATION_CLASS___VALIDATE_SPECIALIZED_END_TYPES__DIAGNOSTICCHAIN_MAP;
 				case UMLPackage.ASSOCIATION___IS_BINARY :
 					return UMLPackage.ASSOCIATION_CLASS___IS_BINARY;
 				case UMLPackage.ASSOCIATION___GET_END_TYPES :
@@ -1437,10 +1436,6 @@
 				return allOwnedElements();
 			case UMLPackage.ASSOCIATION_CLASS___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.ASSOCIATION_CLASS___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ASSOCIATION_CLASS___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1449,6 +1444,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ASSOCIATION_CLASS___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ASSOCIATION_CLASS___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.ASSOCIATION_CLASS___CREATE_USAGE__NAMEDELEMENT :
@@ -1538,14 +1537,6 @@
 				return isTemplate();
 			case UMLPackage.ASSOCIATION_CLASS___PARAMETERABLE_ELEMENTS :
 				return parameterableElements();
-			case UMLPackage.ASSOCIATION_CLASS___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
-				return validateSpecializeType(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.ASSOCIATION_CLASS___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
-				return validateMapsToGeneralizationSet(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ASSOCIATION_CLASS___VALIDATE_NON_FINAL_PARENTS__DIAGNOSTICCHAIN_MAP :
 				return validateNonFinalParents(
 					(DiagnosticChain) arguments.get(0),
@@ -1554,6 +1545,14 @@
 				return validateNoCyclesInGeneralization(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ASSOCIATION_CLASS___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
+				return validateSpecializeType(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ASSOCIATION_CLASS___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
+				return validateMapsToGeneralizationSet(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ASSOCIATION_CLASS___GET_ALL_ATTRIBUTES :
 				return getAllAttributes();
 			case UMLPackage.ASSOCIATION_CLASS___GET_ALL_OPERATIONS :
@@ -1629,30 +1628,30 @@
 				return validateSpecializedEndNumber(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.ASSOCIATION_CLASS___VALIDATE_SPECIALIZED_END_TYPES__DIAGNOSTICCHAIN_MAP :
-				return validateSpecializedEndTypes(
+			case UMLPackage.ASSOCIATION_CLASS___VALIDATE_ASSOCIATION_ENDS__DIAGNOSTICCHAIN_MAP :
+				return validateAssociationEnds(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ASSOCIATION_CLASS___VALIDATE_BINARY_ASSOCIATIONS__DIAGNOSTICCHAIN_MAP :
 				return validateBinaryAssociations(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.ASSOCIATION_CLASS___VALIDATE_ASSOCIATION_ENDS__DIAGNOSTICCHAIN_MAP :
-				return validateAssociationEnds(
+			case UMLPackage.ASSOCIATION_CLASS___VALIDATE_SPECIALIZED_END_TYPES__DIAGNOSTICCHAIN_MAP :
+				return validateSpecializedEndTypes(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ASSOCIATION_CLASS___IS_BINARY :
 				return isBinary();
 			case UMLPackage.ASSOCIATION_CLASS___GET_END_TYPES :
 				return getEndTypes();
-			case UMLPackage.ASSOCIATION_CLASS___VALIDATE_CANNOT_BE_DEFINED__DIAGNOSTICCHAIN_MAP :
-				return validateCannotBeDefined(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ASSOCIATION_CLASS___VALIDATE_DISJOINT_ATTRIBUTES_ENDS__DIAGNOSTICCHAIN_MAP :
 				return validateDisjointAttributesEnds(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ASSOCIATION_CLASS___VALIDATE_CANNOT_BE_DEFINED__DIAGNOSTICCHAIN_MAP :
+				return validateCannotBeDefined(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AssociationImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AssociationImpl.java
index 4f8893f..9656899 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AssociationImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AssociationImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: AssociationImpl.java,v 1.35 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -1171,10 +1170,6 @@
 				return allOwnedElements();
 			case UMLPackage.ASSOCIATION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.ASSOCIATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ASSOCIATION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1183,6 +1178,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ASSOCIATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ASSOCIATION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.ASSOCIATION___CREATE_USAGE__NAMEDELEMENT :
@@ -1272,14 +1271,6 @@
 				return isTemplate();
 			case UMLPackage.ASSOCIATION___PARAMETERABLE_ELEMENTS :
 				return parameterableElements();
-			case UMLPackage.ASSOCIATION___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
-				return validateSpecializeType(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.ASSOCIATION___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
-				return validateMapsToGeneralizationSet(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ASSOCIATION___VALIDATE_NON_FINAL_PARENTS__DIAGNOSTICCHAIN_MAP :
 				return validateNonFinalParents(
 					(DiagnosticChain) arguments.get(0),
@@ -1288,6 +1279,14 @@
 				return validateNoCyclesInGeneralization(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ASSOCIATION___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
+				return validateSpecializeType(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ASSOCIATION___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
+				return validateMapsToGeneralizationSet(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ASSOCIATION___GET_ALL_ATTRIBUTES :
 				return getAllAttributes();
 			case UMLPackage.ASSOCIATION___GET_ALL_OPERATIONS :
@@ -1330,16 +1329,16 @@
 				return validateSpecializedEndNumber(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.ASSOCIATION___VALIDATE_SPECIALIZED_END_TYPES__DIAGNOSTICCHAIN_MAP :
-				return validateSpecializedEndTypes(
+			case UMLPackage.ASSOCIATION___VALIDATE_ASSOCIATION_ENDS__DIAGNOSTICCHAIN_MAP :
+				return validateAssociationEnds(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ASSOCIATION___VALIDATE_BINARY_ASSOCIATIONS__DIAGNOSTICCHAIN_MAP :
 				return validateBinaryAssociations(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.ASSOCIATION___VALIDATE_ASSOCIATION_ENDS__DIAGNOSTICCHAIN_MAP :
-				return validateAssociationEnds(
+			case UMLPackage.ASSOCIATION___VALIDATE_SPECIALIZED_END_TYPES__DIAGNOSTICCHAIN_MAP :
+				return validateSpecializedEndTypes(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ASSOCIATION___IS_BINARY :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BehaviorImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BehaviorImpl.java
index a699cb4..a876606 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BehaviorImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BehaviorImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: BehaviorImpl.java,v 1.37 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -1548,10 +1547,6 @@
 				return allOwnedElements();
 			case UMLPackage.BEHAVIOR___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.BEHAVIOR___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.BEHAVIOR___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1560,6 +1555,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.BEHAVIOR___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.BEHAVIOR___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.BEHAVIOR___CREATE_USAGE__NAMEDELEMENT :
@@ -1649,14 +1648,6 @@
 				return isTemplate();
 			case UMLPackage.BEHAVIOR___PARAMETERABLE_ELEMENTS :
 				return parameterableElements();
-			case UMLPackage.BEHAVIOR___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
-				return validateSpecializeType(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.BEHAVIOR___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
-				return validateMapsToGeneralizationSet(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.BEHAVIOR___VALIDATE_NON_FINAL_PARENTS__DIAGNOSTICCHAIN_MAP :
 				return validateNonFinalParents(
 					(DiagnosticChain) arguments.get(0),
@@ -1665,6 +1656,14 @@
 				return validateNoCyclesInGeneralization(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.BEHAVIOR___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
+				return validateSpecializeType(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.BEHAVIOR___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
+				return validateMapsToGeneralizationSet(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.BEHAVIOR___GET_ALL_ATTRIBUTES :
 				return getAllAttributes();
 			case UMLPackage.BEHAVIOR___GET_ALL_OPERATIONS :
@@ -1736,13 +1735,6 @@
 				return getExtensions();
 			case UMLPackage.BEHAVIOR___GET_SUPER_CLASSES :
 				return getSuperClasses();
-			case UMLPackage.BEHAVIOR___VALIDATE_MOST_ONE_BEHAVIOUR__DIAGNOSTICCHAIN_MAP :
-				return validateMostOneBehaviour(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.BEHAVIOR___VALIDATE_MUST_REALIZE__DIAGNOSTICCHAIN_MAP :
-				return validateMustRealize((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.BEHAVIOR___VALIDATE_PARAMETERS_MATCH__DIAGNOSTICCHAIN_MAP :
 				return validateParametersMatch(
 					(DiagnosticChain) arguments.get(0),
@@ -1751,6 +1743,13 @@
 				return validateFeatureOfContextClassifier(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.BEHAVIOR___VALIDATE_MUST_REALIZE__DIAGNOSTICCHAIN_MAP :
+				return validateMustRealize((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.BEHAVIOR___VALIDATE_MOST_ONE_BEHAVIOUR__DIAGNOSTICCHAIN_MAP :
+				return validateMostOneBehaviour(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.BEHAVIOR___GET_CONTEXT :
 				return getContext();
 		}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BehavioralFeatureImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BehavioralFeatureImpl.java
index 60dd7fb..4678c7e 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BehavioralFeatureImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BehavioralFeatureImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: BehavioralFeatureImpl.java,v 1.28 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -1471,10 +1470,6 @@
 				return allOwnedElements();
 			case UMLPackage.BEHAVIORAL_FEATURE___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.BEHAVIORAL_FEATURE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.BEHAVIORAL_FEATURE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1483,6 +1478,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.BEHAVIORAL_FEATURE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.BEHAVIORAL_FEATURE___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.BEHAVIORAL_FEATURE___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BehavioredClassifierImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BehavioredClassifierImpl.java
index 8fa4c30..14f2d13 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BehavioredClassifierImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BehavioredClassifierImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: BehavioredClassifierImpl.java,v 1.35 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -1047,10 +1046,6 @@
 				return allOwnedElements();
 			case UMLPackage.BEHAVIORED_CLASSIFIER___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.BEHAVIORED_CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.BEHAVIORED_CLASSIFIER___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1059,6 +1054,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.BEHAVIORED_CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.BEHAVIORED_CLASSIFIER___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.BEHAVIORED_CLASSIFIER___CREATE_USAGE__NAMEDELEMENT :
@@ -1148,14 +1147,6 @@
 				return isTemplate();
 			case UMLPackage.BEHAVIORED_CLASSIFIER___PARAMETERABLE_ELEMENTS :
 				return parameterableElements();
-			case UMLPackage.BEHAVIORED_CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
-				return validateSpecializeType(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.BEHAVIORED_CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
-				return validateMapsToGeneralizationSet(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.BEHAVIORED_CLASSIFIER___VALIDATE_NON_FINAL_PARENTS__DIAGNOSTICCHAIN_MAP :
 				return validateNonFinalParents(
 					(DiagnosticChain) arguments.get(0),
@@ -1164,6 +1155,14 @@
 				return validateNoCyclesInGeneralization(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.BEHAVIORED_CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
+				return validateSpecializeType(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.BEHAVIORED_CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
+				return validateMapsToGeneralizationSet(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.BEHAVIORED_CLASSIFIER___GET_ALL_ATTRIBUTES :
 				return getAllAttributes();
 			case UMLPackage.BEHAVIORED_CLASSIFIER___GET_ALL_OPERATIONS :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BroadcastSignalActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BroadcastSignalActionImpl.java
index 39c6c3a..3ff3394 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BroadcastSignalActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BroadcastSignalActionImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: BroadcastSignalActionImpl.java,v 1.20 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -206,8 +205,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.BROADCAST_SIGNAL_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.BROADCAST_SIGNAL_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.BROADCAST_SIGNAL_ACTION__IN_STRUCTURED_NODE :
@@ -220,6 +217,8 @@
 				return getOutgoings();
 			case UMLPackage.BROADCAST_SIGNAL_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.BROADCAST_SIGNAL_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.BROADCAST_SIGNAL_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.BROADCAST_SIGNAL_ACTION__HANDLER :
@@ -467,8 +466,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.BROADCAST_SIGNAL_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.BROADCAST_SIGNAL_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.BROADCAST_SIGNAL_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.BROADCAST_SIGNAL_ACTION__IN_STRUCTURED_NODE :
@@ -480,6 +477,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.BROADCAST_SIGNAL_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.BROADCAST_SIGNAL_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.BROADCAST_SIGNAL_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.BROADCAST_SIGNAL_ACTION__HANDLER :
@@ -600,10 +599,6 @@
 				return allOwnedElements();
 			case UMLPackage.BROADCAST_SIGNAL_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.BROADCAST_SIGNAL_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.BROADCAST_SIGNAL_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -612,6 +607,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.BROADCAST_SIGNAL_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.BROADCAST_SIGNAL_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.BROADCAST_SIGNAL_ACTION___CREATE_USAGE__NAMEDELEMENT :
@@ -663,14 +662,14 @@
 				return validateOnPortReceiver(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.BROADCAST_SIGNAL_ACTION___VALIDATE_NUMBER_AND_ORDER__DIAGNOSTICCHAIN_MAP :
-				return validateNumberAndOrder(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.BROADCAST_SIGNAL_ACTION___VALIDATE_TYPE_ORDERING_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
 				return validateTypeOrderingMultiplicity(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.BROADCAST_SIGNAL_ACTION___VALIDATE_NUMBER_AND_ORDER__DIAGNOSTICCHAIN_MAP :
+				return validateNumberAndOrder(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CallActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CallActionImpl.java
index e04b628..ee82b0e 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CallActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CallActionImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: CallActionImpl.java,v 1.30 2010/09/28 21:02:12 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -296,8 +295,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.CALL_ACTION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.CALL_ACTION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.CALL_ACTION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -375,8 +372,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.CALL_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.CALL_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.CALL_ACTION__IN_STRUCTURED_NODE :
@@ -389,6 +384,8 @@
 				return getOutgoings();
 			case UMLPackage.CALL_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.CALL_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.CALL_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.CALL_ACTION__HANDLER :
@@ -643,8 +640,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.CALL_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.CALL_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.CALL_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.CALL_ACTION__IN_STRUCTURED_NODE :
@@ -656,6 +651,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.CALL_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.CALL_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.CALL_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.CALL_ACTION__HANDLER :
@@ -778,10 +775,6 @@
 				return allOwnedElements();
 			case UMLPackage.CALL_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.CALL_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CALL_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -790,6 +783,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.CALL_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CALL_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.CALL_ACTION___CREATE_USAGE__NAMEDELEMENT :
@@ -841,16 +838,16 @@
 				return validateOnPortReceiver(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.CALL_ACTION___VALIDATE_TYPE_ORDERING_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
-				return validateTypeOrderingMultiplicity(
+			case UMLPackage.CALL_ACTION___VALIDATE_SYNCHRONOUS_CALL__DIAGNOSTICCHAIN_MAP :
+				return validateSynchronousCall(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CALL_ACTION___VALIDATE_NUMBER_AND_ORDER__DIAGNOSTICCHAIN_MAP :
 				return validateNumberAndOrder(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.CALL_ACTION___VALIDATE_SYNCHRONOUS_CALL__DIAGNOSTICCHAIN_MAP :
-				return validateSynchronousCall(
+			case UMLPackage.CALL_ACTION___VALIDATE_TYPE_ORDERING_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
+				return validateTypeOrderingMultiplicity(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 		}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CallBehaviorActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CallBehaviorActionImpl.java
index 6d597dc..52d56a0 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CallBehaviorActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CallBehaviorActionImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: CallBehaviorActionImpl.java,v 1.21 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -220,8 +219,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.CALL_BEHAVIOR_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.CALL_BEHAVIOR_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.CALL_BEHAVIOR_ACTION__IN_STRUCTURED_NODE :
@@ -234,6 +231,8 @@
 				return getOutgoings();
 			case UMLPackage.CALL_BEHAVIOR_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.CALL_BEHAVIOR_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.CALL_BEHAVIOR_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.CALL_BEHAVIOR_ACTION__HANDLER :
@@ -498,8 +497,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.CALL_BEHAVIOR_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.CALL_BEHAVIOR_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.CALL_BEHAVIOR_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.CALL_BEHAVIOR_ACTION__IN_STRUCTURED_NODE :
@@ -511,6 +508,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.CALL_BEHAVIOR_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.CALL_BEHAVIOR_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.CALL_BEHAVIOR_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.CALL_BEHAVIOR_ACTION__HANDLER :
@@ -635,10 +634,6 @@
 				return allOwnedElements();
 			case UMLPackage.CALL_BEHAVIOR_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.CALL_BEHAVIOR_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CALL_BEHAVIOR_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -647,6 +642,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.CALL_BEHAVIOR_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CALL_BEHAVIOR_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.CALL_BEHAVIOR_ACTION___CREATE_USAGE__NAMEDELEMENT :
@@ -698,16 +697,16 @@
 				return validateOnPortReceiver(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.CALL_BEHAVIOR_ACTION___VALIDATE_TYPE_ORDERING_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
-				return validateTypeOrderingMultiplicity(
+			case UMLPackage.CALL_BEHAVIOR_ACTION___VALIDATE_SYNCHRONOUS_CALL__DIAGNOSTICCHAIN_MAP :
+				return validateSynchronousCall(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CALL_BEHAVIOR_ACTION___VALIDATE_NUMBER_AND_ORDER__DIAGNOSTICCHAIN_MAP :
 				return validateNumberAndOrder(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.CALL_BEHAVIOR_ACTION___VALIDATE_SYNCHRONOUS_CALL__DIAGNOSTICCHAIN_MAP :
-				return validateSynchronousCall(
+			case UMLPackage.CALL_BEHAVIOR_ACTION___VALIDATE_TYPE_ORDERING_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
+				return validateTypeOrderingMultiplicity(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CALL_BEHAVIOR_ACTION___VALIDATE_RESULT_PIN_EQUAL_PARAMETER__DIAGNOSTICCHAIN_MAP :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CallOperationActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CallOperationActionImpl.java
index 5030896..0fb3730 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CallOperationActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CallOperationActionImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: CallOperationActionImpl.java,v 1.29 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -363,8 +362,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.CALL_OPERATION_ACTION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.CALL_OPERATION_ACTION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.CALL_OPERATION_ACTION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -444,8 +441,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.CALL_OPERATION_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.CALL_OPERATION_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.CALL_OPERATION_ACTION__IN_STRUCTURED_NODE :
@@ -458,6 +453,8 @@
 				return getOutgoings();
 			case UMLPackage.CALL_OPERATION_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.CALL_OPERATION_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.CALL_OPERATION_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.CALL_OPERATION_ACTION__HANDLER :
@@ -732,8 +729,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.CALL_OPERATION_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.CALL_OPERATION_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.CALL_OPERATION_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.CALL_OPERATION_ACTION__IN_STRUCTURED_NODE :
@@ -745,6 +740,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.CALL_OPERATION_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.CALL_OPERATION_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.CALL_OPERATION_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.CALL_OPERATION_ACTION__HANDLER :
@@ -871,10 +868,6 @@
 				return allOwnedElements();
 			case UMLPackage.CALL_OPERATION_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.CALL_OPERATION_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CALL_OPERATION_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -883,6 +876,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.CALL_OPERATION_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CALL_OPERATION_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.CALL_OPERATION_ACTION___CREATE_USAGE__NAMEDELEMENT :
@@ -934,20 +931,16 @@
 				return validateOnPortReceiver(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.CALL_OPERATION_ACTION___VALIDATE_TYPE_ORDERING_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
-				return validateTypeOrderingMultiplicity(
+			case UMLPackage.CALL_OPERATION_ACTION___VALIDATE_SYNCHRONOUS_CALL__DIAGNOSTICCHAIN_MAP :
+				return validateSynchronousCall(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CALL_OPERATION_ACTION___VALIDATE_NUMBER_AND_ORDER__DIAGNOSTICCHAIN_MAP :
 				return validateNumberAndOrder(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.CALL_OPERATION_ACTION___VALIDATE_SYNCHRONOUS_CALL__DIAGNOSTICCHAIN_MAP :
-				return validateSynchronousCall(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.CALL_OPERATION_ACTION___VALIDATE_TYPE_TARGET_PIN__DIAGNOSTICCHAIN_MAP :
-				return validateTypeTargetPin(
+			case UMLPackage.CALL_OPERATION_ACTION___VALIDATE_TYPE_ORDERING_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
+				return validateTypeOrderingMultiplicity(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CALL_OPERATION_ACTION___VALIDATE_ARGUMENT_PIN_EQUAL_PARAMETER__DIAGNOSTICCHAIN_MAP :
@@ -958,6 +951,10 @@
 				return validateResultPinEqualParameter(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.CALL_OPERATION_ACTION___VALIDATE_TYPE_TARGET_PIN__DIAGNOSTICCHAIN_MAP :
+				return validateTypeTargetPin(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClassImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClassImpl.java
index 8f228b9..5d7f24f 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClassImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClassImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ClassImpl.java,v 1.45 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -1944,10 +1943,6 @@
 				return allOwnedElements();
 			case UMLPackage.CLASS___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.CLASS___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CLASS___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1956,6 +1951,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.CLASS___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CLASS___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.CLASS___CREATE_USAGE__NAMEDELEMENT :
@@ -2045,14 +2044,6 @@
 				return isTemplate();
 			case UMLPackage.CLASS___PARAMETERABLE_ELEMENTS :
 				return parameterableElements();
-			case UMLPackage.CLASS___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
-				return validateSpecializeType(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.CLASS___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
-				return validateMapsToGeneralizationSet(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CLASS___VALIDATE_NON_FINAL_PARENTS__DIAGNOSTICCHAIN_MAP :
 				return validateNonFinalParents(
 					(DiagnosticChain) arguments.get(0),
@@ -2061,6 +2052,14 @@
 				return validateNoCyclesInGeneralization(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.CLASS___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
+				return validateSpecializeType(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.CLASS___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
+				return validateMapsToGeneralizationSet(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CLASS___GET_ALL_ATTRIBUTES :
 				return getAllAttributes();
 			case UMLPackage.CLASS___GET_ALL_OPERATIONS :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClassifierImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClassifierImpl.java
index f7b88dc..bf587ea 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClassifierImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClassifierImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ClassifierImpl.java,v 1.47 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -2854,10 +2853,6 @@
 				return allOwnedElements();
 			case UMLPackage.CLASSIFIER___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CLASSIFIER___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -2866,6 +2861,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CLASSIFIER___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.CLASSIFIER___CREATE_USAGE__NAMEDELEMENT :
@@ -2955,14 +2954,6 @@
 				return isTemplate();
 			case UMLPackage.CLASSIFIER___PARAMETERABLE_ELEMENTS :
 				return parameterableElements();
-			case UMLPackage.CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
-				return validateSpecializeType(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
-				return validateMapsToGeneralizationSet(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CLASSIFIER___VALIDATE_NON_FINAL_PARENTS__DIAGNOSTICCHAIN_MAP :
 				return validateNonFinalParents(
 					(DiagnosticChain) arguments.get(0),
@@ -2971,6 +2962,14 @@
 				return validateNoCyclesInGeneralization(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
+				return validateSpecializeType(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
+				return validateMapsToGeneralizationSet(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CLASSIFIER___GET_ALL_ATTRIBUTES :
 				return getAllAttributes();
 			case UMLPackage.CLASSIFIER___GET_ALL_OPERATIONS :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClassifierTemplateParameterImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClassifierTemplateParameterImpl.java
index 47d7f0a..21a4559 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClassifierTemplateParameterImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClassifierTemplateParameterImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ClassifierTemplateParameterImpl.java,v 1.25 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -328,6 +327,10 @@
 				if (resolve)
 					return getDefault();
 				return basicGetDefault();
+			case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__OWNED_DEFAULT :
+				if (resolve)
+					return getOwnedDefault();
+				return basicGetOwnedDefault();
 			case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT :
 				if (resolve)
 					return getOwnedParameteredElement();
@@ -336,10 +339,6 @@
 				if (resolve)
 					return getParameteredElement();
 				return basicGetParameteredElement();
-			case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__OWNED_DEFAULT :
-				if (resolve)
-					return getOwnedDefault();
-				return basicGetOwnedDefault();
 			case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__SIGNATURE :
 				if (resolve)
 					return getSignature();
@@ -374,15 +373,15 @@
 			case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__DEFAULT :
 				setDefault((ParameterableElement) newValue);
 				return;
+			case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__OWNED_DEFAULT :
+				setOwnedDefault((ParameterableElement) newValue);
+				return;
 			case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT :
 				setOwnedParameteredElement((ParameterableElement) newValue);
 				return;
 			case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT :
 				setParameteredElement((ParameterableElement) newValue);
 				return;
-			case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__OWNED_DEFAULT :
-				setOwnedDefault((ParameterableElement) newValue);
-				return;
 			case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__SIGNATURE :
 				setSignature((TemplateSignature) newValue);
 				return;
@@ -415,15 +414,15 @@
 			case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__DEFAULT :
 				setDefault((ParameterableElement) null);
 				return;
+			case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__OWNED_DEFAULT :
+				setOwnedDefault((ParameterableElement) null);
+				return;
 			case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT :
 				setOwnedParameteredElement((ParameterableElement) null);
 				return;
 			case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT :
 				setParameteredElement((ParameterableElement) null);
 				return;
-			case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__OWNED_DEFAULT :
-				setOwnedDefault((ParameterableElement) null);
-				return;
 			case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__SIGNATURE :
 				setSignature((TemplateSignature) null);
 				return;
@@ -455,12 +454,12 @@
 				return isSetOwner();
 			case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__DEFAULT :
 				return default_ != null;
+			case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__OWNED_DEFAULT :
+				return ownedDefault != null;
 			case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT :
 				return ownedParameteredElement != null;
 			case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT :
 				return isSetParameteredElement();
-			case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__OWNED_DEFAULT :
-				return ownedDefault != null;
 			case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__SIGNATURE :
 				return basicGetSignature() != null;
 			case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__ALLOW_SUBSTITUTABLE :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClauseImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClauseImpl.java
index ae3ebbf..a064af2 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClauseImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClauseImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ClauseImpl.java,v 1.17 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -662,6 +661,9 @@
 				return allOwnedElements();
 			case UMLPackage.CLAUSE___MUST_BE_OWNED :
 				return mustBeOwned();
+			case UMLPackage.CLAUSE___VALIDATE_TEST_AND_BODY__DIAGNOSTICCHAIN_MAP :
+				return validateTestAndBody((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CLAUSE___VALIDATE_BODY_OUTPUT_PINS__DIAGNOSTICCHAIN_MAP :
 				return validateBodyOutputPins(
 					(DiagnosticChain) arguments.get(0),
@@ -670,9 +672,6 @@
 				return validateDeciderOutput(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.CLAUSE___VALIDATE_TEST_AND_BODY__DIAGNOSTICCHAIN_MAP :
-				return validateTestAndBody((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClearAssociationActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClearAssociationActionImpl.java
index 4385e0b..5c3faeb 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClearAssociationActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClearAssociationActionImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ClearAssociationActionImpl.java,v 1.29 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -342,8 +341,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.CLEAR_ASSOCIATION_ACTION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.CLEAR_ASSOCIATION_ACTION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.CLEAR_ASSOCIATION_ACTION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -417,8 +414,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.CLEAR_ASSOCIATION_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.CLEAR_ASSOCIATION_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.CLEAR_ASSOCIATION_ACTION__IN_STRUCTURED_NODE :
@@ -431,6 +426,8 @@
 				return getOutgoings();
 			case UMLPackage.CLEAR_ASSOCIATION_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.CLEAR_ASSOCIATION_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.CLEAR_ASSOCIATION_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.CLEAR_ASSOCIATION_ACTION__HANDLER :
@@ -668,8 +665,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.CLEAR_ASSOCIATION_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.CLEAR_ASSOCIATION_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.CLEAR_ASSOCIATION_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.CLEAR_ASSOCIATION_ACTION__IN_STRUCTURED_NODE :
@@ -681,6 +676,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.CLEAR_ASSOCIATION_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.CLEAR_ASSOCIATION_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.CLEAR_ASSOCIATION_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.CLEAR_ASSOCIATION_ACTION__HANDLER :
@@ -799,10 +796,6 @@
 				return allOwnedElements();
 			case UMLPackage.CLEAR_ASSOCIATION_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.CLEAR_ASSOCIATION_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CLEAR_ASSOCIATION_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -811,6 +804,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.CLEAR_ASSOCIATION_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CLEAR_ASSOCIATION_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.CLEAR_ASSOCIATION_ACTION___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClearStructuralFeatureActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClearStructuralFeatureActionImpl.java
index 49a8f9c..1d61dec 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClearStructuralFeatureActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClearStructuralFeatureActionImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ClearStructuralFeatureActionImpl.java,v 1.7 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -283,8 +282,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.CLEAR_STRUCTURAL_FEATURE_ACTION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.CLEAR_STRUCTURAL_FEATURE_ACTION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.CLEAR_STRUCTURAL_FEATURE_ACTION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -360,8 +357,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.CLEAR_STRUCTURAL_FEATURE_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.CLEAR_STRUCTURAL_FEATURE_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.CLEAR_STRUCTURAL_FEATURE_ACTION__IN_STRUCTURED_NODE :
@@ -374,6 +369,8 @@
 				return getOutgoings();
 			case UMLPackage.CLEAR_STRUCTURAL_FEATURE_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.CLEAR_STRUCTURAL_FEATURE_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.CLEAR_STRUCTURAL_FEATURE_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.CLEAR_STRUCTURAL_FEATURE_ACTION__HANDLER :
@@ -621,8 +618,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.CLEAR_STRUCTURAL_FEATURE_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.CLEAR_STRUCTURAL_FEATURE_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.CLEAR_STRUCTURAL_FEATURE_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.CLEAR_STRUCTURAL_FEATURE_ACTION__IN_STRUCTURED_NODE :
@@ -634,6 +629,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.CLEAR_STRUCTURAL_FEATURE_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.CLEAR_STRUCTURAL_FEATURE_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.CLEAR_STRUCTURAL_FEATURE_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.CLEAR_STRUCTURAL_FEATURE_ACTION__HANDLER :
@@ -754,10 +751,6 @@
 				return allOwnedElements();
 			case UMLPackage.CLEAR_STRUCTURAL_FEATURE_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.CLEAR_STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CLEAR_STRUCTURAL_FEATURE_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -766,6 +759,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.CLEAR_STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CLEAR_STRUCTURAL_FEATURE_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.CLEAR_STRUCTURAL_FEATURE_ACTION___CREATE_USAGE__NAMEDELEMENT :
@@ -813,15 +810,12 @@
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CLEAR_STRUCTURAL_FEATURE_ACTION___GET_CONTEXT :
 				return getContext();
-			case UMLPackage.CLEAR_STRUCTURAL_FEATURE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
-				return validateMultiplicity((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.CLEAR_STRUCTURAL_FEATURE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP :
-				return validateSameType((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CLEAR_STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY__DIAGNOSTICCHAIN_MAP :
 				return validateVisibility((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.CLEAR_STRUCTURAL_FEATURE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
+				return validateMultiplicity((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CLEAR_STRUCTURAL_FEATURE_ACTION___VALIDATE_NOT_STATIC__DIAGNOSTICCHAIN_MAP :
 				return validateNotStatic((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
@@ -829,13 +823,16 @@
 				return validateOneFeaturingClassifier(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.CLEAR_STRUCTURAL_FEATURE_ACTION___VALIDATE_TYPE_OF_RESULT__DIAGNOSTICCHAIN_MAP :
-				return validateTypeOfResult((DiagnosticChain) arguments.get(0),
+			case UMLPackage.CLEAR_STRUCTURAL_FEATURE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP :
+				return validateSameType((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CLEAR_STRUCTURAL_FEATURE_ACTION___VALIDATE_MULTIPLICITY_OF_RESULT__DIAGNOSTICCHAIN_MAP :
 				return validateMultiplicityOfResult(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.CLEAR_STRUCTURAL_FEATURE_ACTION___VALIDATE_TYPE_OF_RESULT__DIAGNOSTICCHAIN_MAP :
+				return validateTypeOfResult((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CollaborationImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CollaborationImpl.java
index 6db8d38..c6368a5 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CollaborationImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CollaborationImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: CollaborationImpl.java,v 1.33 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -1191,10 +1190,6 @@
 				return allOwnedElements();
 			case UMLPackage.COLLABORATION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.COLLABORATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.COLLABORATION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1203,6 +1198,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.COLLABORATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.COLLABORATION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.COLLABORATION___CREATE_USAGE__NAMEDELEMENT :
@@ -1292,14 +1291,6 @@
 				return isTemplate();
 			case UMLPackage.COLLABORATION___PARAMETERABLE_ELEMENTS :
 				return parameterableElements();
-			case UMLPackage.COLLABORATION___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
-				return validateSpecializeType(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.COLLABORATION___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
-				return validateMapsToGeneralizationSet(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.COLLABORATION___VALIDATE_NON_FINAL_PARENTS__DIAGNOSTICCHAIN_MAP :
 				return validateNonFinalParents(
 					(DiagnosticChain) arguments.get(0),
@@ -1308,6 +1299,14 @@
 				return validateNoCyclesInGeneralization(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.COLLABORATION___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
+				return validateSpecializeType(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.COLLABORATION___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
+				return validateMapsToGeneralizationSet(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.COLLABORATION___GET_ALL_ATTRIBUTES :
 				return getAllAttributes();
 			case UMLPackage.COLLABORATION___GET_ALL_OPERATIONS :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CollaborationUseImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CollaborationUseImpl.java
index 4b64a22..3d7fef4 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CollaborationUseImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CollaborationUseImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: CollaborationUseImpl.java,v 1.24 2010/09/28 21:02:12 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -560,10 +559,6 @@
 				return allOwnedElements();
 			case UMLPackage.COLLABORATION_USE___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.COLLABORATION_USE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.COLLABORATION_USE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -572,6 +567,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.COLLABORATION_USE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.COLLABORATION_USE___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.COLLABORATION_USE___CREATE_USAGE__NAMEDELEMENT :
@@ -593,15 +592,15 @@
 				return getQualifiedName();
 			case UMLPackage.COLLABORATION_USE___SEPARATOR :
 				return separator();
-			case UMLPackage.COLLABORATION_USE___VALIDATE_CLIENT_ELEMENTS__DIAGNOSTICCHAIN_MAP :
-				return validateClientElements(
-					(DiagnosticChain) arguments.get(0),
+			case UMLPackage.COLLABORATION_USE___VALIDATE_CONNECTORS__DIAGNOSTICCHAIN_MAP :
+				return validateConnectors((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.COLLABORATION_USE___VALIDATE_EVERY_ROLE__DIAGNOSTICCHAIN_MAP :
 				return validateEveryRole((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.COLLABORATION_USE___VALIDATE_CONNECTORS__DIAGNOSTICCHAIN_MAP :
-				return validateConnectors((DiagnosticChain) arguments.get(0),
+			case UMLPackage.COLLABORATION_USE___VALIDATE_CLIENT_ELEMENTS__DIAGNOSTICCHAIN_MAP :
+				return validateClientElements(
+					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CombinedFragmentImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CombinedFragmentImpl.java
index d8d06d5..6ed435d 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CombinedFragmentImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CombinedFragmentImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: CombinedFragmentImpl.java,v 1.26 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -728,10 +727,6 @@
 				return allOwnedElements();
 			case UMLPackage.COMBINED_FRAGMENT___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.COMBINED_FRAGMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.COMBINED_FRAGMENT___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -740,6 +735,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.COMBINED_FRAGMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.COMBINED_FRAGMENT___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.COMBINED_FRAGMENT___CREATE_USAGE__NAMEDELEMENT :
@@ -761,19 +760,19 @@
 				return getQualifiedName();
 			case UMLPackage.COMBINED_FRAGMENT___SEPARATOR :
 				return separator();
-			case UMLPackage.COMBINED_FRAGMENT___VALIDATE_MININT_AND_MAXINT__DIAGNOSTICCHAIN_MAP :
-				return validateMinintAndMaxint(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.COMBINED_FRAGMENT___VALIDATE_BREAK__DIAGNOSTICCHAIN_MAP :
 				return validateBreak((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.COMBINED_FRAGMENT___VALIDATE_OPT_LOOP_BREAK_NEG__DIAGNOSTICCHAIN_MAP :
+				return validateOptLoopBreakNeg(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.COMBINED_FRAGMENT___VALIDATE_CONSIDER_AND_IGNORE__DIAGNOSTICCHAIN_MAP :
 				return validateConsiderAndIgnore(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.COMBINED_FRAGMENT___VALIDATE_OPT_LOOP_BREAK_NEG__DIAGNOSTICCHAIN_MAP :
-				return validateOptLoopBreakNeg(
+			case UMLPackage.COMBINED_FRAGMENT___VALIDATE_MININT_AND_MAXINT__DIAGNOSTICCHAIN_MAP :
+				return validateMinintAndMaxint(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 		}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CommunicationPathImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CommunicationPathImpl.java
index e2342c7..5c08b6d 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CommunicationPathImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CommunicationPathImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: CommunicationPathImpl.java,v 1.6 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -173,10 +172,6 @@
 				return allOwnedElements();
 			case UMLPackage.COMMUNICATION_PATH___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.COMMUNICATION_PATH___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.COMMUNICATION_PATH___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -185,6 +180,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.COMMUNICATION_PATH___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.COMMUNICATION_PATH___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.COMMUNICATION_PATH___CREATE_USAGE__NAMEDELEMENT :
@@ -274,14 +273,6 @@
 				return isTemplate();
 			case UMLPackage.COMMUNICATION_PATH___PARAMETERABLE_ELEMENTS :
 				return parameterableElements();
-			case UMLPackage.COMMUNICATION_PATH___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
-				return validateSpecializeType(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.COMMUNICATION_PATH___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
-				return validateMapsToGeneralizationSet(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.COMMUNICATION_PATH___VALIDATE_NON_FINAL_PARENTS__DIAGNOSTICCHAIN_MAP :
 				return validateNonFinalParents(
 					(DiagnosticChain) arguments.get(0),
@@ -290,6 +281,14 @@
 				return validateNoCyclesInGeneralization(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.COMMUNICATION_PATH___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
+				return validateSpecializeType(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.COMMUNICATION_PATH___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
+				return validateMapsToGeneralizationSet(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.COMMUNICATION_PATH___GET_ALL_ATTRIBUTES :
 				return getAllAttributes();
 			case UMLPackage.COMMUNICATION_PATH___GET_ALL_OPERATIONS :
@@ -332,16 +331,16 @@
 				return validateSpecializedEndNumber(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.COMMUNICATION_PATH___VALIDATE_SPECIALIZED_END_TYPES__DIAGNOSTICCHAIN_MAP :
-				return validateSpecializedEndTypes(
+			case UMLPackage.COMMUNICATION_PATH___VALIDATE_ASSOCIATION_ENDS__DIAGNOSTICCHAIN_MAP :
+				return validateAssociationEnds(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.COMMUNICATION_PATH___VALIDATE_BINARY_ASSOCIATIONS__DIAGNOSTICCHAIN_MAP :
 				return validateBinaryAssociations(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.COMMUNICATION_PATH___VALIDATE_ASSOCIATION_ENDS__DIAGNOSTICCHAIN_MAP :
-				return validateAssociationEnds(
+			case UMLPackage.COMMUNICATION_PATH___VALIDATE_SPECIALIZED_END_TYPES__DIAGNOSTICCHAIN_MAP :
+				return validateSpecializedEndTypes(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.COMMUNICATION_PATH___IS_BINARY :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ComponentImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ComponentImpl.java
index 5a90ed9..e99ccf0 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ComponentImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ComponentImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ComponentImpl.java,v 1.37 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -1361,10 +1360,6 @@
 				return allOwnedElements();
 			case UMLPackage.COMPONENT___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.COMPONENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.COMPONENT___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1373,6 +1368,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.COMPONENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.COMPONENT___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.COMPONENT___CREATE_USAGE__NAMEDELEMENT :
@@ -1462,14 +1461,6 @@
 				return isTemplate();
 			case UMLPackage.COMPONENT___PARAMETERABLE_ELEMENTS :
 				return parameterableElements();
-			case UMLPackage.COMPONENT___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
-				return validateSpecializeType(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.COMPONENT___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
-				return validateMapsToGeneralizationSet(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.COMPONENT___VALIDATE_NON_FINAL_PARENTS__DIAGNOSTICCHAIN_MAP :
 				return validateNonFinalParents(
 					(DiagnosticChain) arguments.get(0),
@@ -1478,6 +1469,14 @@
 				return validateNoCyclesInGeneralization(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.COMPONENT___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
+				return validateSpecializeType(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.COMPONENT___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
+				return validateMapsToGeneralizationSet(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.COMPONENT___GET_ALL_ATTRIBUTES :
 				return getAllAttributes();
 			case UMLPackage.COMPONENT___GET_ALL_OPERATIONS :
@@ -1549,14 +1548,14 @@
 				return getExtensions();
 			case UMLPackage.COMPONENT___GET_SUPER_CLASSES :
 				return getSuperClasses();
-			case UMLPackage.COMPONENT___VALIDATE_NO_NESTED_CLASSIFIERS__DIAGNOSTICCHAIN_MAP :
-				return validateNoNestedClassifiers(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.COMPONENT___VALIDATE_NO_PACKAGED_ELEMENTS__DIAGNOSTICCHAIN_MAP :
 				return validateNoPackagedElements(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.COMPONENT___VALIDATE_NO_NESTED_CLASSIFIERS__DIAGNOSTICCHAIN_MAP :
+				return validateNoNestedClassifiers(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.COMPONENT___CREATE_OWNED_CLASS__STRING_BOOLEAN :
 				return createOwnedClass((String) arguments.get(0),
 					(Boolean) arguments.get(1));
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConditionalNodeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConditionalNodeImpl.java
index 1763ce9..4e1f4a8 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConditionalNodeImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConditionalNodeImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ConditionalNodeImpl.java,v 1.29 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -426,8 +425,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.CONDITIONAL_NODE__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.CONDITIONAL_NODE__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.CONDITIONAL_NODE__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -460,8 +457,6 @@
 			case UMLPackage.CONDITIONAL_NODE__OWNED_RULE :
 				return ((InternalEList<?>) getOwnedRules()).basicRemove(
 					otherEnd, msgs);
-			case UMLPackage.CONDITIONAL_NODE__IN_ACTIVITY :
-				return basicSetInActivity(null, msgs);
 			case UMLPackage.CONDITIONAL_NODE__NODE :
 				return ((InternalEList<?>) getNodes()).basicRemove(otherEnd,
 					msgs);
@@ -531,8 +526,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.CONDITIONAL_NODE__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.CONDITIONAL_NODE__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.CONDITIONAL_NODE__IN_STRUCTURED_NODE :
@@ -545,6 +538,8 @@
 				return getOutgoings();
 			case UMLPackage.CONDITIONAL_NODE__INCOMING :
 				return getIncomings();
+			case UMLPackage.CONDITIONAL_NODE__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.CONDITIONAL_NODE__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.CONDITIONAL_NODE__HANDLER :
@@ -575,6 +570,8 @@
 				return getImportedMembers();
 			case UMLPackage.CONDITIONAL_NODE__MEMBER :
 				return getMembers();
+			case UMLPackage.CONDITIONAL_NODE__CONTAINED_EDGE :
+				return getContainedEdges();
 			case UMLPackage.CONDITIONAL_NODE__CONTAINED_NODE :
 				return getContainedNodes();
 			case UMLPackage.CONDITIONAL_NODE__IN_ACTIVITY :
@@ -587,8 +584,6 @@
 				if (resolve)
 					return getSuperGroup();
 				return basicGetSuperGroup();
-			case UMLPackage.CONDITIONAL_NODE__CONTAINED_EDGE :
-				return getContainedEdges();
 			case UMLPackage.CONDITIONAL_NODE__MUST_ISOLATE :
 				return isMustIsolate();
 			case UMLPackage.CONDITIONAL_NODE__NODE :
@@ -910,8 +905,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.CONDITIONAL_NODE__ACTIVITY :
 				return isSetActivity();
-			case UMLPackage.CONDITIONAL_NODE__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.CONDITIONAL_NODE__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.CONDITIONAL_NODE__IN_STRUCTURED_NODE :
@@ -923,6 +916,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.CONDITIONAL_NODE__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.CONDITIONAL_NODE__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.CONDITIONAL_NODE__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.CONDITIONAL_NODE__HANDLER :
@@ -953,6 +948,8 @@
 				return !getImportedMembers().isEmpty();
 			case UMLPackage.CONDITIONAL_NODE__MEMBER :
 				return isSetMembers();
+			case UMLPackage.CONDITIONAL_NODE__CONTAINED_EDGE :
+				return isSetContainedEdges();
 			case UMLPackage.CONDITIONAL_NODE__CONTAINED_NODE :
 				return isSetContainedNodes();
 			case UMLPackage.CONDITIONAL_NODE__IN_ACTIVITY :
@@ -961,8 +958,6 @@
 				return isSetSubgroups();
 			case UMLPackage.CONDITIONAL_NODE__SUPER_GROUP :
 				return isSetSuperGroup();
-			case UMLPackage.CONDITIONAL_NODE__CONTAINED_EDGE :
-				return isSetContainedEdges();
 			case UMLPackage.CONDITIONAL_NODE__MUST_ISOLATE :
 				return ((eFlags & MUST_ISOLATE_EFLAG) != 0) != MUST_ISOLATE_EDEFAULT;
 			case UMLPackage.CONDITIONAL_NODE__NODE :
@@ -1080,10 +1075,6 @@
 				return allOwnedElements();
 			case UMLPackage.CONDITIONAL_NODE___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.CONDITIONAL_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CONDITIONAL_NODE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1092,6 +1083,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.CONDITIONAL_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CONDITIONAL_NODE___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.CONDITIONAL_NODE___CREATE_USAGE__NAMEDELEMENT :
@@ -1169,40 +1164,25 @@
 				return membersAreDistinguishable();
 			case UMLPackage.CONDITIONAL_NODE___GET_OWNED_MEMBERS :
 				return getOwnedMembers();
-			case UMLPackage.CONDITIONAL_NODE___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP :
-				return validateNodesAndEdges(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CONDITIONAL_NODE___VALIDATE_GROUP_OWNED__DIAGNOSTICCHAIN_MAP :
 				return validateGroupOwned((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CONDITIONAL_NODE___VALIDATE_NOT_CONTAINED__DIAGNOSTICCHAIN_MAP :
 				return validateNotContained((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.CONDITIONAL_NODE___VALIDATE_OUTPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP :
-				return validateOutputPinEdges(
+			case UMLPackage.CONDITIONAL_NODE___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP :
+				return validateNodesAndEdges(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.CONDITIONAL_NODE___VALIDATE_EDGES__DIAGNOSTICCHAIN_MAP :
-				return validateEdges((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CONDITIONAL_NODE___VALIDATE_INPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP :
 				return validateInputPinEdges(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.CONDITIONAL_NODE___VALIDATE_RESULT_NO_INCOMING__DIAGNOSTICCHAIN_MAP :
-				return validateResultNoIncoming(
-					(DiagnosticChain) arguments.get(0),
+			case UMLPackage.CONDITIONAL_NODE___VALIDATE_EDGES__DIAGNOSTICCHAIN_MAP :
+				return validateEdges((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.CONDITIONAL_NODE___VALIDATE_NO_INPUT_PINS__DIAGNOSTICCHAIN_MAP :
-				return validateNoInputPins((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.CONDITIONAL_NODE___VALIDATE_ONE_CLAUSE_WITH_EXECUTABLE_NODE__DIAGNOSTICCHAIN_MAP :
-				return validateOneClauseWithExecutableNode(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.CONDITIONAL_NODE___VALIDATE_MATCHING_OUTPUT_PINS__DIAGNOSTICCHAIN_MAP :
-				return validateMatchingOutputPins(
+			case UMLPackage.CONDITIONAL_NODE___VALIDATE_OUTPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP :
+				return validateOutputPinEdges(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CONDITIONAL_NODE___VALIDATE_EXECUTABLE_NODES__DIAGNOSTICCHAIN_MAP :
@@ -1213,6 +1193,21 @@
 				return validateClauseNoPredecessor(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.CONDITIONAL_NODE___VALIDATE_MATCHING_OUTPUT_PINS__DIAGNOSTICCHAIN_MAP :
+				return validateMatchingOutputPins(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.CONDITIONAL_NODE___VALIDATE_ONE_CLAUSE_WITH_EXECUTABLE_NODE__DIAGNOSTICCHAIN_MAP :
+				return validateOneClauseWithExecutableNode(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.CONDITIONAL_NODE___VALIDATE_RESULT_NO_INCOMING__DIAGNOSTICCHAIN_MAP :
+				return validateResultNoIncoming(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.CONDITIONAL_NODE___VALIDATE_NO_INPUT_PINS__DIAGNOSTICCHAIN_MAP :
+				return validateNoInputPins((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectableElementImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectableElementImpl.java
index 99eb556..7cffb85 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectableElementImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectableElementImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ConnectableElementImpl.java,v 1.24 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -735,10 +734,6 @@
 				return allOwnedElements();
 			case UMLPackage.CONNECTABLE_ELEMENT___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.CONNECTABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CONNECTABLE_ELEMENT___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -747,6 +742,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.CONNECTABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CONNECTABLE_ELEMENT___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.CONNECTABLE_ELEMENT___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectionPointReferenceImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectionPointReferenceImpl.java
index 085195f..b7d0ff3 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectionPointReferenceImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectionPointReferenceImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ConnectionPointReferenceImpl.java,v 1.25 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -642,10 +641,6 @@
 				return allOwnedElements();
 			case UMLPackage.CONNECTION_POINT_REFERENCE___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.CONNECTION_POINT_REFERENCE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CONNECTION_POINT_REFERENCE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -654,6 +649,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.CONNECTION_POINT_REFERENCE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CONNECTION_POINT_REFERENCE___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.CONNECTION_POINT_REFERENCE___CREATE_USAGE__NAMEDELEMENT :
@@ -681,14 +680,14 @@
 				return getIncomings();
 			case UMLPackage.CONNECTION_POINT_REFERENCE___GET_OUTGOINGS :
 				return getOutgoings();
-			case UMLPackage.CONNECTION_POINT_REFERENCE___VALIDATE_EXIT_PSEUDOSTATES__DIAGNOSTICCHAIN_MAP :
-				return validateExitPseudostates(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CONNECTION_POINT_REFERENCE___VALIDATE_ENTRY_PSEUDOSTATES__DIAGNOSTICCHAIN_MAP :
 				return validateEntryPseudostates(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.CONNECTION_POINT_REFERENCE___VALIDATE_EXIT_PSEUDOSTATES__DIAGNOSTICCHAIN_MAP :
+				return validateExitPseudostates(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectorEndImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectorEndImpl.java
index 33ad6ea..e2d514b 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectorEndImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectorEndImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ConnectorEndImpl.java,v 1.22 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -514,20 +513,20 @@
 				return allOwnedElements();
 			case UMLPackage.CONNECTOR_END___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.CONNECTOR_END___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP :
-				return validateUpperGeLower((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CONNECTOR_END___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP :
 				return validateLowerGe0((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.CONNECTOR_END___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP :
-				return validateValueSpecificationNoSideEffects(
-					(DiagnosticChain) arguments.get(0),
+			case UMLPackage.CONNECTOR_END___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP :
+				return validateUpperGeLower((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CONNECTOR_END___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP :
 				return validateValueSpecificationConstant(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.CONNECTOR_END___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP :
+				return validateValueSpecificationNoSideEffects(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CONNECTOR_END___SET_LOWER__INT :
 				setLower((Integer) arguments.get(0));
 				return null;
@@ -558,15 +557,15 @@
 				return validateRoleAndPartWithPort(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.CONNECTOR_END___VALIDATE_PART_WITH_PORT_EMPTY__DIAGNOSTICCHAIN_MAP :
-				return validatePartWithPortEmpty(
+			case UMLPackage.CONNECTOR_END___VALIDATE_SELF_PART_WITH_PORT__DIAGNOSTICCHAIN_MAP :
+				return validateSelfPartWithPort(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CONNECTOR_END___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
 				return validateMultiplicity((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.CONNECTOR_END___VALIDATE_SELF_PART_WITH_PORT__DIAGNOSTICCHAIN_MAP :
-				return validateSelfPartWithPort(
+			case UMLPackage.CONNECTOR_END___VALIDATE_PART_WITH_PORT_EMPTY__DIAGNOSTICCHAIN_MAP :
+				return validatePartWithPortEmpty(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CONNECTOR_END___GET_DEFINING_END :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectorImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectorImpl.java
index 5fb94e0..e55d014 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectorImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectorImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ConnectorImpl.java,v 1.23 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -747,10 +746,6 @@
 				return allOwnedElements();
 			case UMLPackage.CONNECTOR___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.CONNECTOR___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CONNECTOR___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -759,6 +754,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.CONNECTOR___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CONNECTOR___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.CONNECTOR___CREATE_USAGE__NAMEDELEMENT :
@@ -797,8 +796,8 @@
 			case UMLPackage.CONNECTOR___IS_REDEFINITION_CONTEXT_VALID__REDEFINABLEELEMENT :
 				return isRedefinitionContextValid((RedefinableElement) arguments
 					.get(0));
-			case UMLPackage.CONNECTOR___VALIDATE_TYPES__DIAGNOSTICCHAIN_MAP :
-				return validateTypes((DiagnosticChain) arguments.get(0),
+			case UMLPackage.CONNECTOR___VALIDATE_COMPATIBLE__DIAGNOSTICCHAIN_MAP :
+				return validateCompatible((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CONNECTOR___VALIDATE_ROLES__DIAGNOSTICCHAIN_MAP :
 				return validateRoles((DiagnosticChain) arguments.get(0),
@@ -807,8 +806,8 @@
 				return validateBetweenInterfacesPorts(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.CONNECTOR___VALIDATE_COMPATIBLE__DIAGNOSTICCHAIN_MAP :
-				return validateCompatible((DiagnosticChain) arguments.get(0),
+			case UMLPackage.CONNECTOR___VALIDATE_TYPES__DIAGNOSTICCHAIN_MAP :
+				return validateTypes((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CONNECTOR___GET_KIND :
 				return getKind();
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConsiderIgnoreFragmentImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConsiderIgnoreFragmentImpl.java
index 05cc476..73bf0db 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConsiderIgnoreFragmentImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConsiderIgnoreFragmentImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ConsiderIgnoreFragmentImpl.java,v 1.18 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -480,10 +479,6 @@
 				return allOwnedElements();
 			case UMLPackage.CONSIDER_IGNORE_FRAGMENT___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.CONSIDER_IGNORE_FRAGMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CONSIDER_IGNORE_FRAGMENT___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -492,6 +487,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.CONSIDER_IGNORE_FRAGMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CONSIDER_IGNORE_FRAGMENT___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.CONSIDER_IGNORE_FRAGMENT___CREATE_USAGE__NAMEDELEMENT :
@@ -513,28 +512,28 @@
 				return getQualifiedName();
 			case UMLPackage.CONSIDER_IGNORE_FRAGMENT___SEPARATOR :
 				return separator();
-			case UMLPackage.CONSIDER_IGNORE_FRAGMENT___VALIDATE_MININT_AND_MAXINT__DIAGNOSTICCHAIN_MAP :
-				return validateMinintAndMaxint(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CONSIDER_IGNORE_FRAGMENT___VALIDATE_BREAK__DIAGNOSTICCHAIN_MAP :
 				return validateBreak((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.CONSIDER_IGNORE_FRAGMENT___VALIDATE_CONSIDER_AND_IGNORE__DIAGNOSTICCHAIN_MAP :
-				return validateConsiderAndIgnore(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CONSIDER_IGNORE_FRAGMENT___VALIDATE_OPT_LOOP_BREAK_NEG__DIAGNOSTICCHAIN_MAP :
 				return validateOptLoopBreakNeg(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.CONSIDER_IGNORE_FRAGMENT___VALIDATE_CONSIDER_OR_IGNORE__DIAGNOSTICCHAIN_MAP :
-				return validateConsiderOrIgnore(
+			case UMLPackage.CONSIDER_IGNORE_FRAGMENT___VALIDATE_CONSIDER_AND_IGNORE__DIAGNOSTICCHAIN_MAP :
+				return validateConsiderAndIgnore(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.CONSIDER_IGNORE_FRAGMENT___VALIDATE_MININT_AND_MAXINT__DIAGNOSTICCHAIN_MAP :
+				return validateMinintAndMaxint(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CONSIDER_IGNORE_FRAGMENT___VALIDATE_TYPE__DIAGNOSTICCHAIN_MAP :
 				return validateType((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.CONSIDER_IGNORE_FRAGMENT___VALIDATE_CONSIDER_OR_IGNORE__DIAGNOSTICCHAIN_MAP :
+				return validateConsiderOrIgnore(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConstraintImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConstraintImpl.java
index 25b37b5..3632d31 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConstraintImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConstraintImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ConstraintImpl.java,v 1.26 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -743,10 +742,6 @@
 				return allOwnedElements();
 			case UMLPackage.CONSTRAINT___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.CONSTRAINT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CONSTRAINT___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -755,6 +750,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.CONSTRAINT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CONSTRAINT___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.CONSTRAINT___CREATE_USAGE__NAMEDELEMENT :
@@ -780,16 +779,16 @@
 				return isCompatibleWith((ParameterableElement) arguments.get(0));
 			case UMLPackage.CONSTRAINT___IS_TEMPLATE_PARAMETER :
 				return isTemplateParameter();
-			case UMLPackage.CONSTRAINT___VALIDATE_BOOLEAN_VALUE__DIAGNOSTICCHAIN_MAP :
-				return validateBooleanValue((DiagnosticChain) arguments.get(0),
+			case UMLPackage.CONSTRAINT___VALIDATE_NOT_APPLY_TO_SELF__DIAGNOSTICCHAIN_MAP :
+				return validateNotApplyToSelf(
+					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CONSTRAINT___VALIDATE_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP :
 				return validateNoSideEffects(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.CONSTRAINT___VALIDATE_NOT_APPLY_TO_SELF__DIAGNOSTICCHAIN_MAP :
-				return validateNotApplyToSelf(
-					(DiagnosticChain) arguments.get(0),
+			case UMLPackage.CONSTRAINT___VALIDATE_BOOLEAN_VALUE__DIAGNOSTICCHAIN_MAP :
+				return validateBooleanValue((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CONSTRAINT___VALIDATE_VALUE_SPECIFICATION_BOOLEAN__DIAGNOSTICCHAIN_MAP :
 				return validateValueSpecificationBoolean(
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ContinuationImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ContinuationImpl.java
index a3a0288..42b3118 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ContinuationImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ContinuationImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ContinuationImpl.java,v 1.19 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -448,10 +447,6 @@
 				return allOwnedElements();
 			case UMLPackage.CONTINUATION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.CONTINUATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CONTINUATION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -460,6 +455,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.CONTINUATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CONTINUATION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.CONTINUATION___CREATE_USAGE__NAMEDELEMENT :
@@ -481,13 +480,13 @@
 				return getQualifiedName();
 			case UMLPackage.CONTINUATION___SEPARATOR :
 				return separator();
+			case UMLPackage.CONTINUATION___VALIDATE_SAME_NAME__DIAGNOSTICCHAIN_MAP :
+				return validateSameName((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CONTINUATION___VALIDATE_FIRST_OR_LAST_INTERACTION_FRAGMENT__DIAGNOSTICCHAIN_MAP :
 				return validateFirstOrLastInteractionFragment(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.CONTINUATION___VALIDATE_SAME_NAME__DIAGNOSTICCHAIN_MAP :
-				return validateSameName((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CONTINUATION___VALIDATE_GLOBAL__DIAGNOSTICCHAIN_MAP :
 				return validateGlobal((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ControlFlowImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ControlFlowImpl.java
index d44bec2..7b4cf7e 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ControlFlowImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ControlFlowImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ControlFlowImpl.java,v 1.5 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -166,10 +165,6 @@
 				return allOwnedElements();
 			case UMLPackage.CONTROL_FLOW___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.CONTROL_FLOW___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CONTROL_FLOW___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -178,6 +173,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.CONTROL_FLOW___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CONTROL_FLOW___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.CONTROL_FLOW___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CreateLinkActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CreateLinkActionImpl.java
index 54a4762..bbbf0fb 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CreateLinkActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CreateLinkActionImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: CreateLinkActionImpl.java,v 1.20 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -210,10 +209,6 @@
 				return allOwnedElements();
 			case UMLPackage.CREATE_LINK_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.CREATE_LINK_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CREATE_LINK_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -222,6 +217,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.CREATE_LINK_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CREATE_LINK_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.CREATE_LINK_ACTION___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CreateLinkObjectActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CreateLinkObjectActionImpl.java
index 6e2bba4..524e087 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CreateLinkObjectActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CreateLinkObjectActionImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: CreateLinkObjectActionImpl.java,v 1.28 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -292,8 +291,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.CREATE_LINK_OBJECT_ACTION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.CREATE_LINK_OBJECT_ACTION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.CREATE_LINK_OBJECT_ACTION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -373,8 +370,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.CREATE_LINK_OBJECT_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.CREATE_LINK_OBJECT_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.CREATE_LINK_OBJECT_ACTION__IN_STRUCTURED_NODE :
@@ -387,6 +382,8 @@
 				return getOutgoings();
 			case UMLPackage.CREATE_LINK_OBJECT_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.CREATE_LINK_OBJECT_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.CREATE_LINK_OBJECT_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.CREATE_LINK_OBJECT_ACTION__HANDLER :
@@ -634,8 +631,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.CREATE_LINK_OBJECT_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.CREATE_LINK_OBJECT_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.CREATE_LINK_OBJECT_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.CREATE_LINK_OBJECT_ACTION__IN_STRUCTURED_NODE :
@@ -647,6 +642,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.CREATE_LINK_OBJECT_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.CREATE_LINK_OBJECT_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.CREATE_LINK_OBJECT_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.CREATE_LINK_OBJECT_ACTION__HANDLER :
@@ -767,10 +764,6 @@
 				return allOwnedElements();
 			case UMLPackage.CREATE_LINK_OBJECT_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.CREATE_LINK_OBJECT_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CREATE_LINK_OBJECT_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -779,6 +772,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.CREATE_LINK_OBJECT_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CREATE_LINK_OBJECT_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.CREATE_LINK_OBJECT_ACTION___CREATE_USAGE__NAMEDELEMENT :
@@ -845,15 +842,15 @@
 				return validateAssociationNotAbstract(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.CREATE_LINK_OBJECT_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
-				return validateMultiplicity((DiagnosticChain) arguments.get(0),
+			case UMLPackage.CREATE_LINK_OBJECT_ACTION___VALIDATE_ASSOCIATION_CLASS__DIAGNOSTICCHAIN_MAP :
+				return validateAssociationClass(
+					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CREATE_LINK_OBJECT_ACTION___VALIDATE_TYPE_OF_RESULT__DIAGNOSTICCHAIN_MAP :
 				return validateTypeOfResult((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.CREATE_LINK_OBJECT_ACTION___VALIDATE_ASSOCIATION_CLASS__DIAGNOSTICCHAIN_MAP :
-				return validateAssociationClass(
-					(DiagnosticChain) arguments.get(0),
+			case UMLPackage.CREATE_LINK_OBJECT_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
+				return validateMultiplicity((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CreateObjectActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CreateObjectActionImpl.java
index e00b19e..13ea8cf 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CreateObjectActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CreateObjectActionImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: CreateObjectActionImpl.java,v 1.28 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -350,8 +349,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.CREATE_OBJECT_ACTION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.CREATE_OBJECT_ACTION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.CREATE_OBJECT_ACTION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -425,8 +422,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.CREATE_OBJECT_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.CREATE_OBJECT_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.CREATE_OBJECT_ACTION__IN_STRUCTURED_NODE :
@@ -439,6 +434,8 @@
 				return getOutgoings();
 			case UMLPackage.CREATE_OBJECT_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.CREATE_OBJECT_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.CREATE_OBJECT_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.CREATE_OBJECT_ACTION__HANDLER :
@@ -676,8 +673,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.CREATE_OBJECT_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.CREATE_OBJECT_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.CREATE_OBJECT_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.CREATE_OBJECT_ACTION__IN_STRUCTURED_NODE :
@@ -689,6 +684,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.CREATE_OBJECT_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.CREATE_OBJECT_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.CREATE_OBJECT_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.CREATE_OBJECT_ACTION__HANDLER :
@@ -807,10 +804,6 @@
 				return allOwnedElements();
 			case UMLPackage.CREATE_OBJECT_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.CREATE_OBJECT_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CREATE_OBJECT_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -819,6 +812,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.CREATE_OBJECT_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CREATE_OBJECT_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.CREATE_OBJECT_ACTION___CREATE_USAGE__NAMEDELEMENT :
@@ -866,20 +863,20 @@
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CREATE_OBJECT_ACTION___GET_CONTEXT :
 				return getContext();
-			case UMLPackage.CREATE_OBJECT_ACTION___VALIDATE_CLASSIFIER_NOT_ABSTRACT__DIAGNOSTICCHAIN_MAP :
-				return validateClassifierNotAbstract(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.CREATE_OBJECT_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
-				return validateMultiplicity((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CREATE_OBJECT_ACTION___VALIDATE_CLASSIFIER_NOT_ASSOCIATION_CLASS__DIAGNOSTICCHAIN_MAP :
 				return validateClassifierNotAssociationClass(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.CREATE_OBJECT_ACTION___VALIDATE_CLASSIFIER_NOT_ABSTRACT__DIAGNOSTICCHAIN_MAP :
+				return validateClassifierNotAbstract(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.CREATE_OBJECT_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP :
 				return validateSameType((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.CREATE_OBJECT_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
+				return validateMultiplicity((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DataTypeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DataTypeImpl.java
index bfe1531..8cb9bfa 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DataTypeImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DataTypeImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: DataTypeImpl.java,v 1.32 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -74,8 +73,8 @@
  * <p>
  * The following features are implemented:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.internal.impl.DataTypeImpl#getAttributes <em>Attribute</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.DataTypeImpl#getOwnedMembers <em>Owned Member</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.internal.impl.DataTypeImpl#getAttributes <em>Attribute</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.DataTypeImpl#getFeatures <em>Feature</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.DataTypeImpl#getOwnedAttributes <em>Owned Attribute</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.DataTypeImpl#getOwnedOperations <em>Owned Operation</em>}</li>
@@ -1068,10 +1067,6 @@
 				return allOwnedElements();
 			case UMLPackage.DATA_TYPE___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.DATA_TYPE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.DATA_TYPE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1080,6 +1075,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.DATA_TYPE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.DATA_TYPE___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.DATA_TYPE___CREATE_USAGE__NAMEDELEMENT :
@@ -1169,14 +1168,6 @@
 				return isTemplate();
 			case UMLPackage.DATA_TYPE___PARAMETERABLE_ELEMENTS :
 				return parameterableElements();
-			case UMLPackage.DATA_TYPE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
-				return validateSpecializeType(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.DATA_TYPE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
-				return validateMapsToGeneralizationSet(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.DATA_TYPE___VALIDATE_NON_FINAL_PARENTS__DIAGNOSTICCHAIN_MAP :
 				return validateNonFinalParents(
 					(DiagnosticChain) arguments.get(0),
@@ -1185,6 +1176,14 @@
 				return validateNoCyclesInGeneralization(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.DATA_TYPE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
+				return validateSpecializeType(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.DATA_TYPE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
+				return validateMapsToGeneralizationSet(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.DATA_TYPE___GET_ALL_ATTRIBUTES :
 				return getAllAttributes();
 			case UMLPackage.DATA_TYPE___GET_ALL_OPERATIONS :
@@ -1236,16 +1235,6 @@
 	}
 
 	/**
-	 * The array of subset feature identifiers for the '{@link #getAttributes() <em>Attribute</em>}' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAttributes()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final int[] ATTRIBUTE_ESUBSETS = new int[]{UMLPackage.DATA_TYPE__OWNED_ATTRIBUTE};
-
-	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -1270,6 +1259,16 @@
 		UMLPackage.DATA_TYPE__OWNED_OPERATION};
 
 	/**
+	 * The array of subset feature identifiers for the '{@link #getAttributes() <em>Attribute</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAttributes()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int[] ATTRIBUTE_ESUBSETS = new int[]{UMLPackage.DATA_TYPE__OWNED_ATTRIBUTE};
+
+	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DecisionNodeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DecisionNodeImpl.java
index 21d0a2f..6b4ebb4 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DecisionNodeImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DecisionNodeImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: DecisionNodeImpl.java,v 1.21 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -322,8 +321,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.DECISION_NODE__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.DECISION_NODE__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.DECISION_NODE__IN_STRUCTURED_NODE :
@@ -336,6 +333,8 @@
 				return getOutgoings();
 			case UMLPackage.DECISION_NODE__INCOMING :
 				return getIncomings();
+			case UMLPackage.DECISION_NODE__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.DECISION_NODE__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.DECISION_NODE__DECISION_INPUT :
@@ -527,8 +526,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.DECISION_NODE__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.DECISION_NODE__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.DECISION_NODE__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.DECISION_NODE__IN_STRUCTURED_NODE :
@@ -540,6 +537,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.DECISION_NODE__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.DECISION_NODE__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.DECISION_NODE__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.DECISION_NODE__DECISION_INPUT :
@@ -642,10 +641,6 @@
 				return allOwnedElements();
 			case UMLPackage.DECISION_NODE___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.DECISION_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.DECISION_NODE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -654,6 +649,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.DECISION_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.DECISION_NODE___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.DECISION_NODE___CREATE_USAGE__NAMEDELEMENT :
@@ -699,19 +698,11 @@
 				return validateOwnedStructuredNode(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.DECISION_NODE___VALIDATE_ZERO_INPUT_PARAMETERS__DIAGNOSTICCHAIN_MAP :
-				return validateZeroInputParameters(
-					(DiagnosticChain) arguments.get(0),
+			case UMLPackage.DECISION_NODE___VALIDATE_PARAMETERS__DIAGNOSTICCHAIN_MAP :
+				return validateParameters((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.DECISION_NODE___VALIDATE_EDGES__DIAGNOSTICCHAIN_MAP :
-				return validateEdges((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.DECISION_NODE___VALIDATE_DECISION_INPUT_FLOW_INCOMING__DIAGNOSTICCHAIN_MAP :
-				return validateDecisionInputFlowIncoming(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.DECISION_NODE___VALIDATE_TWO_INPUT_PARAMETERS__DIAGNOSTICCHAIN_MAP :
-				return validateTwoInputParameters(
+			case UMLPackage.DECISION_NODE___VALIDATE_INCOMING_OBJECT_ONE_INPUT_PARAMETER__DIAGNOSTICCHAIN_MAP :
+				return validateIncomingObjectOneInputParameter(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.DECISION_NODE___VALIDATE_INCOMING_OUTGOING_EDGES__DIAGNOSTICCHAIN_MAP :
@@ -722,13 +713,21 @@
 				return validateIncomingControlOneInputParameter(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.DECISION_NODE___VALIDATE_PARAMETERS__DIAGNOSTICCHAIN_MAP :
-				return validateParameters((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.DECISION_NODE___VALIDATE_INCOMING_OBJECT_ONE_INPUT_PARAMETER__DIAGNOSTICCHAIN_MAP :
-				return validateIncomingObjectOneInputParameter(
+			case UMLPackage.DECISION_NODE___VALIDATE_TWO_INPUT_PARAMETERS__DIAGNOSTICCHAIN_MAP :
+				return validateTwoInputParameters(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.DECISION_NODE___VALIDATE_DECISION_INPUT_FLOW_INCOMING__DIAGNOSTICCHAIN_MAP :
+				return validateDecisionInputFlowIncoming(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.DECISION_NODE___VALIDATE_ZERO_INPUT_PARAMETERS__DIAGNOSTICCHAIN_MAP :
+				return validateZeroInputParameters(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.DECISION_NODE___VALIDATE_EDGES__DIAGNOSTICCHAIN_MAP :
+				return validateEdges((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DeploymentSpecificationImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DeploymentSpecificationImpl.java
index 781d247..1df1e8c 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DeploymentSpecificationImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DeploymentSpecificationImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: DeploymentSpecificationImpl.java,v 1.25 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -1135,10 +1134,6 @@
 				return allOwnedElements();
 			case UMLPackage.DEPLOYMENT_SPECIFICATION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.DEPLOYMENT_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.DEPLOYMENT_SPECIFICATION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1147,6 +1142,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.DEPLOYMENT_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.DEPLOYMENT_SPECIFICATION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.DEPLOYMENT_SPECIFICATION___CREATE_USAGE__NAMEDELEMENT :
@@ -1236,14 +1235,6 @@
 				return isTemplate();
 			case UMLPackage.DEPLOYMENT_SPECIFICATION___PARAMETERABLE_ELEMENTS :
 				return parameterableElements();
-			case UMLPackage.DEPLOYMENT_SPECIFICATION___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
-				return validateSpecializeType(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.DEPLOYMENT_SPECIFICATION___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
-				return validateMapsToGeneralizationSet(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.DEPLOYMENT_SPECIFICATION___VALIDATE_NON_FINAL_PARENTS__DIAGNOSTICCHAIN_MAP :
 				return validateNonFinalParents(
 					(DiagnosticChain) arguments.get(0),
@@ -1252,6 +1243,14 @@
 				return validateNoCyclesInGeneralization(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.DEPLOYMENT_SPECIFICATION___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
+				return validateSpecializeType(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.DEPLOYMENT_SPECIFICATION___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
+				return validateMapsToGeneralizationSet(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.DEPLOYMENT_SPECIFICATION___GET_ALL_ATTRIBUTES :
 				return getAllAttributes();
 			case UMLPackage.DEPLOYMENT_SPECIFICATION___GET_ALL_OPERATIONS :
@@ -1298,14 +1297,14 @@
 				return createOwnedOperation((String) arguments.get(0),
 					(EList<String>) arguments.get(1),
 					(EList<Type>) arguments.get(2), (Type) arguments.get(3));
-			case UMLPackage.DEPLOYMENT_SPECIFICATION___VALIDATE_DEPLOYMENT_TARGET__DIAGNOSTICCHAIN_MAP :
-				return validateDeploymentTarget(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.DEPLOYMENT_SPECIFICATION___VALIDATE_DEPLOYED_ELEMENTS__DIAGNOSTICCHAIN_MAP :
 				return validateDeployedElements(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.DEPLOYMENT_SPECIFICATION___VALIDATE_DEPLOYMENT_TARGET__DIAGNOSTICCHAIN_MAP :
+				return validateDeploymentTarget(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DestroyObjectActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DestroyObjectActionImpl.java
index 7cdd176..f62e0d2 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DestroyObjectActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DestroyObjectActionImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: DestroyObjectActionImpl.java,v 1.30 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -379,8 +378,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.DESTROY_OBJECT_ACTION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.DESTROY_OBJECT_ACTION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.DESTROY_OBJECT_ACTION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -454,8 +451,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.DESTROY_OBJECT_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.DESTROY_OBJECT_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.DESTROY_OBJECT_ACTION__IN_STRUCTURED_NODE :
@@ -468,6 +463,8 @@
 				return getOutgoings();
 			case UMLPackage.DESTROY_OBJECT_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.DESTROY_OBJECT_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.DESTROY_OBJECT_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.DESTROY_OBJECT_ACTION__HANDLER :
@@ -711,8 +708,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.DESTROY_OBJECT_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.DESTROY_OBJECT_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.DESTROY_OBJECT_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.DESTROY_OBJECT_ACTION__IN_STRUCTURED_NODE :
@@ -724,6 +719,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.DESTROY_OBJECT_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.DESTROY_OBJECT_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.DESTROY_OBJECT_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.DESTROY_OBJECT_ACTION__HANDLER :
@@ -844,10 +841,6 @@
 				return allOwnedElements();
 			case UMLPackage.DESTROY_OBJECT_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.DESTROY_OBJECT_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.DESTROY_OBJECT_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -856,6 +849,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.DESTROY_OBJECT_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.DESTROY_OBJECT_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.DESTROY_OBJECT_ACTION___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DestructionOccurrenceSpecificationImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DestructionOccurrenceSpecificationImpl.java
index 432b674..73fbe6a 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DestructionOccurrenceSpecificationImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DestructionOccurrenceSpecificationImpl.java
@@ -7,6 +7,7 @@
  *
  * Contributors:
  *   CEA - initial API and implementation
+ *   Kenn Hussey (CEA) - 351774
  *
  */
 package org.eclipse.uml2.uml.internal.impl;
@@ -163,10 +164,6 @@
 				return allOwnedElements();
 			case UMLPackage.DESTRUCTION_OCCURRENCE_SPECIFICATION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.DESTRUCTION_OCCURRENCE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.DESTRUCTION_OCCURRENCE_SPECIFICATION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -175,6 +172,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.DESTRUCTION_OCCURRENCE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.DESTRUCTION_OCCURRENCE_SPECIFICATION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.DESTRUCTION_OCCURRENCE_SPECIFICATION___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DurationConstraintImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DurationConstraintImpl.java
index 2cff0f9..040e5d3 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DurationConstraintImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DurationConstraintImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: DurationConstraintImpl.java,v 1.25 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -560,10 +559,6 @@
 				return allOwnedElements();
 			case UMLPackage.DURATION_CONSTRAINT___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.DURATION_CONSTRAINT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.DURATION_CONSTRAINT___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -572,6 +567,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.DURATION_CONSTRAINT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.DURATION_CONSTRAINT___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.DURATION_CONSTRAINT___CREATE_USAGE__NAMEDELEMENT :
@@ -597,16 +596,16 @@
 				return isCompatibleWith((ParameterableElement) arguments.get(0));
 			case UMLPackage.DURATION_CONSTRAINT___IS_TEMPLATE_PARAMETER :
 				return isTemplateParameter();
-			case UMLPackage.DURATION_CONSTRAINT___VALIDATE_BOOLEAN_VALUE__DIAGNOSTICCHAIN_MAP :
-				return validateBooleanValue((DiagnosticChain) arguments.get(0),
+			case UMLPackage.DURATION_CONSTRAINT___VALIDATE_NOT_APPLY_TO_SELF__DIAGNOSTICCHAIN_MAP :
+				return validateNotApplyToSelf(
+					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.DURATION_CONSTRAINT___VALIDATE_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP :
 				return validateNoSideEffects(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.DURATION_CONSTRAINT___VALIDATE_NOT_APPLY_TO_SELF__DIAGNOSTICCHAIN_MAP :
-				return validateNotApplyToSelf(
-					(DiagnosticChain) arguments.get(0),
+			case UMLPackage.DURATION_CONSTRAINT___VALIDATE_BOOLEAN_VALUE__DIAGNOSTICCHAIN_MAP :
+				return validateBooleanValue((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.DURATION_CONSTRAINT___VALIDATE_VALUE_SPECIFICATION_BOOLEAN__DIAGNOSTICCHAIN_MAP :
 				return validateValueSpecificationBoolean(
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DurationImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DurationImpl.java
index c1815d0..69d293e 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DurationImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DurationImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: DurationImpl.java,v 1.21 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -619,10 +618,6 @@
 				return allOwnedElements();
 			case UMLPackage.DURATION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.DURATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.DURATION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -631,6 +626,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.DURATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.DURATION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.DURATION___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DurationObservationImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DurationObservationImpl.java
index 669741a..1260ef5 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DurationObservationImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DurationObservationImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: DurationObservationImpl.java,v 1.9 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -443,10 +442,6 @@
 				return allOwnedElements();
 			case UMLPackage.DURATION_OBSERVATION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.DURATION_OBSERVATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.DURATION_OBSERVATION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -455,6 +450,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.DURATION_OBSERVATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.DURATION_OBSERVATION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.DURATION_OBSERVATION___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ElementImportImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ElementImportImpl.java
index e50f535..de3d493 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ElementImportImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ElementImportImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ElementImportImpl.java,v 1.22 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -59,8 +58,8 @@
  * The following features are implemented:
  * <ul>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.ElementImportImpl#getTargets <em>Target</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.internal.impl.ElementImportImpl#getSources <em>Source</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.ElementImportImpl#getOwner <em>Owner</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.internal.impl.ElementImportImpl#getSources <em>Source</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.ElementImportImpl#getAlias <em>Alias</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.ElementImportImpl#getImportedElement <em>Imported Element</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.ElementImportImpl#getImportingNamespace <em>Importing Namespace</em>}</li>
@@ -733,14 +732,14 @@
 				return allOwnedElements();
 			case UMLPackage.ELEMENT_IMPORT___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.ELEMENT_IMPORT___VALIDATE_IMPORTED_ELEMENT_IS_PUBLIC__DIAGNOSTICCHAIN_MAP :
-				return validateImportedElementIsPublic(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ELEMENT_IMPORT___VALIDATE_VISIBILITY_PUBLIC_OR_PRIVATE__DIAGNOSTICCHAIN_MAP :
 				return validateVisibilityPublicOrPrivate(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ELEMENT_IMPORT___VALIDATE_IMPORTED_ELEMENT_IS_PUBLIC__DIAGNOSTICCHAIN_MAP :
+				return validateImportedElementIsPublic(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ELEMENT_IMPORT___GET_NAME :
 				return getName();
 		}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/EnumerationLiteralImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/EnumerationLiteralImpl.java
index d9adb9d..c91f8e7 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/EnumerationLiteralImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/EnumerationLiteralImpl.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: EnumerationLiteralImpl.java,v 1.19 2009/01/07 15:55:25 jbruck Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -659,10 +658,6 @@
 				return allOwnedElements();
 			case UMLPackage.ENUMERATION_LITERAL___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.ENUMERATION_LITERAL___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ENUMERATION_LITERAL___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -671,6 +666,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ENUMERATION_LITERAL___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ENUMERATION_LITERAL___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.ENUMERATION_LITERAL___CREATE_USAGE__NAMEDELEMENT :
@@ -698,10 +697,6 @@
 				return isCompatibleWith((ParameterableElement) arguments.get(0));
 			case UMLPackage.ENUMERATION_LITERAL___IS_TEMPLATE_PARAMETER :
 				return isTemplateParameter();
-			case UMLPackage.ENUMERATION_LITERAL___VALIDATE_DEPLOYMENT_ARTIFACT__DIAGNOSTICCHAIN_MAP :
-				return validateDeploymentArtifact(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ENUMERATION_LITERAL___VALIDATE_STRUCTURAL_FEATURE__DIAGNOSTICCHAIN_MAP :
 				return validateStructuralFeature(
 					(DiagnosticChain) arguments.get(0),
@@ -714,6 +709,10 @@
 				return validateDeploymentTarget(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.ENUMERATION_LITERAL___VALIDATE_DEPLOYMENT_ARTIFACT__DIAGNOSTICCHAIN_MAP :
+				return validateDeploymentArtifact(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.ENUMERATION_LITERAL___VALIDATE_CLASSIFIER_EQUALS_OWNING_ENUMERATION__DIAGNOSTICCHAIN_MAP :
 				return validateClassifierEqualsOwningEnumeration(
 					(DiagnosticChain) arguments.get(0),
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExceptionHandlerImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExceptionHandlerImpl.java
index 76459d5..84dd675 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExceptionHandlerImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExceptionHandlerImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ExceptionHandlerImpl.java,v 1.21 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -642,13 +641,6 @@
 				return allOwnedElements();
 			case UMLPackage.EXCEPTION_HANDLER___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.EXCEPTION_HANDLER___VALIDATE_EXCEPTION_BODY__DIAGNOSTICCHAIN_MAP :
-				return validateExceptionBody(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.EXCEPTION_HANDLER___VALIDATE_RESULT_PINS__DIAGNOSTICCHAIN_MAP :
-				return validateResultPins((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.EXCEPTION_HANDLER___VALIDATE_ONE_INPUT__DIAGNOSTICCHAIN_MAP :
 				return validateOneInput((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
@@ -656,6 +648,13 @@
 				return validateEdgeSourceTarget(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.EXCEPTION_HANDLER___VALIDATE_RESULT_PINS__DIAGNOSTICCHAIN_MAP :
+				return validateResultPins((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.EXCEPTION_HANDLER___VALIDATE_EXCEPTION_BODY__DIAGNOSTICCHAIN_MAP :
+				return validateExceptionBody(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExecutableNodeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExecutableNodeImpl.java
index 1beff37..51c6565 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExecutableNodeImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExecutableNodeImpl.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ExecutableNodeImpl.java,v 1.23 2009/01/07 15:55:31 jbruck Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -161,10 +160,6 @@
 			case UMLPackage.EXECUTABLE_NODE__CLIENT_DEPENDENCY :
 				return ((InternalEList<InternalEObject>) (InternalEList<?>) getClientDependencies())
 					.basicAdd(otherEnd, msgs);
-			case UMLPackage.EXECUTABLE_NODE__ACTIVITY :
-				if (eInternalContainer() != null)
-					msgs = eBasicRemoveFromContainer(msgs);
-				return basicSetActivity((Activity) otherEnd, msgs);
 			case UMLPackage.EXECUTABLE_NODE__IN_PARTITION :
 				return ((InternalEList<InternalEObject>) (InternalEList<?>) getInPartitions())
 					.basicAdd(otherEnd, msgs);
@@ -209,8 +204,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.EXECUTABLE_NODE__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.EXECUTABLE_NODE__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.EXECUTABLE_NODE__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -276,8 +269,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.EXECUTABLE_NODE__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.EXECUTABLE_NODE__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.EXECUTABLE_NODE__IN_STRUCTURED_NODE :
@@ -290,6 +281,8 @@
 				return getOutgoings();
 			case UMLPackage.EXECUTABLE_NODE__INCOMING :
 				return getIncomings();
+			case UMLPackage.EXECUTABLE_NODE__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.EXECUTABLE_NODE__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.EXECUTABLE_NODE__HANDLER :
@@ -471,8 +464,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.EXECUTABLE_NODE__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.EXECUTABLE_NODE__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.EXECUTABLE_NODE__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.EXECUTABLE_NODE__IN_STRUCTURED_NODE :
@@ -484,6 +475,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.EXECUTABLE_NODE__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.EXECUTABLE_NODE__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.EXECUTABLE_NODE__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.EXECUTABLE_NODE__HANDLER :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExecutionSpecificationImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExecutionSpecificationImpl.java
index 7c2adf2..9e9a7ae 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExecutionSpecificationImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExecutionSpecificationImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ExecutionSpecificationImpl.java,v 1.18 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -499,10 +498,6 @@
 				return allOwnedElements();
 			case UMLPackage.EXECUTION_SPECIFICATION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.EXECUTION_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.EXECUTION_SPECIFICATION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -511,6 +506,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.EXECUTION_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.EXECUTION_SPECIFICATION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.EXECUTION_SPECIFICATION___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExpansionNodeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExpansionNodeImpl.java
index c5b7b74..4733f7b 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExpansionNodeImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExpansionNodeImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ExpansionNodeImpl.java,v 1.21 2009/01/07 15:55:30 jbruck Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -286,10 +285,6 @@
 			case UMLPackage.EXPANSION_NODE__CLIENT_DEPENDENCY :
 				return ((InternalEList<InternalEObject>) (InternalEList<?>) getClientDependencies())
 					.basicAdd(otherEnd, msgs);
-			case UMLPackage.EXPANSION_NODE__ACTIVITY :
-				if (eInternalContainer() != null)
-					msgs = eBasicRemoveFromContainer(msgs);
-				return basicSetActivity((Activity) otherEnd, msgs);
 			case UMLPackage.EXPANSION_NODE__IN_PARTITION :
 				return ((InternalEList<InternalEObject>) (InternalEList<?>) getInPartitions())
 					.basicAdd(otherEnd, msgs);
@@ -343,8 +338,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.EXPANSION_NODE__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.EXPANSION_NODE__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.EXPANSION_NODE__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -413,8 +406,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.EXPANSION_NODE__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.EXPANSION_NODE__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.EXPANSION_NODE__IN_STRUCTURED_NODE :
@@ -427,6 +418,8 @@
 				return getOutgoings();
 			case UMLPackage.EXPANSION_NODE__INCOMING :
 				return getIncomings();
+			case UMLPackage.EXPANSION_NODE__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.EXPANSION_NODE__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.EXPANSION_NODE__TYPE :
@@ -673,8 +666,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.EXPANSION_NODE__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.EXPANSION_NODE__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.EXPANSION_NODE__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.EXPANSION_NODE__IN_STRUCTURED_NODE :
@@ -686,6 +677,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.EXPANSION_NODE__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.EXPANSION_NODE__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.EXPANSION_NODE__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.EXPANSION_NODE__TYPE :
@@ -800,10 +793,6 @@
 				return allOwnedElements();
 			case UMLPackage.EXPANSION_NODE___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.EXPANSION_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.EXPANSION_NODE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -812,6 +801,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.EXPANSION_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.EXPANSION_NODE___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.EXPANSION_NODE___CREATE_USAGE__NAMEDELEMENT :
@@ -857,16 +850,16 @@
 				return validateOwnedStructuredNode(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.EXPANSION_NODE___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP :
-				return validateInputOutputParameter(
+			case UMLPackage.EXPANSION_NODE___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP :
+				return validateObjectFlowEdges(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.EXPANSION_NODE___VALIDATE_SELECTION_BEHAVIOR__DIAGNOSTICCHAIN_MAP :
 				return validateSelectionBehavior(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.EXPANSION_NODE___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP :
-				return validateObjectFlowEdges(
+			case UMLPackage.EXPANSION_NODE___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP :
+				return validateInputOutputParameter(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.EXPANSION_NODE___VALIDATE_REGION_AS_INPUT_OR_OUTPUT__DIAGNOSTICCHAIN_MAP :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExpansionRegionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExpansionRegionImpl.java
index 1a5891c..cf4ce70 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExpansionRegionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExpansionRegionImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ExpansionRegionImpl.java,v 1.24 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -309,10 +308,6 @@
 			case UMLPackage.EXPANSION_REGION__CLIENT_DEPENDENCY :
 				return ((InternalEList<InternalEObject>) (InternalEList<?>) getClientDependencies())
 					.basicAdd(otherEnd, msgs);
-			case UMLPackage.EXPANSION_REGION__ACTIVITY :
-				if (eInternalContainer() != null)
-					msgs = eBasicRemoveFromContainer(msgs);
-				return basicSetActivity((Activity) otherEnd, msgs);
 			case UMLPackage.EXPANSION_REGION__IN_PARTITION :
 				return ((InternalEList<InternalEObject>) (InternalEList<?>) getInPartitions())
 					.basicAdd(otherEnd, msgs);
@@ -342,10 +337,6 @@
 			case UMLPackage.EXPANSION_REGION__OWNED_RULE :
 				return ((InternalEList<InternalEObject>) (InternalEList<?>) getOwnedRules())
 					.basicAdd(otherEnd, msgs);
-			case UMLPackage.EXPANSION_REGION__IN_ACTIVITY :
-				if (eInternalContainer() != null)
-					msgs = eBasicRemoveFromContainer(msgs);
-				return basicSetInActivity((Activity) otherEnd, msgs);
 			case UMLPackage.EXPANSION_REGION__NODE :
 				return ((InternalEList<InternalEObject>) (InternalEList<?>) getNodes())
 					.basicAdd(otherEnd, msgs);
@@ -385,8 +376,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.EXPANSION_REGION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.EXPANSION_REGION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.EXPANSION_REGION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -419,8 +408,6 @@
 			case UMLPackage.EXPANSION_REGION__OWNED_RULE :
 				return ((InternalEList<?>) getOwnedRules()).basicRemove(
 					otherEnd, msgs);
-			case UMLPackage.EXPANSION_REGION__IN_ACTIVITY :
-				return basicSetInActivity(null, msgs);
 			case UMLPackage.EXPANSION_REGION__NODE :
 				return ((InternalEList<?>) getNodes()).basicRemove(otherEnd,
 					msgs);
@@ -490,8 +477,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.EXPANSION_REGION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.EXPANSION_REGION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.EXPANSION_REGION__IN_STRUCTURED_NODE :
@@ -504,6 +489,8 @@
 				return getOutgoings();
 			case UMLPackage.EXPANSION_REGION__INCOMING :
 				return getIncomings();
+			case UMLPackage.EXPANSION_REGION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.EXPANSION_REGION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.EXPANSION_REGION__HANDLER :
@@ -534,6 +521,8 @@
 				return getImportedMembers();
 			case UMLPackage.EXPANSION_REGION__MEMBER :
 				return getMembers();
+			case UMLPackage.EXPANSION_REGION__CONTAINED_EDGE :
+				return getContainedEdges();
 			case UMLPackage.EXPANSION_REGION__CONTAINED_NODE :
 				return getContainedNodes();
 			case UMLPackage.EXPANSION_REGION__IN_ACTIVITY :
@@ -546,8 +535,6 @@
 				if (resolve)
 					return getSuperGroup();
 				return basicGetSuperGroup();
-			case UMLPackage.EXPANSION_REGION__CONTAINED_EDGE :
-				return getContainedEdges();
 			case UMLPackage.EXPANSION_REGION__MUST_ISOLATE :
 				return isMustIsolate();
 			case UMLPackage.EXPANSION_REGION__NODE :
@@ -863,8 +850,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.EXPANSION_REGION__ACTIVITY :
 				return isSetActivity();
-			case UMLPackage.EXPANSION_REGION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.EXPANSION_REGION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.EXPANSION_REGION__IN_STRUCTURED_NODE :
@@ -876,6 +861,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.EXPANSION_REGION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.EXPANSION_REGION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.EXPANSION_REGION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.EXPANSION_REGION__HANDLER :
@@ -906,6 +893,8 @@
 				return !getImportedMembers().isEmpty();
 			case UMLPackage.EXPANSION_REGION__MEMBER :
 				return isSetMembers();
+			case UMLPackage.EXPANSION_REGION__CONTAINED_EDGE :
+				return isSetContainedEdges();
 			case UMLPackage.EXPANSION_REGION__CONTAINED_NODE :
 				return isSetContainedNodes();
 			case UMLPackage.EXPANSION_REGION__IN_ACTIVITY :
@@ -914,8 +903,6 @@
 				return isSetSubgroups();
 			case UMLPackage.EXPANSION_REGION__SUPER_GROUP :
 				return isSetSuperGroup();
-			case UMLPackage.EXPANSION_REGION__CONTAINED_EDGE :
-				return isSetContainedEdges();
 			case UMLPackage.EXPANSION_REGION__MUST_ISOLATE :
 				return ((eFlags & MUST_ISOLATE_EFLAG) != 0) != MUST_ISOLATE_EDEFAULT;
 			case UMLPackage.EXPANSION_REGION__NODE :
@@ -1032,10 +1019,6 @@
 				return allOwnedElements();
 			case UMLPackage.EXPANSION_REGION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.EXPANSION_REGION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.EXPANSION_REGION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1044,6 +1027,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.EXPANSION_REGION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.EXPANSION_REGION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.EXPANSION_REGION___CREATE_USAGE__NAMEDELEMENT :
@@ -1121,25 +1108,25 @@
 				return membersAreDistinguishable();
 			case UMLPackage.EXPANSION_REGION___GET_OWNED_MEMBERS :
 				return getOwnedMembers();
-			case UMLPackage.EXPANSION_REGION___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP :
-				return validateNodesAndEdges(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.EXPANSION_REGION___VALIDATE_GROUP_OWNED__DIAGNOSTICCHAIN_MAP :
 				return validateGroupOwned((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.EXPANSION_REGION___VALIDATE_NOT_CONTAINED__DIAGNOSTICCHAIN_MAP :
 				return validateNotContained((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.EXPANSION_REGION___VALIDATE_OUTPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP :
-				return validateOutputPinEdges(
+			case UMLPackage.EXPANSION_REGION___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP :
+				return validateNodesAndEdges(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.EXPANSION_REGION___VALIDATE_INPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP :
+				return validateInputPinEdges(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.EXPANSION_REGION___VALIDATE_EDGES__DIAGNOSTICCHAIN_MAP :
 				return validateEdges((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.EXPANSION_REGION___VALIDATE_INPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP :
-				return validateInputPinEdges(
+			case UMLPackage.EXPANSION_REGION___VALIDATE_OUTPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP :
+				return validateOutputPinEdges(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.EXPANSION_REGION___VALIDATE_EXPANSION_NODES__DIAGNOSTICCHAIN_MAP :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExtendImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExtendImpl.java
index b4ce5b1..8892835 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExtendImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExtendImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ExtendImpl.java,v 1.27 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -907,10 +906,6 @@
 				return allOwnedElements();
 			case UMLPackage.EXTEND___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.EXTEND___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.EXTEND___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -919,6 +914,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.EXTEND___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.EXTEND___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.EXTEND___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExtensionEndImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExtensionEndImpl.java
index c63c490..489a199 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExtensionEndImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExtensionEndImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ExtensionEndImpl.java,v 1.26 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -282,10 +281,6 @@
 				return allOwnedElements();
 			case UMLPackage.EXTENSION_END___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.EXTENSION_END___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.EXTENSION_END___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -294,6 +289,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.EXTENSION_END___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.EXTENSION_END___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.EXTENSION_END___CREATE_USAGE__NAMEDELEMENT :
@@ -332,20 +331,20 @@
 			case UMLPackage.EXTENSION_END___IS_REDEFINITION_CONTEXT_VALID__REDEFINABLEELEMENT :
 				return isRedefinitionContextValid((RedefinableElement) arguments
 					.get(0));
-			case UMLPackage.EXTENSION_END___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP :
-				return validateUpperGeLower((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.EXTENSION_END___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP :
 				return validateLowerGe0((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.EXTENSION_END___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP :
-				return validateValueSpecificationNoSideEffects(
-					(DiagnosticChain) arguments.get(0),
+			case UMLPackage.EXTENSION_END___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP :
+				return validateUpperGeLower((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.EXTENSION_END___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP :
 				return validateValueSpecificationConstant(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.EXTENSION_END___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP :
+				return validateValueSpecificationNoSideEffects(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.EXTENSION_END___SET_LOWER__INT :
 				setLower((Integer) arguments.get(0));
 				return null;
@@ -380,40 +379,40 @@
 				return getEnds();
 			case UMLPackage.EXTENSION_END___GET_DEPLOYED_ELEMENTS :
 				return getDeployedElements();
-			case UMLPackage.EXTENSION_END___VALIDATE_SUBSETTING_CONTEXT_CONFORMS__DIAGNOSTICCHAIN_MAP :
-				return validateSubsettingContextConforms(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.EXTENSION_END___VALIDATE_DERIVED_UNION_IS_READ_ONLY__DIAGNOSTICCHAIN_MAP :
-				return validateDerivedUnionIsReadOnly(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.EXTENSION_END___VALIDATE_MULTIPLICITY_OF_COMPOSITE__DIAGNOSTICCHAIN_MAP :
-				return validateMultiplicityOfComposite(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.EXTENSION_END___VALIDATE_REDEFINED_PROPERTY_INHERITED__DIAGNOSTICCHAIN_MAP :
-				return validateRedefinedPropertyInherited(
+			case UMLPackage.EXTENSION_END___VALIDATE_SUBSETTED_PROPERTY_NAMES__DIAGNOSTICCHAIN_MAP :
+				return validateSubsettedPropertyNames(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.EXTENSION_END___VALIDATE_SUBSETTING_RULES__DIAGNOSTICCHAIN_MAP :
 				return validateSubsettingRules(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.EXTENSION_END___VALIDATE_MULTIPLICITY_OF_COMPOSITE__DIAGNOSTICCHAIN_MAP :
+				return validateMultiplicityOfComposite(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.EXTENSION_END___VALIDATE_BINDING_TO_ATTRIBUTE__DIAGNOSTICCHAIN_MAP :
 				return validateBindingToAttribute(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.EXTENSION_END___VALIDATE_DERIVED_UNION_IS_DERIVED__DIAGNOSTICCHAIN_MAP :
-				return validateDerivedUnionIsDerived(
+			case UMLPackage.EXTENSION_END___VALIDATE_REDEFINED_PROPERTY_INHERITED__DIAGNOSTICCHAIN_MAP :
+				return validateRedefinedPropertyInherited(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.EXTENSION_END___VALIDATE_SUBSETTING_CONTEXT_CONFORMS__DIAGNOSTICCHAIN_MAP :
+				return validateSubsettingContextConforms(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.EXTENSION_END___VALIDATE_DEPLOYMENT_TARGET__DIAGNOSTICCHAIN_MAP :
 				return validateDeploymentTarget(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.EXTENSION_END___VALIDATE_SUBSETTED_PROPERTY_NAMES__DIAGNOSTICCHAIN_MAP :
-				return validateSubsettedPropertyNames(
+			case UMLPackage.EXTENSION_END___VALIDATE_DERIVED_UNION_IS_DERIVED__DIAGNOSTICCHAIN_MAP :
+				return validateDerivedUnionIsDerived(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.EXTENSION_END___VALIDATE_DERIVED_UNION_IS_READ_ONLY__DIAGNOSTICCHAIN_MAP :
+				return validateDerivedUnionIsReadOnly(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.EXTENSION_END___GET_OTHER_END :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExtensionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExtensionImpl.java
index 2be3fdf..1f761b6 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExtensionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExtensionImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ExtensionImpl.java,v 1.31 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -573,10 +572,6 @@
 				return allOwnedElements();
 			case UMLPackage.EXTENSION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.EXTENSION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.EXTENSION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -585,6 +580,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.EXTENSION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.EXTENSION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.EXTENSION___CREATE_USAGE__NAMEDELEMENT :
@@ -674,14 +673,6 @@
 				return isTemplate();
 			case UMLPackage.EXTENSION___PARAMETERABLE_ELEMENTS :
 				return parameterableElements();
-			case UMLPackage.EXTENSION___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
-				return validateSpecializeType(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.EXTENSION___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
-				return validateMapsToGeneralizationSet(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.EXTENSION___VALIDATE_NON_FINAL_PARENTS__DIAGNOSTICCHAIN_MAP :
 				return validateNonFinalParents(
 					(DiagnosticChain) arguments.get(0),
@@ -690,6 +681,14 @@
 				return validateNoCyclesInGeneralization(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.EXTENSION___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
+				return validateSpecializeType(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.EXTENSION___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
+				return validateMapsToGeneralizationSet(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.EXTENSION___GET_ALL_ATTRIBUTES :
 				return getAllAttributes();
 			case UMLPackage.EXTENSION___GET_ALL_OPERATIONS :
@@ -732,16 +731,16 @@
 				return validateSpecializedEndNumber(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.EXTENSION___VALIDATE_SPECIALIZED_END_TYPES__DIAGNOSTICCHAIN_MAP :
-				return validateSpecializedEndTypes(
+			case UMLPackage.EXTENSION___VALIDATE_ASSOCIATION_ENDS__DIAGNOSTICCHAIN_MAP :
+				return validateAssociationEnds(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.EXTENSION___VALIDATE_BINARY_ASSOCIATIONS__DIAGNOSTICCHAIN_MAP :
 				return validateBinaryAssociations(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.EXTENSION___VALIDATE_ASSOCIATION_ENDS__DIAGNOSTICCHAIN_MAP :
-				return validateAssociationEnds(
+			case UMLPackage.EXTENSION___VALIDATE_SPECIALIZED_END_TYPES__DIAGNOSTICCHAIN_MAP :
+				return validateSpecializedEndTypes(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.EXTENSION___IS_BINARY :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExtensionPointImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExtensionPointImpl.java
index 199e5ab..80adb00 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExtensionPointImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExtensionPointImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ExtensionPointImpl.java,v 1.19 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -509,10 +508,6 @@
 				return allOwnedElements();
 			case UMLPackage.EXTENSION_POINT___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.EXTENSION_POINT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.EXTENSION_POINT___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -521,6 +516,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.EXTENSION_POINT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.EXTENSION_POINT___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.EXTENSION_POINT___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/FinalNodeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/FinalNodeImpl.java
index be1aa2a..7ae8433 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/FinalNodeImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/FinalNodeImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: FinalNodeImpl.java,v 1.5 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -166,10 +165,6 @@
 				return allOwnedElements();
 			case UMLPackage.FINAL_NODE___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.FINAL_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.FINAL_NODE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -178,6 +173,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.FINAL_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.FINAL_NODE___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.FINAL_NODE___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/FinalStateImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/FinalStateImpl.java
index d50b7a3..0085170 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/FinalStateImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/FinalStateImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: FinalStateImpl.java,v 1.6 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -224,10 +223,6 @@
 				return allOwnedElements();
 			case UMLPackage.FINAL_STATE___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.FINAL_STATE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.FINAL_STATE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -236,6 +231,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.FINAL_STATE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.FINAL_STATE___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.FINAL_STATE___CREATE_USAGE__NAMEDELEMENT :
@@ -313,10 +312,6 @@
 			case UMLPackage.FINAL_STATE___VALIDATE_ENTRY_OR_EXIT__DIAGNOSTICCHAIN_MAP :
 				return validateEntryOrExit((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.FINAL_STATE___VALIDATE_SUBMACHINE_STATES__DIAGNOSTICCHAIN_MAP :
-				return validateSubmachineStates(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.FINAL_STATE___VALIDATE_COMPOSITE_STATES__DIAGNOSTICCHAIN_MAP :
 				return validateCompositeStates(
 					(DiagnosticChain) arguments.get(0),
@@ -329,6 +324,10 @@
 				return validateSubmachineOrRegions(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.FINAL_STATE___VALIDATE_SUBMACHINE_STATES__DIAGNOSTICCHAIN_MAP :
+				return validateSubmachineStates(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.FINAL_STATE___IS_COMPOSITE :
 				return isComposite();
 			case UMLPackage.FINAL_STATE___IS_ORTHOGONAL :
@@ -341,21 +340,18 @@
 				return isSubmachineState();
 			case UMLPackage.FINAL_STATE___REDEFINITION_CONTEXT :
 				return redefinitionContext();
-			case UMLPackage.FINAL_STATE___VALIDATE_NO_EXIT_BEHAVIOR__DIAGNOSTICCHAIN_MAP :
-				return validateNoExitBehavior(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.FINAL_STATE___VALIDATE_NO_OUTGOING_TRANSITIONS__DIAGNOSTICCHAIN_MAP :
 				return validateNoOutgoingTransitions(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.FINAL_STATE___VALIDATE_NO_REGIONS__DIAGNOSTICCHAIN_MAP :
-				return validateNoRegions((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.FINAL_STATE___VALIDATE_CANNOT_REFERENCE_SUBMACHINE__DIAGNOSTICCHAIN_MAP :
 				return validateCannotReferenceSubmachine(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.FINAL_STATE___VALIDATE_NO_EXIT_BEHAVIOR__DIAGNOSTICCHAIN_MAP :
+				return validateNoExitBehavior(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.FINAL_STATE___VALIDATE_NO_ENTRY_BEHAVIOR__DIAGNOSTICCHAIN_MAP :
 				return validateNoEntryBehavior(
 					(DiagnosticChain) arguments.get(0),
@@ -364,6 +360,9 @@
 				return validateNoStateBehavior(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.FINAL_STATE___VALIDATE_NO_REGIONS__DIAGNOSTICCHAIN_MAP :
+				return validateNoRegions((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ForkNodeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ForkNodeImpl.java
index 2198ebb..406c174 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ForkNodeImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ForkNodeImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ForkNodeImpl.java,v 1.5 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -176,10 +175,6 @@
 				return allOwnedElements();
 			case UMLPackage.FORK_NODE___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.FORK_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.FORK_NODE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -188,6 +183,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.FORK_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.FORK_NODE___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.FORK_NODE___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/FunctionBehaviorImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/FunctionBehaviorImpl.java
index cf54d1e..8d6c129 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/FunctionBehaviorImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/FunctionBehaviorImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: FunctionBehaviorImpl.java,v 1.5 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -183,10 +182,6 @@
 				return allOwnedElements();
 			case UMLPackage.FUNCTION_BEHAVIOR___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.FUNCTION_BEHAVIOR___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.FUNCTION_BEHAVIOR___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -195,6 +190,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.FUNCTION_BEHAVIOR___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.FUNCTION_BEHAVIOR___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.FUNCTION_BEHAVIOR___CREATE_USAGE__NAMEDELEMENT :
@@ -284,14 +283,6 @@
 				return isTemplate();
 			case UMLPackage.FUNCTION_BEHAVIOR___PARAMETERABLE_ELEMENTS :
 				return parameterableElements();
-			case UMLPackage.FUNCTION_BEHAVIOR___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
-				return validateSpecializeType(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.FUNCTION_BEHAVIOR___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
-				return validateMapsToGeneralizationSet(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.FUNCTION_BEHAVIOR___VALIDATE_NON_FINAL_PARENTS__DIAGNOSTICCHAIN_MAP :
 				return validateNonFinalParents(
 					(DiagnosticChain) arguments.get(0),
@@ -300,6 +291,14 @@
 				return validateNoCyclesInGeneralization(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.FUNCTION_BEHAVIOR___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
+				return validateSpecializeType(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.FUNCTION_BEHAVIOR___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
+				return validateMapsToGeneralizationSet(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.FUNCTION_BEHAVIOR___GET_ALL_ATTRIBUTES :
 				return getAllAttributes();
 			case UMLPackage.FUNCTION_BEHAVIOR___GET_ALL_OPERATIONS :
@@ -371,13 +370,6 @@
 				return getExtensions();
 			case UMLPackage.FUNCTION_BEHAVIOR___GET_SUPER_CLASSES :
 				return getSuperClasses();
-			case UMLPackage.FUNCTION_BEHAVIOR___VALIDATE_MOST_ONE_BEHAVIOUR__DIAGNOSTICCHAIN_MAP :
-				return validateMostOneBehaviour(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.FUNCTION_BEHAVIOR___VALIDATE_MUST_REALIZE__DIAGNOSTICCHAIN_MAP :
-				return validateMustRealize((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.FUNCTION_BEHAVIOR___VALIDATE_PARAMETERS_MATCH__DIAGNOSTICCHAIN_MAP :
 				return validateParametersMatch(
 					(DiagnosticChain) arguments.get(0),
@@ -386,6 +378,13 @@
 				return validateFeatureOfContextClassifier(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.FUNCTION_BEHAVIOR___VALIDATE_MUST_REALIZE__DIAGNOSTICCHAIN_MAP :
+				return validateMustRealize((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.FUNCTION_BEHAVIOR___VALIDATE_MOST_ONE_BEHAVIOUR__DIAGNOSTICCHAIN_MAP :
+				return validateMostOneBehaviour(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.FUNCTION_BEHAVIOR___GET_CONTEXT :
 				return getContext();
 			case UMLPackage.FUNCTION_BEHAVIOR___VALIDATE_ONE_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/GateImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/GateImpl.java
index a7083d2..5555c70 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/GateImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/GateImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: GateImpl.java,v 1.5 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -176,10 +175,6 @@
 				return allOwnedElements();
 			case UMLPackage.GATE___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.GATE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.GATE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -188,6 +183,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.GATE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.GATE___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.GATE___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/GeneralOrderingImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/GeneralOrderingImpl.java
index b39e86e..1c264db 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/GeneralOrderingImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/GeneralOrderingImpl.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: GeneralOrderingImpl.java,v 1.15 2007/04/25 17:47:02 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -569,10 +568,6 @@
 				return allOwnedElements();
 			case UMLPackage.GENERAL_ORDERING___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.GENERAL_ORDERING___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.GENERAL_ORDERING___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -581,6 +576,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.GENERAL_ORDERING___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.GENERAL_ORDERING___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.GENERAL_ORDERING___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/GeneralizationImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/GeneralizationImpl.java
index 9b447ed..a1d91e6 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/GeneralizationImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/GeneralizationImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: GeneralizationImpl.java,v 1.23 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -58,8 +57,8 @@
  * The following features are implemented:
  * <ul>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.GeneralizationImpl#getTargets <em>Target</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.internal.impl.GeneralizationImpl#getSources <em>Source</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.GeneralizationImpl#getOwner <em>Owner</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.internal.impl.GeneralizationImpl#getSources <em>Source</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.GeneralizationImpl#getGeneral <em>General</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.GeneralizationImpl#getGeneralizationSets <em>Generalization Set</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.GeneralizationImpl#isSubstitutable <em>Is Substitutable</em>}</li>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/GeneralizationSetImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/GeneralizationSetImpl.java
index 540431c..d4aa4bc 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/GeneralizationSetImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/GeneralizationSetImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: GeneralizationSetImpl.java,v 1.21 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -702,10 +701,6 @@
 				return allOwnedElements();
 			case UMLPackage.GENERALIZATION_SET___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.GENERALIZATION_SET___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.GENERALIZATION_SET___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -714,6 +709,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.GENERALIZATION_SET___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.GENERALIZATION_SET___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.GENERALIZATION_SET___CREATE_USAGE__NAMEDELEMENT :
@@ -739,14 +738,14 @@
 				return isCompatibleWith((ParameterableElement) arguments.get(0));
 			case UMLPackage.GENERALIZATION_SET___IS_TEMPLATE_PARAMETER :
 				return isTemplateParameter();
-			case UMLPackage.GENERALIZATION_SET___VALIDATE_GENERALIZATION_SAME_CLASSIFIER__DIAGNOSTICCHAIN_MAP :
-				return validateGeneralizationSameClassifier(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.GENERALIZATION_SET___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
 				return validateMapsToGeneralizationSet(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.GENERALIZATION_SET___VALIDATE_GENERALIZATION_SAME_CLASSIFIER__DIAGNOSTICCHAIN_MAP :
+				return validateGeneralizationSameClassifier(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InformationFlowImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InformationFlowImpl.java
index 6936f38..476f66a 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InformationFlowImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InformationFlowImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: InformationFlowImpl.java,v 1.18 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -949,10 +948,6 @@
 				return allOwnedElements();
 			case UMLPackage.INFORMATION_FLOW___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.INFORMATION_FLOW___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INFORMATION_FLOW___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -961,6 +956,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.INFORMATION_FLOW___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INFORMATION_FLOW___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.INFORMATION_FLOW___CREATE_USAGE__NAMEDELEMENT :
@@ -986,13 +985,13 @@
 				return isCompatibleWith((ParameterableElement) arguments.get(0));
 			case UMLPackage.INFORMATION_FLOW___IS_TEMPLATE_PARAMETER :
 				return isTemplateParameter();
-			case UMLPackage.INFORMATION_FLOW___VALIDATE_MUST_CONFORM__DIAGNOSTICCHAIN_MAP :
-				return validateMustConform((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INFORMATION_FLOW___VALIDATE_SOURCES_AND_TARGETS_KIND__DIAGNOSTICCHAIN_MAP :
 				return validateSourcesAndTargetsKind(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.INFORMATION_FLOW___VALIDATE_MUST_CONFORM__DIAGNOSTICCHAIN_MAP :
+				return validateMustConform((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INFORMATION_FLOW___VALIDATE_CONVEY_CLASSIFIERS__DIAGNOSTICCHAIN_MAP :
 				return validateConveyClassifiers(
 					(DiagnosticChain) arguments.get(0),
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InformationItemImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InformationItemImpl.java
index 33a196e..5d601df 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InformationItemImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InformationItemImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: InformationItemImpl.java,v 1.21 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -687,10 +686,6 @@
 				return allOwnedElements();
 			case UMLPackage.INFORMATION_ITEM___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.INFORMATION_ITEM___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INFORMATION_ITEM___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -699,6 +694,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.INFORMATION_ITEM___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INFORMATION_ITEM___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.INFORMATION_ITEM___CREATE_USAGE__NAMEDELEMENT :
@@ -788,14 +787,6 @@
 				return isTemplate();
 			case UMLPackage.INFORMATION_ITEM___PARAMETERABLE_ELEMENTS :
 				return parameterableElements();
-			case UMLPackage.INFORMATION_ITEM___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
-				return validateSpecializeType(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.INFORMATION_ITEM___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
-				return validateMapsToGeneralizationSet(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INFORMATION_ITEM___VALIDATE_NON_FINAL_PARENTS__DIAGNOSTICCHAIN_MAP :
 				return validateNonFinalParents(
 					(DiagnosticChain) arguments.get(0),
@@ -804,6 +795,14 @@
 				return validateNoCyclesInGeneralization(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.INFORMATION_ITEM___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
+				return validateSpecializeType(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.INFORMATION_ITEM___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
+				return validateMapsToGeneralizationSet(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INFORMATION_ITEM___GET_ALL_ATTRIBUTES :
 				return getAllAttributes();
 			case UMLPackage.INFORMATION_ITEM___GET_ALL_OPERATIONS :
@@ -842,10 +841,6 @@
 				return maySpecializeType((Classifier) arguments.get(0));
 			case UMLPackage.INFORMATION_ITEM___PARENTS :
 				return parents();
-			case UMLPackage.INFORMATION_ITEM___VALIDATE_SOURCES_AND_TARGETS__DIAGNOSTICCHAIN_MAP :
-				return validateSourcesAndTargets(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INFORMATION_ITEM___VALIDATE_HAS_NO__DIAGNOSTICCHAIN_MAP :
 				return validateHasNo((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
@@ -853,6 +848,10 @@
 				return validateNotInstantiable(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.INFORMATION_ITEM___VALIDATE_SOURCES_AND_TARGETS__DIAGNOSTICCHAIN_MAP :
+				return validateSourcesAndTargets(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InitialNodeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InitialNodeImpl.java
index 1bc608b..e6fd7d9 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InitialNodeImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InitialNodeImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: InitialNodeImpl.java,v 1.5 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -177,10 +176,6 @@
 				return allOwnedElements();
 			case UMLPackage.INITIAL_NODE___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.INITIAL_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INITIAL_NODE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -189,6 +184,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.INITIAL_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INITIAL_NODE___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.INITIAL_NODE___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InputPinImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InputPinImpl.java
index 8069b04..cb3a05b 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InputPinImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InputPinImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: InputPinImpl.java,v 1.6 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -167,10 +166,6 @@
 				return allOwnedElements();
 			case UMLPackage.INPUT_PIN___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.INPUT_PIN___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INPUT_PIN___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -179,6 +174,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.INPUT_PIN___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INPUT_PIN___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.INPUT_PIN___CREATE_USAGE__NAMEDELEMENT :
@@ -224,32 +223,32 @@
 				return validateOwnedStructuredNode(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.INPUT_PIN___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP :
-				return validateInputOutputParameter(
+			case UMLPackage.INPUT_PIN___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP :
+				return validateObjectFlowEdges(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INPUT_PIN___VALIDATE_SELECTION_BEHAVIOR__DIAGNOSTICCHAIN_MAP :
 				return validateSelectionBehavior(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.INPUT_PIN___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP :
-				return validateObjectFlowEdges(
+			case UMLPackage.INPUT_PIN___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP :
+				return validateInputOutputParameter(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.INPUT_PIN___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP :
-				return validateUpperGeLower((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INPUT_PIN___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP :
 				return validateLowerGe0((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.INPUT_PIN___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP :
-				return validateValueSpecificationNoSideEffects(
-					(DiagnosticChain) arguments.get(0),
+			case UMLPackage.INPUT_PIN___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP :
+				return validateUpperGeLower((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INPUT_PIN___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP :
 				return validateValueSpecificationConstant(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.INPUT_PIN___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP :
+				return validateValueSpecificationNoSideEffects(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INPUT_PIN___SET_LOWER__INT :
 				setLower((Integer) arguments.get(0));
 				return null;
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InstanceSpecificationImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InstanceSpecificationImpl.java
index 6d87485..32397a5 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InstanceSpecificationImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InstanceSpecificationImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: InstanceSpecificationImpl.java,v 1.26 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -1112,10 +1111,6 @@
 				return allOwnedElements();
 			case UMLPackage.INSTANCE_SPECIFICATION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.INSTANCE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INSTANCE_SPECIFICATION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1124,6 +1119,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.INSTANCE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INSTANCE_SPECIFICATION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.INSTANCE_SPECIFICATION___CREATE_USAGE__NAMEDELEMENT :
@@ -1151,10 +1150,6 @@
 				return isCompatibleWith((ParameterableElement) arguments.get(0));
 			case UMLPackage.INSTANCE_SPECIFICATION___IS_TEMPLATE_PARAMETER :
 				return isTemplateParameter();
-			case UMLPackage.INSTANCE_SPECIFICATION___VALIDATE_DEPLOYMENT_ARTIFACT__DIAGNOSTICCHAIN_MAP :
-				return validateDeploymentArtifact(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INSTANCE_SPECIFICATION___VALIDATE_STRUCTURAL_FEATURE__DIAGNOSTICCHAIN_MAP :
 				return validateStructuralFeature(
 					(DiagnosticChain) arguments.get(0),
@@ -1167,6 +1162,10 @@
 				return validateDeploymentTarget(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.INSTANCE_SPECIFICATION___VALIDATE_DEPLOYMENT_ARTIFACT__DIAGNOSTICCHAIN_MAP :
+				return validateDeploymentArtifact(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InstanceValueImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InstanceValueImpl.java
index b071f4b..a032fc0 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InstanceValueImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InstanceValueImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: InstanceValueImpl.java,v 1.18 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -420,10 +419,6 @@
 				return allOwnedElements();
 			case UMLPackage.INSTANCE_VALUE___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.INSTANCE_VALUE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INSTANCE_VALUE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -432,6 +427,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.INSTANCE_VALUE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INSTANCE_VALUE___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.INSTANCE_VALUE___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InteractionConstraintImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InteractionConstraintImpl.java
index 024d57d..56f98b7 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InteractionConstraintImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InteractionConstraintImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: InteractionConstraintImpl.java,v 1.26 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -760,10 +759,6 @@
 				return allOwnedElements();
 			case UMLPackage.INTERACTION_CONSTRAINT___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.INTERACTION_CONSTRAINT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INTERACTION_CONSTRAINT___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -772,6 +767,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.INTERACTION_CONSTRAINT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INTERACTION_CONSTRAINT___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.INTERACTION_CONSTRAINT___CREATE_USAGE__NAMEDELEMENT :
@@ -797,21 +796,25 @@
 				return isCompatibleWith((ParameterableElement) arguments.get(0));
 			case UMLPackage.INTERACTION_CONSTRAINT___IS_TEMPLATE_PARAMETER :
 				return isTemplateParameter();
-			case UMLPackage.INTERACTION_CONSTRAINT___VALIDATE_BOOLEAN_VALUE__DIAGNOSTICCHAIN_MAP :
-				return validateBooleanValue((DiagnosticChain) arguments.get(0),
+			case UMLPackage.INTERACTION_CONSTRAINT___VALIDATE_NOT_APPLY_TO_SELF__DIAGNOSTICCHAIN_MAP :
+				return validateNotApplyToSelf(
+					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INTERACTION_CONSTRAINT___VALIDATE_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP :
 				return validateNoSideEffects(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.INTERACTION_CONSTRAINT___VALIDATE_NOT_APPLY_TO_SELF__DIAGNOSTICCHAIN_MAP :
-				return validateNotApplyToSelf(
-					(DiagnosticChain) arguments.get(0),
+			case UMLPackage.INTERACTION_CONSTRAINT___VALIDATE_BOOLEAN_VALUE__DIAGNOSTICCHAIN_MAP :
+				return validateBooleanValue((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INTERACTION_CONSTRAINT___VALIDATE_VALUE_SPECIFICATION_BOOLEAN__DIAGNOSTICCHAIN_MAP :
 				return validateValueSpecificationBoolean(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.INTERACTION_CONSTRAINT___VALIDATE_MAXINT_POSITIVE__DIAGNOSTICCHAIN_MAP :
+				return validateMaxintPositive(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INTERACTION_CONSTRAINT___VALIDATE_MININT_MAXINT__DIAGNOSTICCHAIN_MAP :
 				return validateMinintMaxint((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
@@ -819,14 +822,6 @@
 				return validateMinintNonNegative(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.INTERACTION_CONSTRAINT___VALIDATE_MAXINT_POSITIVE__DIAGNOSTICCHAIN_MAP :
-				return validateMaxintPositive(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.INTERACTION_CONSTRAINT___VALIDATE_DYNAMIC_VARIABLES__DIAGNOSTICCHAIN_MAP :
-				return validateDynamicVariables(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INTERACTION_CONSTRAINT___VALIDATE_GLOBAL_DATA__DIAGNOSTICCHAIN_MAP :
 				return validateGlobalData((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
@@ -834,6 +829,10 @@
 				return validateMaxintGreaterEqualMinint(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.INTERACTION_CONSTRAINT___VALIDATE_DYNAMIC_VARIABLES__DIAGNOSTICCHAIN_MAP :
+				return validateDynamicVariables(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InteractionOperandImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InteractionOperandImpl.java
index 57e285e..edd9504 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InteractionOperandImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InteractionOperandImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: InteractionOperandImpl.java,v 1.27 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -1107,10 +1106,6 @@
 				return allOwnedElements();
 			case UMLPackage.INTERACTION_OPERAND___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.INTERACTION_OPERAND___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INTERACTION_OPERAND___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1119,6 +1114,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.INTERACTION_OPERAND___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INTERACTION_OPERAND___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.INTERACTION_OPERAND___CREATE_USAGE__NAMEDELEMENT :
@@ -1170,14 +1169,14 @@
 				return membersAreDistinguishable();
 			case UMLPackage.INTERACTION_OPERAND___GET_OWNED_MEMBERS :
 				return getOwnedMembers();
-			case UMLPackage.INTERACTION_OPERAND___VALIDATE_GUARD_CONTAIN_REFERENCES__DIAGNOSTICCHAIN_MAP :
-				return validateGuardContainReferences(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INTERACTION_OPERAND___VALIDATE_GUARD_DIRECTLY_PRIOR__DIAGNOSTICCHAIN_MAP :
 				return validateGuardDirectlyPrior(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.INTERACTION_OPERAND___VALIDATE_GUARD_CONTAIN_REFERENCES__DIAGNOSTICCHAIN_MAP :
+				return validateGuardContainReferences(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InteractionUseImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InteractionUseImpl.java
index 63a1b01..e53f252 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InteractionUseImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InteractionUseImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: InteractionUseImpl.java,v 1.27 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -926,10 +925,6 @@
 				return allOwnedElements();
 			case UMLPackage.INTERACTION_USE___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.INTERACTION_USE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INTERACTION_USE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -938,6 +933,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.INTERACTION_USE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INTERACTION_USE___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.INTERACTION_USE___CREATE_USAGE__NAMEDELEMENT :
@@ -959,12 +958,8 @@
 				return getQualifiedName();
 			case UMLPackage.INTERACTION_USE___SEPARATOR :
 				return separator();
-			case UMLPackage.INTERACTION_USE___VALIDATE_GATES_MATCH__DIAGNOSTICCHAIN_MAP :
-				return validateGatesMatch((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.INTERACTION_USE___VALIDATE_ARGUMENTS_ARE_CONSTANTS__DIAGNOSTICCHAIN_MAP :
-				return validateArgumentsAreConstants(
-					(DiagnosticChain) arguments.get(0),
+			case UMLPackage.INTERACTION_USE___VALIDATE_ALL_LIFELINES__DIAGNOSTICCHAIN_MAP :
+				return validateAllLifelines((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INTERACTION_USE___VALIDATE_RETURN_VALUE_RECIPIENT_COVERAGE__DIAGNOSTICCHAIN_MAP :
 				return validateReturnValueRecipientCoverage(
@@ -974,13 +969,17 @@
 				return validateArgumentsCorrespondToParameters(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.INTERACTION_USE___VALIDATE_GATES_MATCH__DIAGNOSTICCHAIN_MAP :
+				return validateGatesMatch((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.INTERACTION_USE___VALIDATE_ARGUMENTS_ARE_CONSTANTS__DIAGNOSTICCHAIN_MAP :
+				return validateArgumentsAreConstants(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INTERACTION_USE___VALIDATE_RETURN_VALUE_TYPE_RECIPIENT_CORRESPONDENCE__DIAGNOSTICCHAIN_MAP :
 				return validateReturnValueTypeRecipientCorrespondence(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.INTERACTION_USE___VALIDATE_ALL_LIFELINES__DIAGNOSTICCHAIN_MAP :
-				return validateAllLifelines((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InterfaceImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InterfaceImpl.java
index 8fbd93a..4f4d35f 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InterfaceImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InterfaceImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: InterfaceImpl.java,v 1.32 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -89,10 +88,10 @@
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.InterfaceImpl#getRedefinedClassifiers <em>Redefined Classifier</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.InterfaceImpl#getNestedClassifiers <em>Nested Classifier</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.InterfaceImpl#getOwnedAttributes <em>Owned Attribute</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.internal.impl.InterfaceImpl#getOwnedOperations <em>Owned Operation</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.InterfaceImpl#getOwnedReceptions <em>Owned Reception</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.InterfaceImpl#getProtocol <em>Protocol</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.InterfaceImpl#getRedefinedInterfaces <em>Redefined Interface</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.internal.impl.InterfaceImpl#getOwnedOperations <em>Owned Operation</em>}</li>
  * </ul>
  * </p>
  *
@@ -123,6 +122,16 @@
 	protected EList<Property> ownedAttributes;
 
 	/**
+	 * The cached value of the '{@link #getOwnedOperations() <em>Owned Operation</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOwnedOperations()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Operation> ownedOperations;
+
+	/**
 	 * The cached value of the '{@link #getOwnedReceptions() <em>Owned Reception</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -153,16 +162,6 @@
 	protected EList<Interface> redefinedInterfaces;
 
 	/**
-	 * The cached value of the '{@link #getOwnedOperations() <em>Owned Operation</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getOwnedOperations()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<Operation> ownedOperations;
-
-	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -860,14 +859,14 @@
 			case UMLPackage.INTERFACE__OWNED_ATTRIBUTE :
 				return ((InternalEList<?>) getOwnedAttributes()).basicRemove(
 					otherEnd, msgs);
+			case UMLPackage.INTERFACE__OWNED_OPERATION :
+				return ((InternalEList<?>) getOwnedOperations()).basicRemove(
+					otherEnd, msgs);
 			case UMLPackage.INTERFACE__OWNED_RECEPTION :
 				return ((InternalEList<?>) getOwnedReceptions()).basicRemove(
 					otherEnd, msgs);
 			case UMLPackage.INTERFACE__PROTOCOL :
 				return basicSetProtocol(null, msgs);
-			case UMLPackage.INTERFACE__OWNED_OPERATION :
-				return ((InternalEList<?>) getOwnedOperations()).basicRemove(
-					otherEnd, msgs);
 		}
 		return eDynamicInverseRemove(otherEnd, featureID, msgs);
 	}
@@ -976,6 +975,8 @@
 				return getNestedClassifiers();
 			case UMLPackage.INTERFACE__OWNED_ATTRIBUTE :
 				return getOwnedAttributes();
+			case UMLPackage.INTERFACE__OWNED_OPERATION :
+				return getOwnedOperations();
 			case UMLPackage.INTERFACE__OWNED_RECEPTION :
 				return getOwnedReceptions();
 			case UMLPackage.INTERFACE__PROTOCOL :
@@ -984,8 +985,6 @@
 				return basicGetProtocol();
 			case UMLPackage.INTERFACE__REDEFINED_INTERFACE :
 				return getRedefinedInterfaces();
-			case UMLPackage.INTERFACE__OWNED_OPERATION :
-				return getOwnedOperations();
 		}
 		return eDynamicGet(featureID, resolve, coreType);
 	}
@@ -1116,6 +1115,11 @@
 				getOwnedAttributes().addAll(
 					(Collection<? extends Property>) newValue);
 				return;
+			case UMLPackage.INTERFACE__OWNED_OPERATION :
+				getOwnedOperations().clear();
+				getOwnedOperations().addAll(
+					(Collection<? extends Operation>) newValue);
+				return;
 			case UMLPackage.INTERFACE__OWNED_RECEPTION :
 				getOwnedReceptions().clear();
 				getOwnedReceptions().addAll(
@@ -1129,11 +1133,6 @@
 				getRedefinedInterfaces().addAll(
 					(Collection<? extends Interface>) newValue);
 				return;
-			case UMLPackage.INTERFACE__OWNED_OPERATION :
-				getOwnedOperations().clear();
-				getOwnedOperations().addAll(
-					(Collection<? extends Operation>) newValue);
-				return;
 		}
 		eDynamicSet(featureID, newValue);
 	}
@@ -1230,6 +1229,9 @@
 			case UMLPackage.INTERFACE__OWNED_ATTRIBUTE :
 				getOwnedAttributes().clear();
 				return;
+			case UMLPackage.INTERFACE__OWNED_OPERATION :
+				getOwnedOperations().clear();
+				return;
 			case UMLPackage.INTERFACE__OWNED_RECEPTION :
 				getOwnedReceptions().clear();
 				return;
@@ -1239,9 +1241,6 @@
 			case UMLPackage.INTERFACE__REDEFINED_INTERFACE :
 				getRedefinedInterfaces().clear();
 				return;
-			case UMLPackage.INTERFACE__OWNED_OPERATION :
-				getOwnedOperations().clear();
-				return;
 		}
 		eDynamicUnset(featureID);
 	}
@@ -1340,6 +1339,8 @@
 					&& !nestedClassifiers.isEmpty();
 			case UMLPackage.INTERFACE__OWNED_ATTRIBUTE :
 				return ownedAttributes != null && !ownedAttributes.isEmpty();
+			case UMLPackage.INTERFACE__OWNED_OPERATION :
+				return ownedOperations != null && !ownedOperations.isEmpty();
 			case UMLPackage.INTERFACE__OWNED_RECEPTION :
 				return ownedReceptions != null && !ownedReceptions.isEmpty();
 			case UMLPackage.INTERFACE__PROTOCOL :
@@ -1347,8 +1348,6 @@
 			case UMLPackage.INTERFACE__REDEFINED_INTERFACE :
 				return redefinedInterfaces != null
 					&& !redefinedInterfaces.isEmpty();
-			case UMLPackage.INTERFACE__OWNED_OPERATION :
-				return ownedOperations != null && !ownedOperations.isEmpty();
 		}
 		return eDynamicIsSet(featureID);
 	}
@@ -1445,10 +1444,6 @@
 				return allOwnedElements();
 			case UMLPackage.INTERFACE___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.INTERFACE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INTERFACE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1457,6 +1452,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.INTERFACE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INTERFACE___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.INTERFACE___CREATE_USAGE__NAMEDELEMENT :
@@ -1546,14 +1545,6 @@
 				return isTemplate();
 			case UMLPackage.INTERFACE___PARAMETERABLE_ELEMENTS :
 				return parameterableElements();
-			case UMLPackage.INTERFACE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
-				return validateSpecializeType(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.INTERFACE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
-				return validateMapsToGeneralizationSet(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INTERFACE___VALIDATE_NON_FINAL_PARENTS__DIAGNOSTICCHAIN_MAP :
 				return validateNonFinalParents(
 					(DiagnosticChain) arguments.get(0),
@@ -1562,6 +1553,14 @@
 				return validateNoCyclesInGeneralization(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.INTERFACE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
+				return validateSpecializeType(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.INTERFACE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
+				return validateMapsToGeneralizationSet(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INTERFACE___GET_ALL_ATTRIBUTES :
 				return getAllAttributes();
 			case UMLPackage.INTERFACE___GET_ALL_OPERATIONS :
@@ -1638,8 +1637,8 @@
 		UMLPackage.INTERFACE__OWNED_RULE, UMLPackage.INTERFACE__OWNED_USE_CASE,
 		UMLPackage.INTERFACE__NESTED_CLASSIFIER,
 		UMLPackage.INTERFACE__OWNED_ATTRIBUTE,
-		UMLPackage.INTERFACE__OWNED_RECEPTION, UMLPackage.INTERFACE__PROTOCOL,
-		UMLPackage.INTERFACE__OWNED_OPERATION};
+		UMLPackage.INTERFACE__OWNED_OPERATION,
+		UMLPackage.INTERFACE__OWNED_RECEPTION, UMLPackage.INTERFACE__PROTOCOL};
 
 	/**
 	 * The array of subset feature identifiers for the '{@link #getAttributes() <em>Attribute</em>}' reference list.
@@ -1661,9 +1660,9 @@
 		return super.isSetOwnedMembers()
 			|| eIsSet(UMLPackage.INTERFACE__NESTED_CLASSIFIER)
 			|| eIsSet(UMLPackage.INTERFACE__OWNED_ATTRIBUTE)
+			|| eIsSet(UMLPackage.INTERFACE__OWNED_OPERATION)
 			|| eIsSet(UMLPackage.INTERFACE__OWNED_RECEPTION)
-			|| eIsSet(UMLPackage.INTERFACE__PROTOCOL)
-			|| eIsSet(UMLPackage.INTERFACE__OWNED_OPERATION);
+			|| eIsSet(UMLPackage.INTERFACE__PROTOCOL);
 	}
 
 	/**
@@ -1675,8 +1674,8 @@
 	 * @ordered
 	 */
 	protected static final int[] FEATURE_ESUBSETS = new int[]{
-		UMLPackage.INTERFACE__ATTRIBUTE, UMLPackage.INTERFACE__OWNED_RECEPTION,
-		UMLPackage.INTERFACE__OWNED_OPERATION};
+		UMLPackage.INTERFACE__ATTRIBUTE, UMLPackage.INTERFACE__OWNED_OPERATION,
+		UMLPackage.INTERFACE__OWNED_RECEPTION};
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -1747,8 +1746,8 @@
 	@Override
 	public boolean isSetFeatures() {
 		return super.isSetFeatures()
-			|| eIsSet(UMLPackage.INTERFACE__OWNED_RECEPTION)
-			|| eIsSet(UMLPackage.INTERFACE__OWNED_OPERATION);
+			|| eIsSet(UMLPackage.INTERFACE__OWNED_OPERATION)
+			|| eIsSet(UMLPackage.INTERFACE__OWNED_RECEPTION);
 	}
 
 } //InterfaceImpl
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InterruptibleActivityRegionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InterruptibleActivityRegionImpl.java
index 6503a1b..e9a8474 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InterruptibleActivityRegionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InterruptibleActivityRegionImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: InterruptibleActivityRegionImpl.java,v 1.22 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -254,10 +253,6 @@
 			case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__CLIENT_DEPENDENCY :
 				return ((InternalEList<InternalEObject>) (InternalEList<?>) getClientDependencies())
 					.basicAdd(otherEnd, msgs);
-			case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__IN_ACTIVITY :
-				if (eInternalContainer() != null)
-					msgs = eBasicRemoveFromContainer(msgs);
-				return basicSetInActivity((Activity) otherEnd, msgs);
 			case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__NODE :
 				return ((InternalEList<InternalEObject>) (InternalEList<?>) getNodes())
 					.basicAdd(otherEnd, msgs);
@@ -288,8 +283,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__IN_ACTIVITY :
-				return basicSetInActivity(null, msgs);
 			case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__NODE :
 				return ((InternalEList<?>) getNodes()).basicRemove(otherEnd,
 					msgs);
@@ -334,6 +327,8 @@
 				return getQualifiedName();
 			case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__VISIBILITY :
 				return getVisibility();
+			case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__CONTAINED_EDGE :
+				return getContainedEdges();
 			case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__CONTAINED_NODE :
 				return getContainedNodes();
 			case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__IN_ACTIVITY :
@@ -346,8 +341,6 @@
 				if (resolve)
 					return getSuperGroup();
 				return basicGetSuperGroup();
-			case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__CONTAINED_EDGE :
-				return getContainedEdges();
 			case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__NODE :
 				return getNodes();
 			case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__INTERRUPTING_EDGE :
@@ -476,6 +469,8 @@
 					: !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName());
 			case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__VISIBILITY :
 				return isSetVisibility();
+			case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__CONTAINED_EDGE :
+				return isSetContainedEdges();
 			case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__CONTAINED_NODE :
 				return isSetContainedNodes();
 			case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__IN_ACTIVITY :
@@ -484,8 +479,6 @@
 				return isSetSubgroups();
 			case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__SUPER_GROUP :
 				return isSetSuperGroup();
-			case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__CONTAINED_EDGE :
-				return isSetContainedEdges();
 			case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__NODE :
 				return nodes != null && !nodes.isEmpty();
 			case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__INTERRUPTING_EDGE :
@@ -587,10 +580,6 @@
 				return allOwnedElements();
 			case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -599,6 +588,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION___CREATE_USAGE__NAMEDELEMENT :
@@ -620,16 +613,16 @@
 				return getQualifiedName();
 			case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION___SEPARATOR :
 				return separator();
-			case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP :
-				return validateNodesAndEdges(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION___VALIDATE_GROUP_OWNED__DIAGNOSTICCHAIN_MAP :
 				return validateGroupOwned((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION___VALIDATE_NOT_CONTAINED__DIAGNOSTICCHAIN_MAP :
 				return validateNotContained((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP :
+				return validateNodesAndEdges(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION___VALIDATE_INTERRUPTING_EDGES__DIAGNOSTICCHAIN_MAP :
 				return validateInterruptingEdges(
 					(DiagnosticChain) arguments.get(0),
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InvocationActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InvocationActionImpl.java
index db93cc4..516ee56 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InvocationActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InvocationActionImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: InvocationActionImpl.java,v 1.30 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -287,8 +286,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.INVOCATION_ACTION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.INVOCATION_ACTION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.INVOCATION_ACTION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -363,8 +360,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.INVOCATION_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.INVOCATION_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.INVOCATION_ACTION__IN_STRUCTURED_NODE :
@@ -377,6 +372,8 @@
 				return getOutgoings();
 			case UMLPackage.INVOCATION_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.INVOCATION_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.INVOCATION_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.INVOCATION_ACTION__HANDLER :
@@ -614,8 +611,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.INVOCATION_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.INVOCATION_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.INVOCATION_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.INVOCATION_ACTION__IN_STRUCTURED_NODE :
@@ -627,6 +622,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.INVOCATION_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.INVOCATION_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.INVOCATION_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.INVOCATION_ACTION__HANDLER :
@@ -745,10 +742,6 @@
 				return allOwnedElements();
 			case UMLPackage.INVOCATION_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.INVOCATION_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INVOCATION_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -757,6 +750,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.INVOCATION_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.INVOCATION_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.INVOCATION_ACTION___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/JoinNodeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/JoinNodeImpl.java
index 026872e..40c6ba5 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/JoinNodeImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/JoinNodeImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: JoinNodeImpl.java,v 1.30 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -323,8 +322,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.JOIN_NODE__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.JOIN_NODE__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.JOIN_NODE__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -389,8 +386,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.JOIN_NODE__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.JOIN_NODE__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.JOIN_NODE__IN_STRUCTURED_NODE :
@@ -403,6 +398,8 @@
 				return getOutgoings();
 			case UMLPackage.JOIN_NODE__INCOMING :
 				return getIncomings();
+			case UMLPackage.JOIN_NODE__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.JOIN_NODE__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.JOIN_NODE__IS_COMBINE_DUPLICATE :
@@ -592,8 +589,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.JOIN_NODE__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.JOIN_NODE__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.JOIN_NODE__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.JOIN_NODE__IN_STRUCTURED_NODE :
@@ -605,6 +600,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.JOIN_NODE__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.JOIN_NODE__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.JOIN_NODE__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.JOIN_NODE__IS_COMBINE_DUPLICATE :
@@ -707,10 +704,6 @@
 				return allOwnedElements();
 			case UMLPackage.JOIN_NODE___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.JOIN_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.JOIN_NODE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -719,6 +712,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.JOIN_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.JOIN_NODE___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.JOIN_NODE___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LifelineImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LifelineImpl.java
index 455fcee..02bdab6 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LifelineImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LifelineImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: LifelineImpl.java,v 1.26 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -864,10 +863,6 @@
 				return allOwnedElements();
 			case UMLPackage.LIFELINE___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.LIFELINE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.LIFELINE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -876,6 +871,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.LIFELINE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.LIFELINE___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.LIFELINE___CREATE_USAGE__NAMEDELEMENT :
@@ -897,10 +896,6 @@
 				return getQualifiedName();
 			case UMLPackage.LIFELINE___SEPARATOR :
 				return separator();
-			case UMLPackage.LIFELINE___VALIDATE_SELECTOR_SPECIFIED__DIAGNOSTICCHAIN_MAP :
-				return validateSelectorSpecified(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.LIFELINE___VALIDATE_INTERACTION_USES_SHARE_LIFELINE__DIAGNOSTICCHAIN_MAP :
 				return validateInteractionUsesShareLifeline(
 					(DiagnosticChain) arguments.get(0),
@@ -909,6 +904,10 @@
 				return validateSameClassifier(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.LIFELINE___VALIDATE_SELECTOR_SPECIFIED__DIAGNOSTICCHAIN_MAP :
+				return validateSelectorSpecified(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LinkActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LinkActionImpl.java
index 9778608..d66fd7e 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LinkActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LinkActionImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: LinkActionImpl.java,v 1.29 2010/09/28 21:02:12 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -353,8 +352,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.LINK_ACTION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.LINK_ACTION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.LINK_ACTION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -432,8 +429,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.LINK_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.LINK_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.LINK_ACTION__IN_STRUCTURED_NODE :
@@ -446,6 +441,8 @@
 				return getOutgoings();
 			case UMLPackage.LINK_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.LINK_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.LINK_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.LINK_ACTION__HANDLER :
@@ -683,8 +680,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.LINK_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.LINK_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.LINK_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.LINK_ACTION__IN_STRUCTURED_NODE :
@@ -696,6 +691,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.LINK_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.LINK_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.LINK_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.LINK_ACTION__HANDLER :
@@ -814,10 +811,6 @@
 				return allOwnedElements();
 			case UMLPackage.LINK_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.LINK_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.LINK_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -826,6 +819,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.LINK_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.LINK_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.LINK_ACTION___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LinkEndCreationDataImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LinkEndCreationDataImpl.java
index 51532e2..ff2003d 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LinkEndCreationDataImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LinkEndCreationDataImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: LinkEndCreationDataImpl.java,v 1.15 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -429,31 +428,31 @@
 				return allOwnedElements();
 			case UMLPackage.LINK_END_CREATION_DATA___MUST_BE_OWNED :
 				return mustBeOwned();
+			case UMLPackage.LINK_END_CREATION_DATA___VALIDATE_PROPERTY_IS_ASSOCIATION_END__DIAGNOSTICCHAIN_MAP :
+				return validatePropertyIsAssociationEnd(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.LINK_END_CREATION_DATA___VALIDATE_END_OBJECT_INPUT_PIN__DIAGNOSTICCHAIN_MAP :
+				return validateEndObjectInputPin(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.LINK_END_CREATION_DATA___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP :
 				return validateSameType((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.LINK_END_CREATION_DATA___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
 				return validateMultiplicity((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.LINK_END_CREATION_DATA___VALIDATE_END_OBJECT_INPUT_PIN__DIAGNOSTICCHAIN_MAP :
-				return validateEndObjectInputPin(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.LINK_END_CREATION_DATA___VALIDATE_PROPERTY_IS_ASSOCIATION_END__DIAGNOSTICCHAIN_MAP :
-				return validatePropertyIsAssociationEnd(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.LINK_END_CREATION_DATA___VALIDATE_QUALIFIERS__DIAGNOSTICCHAIN_MAP :
 				return validateQualifiers((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.LINK_END_CREATION_DATA___VALIDATE_SINGLE_INPUT_PIN__DIAGNOSTICCHAIN_MAP :
-				return validateSingleInputPin(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.LINK_END_CREATION_DATA___VALIDATE_CREATE_LINK_ACTION__DIAGNOSTICCHAIN_MAP :
 				return validateCreateLinkAction(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.LINK_END_CREATION_DATA___VALIDATE_SINGLE_INPUT_PIN__DIAGNOSTICCHAIN_MAP :
+				return validateSingleInputPin(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LinkEndDataImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LinkEndDataImpl.java
index 860c06e..6b36998 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LinkEndDataImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LinkEndDataImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: LinkEndDataImpl.java,v 1.17 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -548,19 +547,19 @@
 				return allOwnedElements();
 			case UMLPackage.LINK_END_DATA___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.LINK_END_DATA___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP :
-				return validateSameType((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.LINK_END_DATA___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
-				return validateMultiplicity((DiagnosticChain) arguments.get(0),
+			case UMLPackage.LINK_END_DATA___VALIDATE_PROPERTY_IS_ASSOCIATION_END__DIAGNOSTICCHAIN_MAP :
+				return validatePropertyIsAssociationEnd(
+					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.LINK_END_DATA___VALIDATE_END_OBJECT_INPUT_PIN__DIAGNOSTICCHAIN_MAP :
 				return validateEndObjectInputPin(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.LINK_END_DATA___VALIDATE_PROPERTY_IS_ASSOCIATION_END__DIAGNOSTICCHAIN_MAP :
-				return validatePropertyIsAssociationEnd(
-					(DiagnosticChain) arguments.get(0),
+			case UMLPackage.LINK_END_DATA___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP :
+				return validateSameType((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.LINK_END_DATA___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
+				return validateMultiplicity((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.LINK_END_DATA___VALIDATE_QUALIFIERS__DIAGNOSTICCHAIN_MAP :
 				return validateQualifiers((DiagnosticChain) arguments.get(0),
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LinkEndDestructionDataImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LinkEndDestructionDataImpl.java
index 61356d4..5f39143 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LinkEndDestructionDataImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LinkEndDestructionDataImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: LinkEndDestructionDataImpl.java,v 1.15 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -429,31 +428,31 @@
 				return allOwnedElements();
 			case UMLPackage.LINK_END_DESTRUCTION_DATA___MUST_BE_OWNED :
 				return mustBeOwned();
+			case UMLPackage.LINK_END_DESTRUCTION_DATA___VALIDATE_PROPERTY_IS_ASSOCIATION_END__DIAGNOSTICCHAIN_MAP :
+				return validatePropertyIsAssociationEnd(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.LINK_END_DESTRUCTION_DATA___VALIDATE_END_OBJECT_INPUT_PIN__DIAGNOSTICCHAIN_MAP :
+				return validateEndObjectInputPin(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.LINK_END_DESTRUCTION_DATA___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP :
 				return validateSameType((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.LINK_END_DESTRUCTION_DATA___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
 				return validateMultiplicity((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.LINK_END_DESTRUCTION_DATA___VALIDATE_END_OBJECT_INPUT_PIN__DIAGNOSTICCHAIN_MAP :
-				return validateEndObjectInputPin(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.LINK_END_DESTRUCTION_DATA___VALIDATE_PROPERTY_IS_ASSOCIATION_END__DIAGNOSTICCHAIN_MAP :
-				return validatePropertyIsAssociationEnd(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.LINK_END_DESTRUCTION_DATA___VALIDATE_QUALIFIERS__DIAGNOSTICCHAIN_MAP :
 				return validateQualifiers((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.LINK_END_DESTRUCTION_DATA___VALIDATE_UNLIMITED_NATURAL_AND_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
-				return validateUnlimitedNaturalAndMultiplicity(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.LINK_END_DESTRUCTION_DATA___VALIDATE_DESTROY_LINK_ACTION__DIAGNOSTICCHAIN_MAP :
 				return validateDestroyLinkAction(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.LINK_END_DESTRUCTION_DATA___VALIDATE_UNLIMITED_NATURAL_AND_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
+				return validateUnlimitedNaturalAndMultiplicity(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralBooleanImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralBooleanImpl.java
index cb5b95f..dd09360 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralBooleanImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralBooleanImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: LiteralBooleanImpl.java,v 1.20 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -430,10 +429,6 @@
 				return allOwnedElements();
 			case UMLPackage.LITERAL_BOOLEAN___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.LITERAL_BOOLEAN___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.LITERAL_BOOLEAN___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -442,6 +437,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.LITERAL_BOOLEAN___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.LITERAL_BOOLEAN___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.LITERAL_BOOLEAN___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralIntegerImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralIntegerImpl.java
index 8f7582a..9daa708 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralIntegerImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralIntegerImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: LiteralIntegerImpl.java,v 1.19 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -426,10 +425,6 @@
 				return allOwnedElements();
 			case UMLPackage.LITERAL_INTEGER___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.LITERAL_INTEGER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.LITERAL_INTEGER___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -438,6 +433,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.LITERAL_INTEGER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.LITERAL_INTEGER___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.LITERAL_INTEGER___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralNullImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralNullImpl.java
index 6c7e688..d84432b 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralNullImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralNullImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: LiteralNullImpl.java,v 1.6 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -173,10 +172,6 @@
 				return allOwnedElements();
 			case UMLPackage.LITERAL_NULL___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.LITERAL_NULL___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.LITERAL_NULL___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -185,6 +180,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.LITERAL_NULL___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.LITERAL_NULL___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.LITERAL_NULL___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralRealImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralRealImpl.java
index 2271a41..5cccd08 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralRealImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralRealImpl.java
@@ -7,6 +7,7 @@
  *
  * Contributors:
  *   CEA - initial API and implementation
+ *   Kenn Hussey (CEA) - 351774
  *
  */
 package org.eclipse.uml2.uml.internal.impl;
@@ -427,10 +428,6 @@
 				return allOwnedElements();
 			case UMLPackage.LITERAL_REAL___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.LITERAL_REAL___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.LITERAL_REAL___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -439,6 +436,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.LITERAL_REAL___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.LITERAL_REAL___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.LITERAL_REAL___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralStringImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralStringImpl.java
index 85b2101..ee67d73 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralStringImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralStringImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: LiteralStringImpl.java,v 1.19 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -474,10 +473,6 @@
 				return allOwnedElements();
 			case UMLPackage.LITERAL_STRING___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.LITERAL_STRING___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.LITERAL_STRING___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -486,6 +481,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.LITERAL_STRING___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.LITERAL_STRING___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.LITERAL_STRING___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralUnlimitedNaturalImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralUnlimitedNaturalImpl.java
index 24e2646..74ad857 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralUnlimitedNaturalImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralUnlimitedNaturalImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: LiteralUnlimitedNaturalImpl.java,v 1.19 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -426,10 +425,6 @@
 				return allOwnedElements();
 			case UMLPackage.LITERAL_UNLIMITED_NATURAL___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.LITERAL_UNLIMITED_NATURAL___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.LITERAL_UNLIMITED_NATURAL___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -438,6 +433,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.LITERAL_UNLIMITED_NATURAL___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.LITERAL_UNLIMITED_NATURAL___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.LITERAL_UNLIMITED_NATURAL___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LoopNodeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LoopNodeImpl.java
index a141534..b01feac 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LoopNodeImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LoopNodeImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: LoopNodeImpl.java,v 1.32 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -688,8 +687,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.LOOP_NODE__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.LOOP_NODE__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.LOOP_NODE__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -722,8 +719,6 @@
 			case UMLPackage.LOOP_NODE__OWNED_RULE :
 				return ((InternalEList<?>) getOwnedRules()).basicRemove(
 					otherEnd, msgs);
-			case UMLPackage.LOOP_NODE__IN_ACTIVITY :
-				return basicSetInActivity(null, msgs);
 			case UMLPackage.LOOP_NODE__NODE :
 				return ((InternalEList<?>) getNodes()).basicRemove(otherEnd,
 					msgs);
@@ -793,8 +788,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.LOOP_NODE__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.LOOP_NODE__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.LOOP_NODE__IN_STRUCTURED_NODE :
@@ -807,6 +800,8 @@
 				return getOutgoings();
 			case UMLPackage.LOOP_NODE__INCOMING :
 				return getIncomings();
+			case UMLPackage.LOOP_NODE__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.LOOP_NODE__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.LOOP_NODE__HANDLER :
@@ -837,6 +832,8 @@
 				return getImportedMembers();
 			case UMLPackage.LOOP_NODE__MEMBER :
 				return getMembers();
+			case UMLPackage.LOOP_NODE__CONTAINED_EDGE :
+				return getContainedEdges();
 			case UMLPackage.LOOP_NODE__CONTAINED_NODE :
 				return getContainedNodes();
 			case UMLPackage.LOOP_NODE__IN_ACTIVITY :
@@ -849,8 +846,6 @@
 				if (resolve)
 					return getSuperGroup();
 				return basicGetSuperGroup();
-			case UMLPackage.LOOP_NODE__CONTAINED_EDGE :
-				return getContainedEdges();
 			case UMLPackage.LOOP_NODE__MUST_ISOLATE :
 				return isMustIsolate();
 			case UMLPackage.LOOP_NODE__NODE :
@@ -1225,8 +1220,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.LOOP_NODE__ACTIVITY :
 				return isSetActivity();
-			case UMLPackage.LOOP_NODE__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.LOOP_NODE__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.LOOP_NODE__IN_STRUCTURED_NODE :
@@ -1238,6 +1231,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.LOOP_NODE__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.LOOP_NODE__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.LOOP_NODE__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.LOOP_NODE__HANDLER :
@@ -1268,6 +1263,8 @@
 				return !getImportedMembers().isEmpty();
 			case UMLPackage.LOOP_NODE__MEMBER :
 				return isSetMembers();
+			case UMLPackage.LOOP_NODE__CONTAINED_EDGE :
+				return isSetContainedEdges();
 			case UMLPackage.LOOP_NODE__CONTAINED_NODE :
 				return isSetContainedNodes();
 			case UMLPackage.LOOP_NODE__IN_ACTIVITY :
@@ -1276,8 +1273,6 @@
 				return isSetSubgroups();
 			case UMLPackage.LOOP_NODE__SUPER_GROUP :
 				return isSetSuperGroup();
-			case UMLPackage.LOOP_NODE__CONTAINED_EDGE :
-				return isSetContainedEdges();
 			case UMLPackage.LOOP_NODE__MUST_ISOLATE :
 				return ((eFlags & MUST_ISOLATE_EFLAG) != 0) != MUST_ISOLATE_EDEFAULT;
 			case UMLPackage.LOOP_NODE__NODE :
@@ -1404,10 +1399,6 @@
 				return allOwnedElements();
 			case UMLPackage.LOOP_NODE___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.LOOP_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.LOOP_NODE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1416,6 +1407,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.LOOP_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.LOOP_NODE___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.LOOP_NODE___CREATE_USAGE__NAMEDELEMENT :
@@ -1493,33 +1488,26 @@
 				return membersAreDistinguishable();
 			case UMLPackage.LOOP_NODE___GET_OWNED_MEMBERS :
 				return getOwnedMembers();
-			case UMLPackage.LOOP_NODE___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP :
-				return validateNodesAndEdges(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.LOOP_NODE___VALIDATE_GROUP_OWNED__DIAGNOSTICCHAIN_MAP :
 				return validateGroupOwned((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.LOOP_NODE___VALIDATE_NOT_CONTAINED__DIAGNOSTICCHAIN_MAP :
 				return validateNotContained((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.LOOP_NODE___VALIDATE_OUTPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP :
-				return validateOutputPinEdges(
+			case UMLPackage.LOOP_NODE___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP :
+				return validateNodesAndEdges(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.LOOP_NODE___VALIDATE_EDGES__DIAGNOSTICCHAIN_MAP :
-				return validateEdges((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.LOOP_NODE___VALIDATE_INPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP :
 				return validateInputPinEdges(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.LOOP_NODE___VALIDATE_RESULT_NO_INCOMING__DIAGNOSTICCHAIN_MAP :
-				return validateResultNoIncoming(
-					(DiagnosticChain) arguments.get(0),
+			case UMLPackage.LOOP_NODE___VALIDATE_EDGES__DIAGNOSTICCHAIN_MAP :
+				return validateEdges((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.LOOP_NODE___VALIDATE_INPUT_EDGES__DIAGNOSTICCHAIN_MAP :
-				return validateInputEdges((DiagnosticChain) arguments.get(0),
+			case UMLPackage.LOOP_NODE___VALIDATE_OUTPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP :
+				return validateOutputPinEdges(
+					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.LOOP_NODE___VALIDATE_EXECUTABLE_NODES__DIAGNOSTICCHAIN_MAP :
 				return validateExecutableNodes(
@@ -1529,6 +1517,13 @@
 				return validateBodyOutputPins(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.LOOP_NODE___VALIDATE_RESULT_NO_INCOMING__DIAGNOSTICCHAIN_MAP :
+				return validateResultNoIncoming(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.LOOP_NODE___VALIDATE_INPUT_EDGES__DIAGNOSTICCHAIN_MAP :
+				return validateInputEdges((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MergeNodeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MergeNodeImpl.java
index db002f1..ff07229 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MergeNodeImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MergeNodeImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: MergeNodeImpl.java,v 1.5 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -176,10 +175,6 @@
 				return allOwnedElements();
 			case UMLPackage.MERGE_NODE___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.MERGE_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.MERGE_NODE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -188,6 +183,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.MERGE_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.MERGE_NODE___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.MERGE_NODE___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MessageImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MessageImpl.java
index d6c9d5d..66b4080 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MessageImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MessageImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: MessageImpl.java,v 1.29 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -1034,10 +1033,6 @@
 				return allOwnedElements();
 			case UMLPackage.MESSAGE___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.MESSAGE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.MESSAGE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1046,6 +1041,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.MESSAGE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.MESSAGE___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.MESSAGE___CREATE_USAGE__NAMEDELEMENT :
@@ -1071,6 +1070,18 @@
 				return validateSendingReceivingMessageEvent(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.MESSAGE___VALIDATE_OCCURRENCE_SPECIFICATIONS__DIAGNOSTICCHAIN_MAP :
+				return validateOccurrenceSpecifications(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.MESSAGE___VALIDATE_SIGNATURE_IS_SIGNAL__DIAGNOSTICCHAIN_MAP :
+				return validateSignatureIsSignal(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.MESSAGE___VALIDATE_SIGNATURE_IS_OPERATION__DIAGNOSTICCHAIN_MAP :
+				return validateSignatureIsOperation(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.MESSAGE___VALIDATE_ARGUMENTS__DIAGNOSTICCHAIN_MAP :
 				return validateArguments((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
@@ -1078,22 +1089,10 @@
 				return validateCannotCrossBoundaries(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.MESSAGE___VALIDATE_SIGNATURE_IS_SIGNAL__DIAGNOSTICCHAIN_MAP :
-				return validateSignatureIsSignal(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.MESSAGE___VALIDATE_OCCURRENCE_SPECIFICATIONS__DIAGNOSTICCHAIN_MAP :
-				return validateOccurrenceSpecifications(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.MESSAGE___VALIDATE_SIGNATURE_REFER_TO__DIAGNOSTICCHAIN_MAP :
 				return validateSignatureReferTo(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.MESSAGE___VALIDATE_SIGNATURE_IS_OPERATION__DIAGNOSTICCHAIN_MAP :
-				return validateSignatureIsOperation(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.MESSAGE___GET_MESSAGE_KIND :
 				return getMessageKind();
 		}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ModelImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ModelImpl.java
index 454d1ce..f3fe62f 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ModelImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ModelImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ModelImpl.java,v 1.17 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -601,10 +600,6 @@
 				return allOwnedElements();
 			case UMLPackage.MODEL___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.MODEL___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.MODEL___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -613,6 +608,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.MODEL___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.MODEL___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.MODEL___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MultiplicityElementImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MultiplicityElementImpl.java
index e0bd7a9..4209522 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MultiplicityElementImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MultiplicityElementImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: MultiplicityElementImpl.java,v 1.31 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -866,20 +865,20 @@
 				return allOwnedElements();
 			case UMLPackage.MULTIPLICITY_ELEMENT___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.MULTIPLICITY_ELEMENT___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP :
-				return validateUpperGeLower((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.MULTIPLICITY_ELEMENT___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP :
 				return validateLowerGe0((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.MULTIPLICITY_ELEMENT___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP :
-				return validateValueSpecificationNoSideEffects(
-					(DiagnosticChain) arguments.get(0),
+			case UMLPackage.MULTIPLICITY_ELEMENT___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP :
+				return validateUpperGeLower((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.MULTIPLICITY_ELEMENT___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP :
 				return validateValueSpecificationConstant(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.MULTIPLICITY_ELEMENT___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP :
+				return validateValueSpecificationNoSideEffects(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.MULTIPLICITY_ELEMENT___SET_LOWER__INT :
 				setLower((Integer) arguments.get(0));
 				return null;
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/NamedElementImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/NamedElementImpl.java
index 6bb95d2..9de65831 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/NamedElementImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/NamedElementImpl.java
@@ -10,9 +10,8 @@
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Sergey Boyko (Borland) - 282440
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: NamedElementImpl.java,v 1.36 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -908,10 +907,6 @@
 				return allOwnedElements();
 			case UMLPackage.NAMED_ELEMENT___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.NAMED_ELEMENT___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -920,6 +915,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.NAMED_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.NAMED_ELEMENT___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.NAMED_ELEMENT___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/NamespaceImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/NamespaceImpl.java
index c00e7d1..51b7106 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/NamespaceImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/NamespaceImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: NamespaceImpl.java,v 1.27 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -885,10 +884,6 @@
 				return allOwnedElements();
 			case UMLPackage.NAMESPACE___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.NAMESPACE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.NAMESPACE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -897,6 +892,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.NAMESPACE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.NAMESPACE___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.NAMESPACE___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/NodeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/NodeImpl.java
index d4b0bf0..e919b36 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/NodeImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/NodeImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 205188
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: NodeImpl.java,v 1.34 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -1249,10 +1248,6 @@
 				return allOwnedElements();
 			case UMLPackage.NODE___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.NODE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1261,6 +1256,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.NODE___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.NODE___CREATE_USAGE__NAMEDELEMENT :
@@ -1350,14 +1349,6 @@
 				return isTemplate();
 			case UMLPackage.NODE___PARAMETERABLE_ELEMENTS :
 				return parameterableElements();
-			case UMLPackage.NODE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
-				return validateSpecializeType(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.NODE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
-				return validateMapsToGeneralizationSet(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.NODE___VALIDATE_NON_FINAL_PARENTS__DIAGNOSTICCHAIN_MAP :
 				return validateNonFinalParents(
 					(DiagnosticChain) arguments.get(0),
@@ -1366,6 +1357,14 @@
 				return validateNoCyclesInGeneralization(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.NODE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
+				return validateSpecializeType(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.NODE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
+				return validateMapsToGeneralizationSet(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.NODE___GET_ALL_ATTRIBUTES :
 				return getAllAttributes();
 			case UMLPackage.NODE___GET_ALL_OPERATIONS :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ObjectFlowImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ObjectFlowImpl.java
index 7e33de4..71d31a8 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ObjectFlowImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ObjectFlowImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ObjectFlowImpl.java,v 1.21 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -412,12 +411,14 @@
 				return getRedefinedElements();
 			case UMLPackage.OBJECT_FLOW__REDEFINITION_CONTEXT :
 				return getRedefinitionContexts();
+			case UMLPackage.OBJECT_FLOW__ACTIVITY :
+				if (resolve)
+					return getActivity();
+				return basicGetActivity();
 			case UMLPackage.OBJECT_FLOW__GUARD :
 				if (resolve)
 					return getGuard();
 				return basicGetGuard();
-			case UMLPackage.OBJECT_FLOW__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.OBJECT_FLOW__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.OBJECT_FLOW__IN_STRUCTURED_NODE :
@@ -442,10 +443,8 @@
 				if (resolve)
 					return getWeight();
 				return basicGetWeight();
-			case UMLPackage.OBJECT_FLOW__ACTIVITY :
-				if (resolve)
-					return getActivity();
-				return basicGetActivity();
+			case UMLPackage.OBJECT_FLOW__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.OBJECT_FLOW__IS_MULTICAST :
 				return isMulticast();
 			case UMLPackage.OBJECT_FLOW__IS_MULTIRECEIVE :
@@ -498,6 +497,9 @@
 			case UMLPackage.OBJECT_FLOW__IS_LEAF :
 				setIsLeaf((Boolean) newValue);
 				return;
+			case UMLPackage.OBJECT_FLOW__ACTIVITY :
+				setActivity((Activity) newValue);
+				return;
 			case UMLPackage.OBJECT_FLOW__GUARD :
 				setGuard((ValueSpecification) newValue);
 				return;
@@ -526,9 +528,6 @@
 			case UMLPackage.OBJECT_FLOW__WEIGHT :
 				setWeight((ValueSpecification) newValue);
 				return;
-			case UMLPackage.OBJECT_FLOW__ACTIVITY :
-				setActivity((Activity) newValue);
-				return;
 			case UMLPackage.OBJECT_FLOW__IS_MULTICAST :
 				setIsMulticast((Boolean) newValue);
 				return;
@@ -574,6 +573,9 @@
 			case UMLPackage.OBJECT_FLOW__IS_LEAF :
 				setIsLeaf(IS_LEAF_EDEFAULT);
 				return;
+			case UMLPackage.OBJECT_FLOW__ACTIVITY :
+				setActivity((Activity) null);
+				return;
 			case UMLPackage.OBJECT_FLOW__GUARD :
 				setGuard((ValueSpecification) null);
 				return;
@@ -598,9 +600,6 @@
 			case UMLPackage.OBJECT_FLOW__WEIGHT :
 				setWeight((ValueSpecification) null);
 				return;
-			case UMLPackage.OBJECT_FLOW__ACTIVITY :
-				setActivity((Activity) null);
-				return;
 			case UMLPackage.OBJECT_FLOW__IS_MULTICAST :
 				setIsMulticast(IS_MULTICAST_EDEFAULT);
 				return;
@@ -654,10 +653,10 @@
 				return isSetRedefinedElements();
 			case UMLPackage.OBJECT_FLOW__REDEFINITION_CONTEXT :
 				return isSetRedefinitionContexts();
+			case UMLPackage.OBJECT_FLOW__ACTIVITY :
+				return basicGetActivity() != null;
 			case UMLPackage.OBJECT_FLOW__GUARD :
 				return guard != null;
-			case UMLPackage.OBJECT_FLOW__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.OBJECT_FLOW__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.OBJECT_FLOW__IN_STRUCTURED_NODE :
@@ -672,8 +671,8 @@
 				return target != null;
 			case UMLPackage.OBJECT_FLOW__WEIGHT :
 				return weight != null;
-			case UMLPackage.OBJECT_FLOW__ACTIVITY :
-				return basicGetActivity() != null;
+			case UMLPackage.OBJECT_FLOW__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.OBJECT_FLOW__IS_MULTICAST :
 				return ((eFlags & IS_MULTICAST_EFLAG) != 0) != IS_MULTICAST_EDEFAULT;
 			case UMLPackage.OBJECT_FLOW__IS_MULTIRECEIVE :
@@ -778,10 +777,6 @@
 				return allOwnedElements();
 			case UMLPackage.OBJECT_FLOW___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.OBJECT_FLOW___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.OBJECT_FLOW___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -790,6 +785,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.OBJECT_FLOW___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.OBJECT_FLOW___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.OBJECT_FLOW___CREATE_USAGE__NAMEDELEMENT :
@@ -839,15 +838,8 @@
 				return validateStructuredNode(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.OBJECT_FLOW___VALIDATE_INPUT_AND_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP :
-				return validateInputAndOutputParameter(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.OBJECT_FLOW___VALIDATE_NO_ACTIONS__DIAGNOSTICCHAIN_MAP :
-				return validateNoActions((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.OBJECT_FLOW___VALIDATE_TRANSFORMATION_BEHAVIOUR__DIAGNOSTICCHAIN_MAP :
-				return validateTransformationBehaviour(
+			case UMLPackage.OBJECT_FLOW___VALIDATE_IS_MULTICAST_OR_IS_MULTIRECEIVE__DIAGNOSTICCHAIN_MAP :
+				return validateIsMulticastOrIsMultireceive(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.OBJECT_FLOW___VALIDATE_SELECTION_BEHAVIOUR__DIAGNOSTICCHAIN_MAP :
@@ -858,15 +850,22 @@
 				return validateCompatibleTypes(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.OBJECT_FLOW___VALIDATE_SAME_UPPER_BOUNDS__DIAGNOSTICCHAIN_MAP :
-				return validateSameUpperBounds(
+			case UMLPackage.OBJECT_FLOW___VALIDATE_NO_ACTIONS__DIAGNOSTICCHAIN_MAP :
+				return validateNoActions((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.OBJECT_FLOW___VALIDATE_INPUT_AND_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP :
+				return validateInputAndOutputParameter(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.OBJECT_FLOW___VALIDATE_TRANSFORMATION_BEHAVIOUR__DIAGNOSTICCHAIN_MAP :
+				return validateTransformationBehaviour(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.OBJECT_FLOW___VALIDATE_TARGET__DIAGNOSTICCHAIN_MAP :
 				return validateTarget((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.OBJECT_FLOW___VALIDATE_IS_MULTICAST_OR_IS_MULTIRECEIVE__DIAGNOSTICCHAIN_MAP :
-				return validateIsMulticastOrIsMultireceive(
+			case UMLPackage.OBJECT_FLOW___VALIDATE_SAME_UPPER_BOUNDS__DIAGNOSTICCHAIN_MAP :
+				return validateSameUpperBounds(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 		}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ObjectNodeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ObjectNodeImpl.java
index 69c5cb2..e257456 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ObjectNodeImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ObjectNodeImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ObjectNodeImpl.java,v 1.29 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -571,8 +570,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.OBJECT_NODE__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.OBJECT_NODE__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.OBJECT_NODE__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -637,8 +634,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.OBJECT_NODE__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.OBJECT_NODE__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.OBJECT_NODE__IN_STRUCTURED_NODE :
@@ -651,6 +646,8 @@
 				return getOutgoings();
 			case UMLPackage.OBJECT_NODE__INCOMING :
 				return getIncomings();
+			case UMLPackage.OBJECT_NODE__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.OBJECT_NODE__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.OBJECT_NODE__TYPE :
@@ -877,8 +874,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.OBJECT_NODE__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.OBJECT_NODE__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.OBJECT_NODE__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.OBJECT_NODE__IN_STRUCTURED_NODE :
@@ -890,6 +885,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.OBJECT_NODE__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.OBJECT_NODE__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.OBJECT_NODE__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.OBJECT_NODE__TYPE :
@@ -1036,10 +1033,6 @@
 				return allOwnedElements();
 			case UMLPackage.OBJECT_NODE___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.OBJECT_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.OBJECT_NODE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1048,6 +1041,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.OBJECT_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.OBJECT_NODE___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.OBJECT_NODE___CREATE_USAGE__NAMEDELEMENT :
@@ -1093,16 +1090,16 @@
 				return validateOwnedStructuredNode(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.OBJECT_NODE___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP :
-				return validateInputOutputParameter(
+			case UMLPackage.OBJECT_NODE___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP :
+				return validateObjectFlowEdges(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.OBJECT_NODE___VALIDATE_SELECTION_BEHAVIOR__DIAGNOSTICCHAIN_MAP :
 				return validateSelectionBehavior(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.OBJECT_NODE___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP :
-				return validateObjectFlowEdges(
+			case UMLPackage.OBJECT_NODE___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP :
+				return validateInputOutputParameter(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 		}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OpaqueActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OpaqueActionImpl.java
index 1dbe01f..37af275 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OpaqueActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OpaqueActionImpl.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: OpaqueActionImpl.java,v 1.25 2009/01/07 15:55:30 jbruck Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -413,8 +412,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.OPAQUE_ACTION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.OPAQUE_ACTION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.OPAQUE_ACTION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -492,8 +489,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.OPAQUE_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.OPAQUE_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.OPAQUE_ACTION__IN_STRUCTURED_NODE :
@@ -506,6 +501,8 @@
 				return getOutgoings();
 			case UMLPackage.OPAQUE_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.OPAQUE_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.OPAQUE_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.OPAQUE_ACTION__HANDLER :
@@ -761,8 +758,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.OPAQUE_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.OPAQUE_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.OPAQUE_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.OPAQUE_ACTION__IN_STRUCTURED_NODE :
@@ -774,6 +769,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.OPAQUE_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.OPAQUE_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.OPAQUE_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.OPAQUE_ACTION__HANDLER :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OpaqueExpressionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OpaqueExpressionImpl.java
index ead43c7..9134a1c 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OpaqueExpressionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OpaqueExpressionImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: OpaqueExpressionImpl.java,v 1.24 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -634,10 +633,6 @@
 				return allOwnedElements();
 			case UMLPackage.OPAQUE_EXPRESSION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.OPAQUE_EXPRESSION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.OPAQUE_EXPRESSION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -646,6 +641,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.OPAQUE_EXPRESSION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.OPAQUE_EXPRESSION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.OPAQUE_EXPRESSION___CREATE_USAGE__NAMEDELEMENT :
@@ -685,16 +684,16 @@
 				return stringValue();
 			case UMLPackage.OPAQUE_EXPRESSION___UNLIMITED_VALUE :
 				return unlimitedValue();
-			case UMLPackage.OPAQUE_EXPRESSION___VALIDATE_LANGUAGE_BODY_SIZE__DIAGNOSTICCHAIN_MAP :
-				return validateLanguageBodySize(
+			case UMLPackage.OPAQUE_EXPRESSION___VALIDATE_ONLY_RETURN_RESULT_PARAMETERS__DIAGNOSTICCHAIN_MAP :
+				return validateOnlyReturnResultParameters(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.OPAQUE_EXPRESSION___VALIDATE_ONE_RETURN_RESULT_PARAMETER__DIAGNOSTICCHAIN_MAP :
 				return validateOneReturnResultParameter(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.OPAQUE_EXPRESSION___VALIDATE_ONLY_RETURN_RESULT_PARAMETERS__DIAGNOSTICCHAIN_MAP :
-				return validateOnlyReturnResultParameters(
+			case UMLPackage.OPAQUE_EXPRESSION___VALIDATE_LANGUAGE_BODY_SIZE__DIAGNOSTICCHAIN_MAP :
+				return validateLanguageBodySize(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.OPAQUE_EXPRESSION___IS_INTEGRAL :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OperationImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OperationImpl.java
index e67d713..3ba1f0b 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OperationImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OperationImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: OperationImpl.java,v 1.39 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -93,14 +92,14 @@
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getOwnedTemplateSignature <em>Owned Template Signature</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getTemplateBindings <em>Template Binding</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getFeaturingClassifiers <em>Featuring Classifier</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getNamespace <em>Namespace</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getRedefinitionContexts <em>Redefinition Context</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getNamespace <em>Namespace</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getRedefinedElements <em>Redefined Element</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getOwnedRules <em>Owned Rule</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getInterface <em>Interface</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getBodyCondition <em>Body Condition</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getClass_ <em>Class</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getDatatype <em>Datatype</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getInterface <em>Interface</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#isOrdered <em>Is Ordered</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#isQuery <em>Is Query</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#isUnique <em>Is Unique</em>}</li>
@@ -1527,6 +1526,10 @@
 			case UMLPackage.OPERATION__TEMPLATE_BINDING :
 				return ((InternalEList<InternalEObject>) (InternalEList<?>) getTemplateBindings())
 					.basicAdd(otherEnd, msgs);
+			case UMLPackage.OPERATION__INTERFACE :
+				if (eInternalContainer() != null)
+					msgs = eBasicRemoveFromContainer(msgs);
+				return basicSetInterface((Interface) otherEnd, msgs);
 			case UMLPackage.OPERATION__CLASS :
 				if (eInternalContainer() != null)
 					msgs = eBasicRemoveFromContainer(msgs);
@@ -1536,10 +1539,6 @@
 				if (eInternalContainer() != null)
 					msgs = eBasicRemoveFromContainer(msgs);
 				return basicSetDatatype((DataType) otherEnd, msgs);
-			case UMLPackage.OPERATION__INTERFACE :
-				if (eInternalContainer() != null)
-					msgs = eBasicRemoveFromContainer(msgs);
-				return basicSetInterface((Interface) otherEnd, msgs);
 		}
 		return eDynamicInverseAdd(otherEnd, featureID, msgs);
 	}
@@ -1591,12 +1590,12 @@
 			case UMLPackage.OPERATION__TEMPLATE_BINDING :
 				return ((InternalEList<?>) getTemplateBindings()).basicRemove(
 					otherEnd, msgs);
+			case UMLPackage.OPERATION__INTERFACE :
+				return basicSetInterface(null, msgs);
 			case UMLPackage.OPERATION__CLASS :
 				return basicSetClass_(null, msgs);
 			case UMLPackage.OPERATION__DATATYPE :
 				return basicSetDatatype(null, msgs);
-			case UMLPackage.OPERATION__INTERFACE :
-				return basicSetInterface(null, msgs);
 		}
 		return eDynamicInverseRemove(otherEnd, featureID, msgs);
 	}
@@ -1614,6 +1613,10 @@
 				return eInternalContainer().eInverseRemove(this,
 					UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 					TemplateParameter.class, msgs);
+			case UMLPackage.OPERATION__INTERFACE :
+				return eInternalContainer().eInverseRemove(this,
+					UMLPackage.INTERFACE__OWNED_OPERATION, Interface.class,
+					msgs);
 			case UMLPackage.OPERATION__CLASS :
 				return eInternalContainer().eInverseRemove(this,
 					UMLPackage.CLASS__OWNED_OPERATION,
@@ -1623,10 +1626,6 @@
 					.eInverseRemove(this,
 						UMLPackage.DATA_TYPE__OWNED_OPERATION, DataType.class,
 						msgs);
-			case UMLPackage.OPERATION__INTERFACE :
-				return eInternalContainer().eInverseRemove(this,
-					UMLPackage.INTERFACE__OWNED_OPERATION, Interface.class,
-					msgs);
 		}
 		return eDynamicBasicRemoveFromContainer(msgs);
 	}
@@ -1713,6 +1712,10 @@
 				return basicGetOwnedTemplateSignature();
 			case UMLPackage.OPERATION__TEMPLATE_BINDING :
 				return getTemplateBindings();
+			case UMLPackage.OPERATION__INTERFACE :
+				if (resolve)
+					return getInterface();
+				return basicGetInterface();
 			case UMLPackage.OPERATION__BODY_CONDITION :
 				if (resolve)
 					return getBodyCondition();
@@ -1725,10 +1728,6 @@
 				if (resolve)
 					return getDatatype();
 				return basicGetDatatype();
-			case UMLPackage.OPERATION__INTERFACE :
-				if (resolve)
-					return getInterface();
-				return basicGetInterface();
 			case UMLPackage.OPERATION__IS_ORDERED :
 				return isOrdered();
 			case UMLPackage.OPERATION__IS_QUERY :
@@ -1846,6 +1845,9 @@
 				getTemplateBindings().addAll(
 					(Collection<? extends TemplateBinding>) newValue);
 				return;
+			case UMLPackage.OPERATION__INTERFACE :
+				setInterface((Interface) newValue);
+				return;
 			case UMLPackage.OPERATION__BODY_CONDITION :
 				setBodyCondition((Constraint) newValue);
 				return;
@@ -1855,9 +1857,6 @@
 			case UMLPackage.OPERATION__DATATYPE :
 				setDatatype((DataType) newValue);
 				return;
-			case UMLPackage.OPERATION__INTERFACE :
-				setInterface((Interface) newValue);
-				return;
 			case UMLPackage.OPERATION__IS_QUERY :
 				setIsQuery((Boolean) newValue);
 				return;
@@ -1951,6 +1950,9 @@
 			case UMLPackage.OPERATION__TEMPLATE_BINDING :
 				getTemplateBindings().clear();
 				return;
+			case UMLPackage.OPERATION__INTERFACE :
+				setInterface((Interface) null);
+				return;
 			case UMLPackage.OPERATION__BODY_CONDITION :
 				setBodyCondition((Constraint) null);
 				return;
@@ -1960,9 +1962,6 @@
 			case UMLPackage.OPERATION__DATATYPE :
 				setDatatype((DataType) null);
 				return;
-			case UMLPackage.OPERATION__INTERFACE :
-				setInterface((Interface) null);
-				return;
 			case UMLPackage.OPERATION__IS_QUERY :
 				setIsQuery(IS_QUERY_EDEFAULT);
 				return;
@@ -2053,14 +2052,14 @@
 				return ownedTemplateSignature != null;
 			case UMLPackage.OPERATION__TEMPLATE_BINDING :
 				return templateBindings != null && !templateBindings.isEmpty();
+			case UMLPackage.OPERATION__INTERFACE :
+				return basicGetInterface() != null;
 			case UMLPackage.OPERATION__BODY_CONDITION :
 				return bodyCondition != null;
 			case UMLPackage.OPERATION__CLASS :
 				return basicGetClass_() != null;
 			case UMLPackage.OPERATION__DATATYPE :
 				return basicGetDatatype() != null;
-			case UMLPackage.OPERATION__INTERFACE :
-				return basicGetInterface() != null;
 			case UMLPackage.OPERATION__IS_ORDERED :
 				return isOrdered() != IS_ORDERED_EDEFAULT;
 			case UMLPackage.OPERATION__IS_QUERY :
@@ -2266,10 +2265,6 @@
 				return allOwnedElements();
 			case UMLPackage.OPERATION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.OPERATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.OPERATION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -2278,6 +2273,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.OPERATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.OPERATION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.OPERATION___CREATE_USAGE__NAMEDELEMENT :
@@ -2490,9 +2489,9 @@
 	@Override
 	public boolean isSetRedefinitionContexts() {
 		return super.isSetRedefinitionContexts()
+			|| eIsSet(UMLPackage.OPERATION__INTERFACE)
 			|| eIsSet(UMLPackage.OPERATION__CLASS)
-			|| eIsSet(UMLPackage.OPERATION__DATATYPE)
-			|| eIsSet(UMLPackage.OPERATION__INTERFACE);
+			|| eIsSet(UMLPackage.OPERATION__DATATYPE);
 	}
 
 	/**
@@ -2502,6 +2501,10 @@
 	 */
 	@Override
 	public Namespace basicGetNamespace() {
+		Interface interface_ = basicGetInterface();
+		if (interface_ != null) {
+			return interface_;
+		}
 		org.eclipse.uml2.uml.Class class_ = basicGetClass_();
 		if (class_ != null) {
 			return class_;
@@ -2510,10 +2513,6 @@
 		if (datatype != null) {
 			return datatype;
 		}
-		Interface interface_ = basicGetInterface();
-		if (interface_ != null) {
-			return interface_;
-		}
 		return super.basicGetNamespace();
 	}
 
@@ -2524,9 +2523,10 @@
 	 */
 	@Override
 	public boolean isSetNamespace() {
-		return super.isSetNamespace() || eIsSet(UMLPackage.OPERATION__CLASS)
-			|| eIsSet(UMLPackage.OPERATION__DATATYPE)
-			|| eIsSet(UMLPackage.OPERATION__INTERFACE);
+		return super.isSetNamespace()
+			|| eIsSet(UMLPackage.OPERATION__INTERFACE)
+			|| eIsSet(UMLPackage.OPERATION__CLASS)
+			|| eIsSet(UMLPackage.OPERATION__DATATYPE);
 	}
 
 	/**
@@ -2538,8 +2538,8 @@
 	 * @ordered
 	 */
 	protected static final int[] FEATURING_CLASSIFIER_ESUBSETS = new int[]{
-		UMLPackage.OPERATION__CLASS, UMLPackage.OPERATION__DATATYPE,
-		UMLPackage.OPERATION__INTERFACE};
+		UMLPackage.OPERATION__INTERFACE, UMLPackage.OPERATION__CLASS,
+		UMLPackage.OPERATION__DATATYPE};
 
 	/**
 	 * The array of subset feature identifiers for the '{@link #getRedefinitionContexts() <em>Redefinition Context</em>}' reference list.
@@ -2550,8 +2550,8 @@
 	 * @ordered
 	 */
 	protected static final int[] REDEFINITION_CONTEXT_ESUBSETS = new int[]{
-		UMLPackage.OPERATION__CLASS, UMLPackage.OPERATION__DATATYPE,
-		UMLPackage.OPERATION__INTERFACE};
+		UMLPackage.OPERATION__INTERFACE, UMLPackage.OPERATION__CLASS,
+		UMLPackage.OPERATION__DATATYPE};
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -2561,9 +2561,9 @@
 	@Override
 	public boolean isSetFeaturingClassifiers() {
 		return super.isSetFeaturingClassifiers()
+			|| eIsSet(UMLPackage.OPERATION__INTERFACE)
 			|| eIsSet(UMLPackage.OPERATION__CLASS)
-			|| eIsSet(UMLPackage.OPERATION__DATATYPE)
-			|| eIsSet(UMLPackage.OPERATION__INTERFACE);
+			|| eIsSet(UMLPackage.OPERATION__DATATYPE);
 	}
 
 	/**
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OutputPinImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OutputPinImpl.java
index 4212327..02550dd 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OutputPinImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OutputPinImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: OutputPinImpl.java,v 1.6 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -167,10 +166,6 @@
 				return allOwnedElements();
 			case UMLPackage.OUTPUT_PIN___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.OUTPUT_PIN___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.OUTPUT_PIN___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -179,6 +174,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.OUTPUT_PIN___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.OUTPUT_PIN___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.OUTPUT_PIN___CREATE_USAGE__NAMEDELEMENT :
@@ -224,32 +223,32 @@
 				return validateOwnedStructuredNode(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.OUTPUT_PIN___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP :
-				return validateInputOutputParameter(
+			case UMLPackage.OUTPUT_PIN___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP :
+				return validateObjectFlowEdges(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.OUTPUT_PIN___VALIDATE_SELECTION_BEHAVIOR__DIAGNOSTICCHAIN_MAP :
 				return validateSelectionBehavior(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.OUTPUT_PIN___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP :
-				return validateObjectFlowEdges(
+			case UMLPackage.OUTPUT_PIN___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP :
+				return validateInputOutputParameter(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.OUTPUT_PIN___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP :
-				return validateUpperGeLower((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.OUTPUT_PIN___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP :
 				return validateLowerGe0((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.OUTPUT_PIN___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP :
-				return validateValueSpecificationNoSideEffects(
-					(DiagnosticChain) arguments.get(0),
+			case UMLPackage.OUTPUT_PIN___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP :
+				return validateUpperGeLower((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.OUTPUT_PIN___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP :
 				return validateValueSpecificationConstant(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.OUTPUT_PIN___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP :
+				return validateValueSpecificationNoSideEffects(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.OUTPUT_PIN___SET_LOWER__INT :
 				setLower((Integer) arguments.get(0));
 				return null;
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PackageImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PackageImpl.java
index bed83e3..64383f9 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PackageImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PackageImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: PackageImpl.java,v 1.41 2010/09/28 21:02:12 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -1923,10 +1922,6 @@
 				return allOwnedElements();
 			case UMLPackage.PACKAGE___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.PACKAGE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PACKAGE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1935,6 +1930,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.PACKAGE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PACKAGE___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.PACKAGE___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PackageImportImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PackageImportImpl.java
index 92805ab..89fc2f6 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PackageImportImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PackageImportImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: PackageImportImpl.java,v 1.22 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -58,8 +57,8 @@
  * The following features are implemented:
  * <ul>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.PackageImportImpl#getTargets <em>Target</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.internal.impl.PackageImportImpl#getSources <em>Source</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.PackageImportImpl#getOwner <em>Owner</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.internal.impl.PackageImportImpl#getSources <em>Source</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.PackageImportImpl#getImportedPackage <em>Imported Package</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.PackageImportImpl#getImportingNamespace <em>Importing Namespace</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.PackageImportImpl#getVisibility <em>Visibility</em>}</li>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PackageMergeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PackageMergeImpl.java
index 40add47..18267bd 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PackageMergeImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PackageMergeImpl.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: PackageMergeImpl.java,v 1.18 2009/01/07 15:55:26 jbruck Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -46,8 +45,8 @@
  * The following features are implemented:
  * <ul>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.PackageMergeImpl#getTargets <em>Target</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.internal.impl.PackageMergeImpl#getSources <em>Source</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.PackageMergeImpl#getOwner <em>Owner</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.internal.impl.PackageMergeImpl#getSources <em>Source</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.PackageMergeImpl#getMergedPackage <em>Merged Package</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.PackageMergeImpl#getReceivingPackage <em>Receiving Package</em>}</li>
  * </ul>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PackageableElementImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PackageableElementImpl.java
index ec15a19..272c282 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PackageableElementImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PackageableElementImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: PackageableElementImpl.java,v 1.22 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -716,10 +715,6 @@
 				return allOwnedElements();
 			case UMLPackage.PACKAGEABLE_ELEMENT___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.PACKAGEABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PACKAGEABLE_ELEMENT___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -728,6 +723,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.PACKAGEABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PACKAGEABLE_ELEMENT___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.PACKAGEABLE_ELEMENT___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ParameterImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ParameterImpl.java
index edbfa5d..7d72cb5 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ParameterImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ParameterImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ParameterImpl.java,v 1.44 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -1755,14 +1754,14 @@
 	public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
 		if (baseClass == MultiplicityElement.class) {
 			switch (baseOperationID) {
-				case UMLPackage.MULTIPLICITY_ELEMENT___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP :
-					return UMLPackage.PARAMETER___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP;
 				case UMLPackage.MULTIPLICITY_ELEMENT___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP :
 					return UMLPackage.PARAMETER___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP;
-				case UMLPackage.MULTIPLICITY_ELEMENT___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP :
-					return UMLPackage.PARAMETER___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP;
+				case UMLPackage.MULTIPLICITY_ELEMENT___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP :
+					return UMLPackage.PARAMETER___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP;
 				case UMLPackage.MULTIPLICITY_ELEMENT___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP :
 					return UMLPackage.PARAMETER___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP;
+				case UMLPackage.MULTIPLICITY_ELEMENT___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP :
+					return UMLPackage.PARAMETER___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP;
 				case UMLPackage.MULTIPLICITY_ELEMENT___SET_LOWER__INT :
 					return UMLPackage.PARAMETER___SET_LOWER__INT;
 				case UMLPackage.MULTIPLICITY_ELEMENT___SET_UPPER__INT :
@@ -1884,10 +1883,6 @@
 				return allOwnedElements();
 			case UMLPackage.PARAMETER___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.PARAMETER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PARAMETER___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1896,6 +1891,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.PARAMETER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PARAMETER___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.PARAMETER___CREATE_USAGE__NAMEDELEMENT :
@@ -1923,20 +1922,20 @@
 				return isTemplateParameter();
 			case UMLPackage.PARAMETER___GET_ENDS :
 				return getEnds();
-			case UMLPackage.PARAMETER___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP :
-				return validateUpperGeLower((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PARAMETER___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP :
 				return validateLowerGe0((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PARAMETER___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP :
-				return validateValueSpecificationNoSideEffects(
-					(DiagnosticChain) arguments.get(0),
+			case UMLPackage.PARAMETER___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP :
+				return validateUpperGeLower((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PARAMETER___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP :
 				return validateValueSpecificationConstant(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.PARAMETER___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP :
+				return validateValueSpecificationNoSideEffects(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PARAMETER___SET_LOWER__INT :
 				setLower((Integer) arguments.get(0));
 				return null;
@@ -1963,18 +1962,18 @@
 				return getUpper();
 			case UMLPackage.PARAMETER___UPPER_BOUND :
 				return upperBound();
-			case UMLPackage.PARAMETER___VALIDATE_IN_AND_OUT__DIAGNOSTICCHAIN_MAP :
-				return validateInAndOut((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PARAMETER___VALIDATE_NOT_EXCEPTION__DIAGNOSTICCHAIN_MAP :
-				return validateNotException((DiagnosticChain) arguments.get(0),
+			case UMLPackage.PARAMETER___VALIDATE_REENTRANT_BEHAVIORS__DIAGNOSTICCHAIN_MAP :
+				return validateReentrantBehaviors(
+					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PARAMETER___VALIDATE_CONNECTOR_END__DIAGNOSTICCHAIN_MAP :
 				return validateConnectorEnd((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PARAMETER___VALIDATE_REENTRANT_BEHAVIORS__DIAGNOSTICCHAIN_MAP :
-				return validateReentrantBehaviors(
-					(DiagnosticChain) arguments.get(0),
+			case UMLPackage.PARAMETER___VALIDATE_NOT_EXCEPTION__DIAGNOSTICCHAIN_MAP :
+				return validateNotException((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.PARAMETER___VALIDATE_IN_AND_OUT__DIAGNOSTICCHAIN_MAP :
+				return validateInAndOut((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PARAMETER___VALIDATE_STREAM_AND_EXCEPTION__DIAGNOSTICCHAIN_MAP :
 				return validateStreamAndException(
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ParameterSetImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ParameterSetImpl.java
index ba3f960..f7e7c3d 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ParameterSetImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ParameterSetImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ParameterSetImpl.java,v 1.24 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -585,10 +584,6 @@
 				return allOwnedElements();
 			case UMLPackage.PARAMETER_SET___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.PARAMETER_SET___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PARAMETER_SET___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -597,6 +592,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.PARAMETER_SET___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PARAMETER_SET___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.PARAMETER_SET___CREATE_USAGE__NAMEDELEMENT :
@@ -618,15 +617,15 @@
 				return getQualifiedName();
 			case UMLPackage.PARAMETER_SET___SEPARATOR :
 				return separator();
-			case UMLPackage.PARAMETER_SET___VALIDATE_SAME_PARAMETERIZED_ENTITY__DIAGNOSTICCHAIN_MAP :
-				return validateSameParameterizedEntity(
+			case UMLPackage.PARAMETER_SET___VALIDATE_TWO_PARAMETER_SETS__DIAGNOSTICCHAIN_MAP :
+				return validateTwoParameterSets(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PARAMETER_SET___VALIDATE_INPUT__DIAGNOSTICCHAIN_MAP :
 				return validateInput((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PARAMETER_SET___VALIDATE_TWO_PARAMETER_SETS__DIAGNOSTICCHAIN_MAP :
-				return validateTwoParameterSets(
+			case UMLPackage.PARAMETER_SET___VALIDATE_SAME_PARAMETERIZED_ENTITY__DIAGNOSTICCHAIN_MAP :
+				return validateSameParameterizedEntity(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 		}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PartDecompositionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PartDecompositionImpl.java
index 61e527a..1fb4aa0 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PartDecompositionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PartDecompositionImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: PartDecompositionImpl.java,v 1.5 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -187,10 +186,6 @@
 				return allOwnedElements();
 			case UMLPackage.PART_DECOMPOSITION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.PART_DECOMPOSITION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PART_DECOMPOSITION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -199,6 +194,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.PART_DECOMPOSITION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PART_DECOMPOSITION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.PART_DECOMPOSITION___CREATE_USAGE__NAMEDELEMENT :
@@ -220,12 +219,8 @@
 				return getQualifiedName();
 			case UMLPackage.PART_DECOMPOSITION___SEPARATOR :
 				return separator();
-			case UMLPackage.PART_DECOMPOSITION___VALIDATE_GATES_MATCH__DIAGNOSTICCHAIN_MAP :
-				return validateGatesMatch((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PART_DECOMPOSITION___VALIDATE_ARGUMENTS_ARE_CONSTANTS__DIAGNOSTICCHAIN_MAP :
-				return validateArgumentsAreConstants(
-					(DiagnosticChain) arguments.get(0),
+			case UMLPackage.PART_DECOMPOSITION___VALIDATE_ALL_LIFELINES__DIAGNOSTICCHAIN_MAP :
+				return validateAllLifelines((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PART_DECOMPOSITION___VALIDATE_RETURN_VALUE_RECIPIENT_COVERAGE__DIAGNOSTICCHAIN_MAP :
 				return validateReturnValueRecipientCoverage(
@@ -235,22 +230,26 @@
 				return validateArgumentsCorrespondToParameters(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.PART_DECOMPOSITION___VALIDATE_GATES_MATCH__DIAGNOSTICCHAIN_MAP :
+				return validateGatesMatch((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.PART_DECOMPOSITION___VALIDATE_ARGUMENTS_ARE_CONSTANTS__DIAGNOSTICCHAIN_MAP :
+				return validateArgumentsAreConstants(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PART_DECOMPOSITION___VALIDATE_RETURN_VALUE_TYPE_RECIPIENT_CORRESPONDENCE__DIAGNOSTICCHAIN_MAP :
 				return validateReturnValueTypeRecipientCorrespondence(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PART_DECOMPOSITION___VALIDATE_ALL_LIFELINES__DIAGNOSTICCHAIN_MAP :
-				return validateAllLifelines((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PART_DECOMPOSITION___VALIDATE_COMMUTATIVITY_OF_DECOMPOSITION__DIAGNOSTICCHAIN_MAP :
-				return validateCommutativityOfDecomposition(
+			case UMLPackage.PART_DECOMPOSITION___VALIDATE_PARTS_OF_INTERNAL_STRUCTURES__DIAGNOSTICCHAIN_MAP :
+				return validatePartsOfInternalStructures(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PART_DECOMPOSITION___VALIDATE_ASSUME__DIAGNOSTICCHAIN_MAP :
 				return validateAssume((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PART_DECOMPOSITION___VALIDATE_PARTS_OF_INTERNAL_STRUCTURES__DIAGNOSTICCHAIN_MAP :
-				return validatePartsOfInternalStructures(
+			case UMLPackage.PART_DECOMPOSITION___VALIDATE_COMMUTATIVITY_OF_DECOMPOSITION__DIAGNOSTICCHAIN_MAP :
+				return validateCommutativityOfDecomposition(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 		}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PinImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PinImpl.java
index 0f7fa5c..5cc0308 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PinImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PinImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: PinImpl.java,v 1.34 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -683,8 +682,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.PIN__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.PIN__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.PIN__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -753,8 +750,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.PIN__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.PIN__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.PIN__IN_STRUCTURED_NODE :
@@ -767,6 +762,8 @@
 				return getOutgoings();
 			case UMLPackage.PIN__INCOMING :
 				return getIncomings();
+			case UMLPackage.PIN__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.PIN__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.PIN__TYPE :
@@ -1053,8 +1050,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.PIN__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.PIN__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.PIN__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.PIN__IN_STRUCTURED_NODE :
@@ -1066,6 +1061,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.PIN__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.PIN__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.PIN__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.PIN__TYPE :
@@ -1163,14 +1160,14 @@
 	public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
 		if (baseClass == MultiplicityElement.class) {
 			switch (baseOperationID) {
-				case UMLPackage.MULTIPLICITY_ELEMENT___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP :
-					return UMLPackage.PIN___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP;
 				case UMLPackage.MULTIPLICITY_ELEMENT___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP :
 					return UMLPackage.PIN___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP;
-				case UMLPackage.MULTIPLICITY_ELEMENT___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP :
-					return UMLPackage.PIN___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP;
+				case UMLPackage.MULTIPLICITY_ELEMENT___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP :
+					return UMLPackage.PIN___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP;
 				case UMLPackage.MULTIPLICITY_ELEMENT___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP :
 					return UMLPackage.PIN___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP;
+				case UMLPackage.MULTIPLICITY_ELEMENT___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP :
+					return UMLPackage.PIN___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP;
 				case UMLPackage.MULTIPLICITY_ELEMENT___SET_LOWER__INT :
 					return UMLPackage.PIN___SET_LOWER__INT;
 				case UMLPackage.MULTIPLICITY_ELEMENT___SET_UPPER__INT :
@@ -1292,10 +1289,6 @@
 				return allOwnedElements();
 			case UMLPackage.PIN___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.PIN___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PIN___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1304,6 +1297,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.PIN___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PIN___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.PIN___CREATE_USAGE__NAMEDELEMENT :
@@ -1349,32 +1346,32 @@
 				return validateOwnedStructuredNode(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PIN___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP :
-				return validateInputOutputParameter(
+			case UMLPackage.PIN___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP :
+				return validateObjectFlowEdges(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PIN___VALIDATE_SELECTION_BEHAVIOR__DIAGNOSTICCHAIN_MAP :
 				return validateSelectionBehavior(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PIN___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP :
-				return validateObjectFlowEdges(
+			case UMLPackage.PIN___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP :
+				return validateInputOutputParameter(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PIN___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP :
-				return validateUpperGeLower((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PIN___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP :
 				return validateLowerGe0((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PIN___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP :
-				return validateValueSpecificationNoSideEffects(
-					(DiagnosticChain) arguments.get(0),
+			case UMLPackage.PIN___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP :
+				return validateUpperGeLower((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PIN___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP :
 				return validateValueSpecificationConstant(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.PIN___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP :
+				return validateValueSpecificationNoSideEffects(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PIN___SET_LOWER__INT :
 				setLower((Integer) arguments.get(0));
 				return null;
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PortImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PortImpl.java
index 9338293..9812741 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PortImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PortImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: PortImpl.java,v 1.34 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -576,14 +575,14 @@
 				return getDeployedElements();
 			case UMLPackage.PORT__DEPLOYMENT :
 				return getDeployments();
-			case UMLPackage.PORT__DATATYPE :
-				if (resolve)
-					return getDatatype();
-				return basicGetDatatype();
 			case UMLPackage.PORT__INTERFACE :
 				if (resolve)
 					return getInterface();
 				return basicGetInterface();
+			case UMLPackage.PORT__DATATYPE :
+				if (resolve)
+					return getDatatype();
+				return basicGetDatatype();
 			case UMLPackage.PORT__AGGREGATION :
 				return getAggregation();
 			case UMLPackage.PORT__ASSOCIATION_END :
@@ -720,12 +719,12 @@
 				getDeployments().addAll(
 					(Collection<? extends Deployment>) newValue);
 				return;
-			case UMLPackage.PORT__DATATYPE :
-				setDatatype((DataType) newValue);
-				return;
 			case UMLPackage.PORT__INTERFACE :
 				setInterface((Interface) newValue);
 				return;
+			case UMLPackage.PORT__DATATYPE :
+				setDatatype((DataType) newValue);
+				return;
 			case UMLPackage.PORT__AGGREGATION :
 				setAggregation((AggregationKind) newValue);
 				return;
@@ -871,12 +870,12 @@
 			case UMLPackage.PORT__DEPLOYMENT :
 				getDeployments().clear();
 				return;
-			case UMLPackage.PORT__DATATYPE :
-				setDatatype((DataType) null);
-				return;
 			case UMLPackage.PORT__INTERFACE :
 				setInterface((Interface) null);
 				return;
+			case UMLPackage.PORT__DATATYPE :
+				setDatatype((DataType) null);
+				return;
 			case UMLPackage.PORT__AGGREGATION :
 				setAggregation(AGGREGATION_EDEFAULT);
 				return;
@@ -1005,10 +1004,10 @@
 				return !getDeployedElements().isEmpty();
 			case UMLPackage.PORT__DEPLOYMENT :
 				return deployments != null && !deployments.isEmpty();
-			case UMLPackage.PORT__DATATYPE :
-				return basicGetDatatype() != null;
 			case UMLPackage.PORT__INTERFACE :
 				return basicGetInterface() != null;
+			case UMLPackage.PORT__DATATYPE :
+				return basicGetDatatype() != null;
 			case UMLPackage.PORT__AGGREGATION :
 				return (eFlags & AGGREGATION_EFLAG) != AGGREGATION_EFLAG_DEFAULT;
 			case UMLPackage.PORT__ASSOCIATION_END :
@@ -1151,10 +1150,6 @@
 				return allOwnedElements();
 			case UMLPackage.PORT___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.PORT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PORT___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1163,6 +1158,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.PORT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PORT___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.PORT___CREATE_USAGE__NAMEDELEMENT :
@@ -1201,20 +1200,20 @@
 			case UMLPackage.PORT___IS_REDEFINITION_CONTEXT_VALID__REDEFINABLEELEMENT :
 				return isRedefinitionContextValid((RedefinableElement) arguments
 					.get(0));
-			case UMLPackage.PORT___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP :
-				return validateUpperGeLower((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PORT___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP :
 				return validateLowerGe0((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PORT___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP :
-				return validateValueSpecificationNoSideEffects(
-					(DiagnosticChain) arguments.get(0),
+			case UMLPackage.PORT___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP :
+				return validateUpperGeLower((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PORT___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP :
 				return validateValueSpecificationConstant(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.PORT___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP :
+				return validateValueSpecificationNoSideEffects(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PORT___SET_LOWER__INT :
 				setLower((Integer) arguments.get(0));
 				return null;
@@ -1249,40 +1248,40 @@
 				return getEnds();
 			case UMLPackage.PORT___GET_DEPLOYED_ELEMENTS :
 				return getDeployedElements();
-			case UMLPackage.PORT___VALIDATE_SUBSETTING_CONTEXT_CONFORMS__DIAGNOSTICCHAIN_MAP :
-				return validateSubsettingContextConforms(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PORT___VALIDATE_DERIVED_UNION_IS_READ_ONLY__DIAGNOSTICCHAIN_MAP :
-				return validateDerivedUnionIsReadOnly(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PORT___VALIDATE_MULTIPLICITY_OF_COMPOSITE__DIAGNOSTICCHAIN_MAP :
-				return validateMultiplicityOfComposite(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PORT___VALIDATE_REDEFINED_PROPERTY_INHERITED__DIAGNOSTICCHAIN_MAP :
-				return validateRedefinedPropertyInherited(
+			case UMLPackage.PORT___VALIDATE_SUBSETTED_PROPERTY_NAMES__DIAGNOSTICCHAIN_MAP :
+				return validateSubsettedPropertyNames(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PORT___VALIDATE_SUBSETTING_RULES__DIAGNOSTICCHAIN_MAP :
 				return validateSubsettingRules(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.PORT___VALIDATE_MULTIPLICITY_OF_COMPOSITE__DIAGNOSTICCHAIN_MAP :
+				return validateMultiplicityOfComposite(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PORT___VALIDATE_BINDING_TO_ATTRIBUTE__DIAGNOSTICCHAIN_MAP :
 				return validateBindingToAttribute(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PORT___VALIDATE_DERIVED_UNION_IS_DERIVED__DIAGNOSTICCHAIN_MAP :
-				return validateDerivedUnionIsDerived(
+			case UMLPackage.PORT___VALIDATE_REDEFINED_PROPERTY_INHERITED__DIAGNOSTICCHAIN_MAP :
+				return validateRedefinedPropertyInherited(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.PORT___VALIDATE_SUBSETTING_CONTEXT_CONFORMS__DIAGNOSTICCHAIN_MAP :
+				return validateSubsettingContextConforms(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PORT___VALIDATE_DEPLOYMENT_TARGET__DIAGNOSTICCHAIN_MAP :
 				return validateDeploymentTarget(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PORT___VALIDATE_SUBSETTED_PROPERTY_NAMES__DIAGNOSTICCHAIN_MAP :
-				return validateSubsettedPropertyNames(
+			case UMLPackage.PORT___VALIDATE_DERIVED_UNION_IS_DERIVED__DIAGNOSTICCHAIN_MAP :
+				return validateDerivedUnionIsDerived(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.PORT___VALIDATE_DERIVED_UNION_IS_READ_ONLY__DIAGNOSTICCHAIN_MAP :
+				return validateDerivedUnionIsReadOnly(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PORT___GET_OTHER_END :
@@ -1334,16 +1333,16 @@
 				return getOpposite();
 			case UMLPackage.PORT___SUBSETTING_CONTEXT :
 				return subsettingContext();
-			case UMLPackage.PORT___VALIDATE_PORT_DESTROYED__DIAGNOSTICCHAIN_MAP :
-				return validatePortDestroyed(
-					(DiagnosticChain) arguments.get(0),
+			case UMLPackage.PORT___VALIDATE_DEFAULT_VALUE__DIAGNOSTICCHAIN_MAP :
+				return validateDefaultValue((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PORT___VALIDATE_PORT_AGGREGATION__DIAGNOSTICCHAIN_MAP :
 				return validatePortAggregation(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PORT___VALIDATE_DEFAULT_VALUE__DIAGNOSTICCHAIN_MAP :
-				return validateDefaultValue((DiagnosticChain) arguments.get(0),
+			case UMLPackage.PORT___VALIDATE_PORT_DESTROYED__DIAGNOSTICCHAIN_MAP :
+				return validatePortDestroyed(
+					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PORT___GET_PROVIDEDS :
 				return getProvideds();
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProfileApplicationImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProfileApplicationImpl.java
index 703f709..0cf6abb 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProfileApplicationImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProfileApplicationImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ProfileApplicationImpl.java,v 1.26 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -58,8 +57,8 @@
  * The following features are implemented:
  * <ul>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.ProfileApplicationImpl#getTargets <em>Target</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.internal.impl.ProfileApplicationImpl#getSources <em>Source</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.ProfileApplicationImpl#getOwner <em>Owner</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.internal.impl.ProfileApplicationImpl#getSources <em>Source</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.ProfileApplicationImpl#getAppliedProfile <em>Applied Profile</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.ProfileApplicationImpl#isStrict <em>Is Strict</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.ProfileApplicationImpl#getApplyingPackage <em>Applying Package</em>}</li>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProfileImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProfileImpl.java
index d289946..6b6a539 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProfileImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProfileImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ProfileImpl.java,v 1.31 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -993,10 +992,6 @@
 				return allOwnedElements();
 			case UMLPackage.PROFILE___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.PROFILE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PROFILE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1005,6 +1000,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.PROFILE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PROFILE___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.PROFILE___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PropertyImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PropertyImpl.java
index a8a4c2b..88fbc54 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PropertyImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PropertyImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 208353, 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: PropertyImpl.java,v 1.49 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -97,8 +96,8 @@
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getRedefinitionContexts <em>Redefinition Context</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getRedefinedElements <em>Redefined Element</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getAssociation <em>Association</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getDatatype <em>Datatype</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getInterface <em>Interface</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getDatatype <em>Datatype</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getAggregation <em>Aggregation</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getAssociationEnd <em>Association End</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getQualifiers <em>Qualifier</em>}</li>
@@ -1860,14 +1859,14 @@
 			case UMLPackage.PROPERTY__DEPLOYMENT :
 				return ((InternalEList<InternalEObject>) (InternalEList<?>) getDeployments())
 					.basicAdd(otherEnd, msgs);
-			case UMLPackage.PROPERTY__DATATYPE :
-				if (eInternalContainer() != null)
-					msgs = eBasicRemoveFromContainer(msgs);
-				return basicSetDatatype((DataType) otherEnd, msgs);
 			case UMLPackage.PROPERTY__INTERFACE :
 				if (eInternalContainer() != null)
 					msgs = eBasicRemoveFromContainer(msgs);
 				return basicSetInterface((Interface) otherEnd, msgs);
+			case UMLPackage.PROPERTY__DATATYPE :
+				if (eInternalContainer() != null)
+					msgs = eBasicRemoveFromContainer(msgs);
+				return basicSetDatatype((DataType) otherEnd, msgs);
 			case UMLPackage.PROPERTY__ASSOCIATION_END :
 				if (eInternalContainer() != null)
 					msgs = eBasicRemoveFromContainer(msgs);
@@ -1920,10 +1919,10 @@
 			case UMLPackage.PROPERTY__DEPLOYMENT :
 				return ((InternalEList<?>) getDeployments()).basicRemove(
 					otherEnd, msgs);
-			case UMLPackage.PROPERTY__DATATYPE :
-				return basicSetDatatype(null, msgs);
 			case UMLPackage.PROPERTY__INTERFACE :
 				return basicSetInterface(null, msgs);
+			case UMLPackage.PROPERTY__DATATYPE :
+				return basicSetDatatype(null, msgs);
 			case UMLPackage.PROPERTY__ASSOCIATION_END :
 				return basicSetAssociationEnd(null, msgs);
 			case UMLPackage.PROPERTY__QUALIFIER :
@@ -1952,15 +1951,15 @@
 				return eInternalContainer().eInverseRemove(this,
 					UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
 					TemplateParameter.class, msgs);
+			case UMLPackage.PROPERTY__INTERFACE :
+				return eInternalContainer().eInverseRemove(this,
+					UMLPackage.INTERFACE__OWNED_ATTRIBUTE, Interface.class,
+					msgs);
 			case UMLPackage.PROPERTY__DATATYPE :
 				return eInternalContainer()
 					.eInverseRemove(this,
 						UMLPackage.DATA_TYPE__OWNED_ATTRIBUTE, DataType.class,
 						msgs);
-			case UMLPackage.PROPERTY__INTERFACE :
-				return eInternalContainer().eInverseRemove(this,
-					UMLPackage.INTERFACE__OWNED_ATTRIBUTE, Interface.class,
-					msgs);
 			case UMLPackage.PROPERTY__ASSOCIATION_END :
 				return eInternalContainer().eInverseRemove(this,
 					UMLPackage.PROPERTY__QUALIFIER, Property.class, msgs);
@@ -2051,14 +2050,14 @@
 				return getDeployedElements();
 			case UMLPackage.PROPERTY__DEPLOYMENT :
 				return getDeployments();
-			case UMLPackage.PROPERTY__DATATYPE :
-				if (resolve)
-					return getDatatype();
-				return basicGetDatatype();
 			case UMLPackage.PROPERTY__INTERFACE :
 				if (resolve)
 					return getInterface();
 				return basicGetInterface();
+			case UMLPackage.PROPERTY__DATATYPE :
+				if (resolve)
+					return getDatatype();
+				return basicGetDatatype();
 			case UMLPackage.PROPERTY__AGGREGATION :
 				return getAggregation();
 			case UMLPackage.PROPERTY__ASSOCIATION_END :
@@ -2179,12 +2178,12 @@
 				getDeployments().addAll(
 					(Collection<? extends Deployment>) newValue);
 				return;
-			case UMLPackage.PROPERTY__DATATYPE :
-				setDatatype((DataType) newValue);
-				return;
 			case UMLPackage.PROPERTY__INTERFACE :
 				setInterface((Interface) newValue);
 				return;
+			case UMLPackage.PROPERTY__DATATYPE :
+				setDatatype((DataType) newValue);
+				return;
 			case UMLPackage.PROPERTY__AGGREGATION :
 				setAggregation((AggregationKind) newValue);
 				return;
@@ -2313,12 +2312,12 @@
 			case UMLPackage.PROPERTY__DEPLOYMENT :
 				getDeployments().clear();
 				return;
-			case UMLPackage.PROPERTY__DATATYPE :
-				setDatatype((DataType) null);
-				return;
 			case UMLPackage.PROPERTY__INTERFACE :
 				setInterface((Interface) null);
 				return;
+			case UMLPackage.PROPERTY__DATATYPE :
+				setDatatype((DataType) null);
+				return;
 			case UMLPackage.PROPERTY__AGGREGATION :
 				setAggregation(AGGREGATION_EDEFAULT);
 				return;
@@ -2432,10 +2431,10 @@
 				return !getDeployedElements().isEmpty();
 			case UMLPackage.PROPERTY__DEPLOYMENT :
 				return deployments != null && !deployments.isEmpty();
-			case UMLPackage.PROPERTY__DATATYPE :
-				return basicGetDatatype() != null;
 			case UMLPackage.PROPERTY__INTERFACE :
 				return basicGetInterface() != null;
+			case UMLPackage.PROPERTY__DATATYPE :
+				return basicGetDatatype() != null;
 			case UMLPackage.PROPERTY__AGGREGATION :
 				return (eFlags & AGGREGATION_EFLAG) != AGGREGATION_EFLAG_DEFAULT;
 			case UMLPackage.PROPERTY__ASSOCIATION_END :
@@ -2676,10 +2675,6 @@
 				return allOwnedElements();
 			case UMLPackage.PROPERTY___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.PROPERTY___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PROPERTY___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -2688,6 +2683,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.PROPERTY___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PROPERTY___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.PROPERTY___CREATE_USAGE__NAMEDELEMENT :
@@ -2726,20 +2725,20 @@
 			case UMLPackage.PROPERTY___IS_REDEFINITION_CONTEXT_VALID__REDEFINABLEELEMENT :
 				return isRedefinitionContextValid((RedefinableElement) arguments
 					.get(0));
-			case UMLPackage.PROPERTY___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP :
-				return validateUpperGeLower((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PROPERTY___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP :
 				return validateLowerGe0((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PROPERTY___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP :
-				return validateValueSpecificationNoSideEffects(
-					(DiagnosticChain) arguments.get(0),
+			case UMLPackage.PROPERTY___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP :
+				return validateUpperGeLower((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PROPERTY___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP :
 				return validateValueSpecificationConstant(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.PROPERTY___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP :
+				return validateValueSpecificationNoSideEffects(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PROPERTY___SET_LOWER__INT :
 				setLower((Integer) arguments.get(0));
 				return null;
@@ -2774,40 +2773,40 @@
 				return getEnds();
 			case UMLPackage.PROPERTY___GET_DEPLOYED_ELEMENTS :
 				return getDeployedElements();
-			case UMLPackage.PROPERTY___VALIDATE_SUBSETTING_CONTEXT_CONFORMS__DIAGNOSTICCHAIN_MAP :
-				return validateSubsettingContextConforms(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PROPERTY___VALIDATE_DERIVED_UNION_IS_READ_ONLY__DIAGNOSTICCHAIN_MAP :
-				return validateDerivedUnionIsReadOnly(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PROPERTY___VALIDATE_MULTIPLICITY_OF_COMPOSITE__DIAGNOSTICCHAIN_MAP :
-				return validateMultiplicityOfComposite(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PROPERTY___VALIDATE_REDEFINED_PROPERTY_INHERITED__DIAGNOSTICCHAIN_MAP :
-				return validateRedefinedPropertyInherited(
+			case UMLPackage.PROPERTY___VALIDATE_SUBSETTED_PROPERTY_NAMES__DIAGNOSTICCHAIN_MAP :
+				return validateSubsettedPropertyNames(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PROPERTY___VALIDATE_SUBSETTING_RULES__DIAGNOSTICCHAIN_MAP :
 				return validateSubsettingRules(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.PROPERTY___VALIDATE_MULTIPLICITY_OF_COMPOSITE__DIAGNOSTICCHAIN_MAP :
+				return validateMultiplicityOfComposite(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PROPERTY___VALIDATE_BINDING_TO_ATTRIBUTE__DIAGNOSTICCHAIN_MAP :
 				return validateBindingToAttribute(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PROPERTY___VALIDATE_DERIVED_UNION_IS_DERIVED__DIAGNOSTICCHAIN_MAP :
-				return validateDerivedUnionIsDerived(
+			case UMLPackage.PROPERTY___VALIDATE_REDEFINED_PROPERTY_INHERITED__DIAGNOSTICCHAIN_MAP :
+				return validateRedefinedPropertyInherited(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.PROPERTY___VALIDATE_SUBSETTING_CONTEXT_CONFORMS__DIAGNOSTICCHAIN_MAP :
+				return validateSubsettingContextConforms(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PROPERTY___VALIDATE_DEPLOYMENT_TARGET__DIAGNOSTICCHAIN_MAP :
 				return validateDeploymentTarget(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PROPERTY___VALIDATE_SUBSETTED_PROPERTY_NAMES__DIAGNOSTICCHAIN_MAP :
-				return validateSubsettedPropertyNames(
+			case UMLPackage.PROPERTY___VALIDATE_DERIVED_UNION_IS_DERIVED__DIAGNOSTICCHAIN_MAP :
+				return validateDerivedUnionIsDerived(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.PROPERTY___VALIDATE_DERIVED_UNION_IS_READ_ONLY__DIAGNOSTICCHAIN_MAP :
+				return validateDerivedUnionIsReadOnly(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PROPERTY___GET_OTHER_END :
@@ -3012,14 +3011,14 @@
 	 */
 	@Override
 	public Namespace basicGetNamespace() {
-		DataType datatype = basicGetDatatype();
-		if (datatype != null) {
-			return datatype;
-		}
 		Interface interface_ = basicGetInterface();
 		if (interface_ != null) {
 			return interface_;
 		}
+		DataType datatype = basicGetDatatype();
+		if (datatype != null) {
+			return datatype;
+		}
 		org.eclipse.uml2.uml.Class class_ = basicGetClass_();
 		if (class_ != null) {
 			return class_;
@@ -3038,8 +3037,8 @@
 	 */
 	@Override
 	public boolean isSetNamespace() {
-		return super.isSetNamespace() || eIsSet(UMLPackage.PROPERTY__DATATYPE)
-			|| eIsSet(UMLPackage.PROPERTY__INTERFACE)
+		return super.isSetNamespace() || eIsSet(UMLPackage.PROPERTY__INTERFACE)
+			|| eIsSet(UMLPackage.PROPERTY__DATATYPE)
 			|| eIsSet(UMLPackage.PROPERTY__CLASS)
 			|| eIsSet(UMLPackage.PROPERTY__OWNING_ASSOCIATION);
 	}
@@ -3053,7 +3052,7 @@
 	 * @ordered
 	 */
 	protected static final int[] FEATURING_CLASSIFIER_ESUBSETS = new int[]{
-		UMLPackage.PROPERTY__DATATYPE, UMLPackage.PROPERTY__INTERFACE,
+		UMLPackage.PROPERTY__INTERFACE, UMLPackage.PROPERTY__DATATYPE,
 		UMLPackage.PROPERTY__CLASS, UMLPackage.PROPERTY__OWNING_ASSOCIATION};
 
 	/**
@@ -3099,7 +3098,7 @@
 	 * @ordered
 	 */
 	protected static final int[] REDEFINITION_CONTEXT_ESUBSETS = new int[]{
-		UMLPackage.PROPERTY__DATATYPE, UMLPackage.PROPERTY__INTERFACE,
+		UMLPackage.PROPERTY__INTERFACE, UMLPackage.PROPERTY__DATATYPE,
 		UMLPackage.PROPERTY__CLASS, UMLPackage.PROPERTY__OWNING_ASSOCIATION};
 
 	/**
@@ -3110,8 +3109,8 @@
 	@Override
 	public boolean isSetFeaturingClassifiers() {
 		return super.isSetFeaturingClassifiers()
-			|| eIsSet(UMLPackage.PROPERTY__DATATYPE)
 			|| eIsSet(UMLPackage.PROPERTY__INTERFACE)
+			|| eIsSet(UMLPackage.PROPERTY__DATATYPE)
 			|| eIsSet(UMLPackage.PROPERTY__CLASS)
 			|| eIsSet(UMLPackage.PROPERTY__OWNING_ASSOCIATION);
 	}
@@ -3124,8 +3123,8 @@
 	@Override
 	public boolean isSetRedefinitionContexts() {
 		return super.isSetRedefinitionContexts()
-			|| eIsSet(UMLPackage.PROPERTY__DATATYPE)
 			|| eIsSet(UMLPackage.PROPERTY__INTERFACE)
+			|| eIsSet(UMLPackage.PROPERTY__DATATYPE)
 			|| eIsSet(UMLPackage.PROPERTY__CLASS)
 			|| eIsSet(UMLPackage.PROPERTY__OWNING_ASSOCIATION);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProtocolConformanceImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProtocolConformanceImpl.java
index 41c763f..3953e5f 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProtocolConformanceImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProtocolConformanceImpl.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ProtocolConformanceImpl.java,v 1.18 2009/01/07 15:55:26 jbruck Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -47,8 +46,8 @@
  * The following features are implemented:
  * <ul>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.ProtocolConformanceImpl#getTargets <em>Target</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.internal.impl.ProtocolConformanceImpl#getSources <em>Source</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.ProtocolConformanceImpl#getOwner <em>Owner</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.internal.impl.ProtocolConformanceImpl#getSources <em>Source</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.ProtocolConformanceImpl#getGeneralMachine <em>General Machine</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.ProtocolConformanceImpl#getSpecificMachine <em>Specific Machine</em>}</li>
  * </ul>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProtocolStateMachineImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProtocolStateMachineImpl.java
index 8acfcbe..8ac2e17 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProtocolStateMachineImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProtocolStateMachineImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ProtocolStateMachineImpl.java,v 1.32 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -1244,10 +1243,6 @@
 				return allOwnedElements();
 			case UMLPackage.PROTOCOL_STATE_MACHINE___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.PROTOCOL_STATE_MACHINE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PROTOCOL_STATE_MACHINE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1256,6 +1251,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.PROTOCOL_STATE_MACHINE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PROTOCOL_STATE_MACHINE___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.PROTOCOL_STATE_MACHINE___CREATE_USAGE__NAMEDELEMENT :
@@ -1345,14 +1344,6 @@
 				return isTemplate();
 			case UMLPackage.PROTOCOL_STATE_MACHINE___PARAMETERABLE_ELEMENTS :
 				return parameterableElements();
-			case UMLPackage.PROTOCOL_STATE_MACHINE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
-				return validateSpecializeType(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PROTOCOL_STATE_MACHINE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
-				return validateMapsToGeneralizationSet(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PROTOCOL_STATE_MACHINE___VALIDATE_NON_FINAL_PARENTS__DIAGNOSTICCHAIN_MAP :
 				return validateNonFinalParents(
 					(DiagnosticChain) arguments.get(0),
@@ -1361,6 +1352,14 @@
 				return validateNoCyclesInGeneralization(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.PROTOCOL_STATE_MACHINE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
+				return validateSpecializeType(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.PROTOCOL_STATE_MACHINE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
+				return validateMapsToGeneralizationSet(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PROTOCOL_STATE_MACHINE___GET_ALL_ATTRIBUTES :
 				return getAllAttributes();
 			case UMLPackage.PROTOCOL_STATE_MACHINE___GET_ALL_OPERATIONS :
@@ -1432,13 +1431,6 @@
 				return getExtensions();
 			case UMLPackage.PROTOCOL_STATE_MACHINE___GET_SUPER_CLASSES :
 				return getSuperClasses();
-			case UMLPackage.PROTOCOL_STATE_MACHINE___VALIDATE_MOST_ONE_BEHAVIOUR__DIAGNOSTICCHAIN_MAP :
-				return validateMostOneBehaviour(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PROTOCOL_STATE_MACHINE___VALIDATE_MUST_REALIZE__DIAGNOSTICCHAIN_MAP :
-				return validateMustRealize((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PROTOCOL_STATE_MACHINE___VALIDATE_PARAMETERS_MATCH__DIAGNOSTICCHAIN_MAP :
 				return validateParametersMatch(
 					(DiagnosticChain) arguments.get(0),
@@ -1447,23 +1439,30 @@
 				return validateFeatureOfContextClassifier(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.PROTOCOL_STATE_MACHINE___VALIDATE_MUST_REALIZE__DIAGNOSTICCHAIN_MAP :
+				return validateMustRealize((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.PROTOCOL_STATE_MACHINE___VALIDATE_MOST_ONE_BEHAVIOUR__DIAGNOSTICCHAIN_MAP :
+				return validateMostOneBehaviour(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PROTOCOL_STATE_MACHINE___GET_CONTEXT :
 				return getContext();
-			case UMLPackage.PROTOCOL_STATE_MACHINE___VALIDATE_CONNECTION_POINTS__DIAGNOSTICCHAIN_MAP :
-				return validateConnectionPoints(
-					(DiagnosticChain) arguments.get(0),
+			case UMLPackage.PROTOCOL_STATE_MACHINE___VALIDATE_METHOD__DIAGNOSTICCHAIN_MAP :
+				return validateMethod((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PROTOCOL_STATE_MACHINE___VALIDATE_CLASSIFIER_CONTEXT__DIAGNOSTICCHAIN_MAP :
 				return validateClassifierContext(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PROTOCOL_STATE_MACHINE___VALIDATE_METHOD__DIAGNOSTICCHAIN_MAP :
-				return validateMethod((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PROTOCOL_STATE_MACHINE___VALIDATE_CONTEXT_CLASSIFIER__DIAGNOSTICCHAIN_MAP :
 				return validateContextClassifier(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.PROTOCOL_STATE_MACHINE___VALIDATE_CONNECTION_POINTS__DIAGNOSTICCHAIN_MAP :
+				return validateConnectionPoints(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PROTOCOL_STATE_MACHINE___LCA__STATE_STATE :
 				return LCA((State) arguments.get(0), (State) arguments.get(1));
 			case UMLPackage.PROTOCOL_STATE_MACHINE___ANCESTOR__STATE_STATE :
@@ -1472,21 +1471,21 @@
 			case UMLPackage.PROTOCOL_STATE_MACHINE___IS_REDEFINITION_CONTEXT_VALID__STATEMACHINE :
 				return isRedefinitionContextValid((StateMachine) arguments
 					.get(0));
+			case UMLPackage.PROTOCOL_STATE_MACHINE___VALIDATE_ENTRY_EXIT_DO__DIAGNOSTICCHAIN_MAP :
+				return validateEntryExitDo((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.PROTOCOL_STATE_MACHINE___VALIDATE_PROTOCOL_TRANSITIONS__DIAGNOSTICCHAIN_MAP :
+				return validateProtocolTransitions(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PROTOCOL_STATE_MACHINE___VALIDATE_DEEP_OR_SHALLOW_HISTORY__DIAGNOSTICCHAIN_MAP :
 				return validateDeepOrShallowHistory(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PROTOCOL_STATE_MACHINE___VALIDATE_ENTRY_EXIT_DO__DIAGNOSTICCHAIN_MAP :
-				return validateEntryExitDo((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PROTOCOL_STATE_MACHINE___VALIDATE_PORTS_CONNECTED__DIAGNOSTICCHAIN_MAP :
 				return validatePortsConnected(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PROTOCOL_STATE_MACHINE___VALIDATE_PROTOCOL_TRANSITIONS__DIAGNOSTICCHAIN_MAP :
-				return validateProtocolTransitions(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProtocolTransitionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProtocolTransitionImpl.java
index b594bdd..80aa67a 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProtocolTransitionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProtocolTransitionImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ProtocolTransitionImpl.java,v 1.42 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -979,10 +978,6 @@
 				return allOwnedElements();
 			case UMLPackage.PROTOCOL_TRANSITION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.PROTOCOL_TRANSITION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PROTOCOL_TRANSITION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -991,6 +986,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.PROTOCOL_TRANSITION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PROTOCOL_TRANSITION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.PROTOCOL_TRANSITION___CREATE_USAGE__NAMEDELEMENT :
@@ -1059,43 +1058,43 @@
 			case UMLPackage.PROTOCOL_TRANSITION___IS_REDEFINITION_CONTEXT_VALID__REDEFINABLEELEMENT :
 				return isRedefinitionContextValid((RedefinableElement) arguments
 					.get(0));
-			case UMLPackage.PROTOCOL_TRANSITION___VALIDATE_STATE_IS_EXTERNAL__DIAGNOSTICCHAIN_MAP :
-				return validateStateIsExternal(
-					(DiagnosticChain) arguments.get(0),
+			case UMLPackage.PROTOCOL_TRANSITION___VALIDATE_STATE_IS_LOCAL__DIAGNOSTICCHAIN_MAP :
+				return validateStateIsLocal((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PROTOCOL_TRANSITION___VALIDATE_JOIN_SEGMENT_GUARDS__DIAGNOSTICCHAIN_MAP :
-				return validateJoinSegmentGuards(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PROTOCOL_TRANSITION___VALIDATE_STATE_IS_INTERNAL__DIAGNOSTICCHAIN_MAP :
-				return validateStateIsInternal(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PROTOCOL_TRANSITION___VALIDATE_OUTGOING_PSEUDOSTATES__DIAGNOSTICCHAIN_MAP :
-				return validateOutgoingPseudostates(
+			case UMLPackage.PROTOCOL_TRANSITION___VALIDATE_FORK_SEGMENT_GUARDS__DIAGNOSTICCHAIN_MAP :
+				return validateForkSegmentGuards(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PROTOCOL_TRANSITION___VALIDATE_JOIN_SEGMENT_STATE__DIAGNOSTICCHAIN_MAP :
 				return validateJoinSegmentState(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PROTOCOL_TRANSITION___VALIDATE_FORK_SEGMENT_STATE__DIAGNOSTICCHAIN_MAP :
-				return validateForkSegmentState(
+			case UMLPackage.PROTOCOL_TRANSITION___VALIDATE_INITIAL_TRANSITION__DIAGNOSTICCHAIN_MAP :
+				return validateInitialTransition(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.PROTOCOL_TRANSITION___VALIDATE_OUTGOING_PSEUDOSTATES__DIAGNOSTICCHAIN_MAP :
+				return validateOutgoingPseudostates(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PROTOCOL_TRANSITION___VALIDATE_SIGNATURES_COMPATIBLE__DIAGNOSTICCHAIN_MAP :
 				return validateSignaturesCompatible(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PROTOCOL_TRANSITION___VALIDATE_STATE_IS_LOCAL__DIAGNOSTICCHAIN_MAP :
-				return validateStateIsLocal((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PROTOCOL_TRANSITION___VALIDATE_INITIAL_TRANSITION__DIAGNOSTICCHAIN_MAP :
-				return validateInitialTransition(
+			case UMLPackage.PROTOCOL_TRANSITION___VALIDATE_STATE_IS_INTERNAL__DIAGNOSTICCHAIN_MAP :
+				return validateStateIsInternal(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PROTOCOL_TRANSITION___VALIDATE_FORK_SEGMENT_GUARDS__DIAGNOSTICCHAIN_MAP :
-				return validateForkSegmentGuards(
+			case UMLPackage.PROTOCOL_TRANSITION___VALIDATE_JOIN_SEGMENT_GUARDS__DIAGNOSTICCHAIN_MAP :
+				return validateJoinSegmentGuards(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.PROTOCOL_TRANSITION___VALIDATE_FORK_SEGMENT_STATE__DIAGNOSTICCHAIN_MAP :
+				return validateForkSegmentState(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.PROTOCOL_TRANSITION___VALIDATE_STATE_IS_EXTERNAL__DIAGNOSTICCHAIN_MAP :
+				return validateStateIsExternal(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PROTOCOL_TRANSITION___CONTAINING_STATE_MACHINE :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PseudostateImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PseudostateImpl.java
index 5e6806b..f1bcb4f 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PseudostateImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PseudostateImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: PseudostateImpl.java,v 1.24 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -764,10 +763,6 @@
 				return allOwnedElements();
 			case UMLPackage.PSEUDOSTATE___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.PSEUDOSTATE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PSEUDOSTATE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -776,6 +771,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.PSEUDOSTATE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PSEUDOSTATE___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.PSEUDOSTATE___CREATE_USAGE__NAMEDELEMENT :
@@ -803,20 +802,6 @@
 				return getIncomings();
 			case UMLPackage.PSEUDOSTATE___GET_OUTGOINGS :
 				return getOutgoings();
-			case UMLPackage.PSEUDOSTATE___VALIDATE_TRANSITIONS_OUTGOING__DIAGNOSTICCHAIN_MAP :
-				return validateTransitionsOutgoing(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PSEUDOSTATE___VALIDATE_CHOICE_VERTEX__DIAGNOSTICCHAIN_MAP :
-				return validateChoiceVertex((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PSEUDOSTATE___VALIDATE_OUTGOING_FROM_INITIAL__DIAGNOSTICCHAIN_MAP :
-				return validateOutgoingFromInitial(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PSEUDOSTATE___VALIDATE_JOIN_VERTEX__DIAGNOSTICCHAIN_MAP :
-				return validateJoinVertex((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PSEUDOSTATE___VALIDATE_JUNCTION_VERTEX__DIAGNOSTICCHAIN_MAP :
 				return validateJunctionVertex(
 					(DiagnosticChain) arguments.get(0),
@@ -825,13 +810,27 @@
 				return validateHistoryVertices(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.PSEUDOSTATE___VALIDATE_INITIAL_VERTEX__DIAGNOSTICCHAIN_MAP :
-				return validateInitialVertex(
+			case UMLPackage.PSEUDOSTATE___VALIDATE_TRANSITIONS_OUTGOING__DIAGNOSTICCHAIN_MAP :
+				return validateTransitionsOutgoing(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.PSEUDOSTATE___VALIDATE_OUTGOING_FROM_INITIAL__DIAGNOSTICCHAIN_MAP :
+				return validateOutgoingFromInitial(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PSEUDOSTATE___VALIDATE_FORK_VERTEX__DIAGNOSTICCHAIN_MAP :
 				return validateForkVertex((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.PSEUDOSTATE___VALIDATE_JOIN_VERTEX__DIAGNOSTICCHAIN_MAP :
+				return validateJoinVertex((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.PSEUDOSTATE___VALIDATE_CHOICE_VERTEX__DIAGNOSTICCHAIN_MAP :
+				return validateChoiceVertex((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.PSEUDOSTATE___VALIDATE_INITIAL_VERTEX__DIAGNOSTICCHAIN_MAP :
+				return validateInitialVertex(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.PSEUDOSTATE___VALIDATE_TRANSITIONS_INCOMING__DIAGNOSTICCHAIN_MAP :
 				return validateTransitionsIncoming(
 					(DiagnosticChain) arguments.get(0),
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/QualifierValueImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/QualifierValueImpl.java
index 44a7a33..eeea325 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/QualifierValueImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/QualifierValueImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: QualifierValueImpl.java,v 1.14 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -408,6 +407,10 @@
 				return allOwnedElements();
 			case UMLPackage.QUALIFIER_VALUE___MUST_BE_OWNED :
 				return mustBeOwned();
+			case UMLPackage.QUALIFIER_VALUE___VALIDATE_QUALIFIER_ATTRIBUTE__DIAGNOSTICCHAIN_MAP :
+				return validateQualifierAttribute(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.QUALIFIER_VALUE___VALIDATE_MULTIPLICITY_OF_QUALIFIER__DIAGNOSTICCHAIN_MAP :
 				return validateMultiplicityOfQualifier(
 					(DiagnosticChain) arguments.get(0),
@@ -416,10 +419,6 @@
 				return validateTypeOfQualifier(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.QUALIFIER_VALUE___VALIDATE_QUALIFIER_ATTRIBUTE__DIAGNOSTICCHAIN_MAP :
-				return validateQualifierAttribute(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RaiseExceptionActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RaiseExceptionActionImpl.java
index 10995be..4828441 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RaiseExceptionActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RaiseExceptionActionImpl.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: RaiseExceptionActionImpl.java,v 1.27 2009/01/07 15:55:31 jbruck Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -255,8 +254,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.RAISE_EXCEPTION_ACTION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.RAISE_EXCEPTION_ACTION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.RAISE_EXCEPTION_ACTION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -330,8 +327,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.RAISE_EXCEPTION_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.RAISE_EXCEPTION_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.RAISE_EXCEPTION_ACTION__IN_STRUCTURED_NODE :
@@ -344,6 +339,8 @@
 				return getOutgoings();
 			case UMLPackage.RAISE_EXCEPTION_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.RAISE_EXCEPTION_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.RAISE_EXCEPTION_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.RAISE_EXCEPTION_ACTION__HANDLER :
@@ -571,8 +568,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.RAISE_EXCEPTION_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.RAISE_EXCEPTION_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.RAISE_EXCEPTION_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.RAISE_EXCEPTION_ACTION__IN_STRUCTURED_NODE :
@@ -584,6 +579,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.RAISE_EXCEPTION_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.RAISE_EXCEPTION_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.RAISE_EXCEPTION_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.RAISE_EXCEPTION_ACTION__HANDLER :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadExtentActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadExtentActionImpl.java
index cc4d6ce..f79864f 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadExtentActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadExtentActionImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ReadExtentActionImpl.java,v 1.28 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -329,8 +328,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.READ_EXTENT_ACTION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.READ_EXTENT_ACTION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.READ_EXTENT_ACTION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -404,8 +401,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.READ_EXTENT_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.READ_EXTENT_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.READ_EXTENT_ACTION__IN_STRUCTURED_NODE :
@@ -418,6 +413,8 @@
 				return getOutgoings();
 			case UMLPackage.READ_EXTENT_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.READ_EXTENT_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.READ_EXTENT_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.READ_EXTENT_ACTION__HANDLER :
@@ -655,8 +652,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.READ_EXTENT_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.READ_EXTENT_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.READ_EXTENT_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.READ_EXTENT_ACTION__IN_STRUCTURED_NODE :
@@ -668,6 +663,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.READ_EXTENT_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.READ_EXTENT_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.READ_EXTENT_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.READ_EXTENT_ACTION__HANDLER :
@@ -786,10 +783,6 @@
 				return allOwnedElements();
 			case UMLPackage.READ_EXTENT_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.READ_EXTENT_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.READ_EXTENT_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -798,6 +791,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.READ_EXTENT_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.READ_EXTENT_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.READ_EXTENT_ACTION___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadIsClassifiedObjectActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadIsClassifiedObjectActionImpl.java
index aac5b26..05e0a21 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadIsClassifiedObjectActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadIsClassifiedObjectActionImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ReadIsClassifiedObjectActionImpl.java,v 1.30 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -559,8 +558,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -636,8 +633,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__IN_STRUCTURED_NODE :
@@ -650,6 +645,8 @@
 				return getOutgoings();
 			case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__HANDLER :
@@ -905,8 +902,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__IN_STRUCTURED_NODE :
@@ -918,6 +913,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__HANDLER :
@@ -1040,10 +1037,6 @@
 				return allOwnedElements();
 			case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1052,6 +1045,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadLinkActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadLinkActionImpl.java
index b87ed4a..05e65ec 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadLinkActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadLinkActionImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ReadLinkActionImpl.java,v 1.28 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -307,8 +306,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.READ_LINK_ACTION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.READ_LINK_ACTION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.READ_LINK_ACTION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -388,8 +385,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.READ_LINK_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.READ_LINK_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.READ_LINK_ACTION__IN_STRUCTURED_NODE :
@@ -402,6 +397,8 @@
 				return getOutgoings();
 			case UMLPackage.READ_LINK_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.READ_LINK_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.READ_LINK_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.READ_LINK_ACTION__HANDLER :
@@ -649,8 +646,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.READ_LINK_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.READ_LINK_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.READ_LINK_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.READ_LINK_ACTION__IN_STRUCTURED_NODE :
@@ -662,6 +657,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.READ_LINK_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.READ_LINK_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.READ_LINK_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.READ_LINK_ACTION__HANDLER :
@@ -782,10 +779,6 @@
 				return allOwnedElements();
 			case UMLPackage.READ_LINK_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.READ_LINK_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.READ_LINK_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -794,6 +787,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.READ_LINK_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.READ_LINK_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.READ_LINK_ACTION___CREATE_USAGE__NAMEDELEMENT :
@@ -857,20 +854,20 @@
 				return validateTypeAndOrdering(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.READ_LINK_ACTION___VALIDATE_ONE_OPEN_END__DIAGNOSTICCHAIN_MAP :
+				return validateOneOpenEnd((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.READ_LINK_ACTION___VALIDATE_COMPATIBLE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
 				return validateCompatibleMultiplicity(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.READ_LINK_ACTION___VALIDATE_VISIBILITY__DIAGNOSTICCHAIN_MAP :
-				return validateVisibility((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.READ_LINK_ACTION___VALIDATE_ONE_OPEN_END__DIAGNOSTICCHAIN_MAP :
-				return validateOneOpenEnd((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.READ_LINK_ACTION___VALIDATE_NAVIGABLE_OPEN_END__DIAGNOSTICCHAIN_MAP :
 				return validateNavigableOpenEnd(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.READ_LINK_ACTION___VALIDATE_VISIBILITY__DIAGNOSTICCHAIN_MAP :
+				return validateVisibility((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadLinkObjectEndActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadLinkObjectEndActionImpl.java
index cb4bf14..7ca3ad3 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadLinkObjectEndActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadLinkObjectEndActionImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ReadLinkObjectEndActionImpl.java,v 1.29 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -540,8 +539,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.READ_LINK_OBJECT_END_ACTION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.READ_LINK_OBJECT_END_ACTION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.READ_LINK_OBJECT_END_ACTION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -617,8 +614,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.READ_LINK_OBJECT_END_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.READ_LINK_OBJECT_END_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.READ_LINK_OBJECT_END_ACTION__IN_STRUCTURED_NODE :
@@ -631,6 +626,8 @@
 				return getOutgoings();
 			case UMLPackage.READ_LINK_OBJECT_END_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.READ_LINK_OBJECT_END_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.READ_LINK_OBJECT_END_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.READ_LINK_OBJECT_END_ACTION__HANDLER :
@@ -878,8 +875,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.READ_LINK_OBJECT_END_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.READ_LINK_OBJECT_END_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.READ_LINK_OBJECT_END_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.READ_LINK_OBJECT_END_ACTION__IN_STRUCTURED_NODE :
@@ -891,6 +886,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.READ_LINK_OBJECT_END_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.READ_LINK_OBJECT_END_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.READ_LINK_OBJECT_END_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.READ_LINK_OBJECT_END_ACTION__HANDLER :
@@ -1011,10 +1008,6 @@
 				return allOwnedElements();
 			case UMLPackage.READ_LINK_OBJECT_END_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.READ_LINK_OBJECT_END_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.READ_LINK_OBJECT_END_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1023,6 +1016,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.READ_LINK_OBJECT_END_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.READ_LINK_OBJECT_END_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.READ_LINK_OBJECT_END_ACTION___CREATE_USAGE__NAMEDELEMENT :
@@ -1070,29 +1067,29 @@
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.READ_LINK_OBJECT_END_ACTION___GET_CONTEXT :
 				return getContext();
-			case UMLPackage.READ_LINK_OBJECT_END_ACTION___VALIDATE_PROPERTY__DIAGNOSTICCHAIN_MAP :
-				return validateProperty((DiagnosticChain) arguments.get(0),
+			case UMLPackage.READ_LINK_OBJECT_END_ACTION___VALIDATE_ASSOCIATION_OF_ASSOCIATION__DIAGNOSTICCHAIN_MAP :
+				return validateAssociationOfAssociation(
+					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.READ_LINK_OBJECT_END_ACTION___VALIDATE_MULTIPLICITY_OF_OBJECT__DIAGNOSTICCHAIN_MAP :
 				return validateMultiplicityOfObject(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.READ_LINK_OBJECT_END_ACTION___VALIDATE_ENDS_OF_ASSOCIATION__DIAGNOSTICCHAIN_MAP :
-				return validateEndsOfAssociation(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.READ_LINK_OBJECT_END_ACTION___VALIDATE_TYPE_OF_RESULT__DIAGNOSTICCHAIN_MAP :
 				return validateTypeOfResult((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.READ_LINK_OBJECT_END_ACTION___VALIDATE_TYPE_OF_OBJECT__DIAGNOSTICCHAIN_MAP :
+				return validateTypeOfObject((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.READ_LINK_OBJECT_END_ACTION___VALIDATE_PROPERTY__DIAGNOSTICCHAIN_MAP :
+				return validateProperty((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.READ_LINK_OBJECT_END_ACTION___VALIDATE_MULTIPLICITY_OF_RESULT__DIAGNOSTICCHAIN_MAP :
 				return validateMultiplicityOfResult(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.READ_LINK_OBJECT_END_ACTION___VALIDATE_TYPE_OF_OBJECT__DIAGNOSTICCHAIN_MAP :
-				return validateTypeOfObject((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.READ_LINK_OBJECT_END_ACTION___VALIDATE_ASSOCIATION_OF_ASSOCIATION__DIAGNOSTICCHAIN_MAP :
-				return validateAssociationOfAssociation(
+			case UMLPackage.READ_LINK_OBJECT_END_ACTION___VALIDATE_ENDS_OF_ASSOCIATION__DIAGNOSTICCHAIN_MAP :
+				return validateEndsOfAssociation(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 		}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadLinkObjectEndQualifierActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadLinkObjectEndQualifierActionImpl.java
index b9e1c5b..993463f 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadLinkObjectEndQualifierActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadLinkObjectEndQualifierActionImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ReadLinkObjectEndQualifierActionImpl.java,v 1.29 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -588,8 +587,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -665,8 +662,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__IN_STRUCTURED_NODE :
@@ -679,6 +674,8 @@
 				return getOutgoings();
 			case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__HANDLER :
@@ -926,8 +923,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__IN_STRUCTURED_NODE :
@@ -939,6 +934,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__HANDLER :
@@ -1059,10 +1056,6 @@
 				return allOwnedElements();
 			case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1071,6 +1064,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION___CREATE_USAGE__NAMEDELEMENT :
@@ -1118,21 +1115,9 @@
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION___GET_CONTEXT :
 				return getContext();
-			case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION___VALIDATE_MULTIPLICITY_OF_OBJECT__DIAGNOSTICCHAIN_MAP :
-				return validateMultiplicityOfObject(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION___VALIDATE_TYPE_OF_OBJECT__DIAGNOSTICCHAIN_MAP :
 				return validateTypeOfObject((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION___VALIDATE_MULTIPLICITY_OF_QUALIFIER__DIAGNOSTICCHAIN_MAP :
-				return validateMultiplicityOfQualifier(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION___VALIDATE_ENDS_OF_ASSOCIATION__DIAGNOSTICCHAIN_MAP :
-				return validateEndsOfAssociation(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION___VALIDATE_MULTIPLICITY_OF_RESULT__DIAGNOSTICCHAIN_MAP :
 				return validateMultiplicityOfResult(
 					(DiagnosticChain) arguments.get(0),
@@ -1140,6 +1125,18 @@
 			case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP :
 				return validateSameType((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION___VALIDATE_ENDS_OF_ASSOCIATION__DIAGNOSTICCHAIN_MAP :
+				return validateEndsOfAssociation(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION___VALIDATE_MULTIPLICITY_OF_QUALIFIER__DIAGNOSTICCHAIN_MAP :
+				return validateMultiplicityOfQualifier(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION___VALIDATE_MULTIPLICITY_OF_OBJECT__DIAGNOSTICCHAIN_MAP :
+				return validateMultiplicityOfObject(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION___VALIDATE_ASSOCIATION_OF_ASSOCIATION__DIAGNOSTICCHAIN_MAP :
 				return validateAssociationOfAssociation(
 					(DiagnosticChain) arguments.get(0),
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadSelfActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadSelfActionImpl.java
index d32a94c..c75349e 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadSelfActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadSelfActionImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ReadSelfActionImpl.java,v 1.28 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -294,8 +293,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.READ_SELF_ACTION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.READ_SELF_ACTION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.READ_SELF_ACTION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -369,8 +366,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.READ_SELF_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.READ_SELF_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.READ_SELF_ACTION__IN_STRUCTURED_NODE :
@@ -383,6 +378,8 @@
 				return getOutgoings();
 			case UMLPackage.READ_SELF_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.READ_SELF_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.READ_SELF_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.READ_SELF_ACTION__HANDLER :
@@ -610,8 +607,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.READ_SELF_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.READ_SELF_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.READ_SELF_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.READ_SELF_ACTION__IN_STRUCTURED_NODE :
@@ -623,6 +618,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.READ_SELF_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.READ_SELF_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.READ_SELF_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.READ_SELF_ACTION__HANDLER :
@@ -739,10 +736,6 @@
 				return allOwnedElements();
 			case UMLPackage.READ_SELF_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.READ_SELF_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.READ_SELF_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -751,6 +744,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.READ_SELF_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.READ_SELF_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.READ_SELF_ACTION___CREATE_USAGE__NAMEDELEMENT :
@@ -801,14 +798,14 @@
 			case UMLPackage.READ_SELF_ACTION___VALIDATE_CONTAINED__DIAGNOSTICCHAIN_MAP :
 				return validateContained((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.READ_SELF_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
-				return validateMultiplicity((DiagnosticChain) arguments.get(0),
+			case UMLPackage.READ_SELF_ACTION___VALIDATE_TYPE__DIAGNOSTICCHAIN_MAP :
+				return validateType((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.READ_SELF_ACTION___VALIDATE_NOT_STATIC__DIAGNOSTICCHAIN_MAP :
 				return validateNotStatic((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.READ_SELF_ACTION___VALIDATE_TYPE__DIAGNOSTICCHAIN_MAP :
-				return validateType((DiagnosticChain) arguments.get(0),
+			case UMLPackage.READ_SELF_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
+				return validateMultiplicity((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadStructuralFeatureActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadStructuralFeatureActionImpl.java
index 0e7cac2..1d32424 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadStructuralFeatureActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadStructuralFeatureActionImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ReadStructuralFeatureActionImpl.java,v 1.28 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -283,8 +282,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -360,8 +357,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__IN_STRUCTURED_NODE :
@@ -374,6 +369,8 @@
 				return getOutgoings();
 			case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__HANDLER :
@@ -621,8 +618,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__IN_STRUCTURED_NODE :
@@ -634,6 +629,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__HANDLER :
@@ -754,10 +751,6 @@
 				return allOwnedElements();
 			case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -766,6 +759,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION___CREATE_USAGE__NAMEDELEMENT :
@@ -813,15 +810,12 @@
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION___GET_CONTEXT :
 				return getContext();
-			case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
-				return validateMultiplicity((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP :
-				return validateSameType((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY__DIAGNOSTICCHAIN_MAP :
 				return validateVisibility((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
+				return validateMultiplicity((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION___VALIDATE_NOT_STATIC__DIAGNOSTICCHAIN_MAP :
 				return validateNotStatic((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
@@ -829,6 +823,9 @@
 				return validateOneFeaturingClassifier(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP :
+				return validateSameType((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION___VALIDATE_TYPE_AND_ORDERING__DIAGNOSTICCHAIN_MAP :
 				return validateTypeAndOrdering(
 					(DiagnosticChain) arguments.get(0),
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadVariableActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadVariableActionImpl.java
index 0d4e94b..fa22ecb 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadVariableActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadVariableActionImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ReadVariableActionImpl.java,v 1.28 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -275,8 +274,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.READ_VARIABLE_ACTION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.READ_VARIABLE_ACTION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.READ_VARIABLE_ACTION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -350,8 +347,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.READ_VARIABLE_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.READ_VARIABLE_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.READ_VARIABLE_ACTION__IN_STRUCTURED_NODE :
@@ -364,6 +359,8 @@
 				return getOutgoings();
 			case UMLPackage.READ_VARIABLE_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.READ_VARIABLE_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.READ_VARIABLE_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.READ_VARIABLE_ACTION__HANDLER :
@@ -601,8 +598,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.READ_VARIABLE_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.READ_VARIABLE_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.READ_VARIABLE_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.READ_VARIABLE_ACTION__IN_STRUCTURED_NODE :
@@ -614,6 +609,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.READ_VARIABLE_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.READ_VARIABLE_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.READ_VARIABLE_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.READ_VARIABLE_ACTION__HANDLER :
@@ -732,10 +729,6 @@
 				return allOwnedElements();
 			case UMLPackage.READ_VARIABLE_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.READ_VARIABLE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.READ_VARIABLE_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -744,6 +737,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.READ_VARIABLE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.READ_VARIABLE_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.READ_VARIABLE_ACTION___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReceptionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReceptionImpl.java
index 63182b6..15f91bd 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReceptionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReceptionImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ReceptionImpl.java,v 1.19 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -541,10 +540,6 @@
 				return allOwnedElements();
 			case UMLPackage.RECEPTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.RECEPTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.RECEPTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -553,6 +548,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.RECEPTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.RECEPTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.RECEPTION___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReclassifyObjectActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReclassifyObjectActionImpl.java
index 167f1e0..065ec7c 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReclassifyObjectActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReclassifyObjectActionImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ReclassifyObjectActionImpl.java,v 1.30 2010/09/28 21:02:12 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -455,8 +454,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.RECLASSIFY_OBJECT_ACTION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.RECLASSIFY_OBJECT_ACTION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.RECLASSIFY_OBJECT_ACTION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -530,8 +527,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.RECLASSIFY_OBJECT_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.RECLASSIFY_OBJECT_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.RECLASSIFY_OBJECT_ACTION__IN_STRUCTURED_NODE :
@@ -544,6 +539,8 @@
 				return getOutgoings();
 			case UMLPackage.RECLASSIFY_OBJECT_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.RECLASSIFY_OBJECT_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.RECLASSIFY_OBJECT_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.RECLASSIFY_OBJECT_ACTION__HANDLER :
@@ -799,8 +796,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.RECLASSIFY_OBJECT_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.RECLASSIFY_OBJECT_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.RECLASSIFY_OBJECT_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.RECLASSIFY_OBJECT_ACTION__IN_STRUCTURED_NODE :
@@ -812,6 +807,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.RECLASSIFY_OBJECT_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.RECLASSIFY_OBJECT_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.RECLASSIFY_OBJECT_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.RECLASSIFY_OBJECT_ACTION__HANDLER :
@@ -934,10 +931,6 @@
 				return allOwnedElements();
 			case UMLPackage.RECLASSIFY_OBJECT_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.RECLASSIFY_OBJECT_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.RECLASSIFY_OBJECT_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -946,6 +939,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.RECLASSIFY_OBJECT_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.RECLASSIFY_OBJECT_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.RECLASSIFY_OBJECT_ACTION___CREATE_USAGE__NAMEDELEMENT :
@@ -996,13 +993,13 @@
 			case UMLPackage.RECLASSIFY_OBJECT_ACTION___VALIDATE_INPUT_PIN__DIAGNOSTICCHAIN_MAP :
 				return validateInputPin((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.RECLASSIFY_OBJECT_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
+				return validateMultiplicity((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.RECLASSIFY_OBJECT_ACTION___VALIDATE_CLASSIFIER_NOT_ABSTRACT__DIAGNOSTICCHAIN_MAP :
 				return validateClassifierNotAbstract(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.RECLASSIFY_OBJECT_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
-				return validateMultiplicity((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RedefinableElementImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RedefinableElementImpl.java
index acae560..5976961 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RedefinableElementImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RedefinableElementImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: RedefinableElementImpl.java,v 1.22 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -579,10 +578,6 @@
 				return allOwnedElements();
 			case UMLPackage.REDEFINABLE_ELEMENT___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.REDEFINABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.REDEFINABLE_ELEMENT___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -591,6 +586,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.REDEFINABLE_ELEMENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.REDEFINABLE_ELEMENT___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.REDEFINABLE_ELEMENT___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RedefinableTemplateSignatureImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RedefinableTemplateSignatureImpl.java
index fc53955..57ac1ca 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RedefinableTemplateSignatureImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RedefinableTemplateSignatureImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: RedefinableTemplateSignatureImpl.java,v 1.29 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -949,10 +948,6 @@
 				return allOwnedElements();
 			case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -961,6 +956,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReduceActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReduceActionImpl.java
index ab666a1..14ea19c 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReduceActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReduceActionImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ReduceActionImpl.java,v 1.25 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -529,8 +528,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.REDUCE_ACTION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.REDUCE_ACTION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.REDUCE_ACTION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -606,8 +603,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.REDUCE_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.REDUCE_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.REDUCE_ACTION__IN_STRUCTURED_NODE :
@@ -620,6 +615,8 @@
 				return getOutgoings();
 			case UMLPackage.REDUCE_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.REDUCE_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.REDUCE_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.REDUCE_ACTION__HANDLER :
@@ -875,8 +872,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.REDUCE_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.REDUCE_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.REDUCE_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.REDUCE_ACTION__IN_STRUCTURED_NODE :
@@ -888,6 +883,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.REDUCE_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.REDUCE_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.REDUCE_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.REDUCE_ACTION__HANDLER :
@@ -1010,10 +1007,6 @@
 				return allOwnedElements();
 			case UMLPackage.REDUCE_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.REDUCE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.REDUCE_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1022,6 +1015,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.REDUCE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.REDUCE_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.REDUCE_ACTION___CREATE_USAGE__NAMEDELEMENT :
@@ -1069,6 +1066,10 @@
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.REDUCE_ACTION___GET_CONTEXT :
 				return getContext();
+			case UMLPackage.REDUCE_ACTION___VALIDATE_OUTPUT_TYPES_ARE_COMPATIBLE__DIAGNOSTICCHAIN_MAP :
+				return validateOutputTypesAreCompatible(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.REDUCE_ACTION___VALIDATE_REDUCER_INPUTS_OUTPUT__DIAGNOSTICCHAIN_MAP :
 				return validateReducerInputsOutput(
 					(DiagnosticChain) arguments.get(0),
@@ -1077,10 +1078,6 @@
 				return validateInputTypeIsCollection(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.REDUCE_ACTION___VALIDATE_OUTPUT_TYPES_ARE_COMPATIBLE__DIAGNOSTICCHAIN_MAP :
-				return validateOutputTypesAreCompatible(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RegionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RegionImpl.java
index 65cea6d..7b334b1 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RegionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RegionImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: RegionImpl.java,v 1.32 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -1277,10 +1276,6 @@
 				return allOwnedElements();
 			case UMLPackage.REGION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.REGION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.REGION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1289,6 +1284,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.REGION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.REGION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.REGION___CREATE_USAGE__NAMEDELEMENT :
@@ -1357,21 +1356,21 @@
 			case UMLPackage.REGION___IS_REDEFINITION_CONTEXT_VALID__REDEFINABLEELEMENT :
 				return isRedefinitionContextValid((RedefinableElement) arguments
 					.get(0));
-			case UMLPackage.REGION___VALIDATE_DEEP_HISTORY_VERTEX__DIAGNOSTICCHAIN_MAP :
-				return validateDeepHistoryVertex(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.REGION___VALIDATE_SHALLOW_HISTORY_VERTEX__DIAGNOSTICCHAIN_MAP :
 				return validateShallowHistoryVertex(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.REGION___VALIDATE_OWNED__DIAGNOSTICCHAIN_MAP :
-				return validateOwned((DiagnosticChain) arguments.get(0),
+			case UMLPackage.REGION___VALIDATE_DEEP_HISTORY_VERTEX__DIAGNOSTICCHAIN_MAP :
+				return validateDeepHistoryVertex(
+					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.REGION___VALIDATE_INITIAL_VERTEX__DIAGNOSTICCHAIN_MAP :
 				return validateInitialVertex(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.REGION___VALIDATE_OWNED__DIAGNOSTICCHAIN_MAP :
+				return validateOwned((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.REGION___BELONGS_TO_PSM :
 				return belongsToPSM();
 			case UMLPackage.REGION___CONTAINING_STATE_MACHINE :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RemoveStructuralFeatureValueActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RemoveStructuralFeatureValueActionImpl.java
index 1f86a36..c9483ef 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RemoveStructuralFeatureValueActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RemoveStructuralFeatureValueActionImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: RemoveStructuralFeatureValueActionImpl.java,v 1.31 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -347,8 +346,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -428,8 +425,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IN_STRUCTURED_NODE :
@@ -442,6 +437,8 @@
 				return getOutgoings();
 			case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__HANDLER :
@@ -717,8 +714,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IN_STRUCTURED_NODE :
@@ -730,6 +725,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__HANDLER :
@@ -856,10 +853,6 @@
 				return allOwnedElements();
 			case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -868,6 +861,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION___CREATE_USAGE__NAMEDELEMENT :
@@ -915,15 +912,12 @@
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION___GET_CONTEXT :
 				return getContext();
-			case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
-				return validateMultiplicity((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP :
-				return validateSameType((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_VISIBILITY__DIAGNOSTICCHAIN_MAP :
 				return validateVisibility((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
+				return validateMultiplicity((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_NOT_STATIC__DIAGNOSTICCHAIN_MAP :
 				return validateNotStatic((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
@@ -931,9 +925,8 @@
 				return validateOneFeaturingClassifier(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_MULTIPLICITY_OF_RESULT__DIAGNOSTICCHAIN_MAP :
-				return validateMultiplicityOfResult(
-					(DiagnosticChain) arguments.get(0),
+			case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP :
+				return validateSameType((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_INPUT_PIN__DIAGNOSTICCHAIN_MAP :
 				return validateInputPin((DiagnosticChain) arguments.get(0),
@@ -941,6 +934,10 @@
 			case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_TYPE_OF_RESULT__DIAGNOSTICCHAIN_MAP :
 				return validateTypeOfResult((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_MULTIPLICITY_OF_RESULT__DIAGNOSTICCHAIN_MAP :
+				return validateMultiplicityOfResult(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION___VALIDATE_NON_UNIQUE_REMOVAL__DIAGNOSTICCHAIN_MAP :
 				return validateNonUniqueRemoval(
 					(DiagnosticChain) arguments.get(0),
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RemoveVariableValueActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RemoveVariableValueActionImpl.java
index 2398ca4..defcf85 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RemoveVariableValueActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RemoveVariableValueActionImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: RemoveVariableValueActionImpl.java,v 1.30 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -327,8 +326,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -404,8 +401,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__IN_STRUCTURED_NODE :
@@ -418,6 +413,8 @@
 				return getOutgoings();
 			case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__HANDLER :
@@ -673,8 +670,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__IN_STRUCTURED_NODE :
@@ -686,6 +681,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__HANDLER :
@@ -808,10 +805,6 @@
 				return allOwnedElements();
 			case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -820,6 +813,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION___CREATE_USAGE__NAMEDELEMENT :
@@ -871,12 +868,12 @@
 				return validateScopeOfVariable(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP :
-				return validateSameType((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
 				return validateMultiplicity((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP :
+				return validateSameType((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION___VALIDATE_UNLIMITED_NATURAL__DIAGNOSTICCHAIN_MAP :
 				return validateUnlimitedNatural(
 					(DiagnosticChain) arguments.get(0),
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReplyActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReplyActionImpl.java
index 7bd2598..c91c7a7 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReplyActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReplyActionImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ReplyActionImpl.java,v 1.29 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -425,8 +424,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.REPLY_ACTION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.REPLY_ACTION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.REPLY_ACTION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -503,8 +500,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.REPLY_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.REPLY_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.REPLY_ACTION__IN_STRUCTURED_NODE :
@@ -517,6 +512,8 @@
 				return getOutgoings();
 			case UMLPackage.REPLY_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.REPLY_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.REPLY_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.REPLY_ACTION__HANDLER :
@@ -764,8 +761,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.REPLY_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.REPLY_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.REPLY_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.REPLY_ACTION__IN_STRUCTURED_NODE :
@@ -777,6 +772,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.REPLY_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.REPLY_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.REPLY_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.REPLY_ACTION__HANDLER :
@@ -897,10 +894,6 @@
 				return allOwnedElements();
 			case UMLPackage.REPLY_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.REPLY_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.REPLY_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -909,6 +902,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.REPLY_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.REPLY_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.REPLY_ACTION___CREATE_USAGE__NAMEDELEMENT :
@@ -956,14 +953,14 @@
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.REPLY_ACTION___GET_CONTEXT :
 				return getContext();
-			case UMLPackage.REPLY_ACTION___VALIDATE_PINS_MATCH_PARAMETER__DIAGNOSTICCHAIN_MAP :
-				return validatePinsMatchParameter(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.REPLY_ACTION___VALIDATE_EVENT_ON_REPLY_TO_CALL_TRIGGER__DIAGNOSTICCHAIN_MAP :
 				return validateEventOnReplyToCallTrigger(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.REPLY_ACTION___VALIDATE_PINS_MATCH_PARAMETER__DIAGNOSTICCHAIN_MAP :
+				return validatePinsMatchParameter(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SendObjectActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SendObjectActionImpl.java
index 5607d33..0b37de5 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SendObjectActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SendObjectActionImpl.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: SendObjectActionImpl.java,v 1.27 2009/01/07 15:55:26 jbruck Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -378,8 +377,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.SEND_OBJECT_ACTION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.SEND_OBJECT_ACTION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.SEND_OBJECT_ACTION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -458,8 +455,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.SEND_OBJECT_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.SEND_OBJECT_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.SEND_OBJECT_ACTION__IN_STRUCTURED_NODE :
@@ -472,6 +467,8 @@
 				return getOutgoings();
 			case UMLPackage.SEND_OBJECT_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.SEND_OBJECT_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.SEND_OBJECT_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.SEND_OBJECT_ACTION__HANDLER :
@@ -729,8 +726,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.SEND_OBJECT_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.SEND_OBJECT_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.SEND_OBJECT_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.SEND_OBJECT_ACTION__IN_STRUCTURED_NODE :
@@ -742,6 +737,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.SEND_OBJECT_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.SEND_OBJECT_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.SEND_OBJECT_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.SEND_OBJECT_ACTION__HANDLER :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SendSignalActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SendSignalActionImpl.java
index 36a2dfe..a534fb9 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SendSignalActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SendSignalActionImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: SendSignalActionImpl.java,v 1.29 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -336,8 +335,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.SEND_SIGNAL_ACTION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.SEND_SIGNAL_ACTION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.SEND_SIGNAL_ACTION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -414,8 +411,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.SEND_SIGNAL_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.SEND_SIGNAL_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.SEND_SIGNAL_ACTION__IN_STRUCTURED_NODE :
@@ -428,6 +423,8 @@
 				return getOutgoings();
 			case UMLPackage.SEND_SIGNAL_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.SEND_SIGNAL_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.SEND_SIGNAL_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.SEND_SIGNAL_ACTION__HANDLER :
@@ -685,8 +682,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.SEND_SIGNAL_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.SEND_SIGNAL_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.SEND_SIGNAL_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.SEND_SIGNAL_ACTION__IN_STRUCTURED_NODE :
@@ -698,6 +693,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.SEND_SIGNAL_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.SEND_SIGNAL_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.SEND_SIGNAL_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.SEND_SIGNAL_ACTION__HANDLER :
@@ -820,10 +817,6 @@
 				return allOwnedElements();
 			case UMLPackage.SEND_SIGNAL_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.SEND_SIGNAL_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.SEND_SIGNAL_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -832,6 +825,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.SEND_SIGNAL_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.SEND_SIGNAL_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.SEND_SIGNAL_ACTION___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SequenceNodeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SequenceNodeImpl.java
index 014298f..b9f351b 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SequenceNodeImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SequenceNodeImpl.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: SequenceNodeImpl.java,v 1.24 2009/01/07 15:55:30 jbruck Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -178,8 +177,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.SEQUENCE_NODE__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.SEQUENCE_NODE__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.SEQUENCE_NODE__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -212,8 +209,6 @@
 			case UMLPackage.SEQUENCE_NODE__OWNED_RULE :
 				return ((InternalEList<?>) getOwnedRules()).basicRemove(
 					otherEnd, msgs);
-			case UMLPackage.SEQUENCE_NODE__IN_ACTIVITY :
-				return basicSetInActivity(null, msgs);
 			case UMLPackage.SEQUENCE_NODE__NODE :
 				return ((InternalEList<?>) getNodes()).basicRemove(otherEnd,
 					msgs);
@@ -280,8 +275,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.SEQUENCE_NODE__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.SEQUENCE_NODE__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.SEQUENCE_NODE__IN_STRUCTURED_NODE :
@@ -294,6 +287,8 @@
 				return getOutgoings();
 			case UMLPackage.SEQUENCE_NODE__INCOMING :
 				return getIncomings();
+			case UMLPackage.SEQUENCE_NODE__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.SEQUENCE_NODE__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.SEQUENCE_NODE__HANDLER :
@@ -324,6 +319,8 @@
 				return getImportedMembers();
 			case UMLPackage.SEQUENCE_NODE__MEMBER :
 				return getMembers();
+			case UMLPackage.SEQUENCE_NODE__CONTAINED_EDGE :
+				return getContainedEdges();
 			case UMLPackage.SEQUENCE_NODE__CONTAINED_NODE :
 				return getContainedNodes();
 			case UMLPackage.SEQUENCE_NODE__IN_ACTIVITY :
@@ -336,8 +333,6 @@
 				if (resolve)
 					return getSuperGroup();
 				return basicGetSuperGroup();
-			case UMLPackage.SEQUENCE_NODE__CONTAINED_EDGE :
-				return getContainedEdges();
 			case UMLPackage.SEQUENCE_NODE__MUST_ISOLATE :
 				return isMustIsolate();
 			case UMLPackage.SEQUENCE_NODE__NODE :
@@ -635,8 +630,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.SEQUENCE_NODE__ACTIVITY :
 				return isSetActivity();
-			case UMLPackage.SEQUENCE_NODE__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.SEQUENCE_NODE__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.SEQUENCE_NODE__IN_STRUCTURED_NODE :
@@ -648,6 +641,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.SEQUENCE_NODE__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.SEQUENCE_NODE__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.SEQUENCE_NODE__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.SEQUENCE_NODE__HANDLER :
@@ -678,6 +673,8 @@
 				return !getImportedMembers().isEmpty();
 			case UMLPackage.SEQUENCE_NODE__MEMBER :
 				return isSetMembers();
+			case UMLPackage.SEQUENCE_NODE__CONTAINED_EDGE :
+				return isSetContainedEdges();
 			case UMLPackage.SEQUENCE_NODE__CONTAINED_NODE :
 				return isSetContainedNodes();
 			case UMLPackage.SEQUENCE_NODE__IN_ACTIVITY :
@@ -686,8 +683,6 @@
 				return isSetSubgroups();
 			case UMLPackage.SEQUENCE_NODE__SUPER_GROUP :
 				return isSetSuperGroup();
-			case UMLPackage.SEQUENCE_NODE__CONTAINED_EDGE :
-				return isSetContainedEdges();
 			case UMLPackage.SEQUENCE_NODE__MUST_ISOLATE :
 				return ((eFlags & MUST_ISOLATE_EFLAG) != 0) != MUST_ISOLATE_EDEFAULT;
 			case UMLPackage.SEQUENCE_NODE__NODE :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SignalImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SignalImpl.java
index 1edba0a..d3c7832 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SignalImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SignalImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: SignalImpl.java,v 1.32 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -71,8 +70,8 @@
  * <p>
  * The following features are implemented:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.internal.impl.SignalImpl#getAttributes <em>Attribute</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.SignalImpl#getOwnedMembers <em>Owned Member</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.internal.impl.SignalImpl#getAttributes <em>Attribute</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.SignalImpl#getOwnedAttributes <em>Owned Attribute</em>}</li>
  * </ul>
  * </p>
@@ -822,10 +821,6 @@
 				return allOwnedElements();
 			case UMLPackage.SIGNAL___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.SIGNAL___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.SIGNAL___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -834,6 +829,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.SIGNAL___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.SIGNAL___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.SIGNAL___CREATE_USAGE__NAMEDELEMENT :
@@ -923,14 +922,6 @@
 				return isTemplate();
 			case UMLPackage.SIGNAL___PARAMETERABLE_ELEMENTS :
 				return parameterableElements();
-			case UMLPackage.SIGNAL___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
-				return validateSpecializeType(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.SIGNAL___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
-				return validateMapsToGeneralizationSet(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.SIGNAL___VALIDATE_NON_FINAL_PARENTS__DIAGNOSTICCHAIN_MAP :
 				return validateNonFinalParents(
 					(DiagnosticChain) arguments.get(0),
@@ -939,6 +930,14 @@
 				return validateNoCyclesInGeneralization(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.SIGNAL___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
+				return validateSpecializeType(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.SIGNAL___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
+				return validateMapsToGeneralizationSet(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.SIGNAL___GET_ALL_ATTRIBUTES :
 				return getAllAttributes();
 			case UMLPackage.SIGNAL___GET_ALL_OPERATIONS :
@@ -986,16 +985,6 @@
 	}
 
 	/**
-	 * The array of subset feature identifiers for the '{@link #getAttributes() <em>Attribute</em>}' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAttributes()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final int[] ATTRIBUTE_ESUBSETS = new int[]{UMLPackage.SIGNAL__OWNED_ATTRIBUTE};
-
-	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -1019,6 +1008,16 @@
 		UMLPackage.SIGNAL__OWNED_ATTRIBUTE};
 
 	/**
+	 * The array of subset feature identifiers for the '{@link #getAttributes() <em>Attribute</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAttributes()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int[] ATTRIBUTE_ESUBSETS = new int[]{UMLPackage.SIGNAL__OWNED_ATTRIBUTE};
+
+	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StartClassifierBehaviorActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StartClassifierBehaviorActionImpl.java
index 61df5e8..b089c1e 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StartClassifierBehaviorActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StartClassifierBehaviorActionImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: StartClassifierBehaviorActionImpl.java,v 1.29 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -289,8 +288,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -364,8 +361,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__IN_STRUCTURED_NODE :
@@ -378,6 +373,8 @@
 				return getOutgoings();
 			case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__HANDLER :
@@ -605,8 +602,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__IN_STRUCTURED_NODE :
@@ -618,6 +613,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__HANDLER :
@@ -734,10 +731,6 @@
 				return allOwnedElements();
 			case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -746,6 +739,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION___CREATE_USAGE__NAMEDELEMENT :
@@ -793,13 +790,13 @@
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION___GET_CONTEXT :
 				return getContext();
-			case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
-				return validateMultiplicity((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION___VALIDATE_TYPE_HAS_CLASSIFIER__DIAGNOSTICCHAIN_MAP :
 				return validateTypeHasClassifier(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
+				return validateMultiplicity((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StartObjectBehaviorActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StartObjectBehaviorActionImpl.java
index 8f53709..03ab0b5 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StartObjectBehaviorActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StartObjectBehaviorActionImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: StartObjectBehaviorActionImpl.java,v 1.4 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -335,8 +334,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.START_OBJECT_BEHAVIOR_ACTION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.START_OBJECT_BEHAVIOR_ACTION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.START_OBJECT_BEHAVIOR_ACTION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -416,8 +413,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.START_OBJECT_BEHAVIOR_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.START_OBJECT_BEHAVIOR_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.START_OBJECT_BEHAVIOR_ACTION__IN_STRUCTURED_NODE :
@@ -430,6 +425,8 @@
 				return getOutgoings();
 			case UMLPackage.START_OBJECT_BEHAVIOR_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.START_OBJECT_BEHAVIOR_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.START_OBJECT_BEHAVIOR_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.START_OBJECT_BEHAVIOR_ACTION__HANDLER :
@@ -694,8 +691,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.START_OBJECT_BEHAVIOR_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.START_OBJECT_BEHAVIOR_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.START_OBJECT_BEHAVIOR_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.START_OBJECT_BEHAVIOR_ACTION__IN_STRUCTURED_NODE :
@@ -707,6 +702,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.START_OBJECT_BEHAVIOR_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.START_OBJECT_BEHAVIOR_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.START_OBJECT_BEHAVIOR_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.START_OBJECT_BEHAVIOR_ACTION__HANDLER :
@@ -831,10 +828,6 @@
 				return allOwnedElements();
 			case UMLPackage.START_OBJECT_BEHAVIOR_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.START_OBJECT_BEHAVIOR_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.START_OBJECT_BEHAVIOR_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -843,6 +836,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.START_OBJECT_BEHAVIOR_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.START_OBJECT_BEHAVIOR_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.START_OBJECT_BEHAVIOR_ACTION___CREATE_USAGE__NAMEDELEMENT :
@@ -894,37 +891,37 @@
 				return validateOnPortReceiver(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.START_OBJECT_BEHAVIOR_ACTION___VALIDATE_TYPE_ORDERING_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
-				return validateTypeOrderingMultiplicity(
+			case UMLPackage.START_OBJECT_BEHAVIOR_ACTION___VALIDATE_SYNCHRONOUS_CALL__DIAGNOSTICCHAIN_MAP :
+				return validateSynchronousCall(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.START_OBJECT_BEHAVIOR_ACTION___VALIDATE_NUMBER_AND_ORDER__DIAGNOSTICCHAIN_MAP :
 				return validateNumberAndOrder(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.START_OBJECT_BEHAVIOR_ACTION___VALIDATE_SYNCHRONOUS_CALL__DIAGNOSTICCHAIN_MAP :
-				return validateSynchronousCall(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.START_OBJECT_BEHAVIOR_ACTION___VALIDATE_NUMBER_ORDER_RESULTS__DIAGNOSTICCHAIN_MAP :
-				return validateNumberOrderResults(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.START_OBJECT_BEHAVIOR_ACTION___VALIDATE_MULTIPLICITY_OF_OBJECT__DIAGNOSTICCHAIN_MAP :
-				return validateMultiplicityOfObject(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.START_OBJECT_BEHAVIOR_ACTION___VALIDATE_TYPE_ORDERING_MULTIPLICITY_MATCH__DIAGNOSTICCHAIN_MAP :
-				return validateTypeOrderingMultiplicityMatch(
+			case UMLPackage.START_OBJECT_BEHAVIOR_ACTION___VALIDATE_TYPE_ORDERING_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
+				return validateTypeOrderingMultiplicity(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.START_OBJECT_BEHAVIOR_ACTION___VALIDATE_NUMBER_ORDER_ARGUMENTS__DIAGNOSTICCHAIN_MAP :
 				return validateNumberOrderArguments(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.START_OBJECT_BEHAVIOR_ACTION___VALIDATE_TYPE_ORDERING_MULTIPLICITY_MATCH__DIAGNOSTICCHAIN_MAP :
+				return validateTypeOrderingMultiplicityMatch(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.START_OBJECT_BEHAVIOR_ACTION___VALIDATE_NUMBER_ORDER_RESULTS__DIAGNOSTICCHAIN_MAP :
+				return validateNumberOrderResults(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.START_OBJECT_BEHAVIOR_ACTION___VALIDATE_TYPE_OF_OBJECT__DIAGNOSTICCHAIN_MAP :
 				return validateTypeOfObject((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.START_OBJECT_BEHAVIOR_ACTION___VALIDATE_MULTIPLICITY_OF_OBJECT__DIAGNOSTICCHAIN_MAP :
+				return validateMultiplicityOfObject(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StateImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StateImpl.java
index a64d5c9..3731035 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StateImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StateImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: StateImpl.java,v 1.39 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -2167,10 +2166,6 @@
 				return allOwnedElements();
 			case UMLPackage.STATE___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.STATE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STATE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -2179,6 +2174,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.STATE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STATE___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.STATE___CREATE_USAGE__NAMEDELEMENT :
@@ -2256,10 +2255,6 @@
 			case UMLPackage.STATE___VALIDATE_ENTRY_OR_EXIT__DIAGNOSTICCHAIN_MAP :
 				return validateEntryOrExit((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.STATE___VALIDATE_SUBMACHINE_STATES__DIAGNOSTICCHAIN_MAP :
-				return validateSubmachineStates(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STATE___VALIDATE_COMPOSITE_STATES__DIAGNOSTICCHAIN_MAP :
 				return validateCompositeStates(
 					(DiagnosticChain) arguments.get(0),
@@ -2272,6 +2267,10 @@
 				return validateSubmachineOrRegions(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.STATE___VALIDATE_SUBMACHINE_STATES__DIAGNOSTICCHAIN_MAP :
+				return validateSubmachineStates(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STATE___IS_COMPOSITE :
 				return isComposite();
 			case UMLPackage.STATE___IS_ORTHOGONAL :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StateMachineImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StateMachineImpl.java
index f63bca3..ea6d91d 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StateMachineImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StateMachineImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: StateMachineImpl.java,v 1.34 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -1431,10 +1430,6 @@
 				return allOwnedElements();
 			case UMLPackage.STATE_MACHINE___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.STATE_MACHINE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STATE_MACHINE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1443,6 +1438,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.STATE_MACHINE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STATE_MACHINE___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.STATE_MACHINE___CREATE_USAGE__NAMEDELEMENT :
@@ -1532,14 +1531,6 @@
 				return isTemplate();
 			case UMLPackage.STATE_MACHINE___PARAMETERABLE_ELEMENTS :
 				return parameterableElements();
-			case UMLPackage.STATE_MACHINE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
-				return validateSpecializeType(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.STATE_MACHINE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
-				return validateMapsToGeneralizationSet(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STATE_MACHINE___VALIDATE_NON_FINAL_PARENTS__DIAGNOSTICCHAIN_MAP :
 				return validateNonFinalParents(
 					(DiagnosticChain) arguments.get(0),
@@ -1548,6 +1539,14 @@
 				return validateNoCyclesInGeneralization(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.STATE_MACHINE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
+				return validateSpecializeType(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.STATE_MACHINE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
+				return validateMapsToGeneralizationSet(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STATE_MACHINE___GET_ALL_ATTRIBUTES :
 				return getAllAttributes();
 			case UMLPackage.STATE_MACHINE___GET_ALL_OPERATIONS :
@@ -1619,13 +1618,6 @@
 				return getExtensions();
 			case UMLPackage.STATE_MACHINE___GET_SUPER_CLASSES :
 				return getSuperClasses();
-			case UMLPackage.STATE_MACHINE___VALIDATE_MOST_ONE_BEHAVIOUR__DIAGNOSTICCHAIN_MAP :
-				return validateMostOneBehaviour(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.STATE_MACHINE___VALIDATE_MUST_REALIZE__DIAGNOSTICCHAIN_MAP :
-				return validateMustRealize((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STATE_MACHINE___VALIDATE_PARAMETERS_MATCH__DIAGNOSTICCHAIN_MAP :
 				return validateParametersMatch(
 					(DiagnosticChain) arguments.get(0),
@@ -1634,23 +1626,30 @@
 				return validateFeatureOfContextClassifier(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.STATE_MACHINE___VALIDATE_MUST_REALIZE__DIAGNOSTICCHAIN_MAP :
+				return validateMustRealize((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.STATE_MACHINE___VALIDATE_MOST_ONE_BEHAVIOUR__DIAGNOSTICCHAIN_MAP :
+				return validateMostOneBehaviour(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STATE_MACHINE___GET_CONTEXT :
 				return getContext();
-			case UMLPackage.STATE_MACHINE___VALIDATE_CONNECTION_POINTS__DIAGNOSTICCHAIN_MAP :
-				return validateConnectionPoints(
-					(DiagnosticChain) arguments.get(0),
+			case UMLPackage.STATE_MACHINE___VALIDATE_METHOD__DIAGNOSTICCHAIN_MAP :
+				return validateMethod((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STATE_MACHINE___VALIDATE_CLASSIFIER_CONTEXT__DIAGNOSTICCHAIN_MAP :
 				return validateClassifierContext(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.STATE_MACHINE___VALIDATE_METHOD__DIAGNOSTICCHAIN_MAP :
-				return validateMethod((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STATE_MACHINE___VALIDATE_CONTEXT_CLASSIFIER__DIAGNOSTICCHAIN_MAP :
 				return validateContextClassifier(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.STATE_MACHINE___VALIDATE_CONNECTION_POINTS__DIAGNOSTICCHAIN_MAP :
+				return validateConnectionPoints(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STATE_MACHINE___LCA__STATE_STATE :
 				return LCA((State) arguments.get(0), (State) arguments.get(1));
 			case UMLPackage.STATE_MACHINE___ANCESTOR__STATE_STATE :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StereotypeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StereotypeImpl.java
index 96d162d..b0c897c 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StereotypeImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StereotypeImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: StereotypeImpl.java,v 1.26 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -1109,10 +1108,6 @@
 				return allOwnedElements();
 			case UMLPackage.STEREOTYPE___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.STEREOTYPE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STEREOTYPE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1121,6 +1116,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.STEREOTYPE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STEREOTYPE___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.STEREOTYPE___CREATE_USAGE__NAMEDELEMENT :
@@ -1210,14 +1209,6 @@
 				return isTemplate();
 			case UMLPackage.STEREOTYPE___PARAMETERABLE_ELEMENTS :
 				return parameterableElements();
-			case UMLPackage.STEREOTYPE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
-				return validateSpecializeType(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.STEREOTYPE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
-				return validateMapsToGeneralizationSet(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STEREOTYPE___VALIDATE_NON_FINAL_PARENTS__DIAGNOSTICCHAIN_MAP :
 				return validateNonFinalParents(
 					(DiagnosticChain) arguments.get(0),
@@ -1226,6 +1217,14 @@
 				return validateNoCyclesInGeneralization(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.STEREOTYPE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
+				return validateSpecializeType(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.STEREOTYPE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
+				return validateMapsToGeneralizationSet(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STEREOTYPE___GET_ALL_ATTRIBUTES :
 				return getAllAttributes();
 			case UMLPackage.STEREOTYPE___GET_ALL_OPERATIONS :
@@ -1297,6 +1296,13 @@
 				return getExtensions();
 			case UMLPackage.STEREOTYPE___GET_SUPER_CLASSES :
 				return getSuperClasses();
+			case UMLPackage.STEREOTYPE___VALIDATE_ASSOCIATION_END_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateAssociationEndOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.STEREOTYPE___VALIDATE_NAME_NOT_CLASH__DIAGNOSTICCHAIN_MAP :
+				return validateNameNotClash((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STEREOTYPE___VALIDATE_BINARY_ASSOCIATIONS_ONLY__DIAGNOSTICCHAIN_MAP :
 				return validateBinaryAssociationsOnly(
 					(DiagnosticChain) arguments.get(0),
@@ -1304,13 +1310,6 @@
 			case UMLPackage.STEREOTYPE___VALIDATE_GENERALIZE__DIAGNOSTICCHAIN_MAP :
 				return validateGeneralize((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.STEREOTYPE___VALIDATE_NAME_NOT_CLASH__DIAGNOSTICCHAIN_MAP :
-				return validateNameNotClash((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.STEREOTYPE___VALIDATE_ASSOCIATION_END_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateAssociationEndOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STEREOTYPE___CREATE_EXTENSION__CLASS_BOOLEAN :
 				return createExtension(
 					(org.eclipse.uml2.uml.Class) arguments.get(0),
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StringExpressionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StringExpressionImpl.java
index 85ea13b..9513413 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StringExpressionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StringExpressionImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: StringExpressionImpl.java,v 1.27 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -1038,10 +1037,6 @@
 				return allOwnedElements();
 			case UMLPackage.STRING_EXPRESSION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.STRING_EXPRESSION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STRING_EXPRESSION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1050,6 +1045,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.STRING_EXPRESSION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STRING_EXPRESSION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.STRING_EXPRESSION___CREATE_USAGE__NAMEDELEMENT :
@@ -1093,13 +1092,13 @@
 				return isTemplate();
 			case UMLPackage.STRING_EXPRESSION___PARAMETERABLE_ELEMENTS :
 				return parameterableElements();
-			case UMLPackage.STRING_EXPRESSION___VALIDATE_OPERANDS__DIAGNOSTICCHAIN_MAP :
-				return validateOperands((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STRING_EXPRESSION___VALIDATE_SUBEXPRESSIONS__DIAGNOSTICCHAIN_MAP :
 				return validateSubexpressions(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.STRING_EXPRESSION___VALIDATE_OPERANDS__DIAGNOSTICCHAIN_MAP :
+				return validateOperands((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuralFeatureActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuralFeatureActionImpl.java
index a47d35d..582c8a1 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuralFeatureActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuralFeatureActionImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: StructuralFeatureActionImpl.java,v 1.29 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -377,8 +376,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.STRUCTURAL_FEATURE_ACTION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.STRUCTURAL_FEATURE_ACTION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.STRUCTURAL_FEATURE_ACTION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -452,8 +449,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.STRUCTURAL_FEATURE_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.STRUCTURAL_FEATURE_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.STRUCTURAL_FEATURE_ACTION__IN_STRUCTURED_NODE :
@@ -466,6 +461,8 @@
 				return getOutgoings();
 			case UMLPackage.STRUCTURAL_FEATURE_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.STRUCTURAL_FEATURE_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.STRUCTURAL_FEATURE_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.STRUCTURAL_FEATURE_ACTION__HANDLER :
@@ -703,8 +700,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.STRUCTURAL_FEATURE_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.STRUCTURAL_FEATURE_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.STRUCTURAL_FEATURE_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.STRUCTURAL_FEATURE_ACTION__IN_STRUCTURED_NODE :
@@ -716,6 +711,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.STRUCTURAL_FEATURE_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.STRUCTURAL_FEATURE_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.STRUCTURAL_FEATURE_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.STRUCTURAL_FEATURE_ACTION__HANDLER :
@@ -834,10 +831,6 @@
 				return allOwnedElements();
 			case UMLPackage.STRUCTURAL_FEATURE_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STRUCTURAL_FEATURE_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -846,6 +839,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STRUCTURAL_FEATURE_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.STRUCTURAL_FEATURE_ACTION___CREATE_USAGE__NAMEDELEMENT :
@@ -893,15 +890,12 @@
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STRUCTURAL_FEATURE_ACTION___GET_CONTEXT :
 				return getContext();
-			case UMLPackage.STRUCTURAL_FEATURE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
-				return validateMultiplicity((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.STRUCTURAL_FEATURE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP :
-				return validateSameType((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY__DIAGNOSTICCHAIN_MAP :
 				return validateVisibility((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.STRUCTURAL_FEATURE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
+				return validateMultiplicity((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STRUCTURAL_FEATURE_ACTION___VALIDATE_NOT_STATIC__DIAGNOSTICCHAIN_MAP :
 				return validateNotStatic((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
@@ -909,6 +903,9 @@
 				return validateOneFeaturingClassifier(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.STRUCTURAL_FEATURE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP :
+				return validateSameType((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuralFeatureImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuralFeatureImpl.java
index 98d5ef7..0ee79e4 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuralFeatureImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuralFeatureImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: StructuralFeatureImpl.java,v 1.32 2010/09/28 21:02:12 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -1084,14 +1083,14 @@
 		}
 		if (baseClass == MultiplicityElement.class) {
 			switch (baseOperationID) {
-				case UMLPackage.MULTIPLICITY_ELEMENT___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP :
-					return UMLPackage.STRUCTURAL_FEATURE___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP;
 				case UMLPackage.MULTIPLICITY_ELEMENT___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP :
 					return UMLPackage.STRUCTURAL_FEATURE___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP;
-				case UMLPackage.MULTIPLICITY_ELEMENT___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP :
-					return UMLPackage.STRUCTURAL_FEATURE___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP;
+				case UMLPackage.MULTIPLICITY_ELEMENT___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP :
+					return UMLPackage.STRUCTURAL_FEATURE___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP;
 				case UMLPackage.MULTIPLICITY_ELEMENT___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP :
 					return UMLPackage.STRUCTURAL_FEATURE___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP;
+				case UMLPackage.MULTIPLICITY_ELEMENT___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP :
+					return UMLPackage.STRUCTURAL_FEATURE___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP;
 				case UMLPackage.MULTIPLICITY_ELEMENT___SET_LOWER__INT :
 					return UMLPackage.STRUCTURAL_FEATURE___SET_LOWER__INT;
 				case UMLPackage.MULTIPLICITY_ELEMENT___SET_UPPER__INT :
@@ -1213,10 +1212,6 @@
 				return allOwnedElements();
 			case UMLPackage.STRUCTURAL_FEATURE___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.STRUCTURAL_FEATURE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STRUCTURAL_FEATURE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1225,6 +1220,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.STRUCTURAL_FEATURE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STRUCTURAL_FEATURE___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.STRUCTURAL_FEATURE___CREATE_USAGE__NAMEDELEMENT :
@@ -1263,20 +1262,20 @@
 			case UMLPackage.STRUCTURAL_FEATURE___IS_REDEFINITION_CONTEXT_VALID__REDEFINABLEELEMENT :
 				return isRedefinitionContextValid((RedefinableElement) arguments
 					.get(0));
-			case UMLPackage.STRUCTURAL_FEATURE___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP :
-				return validateUpperGeLower((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STRUCTURAL_FEATURE___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP :
 				return validateLowerGe0((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.STRUCTURAL_FEATURE___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP :
-				return validateValueSpecificationNoSideEffects(
-					(DiagnosticChain) arguments.get(0),
+			case UMLPackage.STRUCTURAL_FEATURE___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP :
+				return validateUpperGeLower((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STRUCTURAL_FEATURE___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP :
 				return validateValueSpecificationConstant(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.STRUCTURAL_FEATURE___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP :
+				return validateValueSpecificationNoSideEffects(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STRUCTURAL_FEATURE___SET_LOWER__INT :
 				setLower((Integer) arguments.get(0));
 				return null;
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuredActivityNodeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuredActivityNodeImpl.java
index 2cfb9ce..02f395a 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuredActivityNodeImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuredActivityNodeImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: StructuredActivityNodeImpl.java,v 1.38 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -36,6 +35,7 @@
 
 import org.eclipse.emf.ecore.util.EObjectContainmentEList;
 import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.emf.ecore.util.InternalEList;
 
 import org.eclipse.uml2.common.util.CacheAdapter;
@@ -86,11 +86,11 @@
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#getPackageImports <em>Package Import</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#getOwnedRules <em>Owned Rule</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#getImportedMembers <em>Imported Member</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#getContainedEdges <em>Contained Edge</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#getContainedNodes <em>Contained Node</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#getOwner <em>Owner</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#getSubgroups <em>Subgroup</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#getSuperGroup <em>Super Group</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#getContainedEdges <em>Contained Edge</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#getInputs <em>Input</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#getOutputs <em>Output</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#isMustIsolate <em>Must Isolate</em>}</li>
@@ -1006,10 +1006,19 @@
 	 */
 	@Override
 	public Activity basicGetActivity() {
-		if (eContainerFeatureID() != UMLPackage.STRUCTURED_ACTIVITY_NODE__ACTIVITY
-			&& eContainerFeatureID() != UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_ACTIVITY)
-			return null;
-		return (Activity) eInternalContainer();
+		return super.basicGetActivity();
+	}
+
+	public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) {
+		InternalEObject eInternalContainer = eInternalContainer();
+		if (eInternalContainer instanceof Activity) {
+			Activity activity = (Activity) eInternalContainer;
+			msgs = ((InternalEList<ActivityGroup>) activity.getGroups())
+				.basicRemove(this, msgs);
+			return ((InternalEList<ActivityNode>) activity.getNodes())
+				.basicRemove(this, msgs);
+		}
+		return super.eBasicRemoveFromContainer(msgs);
 	}
 
 	/**
@@ -1019,7 +1028,25 @@
 	 */
 	@Override
 	public void setActivity(Activity newActivity) {
-		super.setActivity(newActivity);
+		InternalEObject eInternalContaner = eInternalContainer();
+		if (newActivity != eInternalContaner) {
+			if (EcoreUtil.isAncestor(this, newActivity))
+				throw new IllegalArgumentException(
+					"Recursive containment not allowed for " + toString()); //$NON-NLS-1$
+			NotificationChain msgs = null;
+			if (eInternalContaner != null)
+				msgs = eBasicRemoveFromContainer(msgs);
+			if (newActivity != null)
+				msgs = ((InternalEList<StructuredActivityNode>) newActivity
+					.getStructuredNodes()).basicAdd(this, msgs);
+			msgs = eBasicSetContainer((InternalEObject) newActivity,
+				InternalEObject.EOPPOSITE_FEATURE_BASE
+					- UMLPackage.ACTIVITY__STRUCTURED_NODE, msgs);
+			if (msgs != null)
+				msgs.dispatch();
+		} else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+				UMLPackage.ACTIVITY_NODE__ACTIVITY, newActivity, newActivity));
 	}
 
 	/**
@@ -1228,10 +1255,6 @@
 			case UMLPackage.STRUCTURED_ACTIVITY_NODE__CLIENT_DEPENDENCY :
 				return ((InternalEList<InternalEObject>) (InternalEList<?>) getClientDependencies())
 					.basicAdd(otherEnd, msgs);
-			case UMLPackage.STRUCTURED_ACTIVITY_NODE__ACTIVITY :
-				if (eInternalContainer() != null)
-					msgs = eBasicRemoveFromContainer(msgs);
-				return basicSetActivity((Activity) otherEnd, msgs);
 			case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_PARTITION :
 				return ((InternalEList<InternalEObject>) (InternalEList<?>) getInPartitions())
 					.basicAdd(otherEnd, msgs);
@@ -1261,10 +1284,6 @@
 			case UMLPackage.STRUCTURED_ACTIVITY_NODE__OWNED_RULE :
 				return ((InternalEList<InternalEObject>) (InternalEList<?>) getOwnedRules())
 					.basicAdd(otherEnd, msgs);
-			case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_ACTIVITY :
-				if (eInternalContainer() != null)
-					msgs = eBasicRemoveFromContainer(msgs);
-				return basicSetInActivity((Activity) otherEnd, msgs);
 			case UMLPackage.STRUCTURED_ACTIVITY_NODE__NODE :
 				return ((InternalEList<InternalEObject>) (InternalEList<?>) getNodes())
 					.basicAdd(otherEnd, msgs);
@@ -1298,8 +1317,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.STRUCTURED_ACTIVITY_NODE__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.STRUCTURED_ACTIVITY_NODE__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -1332,8 +1349,6 @@
 			case UMLPackage.STRUCTURED_ACTIVITY_NODE__OWNED_RULE :
 				return ((InternalEList<?>) getOwnedRules()).basicRemove(
 					otherEnd, msgs);
-			case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_ACTIVITY :
-				return basicSetInActivity(null, msgs);
 			case UMLPackage.STRUCTURED_ACTIVITY_NODE__NODE :
 				return ((InternalEList<?>) getNodes()).basicRemove(otherEnd,
 					msgs);
@@ -1397,8 +1412,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_STRUCTURED_NODE :
@@ -1411,6 +1424,8 @@
 				return getOutgoings();
 			case UMLPackage.STRUCTURED_ACTIVITY_NODE__INCOMING :
 				return getIncomings();
+			case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.STRUCTURED_ACTIVITY_NODE__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.STRUCTURED_ACTIVITY_NODE__HANDLER :
@@ -1441,6 +1456,8 @@
 				return getImportedMembers();
 			case UMLPackage.STRUCTURED_ACTIVITY_NODE__MEMBER :
 				return getMembers();
+			case UMLPackage.STRUCTURED_ACTIVITY_NODE__CONTAINED_EDGE :
+				return getContainedEdges();
 			case UMLPackage.STRUCTURED_ACTIVITY_NODE__CONTAINED_NODE :
 				return getContainedNodes();
 			case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_ACTIVITY :
@@ -1453,8 +1470,6 @@
 				if (resolve)
 					return getSuperGroup();
 				return basicGetSuperGroup();
-			case UMLPackage.STRUCTURED_ACTIVITY_NODE__CONTAINED_EDGE :
-				return getContainedEdges();
 			case UMLPackage.STRUCTURED_ACTIVITY_NODE__MUST_ISOLATE :
 				return isMustIsolate();
 			case UMLPackage.STRUCTURED_ACTIVITY_NODE__NODE :
@@ -1742,8 +1757,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.STRUCTURED_ACTIVITY_NODE__ACTIVITY :
 				return isSetActivity();
-			case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_STRUCTURED_NODE :
@@ -1755,6 +1768,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.STRUCTURED_ACTIVITY_NODE__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.STRUCTURED_ACTIVITY_NODE__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.STRUCTURED_ACTIVITY_NODE__HANDLER :
@@ -1785,6 +1800,8 @@
 				return !getImportedMembers().isEmpty();
 			case UMLPackage.STRUCTURED_ACTIVITY_NODE__MEMBER :
 				return isSetMembers();
+			case UMLPackage.STRUCTURED_ACTIVITY_NODE__CONTAINED_EDGE :
+				return isSetContainedEdges();
 			case UMLPackage.STRUCTURED_ACTIVITY_NODE__CONTAINED_NODE :
 				return isSetContainedNodes();
 			case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_ACTIVITY :
@@ -1793,8 +1810,6 @@
 				return isSetSubgroups();
 			case UMLPackage.STRUCTURED_ACTIVITY_NODE__SUPER_GROUP :
 				return isSetSuperGroup();
-			case UMLPackage.STRUCTURED_ACTIVITY_NODE__CONTAINED_EDGE :
-				return isSetContainedEdges();
 			case UMLPackage.STRUCTURED_ACTIVITY_NODE__MUST_ISOLATE :
 				return ((eFlags & MUST_ISOLATE_EFLAG) != 0) != MUST_ISOLATE_EDEFAULT;
 			case UMLPackage.STRUCTURED_ACTIVITY_NODE__NODE :
@@ -1840,6 +1855,8 @@
 		}
 		if (baseClass == ActivityGroup.class) {
 			switch (derivedFeatureID) {
+				case UMLPackage.STRUCTURED_ACTIVITY_NODE__CONTAINED_EDGE :
+					return UMLPackage.ACTIVITY_GROUP__CONTAINED_EDGE;
 				case UMLPackage.STRUCTURED_ACTIVITY_NODE__CONTAINED_NODE :
 					return UMLPackage.ACTIVITY_GROUP__CONTAINED_NODE;
 				case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_ACTIVITY :
@@ -1848,8 +1865,6 @@
 					return UMLPackage.ACTIVITY_GROUP__SUBGROUP;
 				case UMLPackage.STRUCTURED_ACTIVITY_NODE__SUPER_GROUP :
 					return UMLPackage.ACTIVITY_GROUP__SUPER_GROUP;
-				case UMLPackage.STRUCTURED_ACTIVITY_NODE__CONTAINED_EDGE :
-					return UMLPackage.ACTIVITY_GROUP__CONTAINED_EDGE;
 				default :
 					return -1;
 			}
@@ -1884,6 +1899,8 @@
 		}
 		if (baseClass == ActivityGroup.class) {
 			switch (baseFeatureID) {
+				case UMLPackage.ACTIVITY_GROUP__CONTAINED_EDGE :
+					return UMLPackage.STRUCTURED_ACTIVITY_NODE__CONTAINED_EDGE;
 				case UMLPackage.ACTIVITY_GROUP__CONTAINED_NODE :
 					return UMLPackage.STRUCTURED_ACTIVITY_NODE__CONTAINED_NODE;
 				case UMLPackage.ACTIVITY_GROUP__IN_ACTIVITY :
@@ -1892,8 +1909,6 @@
 					return UMLPackage.STRUCTURED_ACTIVITY_NODE__SUBGROUP;
 				case UMLPackage.ACTIVITY_GROUP__SUPER_GROUP :
 					return UMLPackage.STRUCTURED_ACTIVITY_NODE__SUPER_GROUP;
-				case UMLPackage.ACTIVITY_GROUP__CONTAINED_EDGE :
-					return UMLPackage.STRUCTURED_ACTIVITY_NODE__CONTAINED_EDGE;
 				default :
 					return -1;
 			}
@@ -1938,12 +1953,12 @@
 		}
 		if (baseClass == ActivityGroup.class) {
 			switch (baseOperationID) {
-				case UMLPackage.ACTIVITY_GROUP___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP :
-					return UMLPackage.STRUCTURED_ACTIVITY_NODE___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP;
 				case UMLPackage.ACTIVITY_GROUP___VALIDATE_GROUP_OWNED__DIAGNOSTICCHAIN_MAP :
 					return UMLPackage.STRUCTURED_ACTIVITY_NODE___VALIDATE_GROUP_OWNED__DIAGNOSTICCHAIN_MAP;
 				case UMLPackage.ACTIVITY_GROUP___VALIDATE_NOT_CONTAINED__DIAGNOSTICCHAIN_MAP :
 					return UMLPackage.STRUCTURED_ACTIVITY_NODE___VALIDATE_NOT_CONTAINED__DIAGNOSTICCHAIN_MAP;
+				case UMLPackage.ACTIVITY_GROUP___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP :
+					return UMLPackage.STRUCTURED_ACTIVITY_NODE___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP;
 				default :
 					return -1;
 			}
@@ -2043,10 +2058,6 @@
 				return allOwnedElements();
 			case UMLPackage.STRUCTURED_ACTIVITY_NODE___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.STRUCTURED_ACTIVITY_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STRUCTURED_ACTIVITY_NODE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -2055,6 +2066,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.STRUCTURED_ACTIVITY_NODE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STRUCTURED_ACTIVITY_NODE___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.STRUCTURED_ACTIVITY_NODE___CREATE_USAGE__NAMEDELEMENT :
@@ -2132,25 +2147,25 @@
 				return membersAreDistinguishable();
 			case UMLPackage.STRUCTURED_ACTIVITY_NODE___GET_OWNED_MEMBERS :
 				return getOwnedMembers();
-			case UMLPackage.STRUCTURED_ACTIVITY_NODE___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP :
-				return validateNodesAndEdges(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STRUCTURED_ACTIVITY_NODE___VALIDATE_GROUP_OWNED__DIAGNOSTICCHAIN_MAP :
 				return validateGroupOwned((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STRUCTURED_ACTIVITY_NODE___VALIDATE_NOT_CONTAINED__DIAGNOSTICCHAIN_MAP :
 				return validateNotContained((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.STRUCTURED_ACTIVITY_NODE___VALIDATE_OUTPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP :
-				return validateOutputPinEdges(
+			case UMLPackage.STRUCTURED_ACTIVITY_NODE___VALIDATE_NODES_AND_EDGES__DIAGNOSTICCHAIN_MAP :
+				return validateNodesAndEdges(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.STRUCTURED_ACTIVITY_NODE___VALIDATE_INPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP :
+				return validateInputPinEdges(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STRUCTURED_ACTIVITY_NODE___VALIDATE_EDGES__DIAGNOSTICCHAIN_MAP :
 				return validateEdges((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.STRUCTURED_ACTIVITY_NODE___VALIDATE_INPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP :
-				return validateInputPinEdges(
+			case UMLPackage.STRUCTURED_ACTIVITY_NODE___VALIDATE_OUTPUT_PIN_EDGES__DIAGNOSTICCHAIN_MAP :
+				return validateOutputPinEdges(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 		}
@@ -2442,16 +2457,6 @@
 	}
 
 	/**
-	 * The array of subset feature identifiers for the '{@link #getContainedNodes() <em>Contained Node</em>}' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getContainedNodes()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final int[] CONTAINED_NODE_ESUBSETS = new int[]{UMLPackage.STRUCTURED_ACTIVITY_NODE__NODE};
-
-	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -2490,6 +2495,16 @@
 	protected static final int[] CONTAINED_EDGE_ESUBSETS = new int[]{UMLPackage.STRUCTURED_ACTIVITY_NODE__EDGE};
 
 	/**
+	 * The array of subset feature identifiers for the '{@link #getContainedNodes() <em>Contained Node</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getContainedNodes()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int[] CONTAINED_NODE_ESUBSETS = new int[]{UMLPackage.STRUCTURED_ACTIVITY_NODE__NODE};
+
+	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -2598,19 +2613,6 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @generated NOT
-	 */
-	public NotificationChain basicSetInActivity(Activity newInActivity,
-			NotificationChain msgs) {
-		msgs = eBasicSetContainer((InternalEObject) newInActivity,
-			UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_ACTIVITY, msgs);
-
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
 	 * @generated
 	 */
 	public void setInActivity(Activity newInActivity) {
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuredClassifierImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuredClassifierImpl.java
index 9085cbc..521ee5f 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuredClassifierImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuredClassifierImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: StructuredClassifierImpl.java,v 1.34 2010/09/28 21:02:12 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -81,8 +80,8 @@
  * The following features are implemented:
  * <ul>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredClassifierImpl#getAttributes <em>Attribute</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredClassifierImpl#getRoles <em>Role</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredClassifierImpl#getOwnedMembers <em>Owned Member</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredClassifierImpl#getRoles <em>Role</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredClassifierImpl#getFeatures <em>Feature</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredClassifierImpl#getMembers <em>Member</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredClassifierImpl#getOwnedAttributes <em>Owned Attribute</em>}</li>
@@ -1110,10 +1109,6 @@
 				return allOwnedElements();
 			case UMLPackage.STRUCTURED_CLASSIFIER___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.STRUCTURED_CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STRUCTURED_CLASSIFIER___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1122,6 +1117,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.STRUCTURED_CLASSIFIER___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STRUCTURED_CLASSIFIER___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.STRUCTURED_CLASSIFIER___CREATE_USAGE__NAMEDELEMENT :
@@ -1211,14 +1210,6 @@
 				return isTemplate();
 			case UMLPackage.STRUCTURED_CLASSIFIER___PARAMETERABLE_ELEMENTS :
 				return parameterableElements();
-			case UMLPackage.STRUCTURED_CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
-				return validateSpecializeType(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.STRUCTURED_CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
-				return validateMapsToGeneralizationSet(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STRUCTURED_CLASSIFIER___VALIDATE_NON_FINAL_PARENTS__DIAGNOSTICCHAIN_MAP :
 				return validateNonFinalParents(
 					(DiagnosticChain) arguments.get(0),
@@ -1227,6 +1218,14 @@
 				return validateNoCyclesInGeneralization(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.STRUCTURED_CLASSIFIER___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
+				return validateSpecializeType(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.STRUCTURED_CLASSIFIER___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
+				return validateMapsToGeneralizationSet(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.STRUCTURED_CLASSIFIER___GET_ALL_ATTRIBUTES :
 				return getAllAttributes();
 			case UMLPackage.STRUCTURED_CLASSIFIER___GET_ALL_OPERATIONS :
@@ -1311,16 +1310,6 @@
 	protected static final int[] ATTRIBUTE_ESUBSETS = new int[]{UMLPackage.STRUCTURED_CLASSIFIER__OWNED_ATTRIBUTE};
 
 	/**
-	 * The array of subset feature identifiers for the '{@link #getRoles() <em>Role</em>}' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getRoles()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final int[] ROLE_ESUBSETS = new int[]{UMLPackage.STRUCTURED_CLASSIFIER__OWNED_ATTRIBUTE};
-
-	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -1365,6 +1354,16 @@
 		UMLPackage.STRUCTURED_CLASSIFIER__OWNED_CONNECTOR};
 
 	/**
+	 * The array of subset feature identifiers for the '{@link #getRoles() <em>Role</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRoles()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int[] ROLE_ESUBSETS = new int[]{UMLPackage.STRUCTURED_CLASSIFIER__OWNED_ATTRIBUTE};
+
+	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TemplateBindingImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TemplateBindingImpl.java
index 12d50ad..73409f0 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TemplateBindingImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TemplateBindingImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: TemplateBindingImpl.java,v 1.23 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -60,8 +59,8 @@
  * <ul>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.TemplateBindingImpl#getOwnedElements <em>Owned Element</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.TemplateBindingImpl#getTargets <em>Target</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.internal.impl.TemplateBindingImpl#getSources <em>Source</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.TemplateBindingImpl#getOwner <em>Owner</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.internal.impl.TemplateBindingImpl#getSources <em>Source</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.TemplateBindingImpl#getParameterSubstitutions <em>Parameter Substitution</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.TemplateBindingImpl#getSignature <em>Signature</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.TemplateBindingImpl#getBoundElement <em>Bound Element</em>}</li>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TemplateParameterImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TemplateParameterImpl.java
index 7d00651..2698f5b 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TemplateParameterImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TemplateParameterImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: TemplateParameterImpl.java,v 1.23 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -60,8 +59,8 @@
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.TemplateParameterImpl#getOwner <em>Owner</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.TemplateParameterImpl#getDefault <em>Default</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.TemplateParameterImpl#getParameteredElement <em>Parametered Element</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.internal.impl.TemplateParameterImpl#getOwnedParameteredElement <em>Owned Parametered Element</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.TemplateParameterImpl#getOwnedDefault <em>Owned Default</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.internal.impl.TemplateParameterImpl#getOwnedParameteredElement <em>Owned Parametered Element</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.internal.impl.TemplateParameterImpl#getSignature <em>Signature</em>}</li>
  * </ul>
  * </p>
@@ -93,16 +92,6 @@
 	protected ParameterableElement parameteredElement;
 
 	/**
-	 * The cached value of the '{@link #getOwnedParameteredElement() <em>Owned Parametered Element</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getOwnedParameteredElement()
-	 * @generated
-	 * @ordered
-	 */
-	protected ParameterableElement ownedParameteredElement;
-
-	/**
 	 * The cached value of the '{@link #getOwnedDefault() <em>Owned Default</em>}' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -113,6 +102,16 @@
 	protected ParameterableElement ownedDefault;
 
 	/**
+	 * The cached value of the '{@link #getOwnedParameteredElement() <em>Owned Parametered Element</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOwnedParameteredElement()
+	 * @generated
+	 * @ordered
+	 */
+	protected ParameterableElement ownedParameteredElement;
+
+	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -655,12 +654,12 @@
 			case UMLPackage.TEMPLATE_PARAMETER__OWNED_COMMENT :
 				return ((InternalEList<?>) getOwnedComments()).basicRemove(
 					otherEnd, msgs);
+			case UMLPackage.TEMPLATE_PARAMETER__OWNED_DEFAULT :
+				return basicSetOwnedDefault(null, msgs);
 			case UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT :
 				return basicSetOwnedParameteredElement(null, msgs);
 			case UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT :
 				return basicSetParameteredElement(null, msgs);
-			case UMLPackage.TEMPLATE_PARAMETER__OWNED_DEFAULT :
-				return basicSetOwnedDefault(null, msgs);
 			case UMLPackage.TEMPLATE_PARAMETER__SIGNATURE :
 				return basicSetSignature(null, msgs);
 		}
@@ -706,6 +705,10 @@
 				if (resolve)
 					return getDefault();
 				return basicGetDefault();
+			case UMLPackage.TEMPLATE_PARAMETER__OWNED_DEFAULT :
+				if (resolve)
+					return getOwnedDefault();
+				return basicGetOwnedDefault();
 			case UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT :
 				if (resolve)
 					return getOwnedParameteredElement();
@@ -714,10 +717,6 @@
 				if (resolve)
 					return getParameteredElement();
 				return basicGetParameteredElement();
-			case UMLPackage.TEMPLATE_PARAMETER__OWNED_DEFAULT :
-				if (resolve)
-					return getOwnedDefault();
-				return basicGetOwnedDefault();
 			case UMLPackage.TEMPLATE_PARAMETER__SIGNATURE :
 				if (resolve)
 					return getSignature();
@@ -748,15 +747,15 @@
 			case UMLPackage.TEMPLATE_PARAMETER__DEFAULT :
 				setDefault((ParameterableElement) newValue);
 				return;
+			case UMLPackage.TEMPLATE_PARAMETER__OWNED_DEFAULT :
+				setOwnedDefault((ParameterableElement) newValue);
+				return;
 			case UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT :
 				setOwnedParameteredElement((ParameterableElement) newValue);
 				return;
 			case UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT :
 				setParameteredElement((ParameterableElement) newValue);
 				return;
-			case UMLPackage.TEMPLATE_PARAMETER__OWNED_DEFAULT :
-				setOwnedDefault((ParameterableElement) newValue);
-				return;
 			case UMLPackage.TEMPLATE_PARAMETER__SIGNATURE :
 				setSignature((TemplateSignature) newValue);
 				return;
@@ -781,15 +780,15 @@
 			case UMLPackage.TEMPLATE_PARAMETER__DEFAULT :
 				setDefault((ParameterableElement) null);
 				return;
+			case UMLPackage.TEMPLATE_PARAMETER__OWNED_DEFAULT :
+				setOwnedDefault((ParameterableElement) null);
+				return;
 			case UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT :
 				setOwnedParameteredElement((ParameterableElement) null);
 				return;
 			case UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT :
 				setParameteredElement((ParameterableElement) null);
 				return;
-			case UMLPackage.TEMPLATE_PARAMETER__OWNED_DEFAULT :
-				setOwnedDefault((ParameterableElement) null);
-				return;
 			case UMLPackage.TEMPLATE_PARAMETER__SIGNATURE :
 				setSignature((TemplateSignature) null);
 				return;
@@ -815,12 +814,12 @@
 				return isSetOwner();
 			case UMLPackage.TEMPLATE_PARAMETER__DEFAULT :
 				return default_ != null;
+			case UMLPackage.TEMPLATE_PARAMETER__OWNED_DEFAULT :
+				return ownedDefault != null;
 			case UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT :
 				return ownedParameteredElement != null;
 			case UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT :
 				return parameteredElement != null;
-			case UMLPackage.TEMPLATE_PARAMETER__OWNED_DEFAULT :
-				return ownedDefault != null;
 			case UMLPackage.TEMPLATE_PARAMETER__SIGNATURE :
 				return basicGetSignature() != null;
 		}
@@ -962,8 +961,8 @@
 	 */
 	protected static final int[] OWNED_ELEMENT_ESUBSETS = new int[]{
 		UMLPackage.TEMPLATE_PARAMETER__OWNED_COMMENT,
-		UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT,
-		UMLPackage.TEMPLATE_PARAMETER__OWNED_DEFAULT};
+		UMLPackage.TEMPLATE_PARAMETER__OWNED_DEFAULT,
+		UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT};
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -973,8 +972,8 @@
 	@Override
 	public boolean isSetOwnedElements() {
 		return super.isSetOwnedElements()
-			|| eIsSet(UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT)
-			|| eIsSet(UMLPackage.TEMPLATE_PARAMETER__OWNED_DEFAULT);
+			|| eIsSet(UMLPackage.TEMPLATE_PARAMETER__OWNED_DEFAULT)
+			|| eIsSet(UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT);
 	}
 
 } //TemplateParameterImpl
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TestIdentityActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TestIdentityActionImpl.java
index 2ff05fd..259108d 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TestIdentityActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TestIdentityActionImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: TestIdentityActionImpl.java,v 1.29 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -549,8 +548,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.TEST_IDENTITY_ACTION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.TEST_IDENTITY_ACTION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.TEST_IDENTITY_ACTION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -628,8 +625,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.TEST_IDENTITY_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.TEST_IDENTITY_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.TEST_IDENTITY_ACTION__IN_STRUCTURED_NODE :
@@ -642,6 +637,8 @@
 				return getOutgoings();
 			case UMLPackage.TEST_IDENTITY_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.TEST_IDENTITY_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.TEST_IDENTITY_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.TEST_IDENTITY_ACTION__HANDLER :
@@ -889,8 +886,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.TEST_IDENTITY_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.TEST_IDENTITY_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.TEST_IDENTITY_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.TEST_IDENTITY_ACTION__IN_STRUCTURED_NODE :
@@ -902,6 +897,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.TEST_IDENTITY_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.TEST_IDENTITY_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.TEST_IDENTITY_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.TEST_IDENTITY_ACTION__HANDLER :
@@ -1022,10 +1019,6 @@
 				return allOwnedElements();
 			case UMLPackage.TEST_IDENTITY_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.TEST_IDENTITY_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.TEST_IDENTITY_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1034,6 +1027,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.TEST_IDENTITY_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.TEST_IDENTITY_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.TEST_IDENTITY_ACTION___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TimeEventImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TimeEventImpl.java
index 69a9ad5..af406d7 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TimeEventImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TimeEventImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: TimeEventImpl.java,v 1.28 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -603,10 +602,6 @@
 				return allOwnedElements();
 			case UMLPackage.TIME_EVENT___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.TIME_EVENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.TIME_EVENT___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -615,6 +610,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.TIME_EVENT___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.TIME_EVENT___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.TIME_EVENT___CREATE_USAGE__NAMEDELEMENT :
@@ -640,13 +639,13 @@
 				return isCompatibleWith((ParameterableElement) arguments.get(0));
 			case UMLPackage.TIME_EVENT___IS_TEMPLATE_PARAMETER :
 				return isTemplateParameter();
+			case UMLPackage.TIME_EVENT___VALIDATE_STARTING_TIME__DIAGNOSTICCHAIN_MAP :
+				return validateStartingTime((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.TIME_EVENT___VALIDATE_WHEN_NON_NEGATIVE__DIAGNOSTICCHAIN_MAP :
 				return validateWhenNonNegative(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.TIME_EVENT___VALIDATE_STARTING_TIME__DIAGNOSTICCHAIN_MAP :
-				return validateStartingTime((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TimeExpressionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TimeExpressionImpl.java
index b07f56a..2b9eb82 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TimeExpressionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TimeExpressionImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: TimeExpressionImpl.java,v 1.21 2010/09/28 21:02:12 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -622,10 +621,6 @@
 				return allOwnedElements();
 			case UMLPackage.TIME_EXPRESSION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.TIME_EXPRESSION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.TIME_EXPRESSION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -634,6 +629,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.TIME_EXPRESSION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.TIME_EXPRESSION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.TIME_EXPRESSION___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TransitionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TransitionImpl.java
index ac9f909..88193c4 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TransitionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TransitionImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: TransitionImpl.java,v 1.33 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -1595,10 +1594,6 @@
 				return allOwnedElements();
 			case UMLPackage.TRANSITION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.TRANSITION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.TRANSITION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1607,6 +1602,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.TRANSITION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.TRANSITION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.TRANSITION___CREATE_USAGE__NAMEDELEMENT :
@@ -1675,43 +1674,43 @@
 			case UMLPackage.TRANSITION___IS_REDEFINITION_CONTEXT_VALID__REDEFINABLEELEMENT :
 				return isRedefinitionContextValid((RedefinableElement) arguments
 					.get(0));
-			case UMLPackage.TRANSITION___VALIDATE_STATE_IS_EXTERNAL__DIAGNOSTICCHAIN_MAP :
-				return validateStateIsExternal(
-					(DiagnosticChain) arguments.get(0),
+			case UMLPackage.TRANSITION___VALIDATE_STATE_IS_LOCAL__DIAGNOSTICCHAIN_MAP :
+				return validateStateIsLocal((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.TRANSITION___VALIDATE_JOIN_SEGMENT_GUARDS__DIAGNOSTICCHAIN_MAP :
-				return validateJoinSegmentGuards(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.TRANSITION___VALIDATE_STATE_IS_INTERNAL__DIAGNOSTICCHAIN_MAP :
-				return validateStateIsInternal(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.TRANSITION___VALIDATE_OUTGOING_PSEUDOSTATES__DIAGNOSTICCHAIN_MAP :
-				return validateOutgoingPseudostates(
+			case UMLPackage.TRANSITION___VALIDATE_FORK_SEGMENT_GUARDS__DIAGNOSTICCHAIN_MAP :
+				return validateForkSegmentGuards(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.TRANSITION___VALIDATE_JOIN_SEGMENT_STATE__DIAGNOSTICCHAIN_MAP :
 				return validateJoinSegmentState(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.TRANSITION___VALIDATE_FORK_SEGMENT_STATE__DIAGNOSTICCHAIN_MAP :
-				return validateForkSegmentState(
+			case UMLPackage.TRANSITION___VALIDATE_INITIAL_TRANSITION__DIAGNOSTICCHAIN_MAP :
+				return validateInitialTransition(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.TRANSITION___VALIDATE_OUTGOING_PSEUDOSTATES__DIAGNOSTICCHAIN_MAP :
+				return validateOutgoingPseudostates(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.TRANSITION___VALIDATE_SIGNATURES_COMPATIBLE__DIAGNOSTICCHAIN_MAP :
 				return validateSignaturesCompatible(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.TRANSITION___VALIDATE_STATE_IS_LOCAL__DIAGNOSTICCHAIN_MAP :
-				return validateStateIsLocal((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.TRANSITION___VALIDATE_INITIAL_TRANSITION__DIAGNOSTICCHAIN_MAP :
-				return validateInitialTransition(
+			case UMLPackage.TRANSITION___VALIDATE_STATE_IS_INTERNAL__DIAGNOSTICCHAIN_MAP :
+				return validateStateIsInternal(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.TRANSITION___VALIDATE_FORK_SEGMENT_GUARDS__DIAGNOSTICCHAIN_MAP :
-				return validateForkSegmentGuards(
+			case UMLPackage.TRANSITION___VALIDATE_JOIN_SEGMENT_GUARDS__DIAGNOSTICCHAIN_MAP :
+				return validateJoinSegmentGuards(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.TRANSITION___VALIDATE_FORK_SEGMENT_STATE__DIAGNOSTICCHAIN_MAP :
+				return validateForkSegmentState(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.TRANSITION___VALIDATE_STATE_IS_EXTERNAL__DIAGNOSTICCHAIN_MAP :
+				return validateStateIsExternal(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.TRANSITION___CONTAINING_STATE_MACHINE :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TypeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TypeImpl.java
index a053960..84d06e0 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TypeImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TypeImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: TypeImpl.java,v 1.25 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -472,10 +471,6 @@
 				return allOwnedElements();
 			case UMLPackage.TYPE___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.TYPE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.TYPE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -484,6 +479,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.TYPE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.TYPE___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.TYPE___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UMLFactoryImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UMLFactoryImpl.java
index 168802c..a4ad411 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UMLFactoryImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UMLFactoryImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 205188
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: UMLFactoryImpl.java,v 1.20 2008/10/02 20:56:21 jbruck Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -289,6 +288,10 @@
 				return createClass();
 			case UMLPackage.STRING_EXPRESSION :
 				return createStringExpression();
+			case UMLPackage.EXPRESSION :
+				return createExpression();
+			case UMLPackage.PACKAGE :
+				return createPackage();
 			case UMLPackage.TEMPLATE_SIGNATURE :
 				return createTemplateSignature();
 			case UMLPackage.TEMPLATE_PARAMETER :
@@ -297,10 +300,6 @@
 				return createTemplateBinding();
 			case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION :
 				return createTemplateParameterSubstitution();
-			case UMLPackage.EXPRESSION :
-				return createExpression();
-			case UMLPackage.PACKAGE :
-				return createPackage();
 			case UMLPackage.PACKAGE_MERGE :
 				return createPackageMerge();
 			case UMLPackage.PROFILE_APPLICATION :
@@ -331,14 +330,10 @@
 				return createManifestation();
 			case UMLPackage.OPERATION :
 				return createOperation();
-			case UMLPackage.PARAMETER :
-				return createParameter();
-			case UMLPackage.PARAMETER_SET :
-				return createParameterSet();
-			case UMLPackage.CONSTRAINT :
-				return createConstraint();
-			case UMLPackage.DATA_TYPE :
-				return createDataType();
+			case UMLPackage.INTERFACE_REALIZATION :
+				return createInterfaceRealization();
+			case UMLPackage.REALIZATION :
+				return createRealization();
 			case UMLPackage.INTERFACE :
 				return createInterface();
 			case UMLPackage.RECEPTION :
@@ -361,10 +356,18 @@
 				return createTrigger();
 			case UMLPackage.PORT :
 				return createPort();
+			case UMLPackage.CONSTRAINT :
+				return createConstraint();
 			case UMLPackage.TRANSITION :
 				return createTransition();
 			case UMLPackage.PROTOCOL_CONFORMANCE :
 				return createProtocolConformance();
+			case UMLPackage.PARAMETER :
+				return createParameter();
+			case UMLPackage.PARAMETER_SET :
+				return createParameterSet();
+			case UMLPackage.DATA_TYPE :
+				return createDataType();
 			case UMLPackage.OPERATION_TEMPLATE_PARAMETER :
 				return createOperationTemplateParameter();
 			case UMLPackage.EXTENSION_END :
@@ -387,8 +390,6 @@
 				return createCollaborationUse();
 			case UMLPackage.COLLABORATION :
 				return createCollaboration();
-			case UMLPackage.CONNECTOR :
-				return createConnector();
 			case UMLPackage.GENERALIZATION :
 				return createGeneralization();
 			case UMLPackage.GENERALIZATION_SET :
@@ -405,12 +406,10 @@
 				return createInclude();
 			case UMLPackage.SUBSTITUTION :
 				return createSubstitution();
-			case UMLPackage.REALIZATION :
-				return createRealization();
 			case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER :
 				return createClassifierTemplateParameter();
-			case UMLPackage.INTERFACE_REALIZATION :
-				return createInterfaceRealization();
+			case UMLPackage.CONNECTOR :
+				return createConnector();
 			case UMLPackage.IMAGE :
 				return createImage();
 			case UMLPackage.OPAQUE_EXPRESSION :
@@ -682,16 +681,16 @@
 			case UMLPackage.CALL_CONCURRENCY_KIND :
 				return createCallConcurrencyKindFromString(eDataType,
 					initialValue);
+			case UMLPackage.TRANSITION_KIND :
+				return createTransitionKindFromString(eDataType, initialValue);
+			case UMLPackage.PSEUDOSTATE_KIND :
+				return createPseudostateKindFromString(eDataType, initialValue);
 			case UMLPackage.PARAMETER_DIRECTION_KIND :
 				return createParameterDirectionKindFromString(eDataType,
 					initialValue);
 			case UMLPackage.PARAMETER_EFFECT_KIND :
 				return createParameterEffectKindFromString(eDataType,
 					initialValue);
-			case UMLPackage.TRANSITION_KIND :
-				return createTransitionKindFromString(eDataType, initialValue);
-			case UMLPackage.PSEUDOSTATE_KIND :
-				return createPseudostateKindFromString(eDataType, initialValue);
 			case UMLPackage.AGGREGATION_KIND :
 				return createAggregationKindFromString(eDataType, initialValue);
 			case UMLPackage.CONNECTOR_KIND :
@@ -727,16 +726,16 @@
 			case UMLPackage.CALL_CONCURRENCY_KIND :
 				return convertCallConcurrencyKindToString(eDataType,
 					instanceValue);
+			case UMLPackage.TRANSITION_KIND :
+				return convertTransitionKindToString(eDataType, instanceValue);
+			case UMLPackage.PSEUDOSTATE_KIND :
+				return convertPseudostateKindToString(eDataType, instanceValue);
 			case UMLPackage.PARAMETER_DIRECTION_KIND :
 				return convertParameterDirectionKindToString(eDataType,
 					instanceValue);
 			case UMLPackage.PARAMETER_EFFECT_KIND :
 				return convertParameterEffectKindToString(eDataType,
 					instanceValue);
-			case UMLPackage.TRANSITION_KIND :
-				return convertTransitionKindToString(eDataType, instanceValue);
-			case UMLPackage.PSEUDOSTATE_KIND :
-				return convertPseudostateKindToString(eDataType, instanceValue);
 			case UMLPackage.AGGREGATION_KIND :
 				return convertAggregationKindToString(eDataType, instanceValue);
 			case UMLPackage.CONNECTOR_KIND :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UMLPackageImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UMLPackageImpl.java
index 58b964f..a5d9f85 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UMLPackageImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UMLPackageImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 205188, 247980
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: UMLPackageImpl.java,v 1.26 2010/09/28 21:02:12 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -39,7 +38,6 @@
 
 import org.eclipse.emf.ecore.xmi.impl.EcoreResourceFactoryImpl;
 
-import org.eclipse.uml2.types.TypesPackage;
 import org.eclipse.uml2.uml.UMLFactory;
 import org.eclipse.uml2.uml.UMLPackage;
 
@@ -1898,7 +1896,6 @@
 
 		// Initialize simple dependencies
 		EcorePackage.eINSTANCE.eClass();
-		TypesPackage.eINSTANCE.eClass();
 
 		// Load packages
 		theUMLPackage.loadPackage();
@@ -2326,7 +2323,7 @@
 	public EClass getDirectedRelationship() {
 		if (directedRelationshipEClass == null) {
 			directedRelationshipEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(2);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(23);
 		}
 		return directedRelationshipEClass;
 	}
@@ -2359,7 +2356,7 @@
 	public EClass getRelationship() {
 		if (relationshipEClass == null) {
 			relationshipEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(3);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(24);
 		}
 		return relationshipEClass;
 	}
@@ -2394,7 +2391,7 @@
 	public EClass getValueSpecification() {
 		if (valueSpecificationEClass == null) {
 			valueSpecificationEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(20);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(15);
 		}
 		return valueSpecificationEClass;
 	}
@@ -2470,7 +2467,7 @@
 	public EClass getTypedElement() {
 		if (typedElementEClass == null) {
 			typedElementEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(21);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(16);
 		}
 		return typedElementEClass;
 	}
@@ -2492,7 +2489,7 @@
 	public EClass getNamedElement() {
 		if (namedElementEClass == null) {
 			namedElementEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(11);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(12);
 		}
 		return namedElementEClass;
 	}
@@ -2557,15 +2554,6 @@
 	 * @generated
 	 */
 	public EOperation getNamedElement__ValidateHasNoQualifiedName__DiagnosticChain_Map() {
-		return getNamedElement().getEOperations().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getNamedElement__ValidateHasQualifiedName__DiagnosticChain_Map() {
 		return getNamedElement().getEOperations().get(1);
 	}
 
@@ -2574,7 +2562,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EOperation getNamedElement__ValidateVisibilityNeedsOwnership__DiagnosticChain_Map() {
+	public EOperation getNamedElement__ValidateHasQualifiedName__DiagnosticChain_Map() {
 		return getNamedElement().getEOperations().get(0);
 	}
 
@@ -2583,6 +2571,15 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EOperation getNamedElement__ValidateVisibilityNeedsOwnership__DiagnosticChain_Map() {
+		return getNamedElement().getEOperations().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EOperation getNamedElement__CreateDependency__NamedElement() {
 		return getNamedElement().getEOperations().get(3);
 	}
@@ -2707,7 +2704,7 @@
 	public EClass getPackageableElement() {
 		if (packageableElementEClass == null) {
 			packageableElementEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(23);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(2);
 		}
 		return packageableElementEClass;
 	}
@@ -2720,7 +2717,7 @@
 	public EClass getParameterableElement() {
 		if (parameterableElementEClass == null) {
 			parameterableElementEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(16);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(3);
 		}
 		return parameterableElementEClass;
 	}
@@ -2771,7 +2768,7 @@
 	public EClass getTemplateParameter() {
 		if (templateParameterEClass == null) {
 			templateParameterEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(15);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(21);
 		}
 		return templateParameterEClass;
 	}
@@ -2793,7 +2790,7 @@
 	 */
 	public EReference getTemplateParameter_OwnedParameteredElement() {
 		return (EReference) getTemplateParameter().getEStructuralFeatures()
-			.get(1);
+			.get(2);
 	}
 
 	/**
@@ -2813,7 +2810,7 @@
 	 */
 	public EReference getTemplateParameter_OwnedDefault() {
 		return (EReference) getTemplateParameter().getEStructuralFeatures()
-			.get(3);
+			.get(1);
 	}
 
 	/**
@@ -2832,7 +2829,7 @@
 	 */
 	public EReference getTemplateParameter_ParameteredElement() {
 		return (EReference) getTemplateParameter().getEStructuralFeatures()
-			.get(2);
+			.get(3);
 	}
 
 	/**
@@ -2843,7 +2840,7 @@
 	public EClass getTemplateSignature() {
 		if (templateSignatureEClass == null) {
 			templateSignatureEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(14);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(20);
 		}
 		return templateSignatureEClass;
 	}
@@ -2895,7 +2892,7 @@
 	public EClass getTemplateableElement() {
 		if (templateableElementEClass == null) {
 			templateableElementEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(13);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(19);
 		}
 		return templateableElementEClass;
 	}
@@ -2946,7 +2943,7 @@
 	public EClass getTemplateBinding() {
 		if (templateBindingEClass == null) {
 			templateBindingEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(17);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(22);
 		}
 		return templateBindingEClass;
 	}
@@ -3007,7 +3004,7 @@
 	public EClass getTemplateParameterSubstitution() {
 		if (templateParameterSubstitutionEClass == null) {
 			templateParameterSubstitutionEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(18);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(25);
 		}
 		return templateParameterSubstitutionEClass;
 	}
@@ -3069,7 +3066,7 @@
 	public EClass getNamespace() {
 		if (namespaceEClass == null) {
 			namespaceEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(10);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(11);
 		}
 		return namespaceEClass;
 	}
@@ -3282,7 +3279,7 @@
 	 * @generated
 	 */
 	public EOperation getElementImport__ValidateVisibilityPublicOrPrivate__DiagnosticChain_Map() {
-		return getElementImport().getEOperations().get(1);
+		return getElementImport().getEOperations().get(0);
 	}
 
 	/**
@@ -3291,7 +3288,7 @@
 	 * @generated
 	 */
 	public EOperation getElementImport__ValidateImportedElementIsPublic__DiagnosticChain_Map() {
-		return getElementImport().getEOperations().get(0);
+		return getElementImport().getEOperations().get(1);
 	}
 
 	/**
@@ -3311,7 +3308,7 @@
 	public EClass getPackageImport() {
 		if (packageImportEClass == null) {
 			packageImportEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(30);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(31);
 		}
 		return packageImportEClass;
 	}
@@ -3360,7 +3357,7 @@
 	public EClass getPackage() {
 		if (packageEClass == null) {
 			packageEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(25);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(18);
 		}
 		return packageEClass;
 	}
@@ -3692,7 +3689,7 @@
 	public EClass getType() {
 		if (typeEClass == null) {
 			typeEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(22);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(17);
 		}
 		return typeEClass;
 	}
@@ -3961,15 +3958,6 @@
 	 * @generated
 	 */
 	public EOperation getStereotype__ValidateBinaryAssociationsOnly__DiagnosticChain_Map() {
-		return getStereotype().getEOperations().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getStereotype__ValidateNameNotClash__DiagnosticChain_Map() {
 		return getStereotype().getEOperations().get(2);
 	}
 
@@ -3978,8 +3966,17 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EOperation getStereotype__ValidateNameNotClash__DiagnosticChain_Map() {
+		return getStereotype().getEOperations().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EOperation getStereotype__ValidateAssociationEndOwnership__DiagnosticChain_Map() {
-		return getStereotype().getEOperations().get(3);
+		return getStereotype().getEOperations().get(0);
 	}
 
 	/**
@@ -3988,7 +3985,7 @@
 	 * @generated
 	 */
 	public EOperation getStereotype__ValidateGeneralize__DiagnosticChain_Map() {
-		return getStereotype().getEOperations().get(1);
+		return getStereotype().getEOperations().get(3);
 	}
 
 	/**
@@ -4201,7 +4198,7 @@
 	public EClass getBehavioredClassifier() {
 		if (behavioredClassifierEClass == null) {
 			behavioredClassifierEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(8);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(52);
 		}
 		return behavioredClassifierEClass;
 	}
@@ -4271,7 +4268,7 @@
 	public EClass getClassifier() {
 		if (classifierEClass == null) {
 			classifierEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(9);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(10);
 		}
 		return classifierEClass;
 	}
@@ -4372,24 +4369,6 @@
 	 * @generated
 	 */
 	public EOperation getClassifier__ValidateNoCyclesInGeneralization__DiagnosticChain_Map() {
-		return getClassifier().getEOperations().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getClassifier__ValidateSpecializeType__DiagnosticChain_Map() {
-		return getClassifier().getEOperations().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getClassifier__ValidateMapsToGeneralizationSet__DiagnosticChain_Map() {
 		return getClassifier().getEOperations().get(1);
 	}
 
@@ -4398,7 +4377,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EOperation getClassifier__ValidateNonFinalParents__DiagnosticChain_Map() {
+	public EOperation getClassifier__ValidateSpecializeType__DiagnosticChain_Map() {
 		return getClassifier().getEOperations().get(2);
 	}
 
@@ -4407,6 +4386,24 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EOperation getClassifier__ValidateMapsToGeneralizationSet__DiagnosticChain_Map() {
+		return getClassifier().getEOperations().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EOperation getClassifier__ValidateNonFinalParents__DiagnosticChain_Map() {
+		return getClassifier().getEOperations().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EOperation getClassifier__GetAllAttributes() {
 		return getClassifier().getEOperations().get(4);
 	}
@@ -4599,7 +4596,7 @@
 	public EClass getRedefinableElement() {
 		if (redefinableElementEClass == null) {
 			redefinableElementEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(47);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(38);
 		}
 		return redefinableElementEClass;
 	}
@@ -4687,7 +4684,7 @@
 	public EClass getGeneralization() {
 		if (generalizationEClass == null) {
 			generalizationEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(89);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(90);
 		}
 		return generalizationEClass;
 	}
@@ -4745,7 +4742,7 @@
 	public EClass getGeneralizationSet() {
 		if (generalizationSetEClass == null) {
 			generalizationSetEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(90);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(91);
 		}
 		return generalizationSetEClass;
 	}
@@ -4796,7 +4793,7 @@
 	 * @generated
 	 */
 	public EOperation getGeneralizationSet__ValidateGeneralizationSameClassifier__DiagnosticChain_Map() {
-		return getGeneralizationSet().getEOperations().get(0);
+		return getGeneralizationSet().getEOperations().get(1);
 	}
 
 	/**
@@ -4805,7 +4802,7 @@
 	 * @generated
 	 */
 	public EOperation getGeneralizationSet__ValidateMapsToGeneralizationSet__DiagnosticChain_Map() {
-		return getGeneralizationSet().getEOperations().get(1);
+		return getGeneralizationSet().getEOperations().get(0);
 	}
 
 	/**
@@ -4816,7 +4813,7 @@
 	public EClass getFeature() {
 		if (featureEClass == null) {
 			featureEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(46);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(37);
 		}
 		return featureEClass;
 	}
@@ -4847,7 +4844,7 @@
 	public EClass getUseCase() {
 		if (useCaseEClass == null) {
 			useCaseEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(92);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(93);
 		}
 		return useCaseEClass;
 	}
@@ -4894,15 +4891,6 @@
 	 * @generated
 	 */
 	public EOperation getUseCase__ValidateMustHaveName__DiagnosticChain_Map() {
-		return getUseCase().getEOperations().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getUseCase__ValidateBinaryAssociations__DiagnosticChain_Map() {
 		return getUseCase().getEOperations().get(0);
 	}
 
@@ -4911,8 +4899,17 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EOperation getUseCase__ValidateBinaryAssociations__DiagnosticChain_Map() {
+		return getUseCase().getEOperations().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EOperation getUseCase__ValidateNoAssociationToUseCase__DiagnosticChain_Map() {
-		return getUseCase().getEOperations().get(1);
+		return getUseCase().getEOperations().get(3);
 	}
 
 	/**
@@ -4921,7 +4918,7 @@
 	 * @generated
 	 */
 	public EOperation getUseCase__ValidateCannotIncludeSelf__DiagnosticChain_Map() {
-		return getUseCase().getEOperations().get(2);
+		return getUseCase().getEOperations().get(1);
 	}
 
 	/**
@@ -4941,7 +4938,7 @@
 	public EClass getInclude() {
 		if (includeEClass == null) {
 			includeEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(95);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(96);
 		}
 		return includeEClass;
 	}
@@ -4972,7 +4969,7 @@
 	public EClass getExtend() {
 		if (extendEClass == null) {
 			extendEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(93);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(94);
 		}
 		return extendEClass;
 	}
@@ -5030,7 +5027,7 @@
 	public EClass getConstraint() {
 		if (constraintEClass == null) {
 			constraintEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(54);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(68);
 		}
 		return constraintEClass;
 	}
@@ -5068,7 +5065,7 @@
 	 * @generated
 	 */
 	public EOperation getConstraint__ValidateNotApplyToSelf__DiagnosticChain_Map() {
-		return getConstraint().getEOperations().get(2);
+		return getConstraint().getEOperations().get(0);
 	}
 
 	/**
@@ -5086,7 +5083,7 @@
 	 * @generated
 	 */
 	public EOperation getConstraint__ValidateBooleanValue__DiagnosticChain_Map() {
-		return getConstraint().getEOperations().get(0);
+		return getConstraint().getEOperations().get(2);
 	}
 
 	/**
@@ -5106,7 +5103,7 @@
 	public EClass getExtensionPoint() {
 		if (extensionPointEClass == null) {
 			extensionPointEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(94);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(95);
 		}
 		return extensionPointEClass;
 	}
@@ -5137,7 +5134,7 @@
 	public EClass getSubstitution() {
 		if (substitutionEClass == null) {
 			substitutionEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(96);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(97);
 		}
 		return substitutionEClass;
 	}
@@ -5168,7 +5165,7 @@
 	public EClass getRealization() {
 		if (realizationEClass == null) {
 			realizationEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(97);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(54);
 		}
 		return realizationEClass;
 	}
@@ -5254,7 +5251,7 @@
 	 * @generated
 	 */
 	public EOperation getOpaqueExpression__ValidateLanguageBodySize__DiagnosticChain_Map() {
-		return getOpaqueExpression().getEOperations().get(0);
+		return getOpaqueExpression().getEOperations().get(2);
 	}
 
 	/**
@@ -5263,7 +5260,7 @@
 	 * @generated
 	 */
 	public EOperation getOpaqueExpression__ValidateOnlyReturnResultParameters__DiagnosticChain_Map() {
-		return getOpaqueExpression().getEOperations().get(2);
+		return getOpaqueExpression().getEOperations().get(0);
 	}
 
 	/**
@@ -5328,7 +5325,7 @@
 	public EClass getParameter() {
 		if (parameterEClass == null) {
 			parameterEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(50);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(73);
 		}
 		return parameterEClass;
 	}
@@ -5411,7 +5408,7 @@
 	 * @generated
 	 */
 	public EOperation getParameter__ValidateConnectorEnd__DiagnosticChain_Map() {
-		return getParameter().getEOperations().get(2);
+		return getParameter().getEOperations().get(1);
 	}
 
 	/**
@@ -5429,7 +5426,7 @@
 	 * @generated
 	 */
 	public EOperation getParameter__ValidateNotException__DiagnosticChain_Map() {
-		return getParameter().getEOperations().get(1);
+		return getParameter().getEOperations().get(2);
 	}
 
 	/**
@@ -5438,7 +5435,7 @@
 	 * @generated
 	 */
 	public EOperation getParameter__ValidateReentrantBehaviors__DiagnosticChain_Map() {
-		return getParameter().getEOperations().get(3);
+		return getParameter().getEOperations().get(0);
 	}
 
 	/**
@@ -5447,7 +5444,7 @@
 	 * @generated
 	 */
 	public EOperation getParameter__ValidateInAndOut__DiagnosticChain_Map() {
-		return getParameter().getEOperations().get(0);
+		return getParameter().getEOperations().get(3);
 	}
 
 	/**
@@ -5619,15 +5616,6 @@
 	 * @generated
 	 */
 	public EOperation getMultiplicityElement__ValidateLowerGe0__DiagnosticChain_Map() {
-		return getMultiplicityElement().getEOperations().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getMultiplicityElement__ValidateUpperGeLower__DiagnosticChain_Map() {
 		return getMultiplicityElement().getEOperations().get(0);
 	}
 
@@ -5636,8 +5624,17 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EOperation getMultiplicityElement__ValidateUpperGeLower__DiagnosticChain_Map() {
+		return getMultiplicityElement().getEOperations().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EOperation getMultiplicityElement__ValidateValueSpecificationNoSideEffects__DiagnosticChain_Map() {
-		return getMultiplicityElement().getEOperations().get(2);
+		return getMultiplicityElement().getEOperations().get(3);
 	}
 
 	/**
@@ -5646,7 +5643,7 @@
 	 * @generated
 	 */
 	public EOperation getMultiplicityElement__ValidateValueSpecificationConstant__DiagnosticChain_Map() {
-		return getMultiplicityElement().getEOperations().get(3);
+		return getMultiplicityElement().getEOperations().get(2);
 	}
 
 	/**
@@ -5756,7 +5753,7 @@
 	public EClass getConnectableElement() {
 		if (connectableElementEClass == null) {
 			connectableElementEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(34);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(39);
 		}
 		return connectableElementEClass;
 	}
@@ -5788,7 +5785,7 @@
 	public EClass getConnectorEnd() {
 		if (connectorEndEClass == null) {
 			connectorEndEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(35);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(40);
 		}
 		return connectorEndEClass;
 	}
@@ -5826,7 +5823,7 @@
 	 * @generated
 	 */
 	public EOperation getConnectorEnd__ValidatePartWithPortEmpty__DiagnosticChain_Map() {
-		return getConnectorEnd().getEOperations().get(1);
+		return getConnectorEnd().getEOperations().get(3);
 	}
 
 	/**
@@ -5844,7 +5841,7 @@
 	 * @generated
 	 */
 	public EOperation getConnectorEnd__ValidateSelfPartWithPort__DiagnosticChain_Map() {
-		return getConnectorEnd().getEOperations().get(3);
+		return getConnectorEnd().getEOperations().get(1);
 	}
 
 	/**
@@ -5873,7 +5870,7 @@
 	public EClass getProperty() {
 		if (propertyEClass == null) {
 			propertyEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(33);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(34);
 		}
 		return propertyEClass;
 	}
@@ -5893,7 +5890,7 @@
 	 * @generated
 	 */
 	public EReference getProperty_Datatype() {
-		return (EReference) getProperty().getEStructuralFeatures().get(0);
+		return (EReference) getProperty().getEStructuralFeatures().get(1);
 	}
 
 	/**
@@ -5902,7 +5899,7 @@
 	 * @generated
 	 */
 	public EReference getProperty_Interface() {
-		return (EReference) getProperty().getEStructuralFeatures().get(1);
+		return (EReference) getProperty().getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -6046,7 +6043,7 @@
 	 * @generated
 	 */
 	public EOperation getProperty__ValidateSubsettingContextConforms__DiagnosticChain_Map() {
-		return getProperty().getEOperations().get(0);
+		return getProperty().getEOperations().get(5);
 	}
 
 	/**
@@ -6055,15 +6052,6 @@
 	 * @generated
 	 */
 	public EOperation getProperty__ValidateRedefinedPropertyInherited__DiagnosticChain_Map() {
-		return getProperty().getEOperations().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getProperty__ValidateSubsettingRules__DiagnosticChain_Map() {
 		return getProperty().getEOperations().get(4);
 	}
 
@@ -6072,16 +6060,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EOperation getProperty__ValidateDerivedUnionIsDerived__DiagnosticChain_Map() {
-		return getProperty().getEOperations().get(6);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getProperty__ValidateDerivedUnionIsReadOnly__DiagnosticChain_Map() {
+	public EOperation getProperty__ValidateSubsettingRules__DiagnosticChain_Map() {
 		return getProperty().getEOperations().get(1);
 	}
 
@@ -6090,16 +6069,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EOperation getProperty__ValidateSubsettedPropertyNames__DiagnosticChain_Map() {
-		return getProperty().getEOperations().get(8);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getProperty__ValidateDeploymentTarget__DiagnosticChain_Map() {
+	public EOperation getProperty__ValidateDerivedUnionIsDerived__DiagnosticChain_Map() {
 		return getProperty().getEOperations().get(7);
 	}
 
@@ -6108,8 +6078,35 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EOperation getProperty__ValidateDerivedUnionIsReadOnly__DiagnosticChain_Map() {
+		return getProperty().getEOperations().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EOperation getProperty__ValidateSubsettedPropertyNames__DiagnosticChain_Map() {
+		return getProperty().getEOperations().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EOperation getProperty__ValidateDeploymentTarget__DiagnosticChain_Map() {
+		return getProperty().getEOperations().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EOperation getProperty__ValidateBindingToAttribute__DiagnosticChain_Map() {
-		return getProperty().getEOperations().get(5);
+		return getProperty().getEOperations().get(3);
 	}
 
 	/**
@@ -6291,7 +6288,7 @@
 	public EClass getDeploymentTarget() {
 		if (deploymentTargetEClass == null) {
 			deploymentTargetEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(38);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(42);
 		}
 		return deploymentTargetEClass;
 	}
@@ -6333,7 +6330,7 @@
 	public EClass getDeployment() {
 		if (deploymentEClass == null) {
 			deploymentEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(39);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(43);
 		}
 		return deploymentEClass;
 	}
@@ -6373,7 +6370,7 @@
 	public EClass getDeployedArtifact() {
 		if (deployedArtifactEClass == null) {
 			deployedArtifactEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(42);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(46);
 		}
 		return deployedArtifactEClass;
 	}
@@ -6386,7 +6383,7 @@
 	public EClass getDeploymentSpecification() {
 		if (deploymentSpecificationEClass == null) {
 			deploymentSpecificationEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(40);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(44);
 		}
 		return deploymentSpecificationEClass;
 	}
@@ -6427,7 +6424,7 @@
 	 * @generated
 	 */
 	public EOperation getDeploymentSpecification__ValidateDeployedElements__DiagnosticChain_Map() {
-		return getDeploymentSpecification().getEOperations().get(1);
+		return getDeploymentSpecification().getEOperations().get(0);
 	}
 
 	/**
@@ -6436,7 +6433,7 @@
 	 * @generated
 	 */
 	public EOperation getDeploymentSpecification__ValidateDeploymentTarget__DiagnosticChain_Map() {
-		return getDeploymentSpecification().getEOperations().get(0);
+		return getDeploymentSpecification().getEOperations().get(1);
 	}
 
 	/**
@@ -6447,7 +6444,7 @@
 	public EClass getArtifact() {
 		if (artifactEClass == null) {
 			artifactEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(41);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(45);
 		}
 		return artifactEClass;
 	}
@@ -6523,7 +6520,7 @@
 	public EClass getManifestation() {
 		if (manifestationEClass == null) {
 			manifestationEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(43);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(47);
 		}
 		return manifestationEClass;
 	}
@@ -6545,7 +6542,7 @@
 	public EClass getOperation() {
 		if (operationEClass == null) {
 			operationEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(44);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(48);
 		}
 		return operationEClass;
 	}
@@ -6628,7 +6625,7 @@
 	 * @generated
 	 */
 	public EReference getOperation_Datatype() {
-		return (EReference) getOperation().getEStructuralFeatures().get(2);
+		return (EReference) getOperation().getEStructuralFeatures().get(3);
 	}
 
 	/**
@@ -6637,7 +6634,7 @@
 	 * @generated
 	 */
 	public EReference getOperation_BodyCondition() {
-		return (EReference) getOperation().getEStructuralFeatures().get(0);
+		return (EReference) getOperation().getEStructuralFeatures().get(1);
 	}
 
 	/**
@@ -6781,7 +6778,7 @@
 	 * @generated
 	 */
 	public EReference getOperation_Interface() {
-		return (EReference) getOperation().getEStructuralFeatures().get(3);
+		return (EReference) getOperation().getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -6790,7 +6787,7 @@
 	 * @generated
 	 */
 	public EReference getOperation_Class() {
-		return (EReference) getOperation().getEStructuralFeatures().get(1);
+		return (EReference) getOperation().getEStructuralFeatures().get(2);
 	}
 
 	/**
@@ -6801,7 +6798,7 @@
 	public EClass getBehavioralFeature() {
 		if (behavioralFeatureEClass == null) {
 			behavioralFeatureEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(45);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(49);
 		}
 		return behavioralFeatureEClass;
 	}
@@ -6883,7 +6880,7 @@
 	public EClass getBehavior() {
 		if (behaviorEClass == null) {
 			behaviorEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(49);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(51);
 		}
 		return behaviorEClass;
 	}
@@ -6966,7 +6963,7 @@
 	 * @generated
 	 */
 	public EOperation getBehavior__ValidateParametersMatch__DiagnosticChain_Map() {
-		return getBehavior().getEOperations().get(2);
+		return getBehavior().getEOperations().get(0);
 	}
 
 	/**
@@ -6975,15 +6972,6 @@
 	 * @generated
 	 */
 	public EOperation getBehavior__ValidateFeatureOfContextClassifier__DiagnosticChain_Map() {
-		return getBehavior().getEOperations().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getBehavior__ValidateMustRealize__DiagnosticChain_Map() {
 		return getBehavior().getEOperations().get(1);
 	}
 
@@ -6992,8 +6980,17 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EOperation getBehavior__ValidateMustRealize__DiagnosticChain_Map() {
+		return getBehavior().getEOperations().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EOperation getBehavior__ValidateMostOneBehaviour__DiagnosticChain_Map() {
-		return getBehavior().getEOperations().get(0);
+		return getBehavior().getEOperations().get(3);
 	}
 
 	/**
@@ -7013,7 +7010,7 @@
 	public EClass getParameterSet() {
 		if (parameterSetEClass == null) {
 			parameterSetEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(53);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(76);
 		}
 		return parameterSetEClass;
 	}
@@ -7042,7 +7039,7 @@
 	 * @generated
 	 */
 	public EOperation getParameterSet__ValidateSameParameterizedEntity__DiagnosticChain_Map() {
-		return getParameterSet().getEOperations().get(0);
+		return getParameterSet().getEOperations().get(2);
 	}
 
 	/**
@@ -7060,7 +7057,7 @@
 	 * @generated
 	 */
 	public EOperation getParameterSet__ValidateTwoParameterSets__DiagnosticChain_Map() {
-		return getParameterSet().getEOperations().get(2);
+		return getParameterSet().getEOperations().get(0);
 	}
 
 	/**
@@ -7071,7 +7068,7 @@
 	public EClass getDataType() {
 		if (dataTypeEClass == null) {
 			dataTypeEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(55);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(77);
 		}
 		return dataTypeEClass;
 	}
@@ -7120,7 +7117,7 @@
 	public EClass getInterface() {
 		if (interfaceEClass == null) {
 			interfaceEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(56);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(55);
 		}
 		return interfaceEClass;
 	}
@@ -7149,7 +7146,7 @@
 	 * @generated
 	 */
 	public EReference getInterface_RedefinedInterface() {
-		return (EReference) getInterface().getEStructuralFeatures().get(4);
+		return (EReference) getInterface().getEStructuralFeatures().get(5);
 	}
 
 	/**
@@ -7158,7 +7155,7 @@
 	 * @generated
 	 */
 	public EReference getInterface_OwnedReception() {
-		return (EReference) getInterface().getEStructuralFeatures().get(2);
+		return (EReference) getInterface().getEStructuralFeatures().get(3);
 	}
 
 	/**
@@ -7167,7 +7164,7 @@
 	 * @generated
 	 */
 	public EReference getInterface_Protocol() {
-		return (EReference) getInterface().getEStructuralFeatures().get(3);
+		return (EReference) getInterface().getEStructuralFeatures().get(4);
 	}
 
 	/**
@@ -7203,7 +7200,7 @@
 	 * @generated
 	 */
 	public EReference getInterface_OwnedOperation() {
-		return (EReference) getInterface().getEStructuralFeatures().get(5);
+		return (EReference) getInterface().getEStructuralFeatures().get(2);
 	}
 
 	/**
@@ -7214,7 +7211,7 @@
 	public EClass getReception() {
 		if (receptionEClass == null) {
 			receptionEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(57);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(56);
 		}
 		return receptionEClass;
 	}
@@ -7245,7 +7242,7 @@
 	public EClass getSignal() {
 		if (signalEClass == null) {
 			signalEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(58);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(57);
 		}
 		return signalEClass;
 	}
@@ -7276,7 +7273,7 @@
 	public EClass getProtocolStateMachine() {
 		if (protocolStateMachineEClass == null) {
 			protocolStateMachineEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(59);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(58);
 		}
 		return protocolStateMachineEClass;
 	}
@@ -7297,15 +7294,6 @@
 	 * @generated
 	 */
 	public EOperation getProtocolStateMachine__ValidateProtocolTransitions__DiagnosticChain_Map() {
-		return getProtocolStateMachine().getEOperations().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getProtocolStateMachine__ValidateEntryExitDo__DiagnosticChain_Map() {
 		return getProtocolStateMachine().getEOperations().get(1);
 	}
 
@@ -7314,7 +7302,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EOperation getProtocolStateMachine__ValidateDeepOrShallowHistory__DiagnosticChain_Map() {
+	public EOperation getProtocolStateMachine__ValidateEntryExitDo__DiagnosticChain_Map() {
 		return getProtocolStateMachine().getEOperations().get(0);
 	}
 
@@ -7323,7 +7311,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EOperation getProtocolStateMachine__ValidatePortsConnected__DiagnosticChain_Map() {
+	public EOperation getProtocolStateMachine__ValidateDeepOrShallowHistory__DiagnosticChain_Map() {
 		return getProtocolStateMachine().getEOperations().get(2);
 	}
 
@@ -7332,10 +7320,19 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EOperation getProtocolStateMachine__ValidatePortsConnected__DiagnosticChain_Map() {
+		return getProtocolStateMachine().getEOperations().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EClass getStateMachine() {
 		if (stateMachineEClass == null) {
 			stateMachineEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(60);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(59);
 		}
 		return stateMachineEClass;
 	}
@@ -7391,7 +7388,7 @@
 	 * @generated
 	 */
 	public EOperation getStateMachine__ValidateContextClassifier__DiagnosticChain_Map() {
-		return getStateMachine().getEOperations().get(3);
+		return getStateMachine().getEOperations().get(2);
 	}
 
 	/**
@@ -7400,7 +7397,7 @@
 	 * @generated
 	 */
 	public EOperation getStateMachine__ValidateConnectionPoints__DiagnosticChain_Map() {
-		return getStateMachine().getEOperations().get(0);
+		return getStateMachine().getEOperations().get(3);
 	}
 
 	/**
@@ -7409,7 +7406,7 @@
 	 * @generated
 	 */
 	public EOperation getStateMachine__ValidateMethod__DiagnosticChain_Map() {
-		return getStateMachine().getEOperations().get(2);
+		return getStateMachine().getEOperations().get(0);
 	}
 
 	/**
@@ -7447,7 +7444,7 @@
 	public EClass getRegion() {
 		if (regionEClass == null) {
 			regionEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(63);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(62);
 		}
 		return regionEClass;
 	}
@@ -7503,7 +7500,7 @@
 	 * @generated
 	 */
 	public EOperation getRegion__ValidateInitialVertex__DiagnosticChain_Map() {
-		return getRegion().getEOperations().get(3);
+		return getRegion().getEOperations().get(2);
 	}
 
 	/**
@@ -7512,15 +7509,6 @@
 	 * @generated
 	 */
 	public EOperation getRegion__ValidateDeepHistoryVertex__DiagnosticChain_Map() {
-		return getRegion().getEOperations().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getRegion__ValidateShallowHistoryVertex__DiagnosticChain_Map() {
 		return getRegion().getEOperations().get(1);
 	}
 
@@ -7529,8 +7517,17 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EOperation getRegion__ValidateShallowHistoryVertex__DiagnosticChain_Map() {
+		return getRegion().getEOperations().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EOperation getRegion__ValidateOwned__DiagnosticChain_Map() {
-		return getRegion().getEOperations().get(2);
+		return getRegion().getEOperations().get(3);
 	}
 
 	/**
@@ -7577,7 +7574,7 @@
 	public EClass getVertex() {
 		if (vertexEClass == null) {
 			vertexEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(62);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(61);
 		}
 		return vertexEClass;
 	}
@@ -7673,7 +7670,7 @@
 	 * @generated
 	 */
 	public EOperation getTransition__ValidateStateIsExternal__DiagnosticChain_Map() {
-		return getTransition().getEOperations().get(0);
+		return getTransition().getEOperations().get(9);
 	}
 
 	/**
@@ -7727,15 +7724,6 @@
 	 * @generated
 	 */
 	public EOperation getTransition__ValidateForkSegmentGuards__DiagnosticChain_Map() {
-		return getTransition().getEOperations().get(9);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getTransition__ValidateJoinSegmentGuards__DiagnosticChain_Map() {
 		return getTransition().getEOperations().get(1);
 	}
 
@@ -7744,52 +7732,16 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EOperation getTransition__ValidateJoinSegmentGuards__DiagnosticChain_Map() {
+		return getTransition().getEOperations().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EOperation getTransition__ValidateStateIsInternal__DiagnosticChain_Map() {
-		return getTransition().getEOperations().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getTransition__ValidateForkSegmentState__DiagnosticChain_Map() {
-		return getTransition().getEOperations().get(5);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getTransition__ValidateJoinSegmentState__DiagnosticChain_Map() {
-		return getTransition().getEOperations().get(4);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getTransition__ValidateOutgoingPseudostates__DiagnosticChain_Map() {
-		return getTransition().getEOperations().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getTransition__ValidateInitialTransition__DiagnosticChain_Map() {
-		return getTransition().getEOperations().get(8);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getTransition__ValidateSignaturesCompatible__DiagnosticChain_Map() {
 		return getTransition().getEOperations().get(6);
 	}
 
@@ -7798,8 +7750,53 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EOperation getTransition__ValidateForkSegmentState__DiagnosticChain_Map() {
+		return getTransition().getEOperations().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EOperation getTransition__ValidateJoinSegmentState__DiagnosticChain_Map() {
+		return getTransition().getEOperations().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EOperation getTransition__ValidateOutgoingPseudostates__DiagnosticChain_Map() {
+		return getTransition().getEOperations().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EOperation getTransition__ValidateInitialTransition__DiagnosticChain_Map() {
+		return getTransition().getEOperations().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EOperation getTransition__ValidateSignaturesCompatible__DiagnosticChain_Map() {
+		return getTransition().getEOperations().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EOperation getTransition__ValidateStateIsLocal__DiagnosticChain_Map() {
-		return getTransition().getEOperations().get(7);
+		return getTransition().getEOperations().get(0);
 	}
 
 	/**
@@ -7837,7 +7834,7 @@
 	public EClass getTrigger() {
 		if (triggerEClass == null) {
 			triggerEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(66);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(65);
 		}
 		return triggerEClass;
 	}
@@ -7868,7 +7865,7 @@
 	public EClass getEvent() {
 		if (eventEClass == null) {
 			eventEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(67);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(66);
 		}
 		return eventEClass;
 	}
@@ -7881,7 +7878,7 @@
 	public EClass getPort() {
 		if (portEClass == null) {
 			portEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(68);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(67);
 		}
 		return portEClass;
 	}
@@ -7964,7 +7961,7 @@
 	 * @generated
 	 */
 	public EOperation getPort__ValidatePortDestroyed__DiagnosticChain_Map() {
-		return getPort().getEOperations().get(0);
+		return getPort().getEOperations().get(2);
 	}
 
 	/**
@@ -7973,7 +7970,7 @@
 	 * @generated
 	 */
 	public EOperation getPort__ValidateDefaultValue__DiagnosticChain_Map() {
-		return getPort().getEOperations().get(2);
+		return getPort().getEOperations().get(0);
 	}
 
 	/**
@@ -8002,7 +7999,7 @@
 	public EClass getState() {
 		if (stateEClass == null) {
 			stateEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(64);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(63);
 		}
 		return stateEClass;
 	}
@@ -8139,24 +8136,6 @@
 	 * @generated
 	 */
 	public EOperation getState__ValidateSubmachineStates__DiagnosticChain_Map() {
-		return getState().getEOperations().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getState__ValidateDestinationsOrSourcesOfTransitions__DiagnosticChain_Map() {
-		return getState().getEOperations().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getState__ValidateSubmachineOrRegions__DiagnosticChain_Map() {
 		return getState().getEOperations().get(4);
 	}
 
@@ -8165,7 +8144,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EOperation getState__ValidateCompositeStates__DiagnosticChain_Map() {
+	public EOperation getState__ValidateDestinationsOrSourcesOfTransitions__DiagnosticChain_Map() {
 		return getState().getEOperations().get(2);
 	}
 
@@ -8174,6 +8153,24 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EOperation getState__ValidateSubmachineOrRegions__DiagnosticChain_Map() {
+		return getState().getEOperations().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EOperation getState__ValidateCompositeStates__DiagnosticChain_Map() {
+		return getState().getEOperations().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EOperation getState__ValidateEntryOrExit__DiagnosticChain_Map() {
 		return getState().getEOperations().get(0);
 	}
@@ -8240,7 +8237,7 @@
 	public EClass getConnectionPointReference() {
 		if (connectionPointReferenceEClass == null) {
 			connectionPointReferenceEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(65);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(64);
 		}
 		return connectionPointReferenceEClass;
 	}
@@ -8281,7 +8278,7 @@
 	 * @generated
 	 */
 	public EOperation getConnectionPointReference__ValidateEntryPseudostates__DiagnosticChain_Map() {
-		return getConnectionPointReference().getEOperations().get(1);
+		return getConnectionPointReference().getEOperations().get(0);
 	}
 
 	/**
@@ -8290,7 +8287,7 @@
 	 * @generated
 	 */
 	public EOperation getConnectionPointReference__ValidateExitPseudostates__DiagnosticChain_Map() {
-		return getConnectionPointReference().getEOperations().get(0);
+		return getConnectionPointReference().getEOperations().get(1);
 	}
 
 	/**
@@ -8301,7 +8298,7 @@
 	public EClass getPseudostate() {
 		if (pseudostateEClass == null) {
 			pseudostateEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(61);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(60);
 		}
 		return pseudostateEClass;
 	}
@@ -8339,7 +8336,7 @@
 	 * @generated
 	 */
 	public EOperation getPseudostate__ValidateInitialVertex__DiagnosticChain_Map() {
-		return getPseudostate().getEOperations().get(6);
+		return getPseudostate().getEOperations().get(7);
 	}
 
 	/**
@@ -8348,7 +8345,7 @@
 	 * @generated
 	 */
 	public EOperation getPseudostate__ValidateHistoryVertices__DiagnosticChain_Map() {
-		return getPseudostate().getEOperations().get(5);
+		return getPseudostate().getEOperations().get(1);
 	}
 
 	/**
@@ -8357,7 +8354,7 @@
 	 * @generated
 	 */
 	public EOperation getPseudostate__ValidateJoinVertex__DiagnosticChain_Map() {
-		return getPseudostate().getEOperations().get(3);
+		return getPseudostate().getEOperations().get(5);
 	}
 
 	/**
@@ -8375,24 +8372,6 @@
 	 * @generated
 	 */
 	public EOperation getPseudostate__ValidateForkVertex__DiagnosticChain_Map() {
-		return getPseudostate().getEOperations().get(7);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getPseudostate__ValidateTransitionsOutgoing__DiagnosticChain_Map() {
-		return getPseudostate().getEOperations().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getPseudostate__ValidateJunctionVertex__DiagnosticChain_Map() {
 		return getPseudostate().getEOperations().get(4);
 	}
 
@@ -8401,8 +8380,26 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EOperation getPseudostate__ValidateTransitionsOutgoing__DiagnosticChain_Map() {
+		return getPseudostate().getEOperations().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EOperation getPseudostate__ValidateJunctionVertex__DiagnosticChain_Map() {
+		return getPseudostate().getEOperations().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EOperation getPseudostate__ValidateChoiceVertex__DiagnosticChain_Map() {
-		return getPseudostate().getEOperations().get(1);
+		return getPseudostate().getEOperations().get(6);
 	}
 
 	/**
@@ -8411,7 +8408,7 @@
 	 * @generated
 	 */
 	public EOperation getPseudostate__ValidateOutgoingFromInitial__DiagnosticChain_Map() {
-		return getPseudostate().getEOperations().get(2);
+		return getPseudostate().getEOperations().get(3);
 	}
 
 	/**
@@ -8455,7 +8452,7 @@
 	public EClass getOperationTemplateParameter() {
 		if (operationTemplateParameterEClass == null) {
 			operationTemplateParameterEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(73);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(78);
 		}
 		return operationTemplateParameterEClass;
 	}
@@ -8468,7 +8465,7 @@
 	public EClass getStructuralFeature() {
 		if (structuralFeatureEClass == null) {
 			structuralFeatureEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(74);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(35);
 		}
 		return structuralFeatureEClass;
 	}
@@ -8491,7 +8488,7 @@
 	public EClass getAssociation() {
 		if (associationEClass == null) {
 			associationEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(32);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(33);
 		}
 		return associationEClass;
 	}
@@ -8547,7 +8544,7 @@
 	 * @generated
 	 */
 	public EOperation getAssociation__ValidateSpecializedEndTypes__DiagnosticChain_Map() {
-		return getAssociation().getEOperations().get(1);
+		return getAssociation().getEOperations().get(3);
 	}
 
 	/**
@@ -8565,7 +8562,7 @@
 	 * @generated
 	 */
 	public EOperation getAssociation__ValidateAssociationEnds__DiagnosticChain_Map() {
-		return getAssociation().getEOperations().get(3);
+		return getAssociation().getEOperations().get(1);
 	}
 
 	/**
@@ -8603,7 +8600,7 @@
 	public EClass getConnectableElementTemplateParameter() {
 		if (connectableElementTemplateParameterEClass == null) {
 			connectableElementTemplateParameterEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(37);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(41);
 		}
 		return connectableElementTemplateParameterEClass;
 	}
@@ -8616,7 +8613,7 @@
 	public EClass getCollaborationUse() {
 		if (collaborationUseEClass == null) {
 			collaborationUseEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(84);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(88);
 		}
 		return collaborationUseEClass;
 	}
@@ -8647,7 +8644,7 @@
 	 * @generated
 	 */
 	public EOperation getCollaborationUse__ValidateClientElements__DiagnosticChain_Map() {
-		return getCollaborationUse().getEOperations().get(0);
+		return getCollaborationUse().getEOperations().get(2);
 	}
 
 	/**
@@ -8665,7 +8662,7 @@
 	 * @generated
 	 */
 	public EOperation getCollaborationUse__ValidateConnectors__DiagnosticChain_Map() {
-		return getCollaborationUse().getEOperations().get(2);
+		return getCollaborationUse().getEOperations().get(0);
 	}
 
 	/**
@@ -8676,7 +8673,7 @@
 	public EClass getCollaboration() {
 		if (collaborationEClass == null) {
 			collaborationEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(85);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(89);
 		}
 		return collaborationEClass;
 	}
@@ -8698,7 +8695,7 @@
 	public EClass getStructuredClassifier() {
 		if (structuredClassifierEClass == null) {
 			structuredClassifierEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(86);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(9);
 		}
 		return structuredClassifierEClass;
 	}
@@ -8778,7 +8775,7 @@
 	public EClass getConnector() {
 		if (connectorEClass == null) {
 			connectorEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(87);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(99);
 		}
 		return connectorEClass;
 	}
@@ -8834,7 +8831,7 @@
 	 * @generated
 	 */
 	public EOperation getConnector__ValidateTypes__DiagnosticChain_Map() {
-		return getConnector().getEOperations().get(0);
+		return getConnector().getEOperations().get(3);
 	}
 
 	/**
@@ -8843,7 +8840,7 @@
 	 * @generated
 	 */
 	public EOperation getConnector__ValidateCompatible__DiagnosticChain_Map() {
-		return getConnector().getEOperations().get(3);
+		return getConnector().getEOperations().get(0);
 	}
 
 	/**
@@ -8881,7 +8878,7 @@
 	public EClass getRedefinableTemplateSignature() {
 		if (redefinableTemplateSignatureEClass == null) {
 			redefinableTemplateSignatureEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(91);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(92);
 		}
 		return redefinableTemplateSignatureEClass;
 	}
@@ -8984,7 +8981,7 @@
 	public EClass getInterfaceRealization() {
 		if (interfaceRealizationEClass == null) {
 			interfaceRealizationEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(99);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(53);
 		}
 		return interfaceRealizationEClass;
 	}
@@ -9017,7 +9014,7 @@
 	public EClass getEncapsulatedClassifier() {
 		if (encapsulatedClassifierEClass == null) {
 			encapsulatedClassifierEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(100);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(8);
 		}
 		return encapsulatedClassifierEClass;
 	}
@@ -9049,7 +9046,7 @@
 	public EClass getExtension() {
 		if (extensionEClass == null) {
 			extensionEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(31);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(32);
 		}
 		return extensionEClass;
 	}
@@ -9143,7 +9140,7 @@
 	public EClass getExtensionEnd() {
 		if (extensionEndEClass == null) {
 			extensionEndEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(76);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(80);
 		}
 		return extensionEndEClass;
 	}
@@ -9214,7 +9211,7 @@
 	public EClass getStringExpression() {
 		if (stringExpressionEClass == null) {
 			stringExpressionEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(12);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(13);
 		}
 		return stringExpressionEClass;
 	}
@@ -9245,7 +9242,7 @@
 	 * @generated
 	 */
 	public EOperation getStringExpression__ValidateOperands__DiagnosticChain_Map() {
-		return getStringExpression().getEOperations().get(0);
+		return getStringExpression().getEOperations().get(1);
 	}
 
 	/**
@@ -9254,7 +9251,7 @@
 	 * @generated
 	 */
 	public EOperation getStringExpression__ValidateSubexpressions__DiagnosticChain_Map() {
-		return getStringExpression().getEOperations().get(1);
+		return getStringExpression().getEOperations().get(0);
 	}
 
 	/**
@@ -9265,7 +9262,7 @@
 	public EClass getExpression() {
 		if (expressionEClass == null) {
 			expressionEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(19);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(14);
 		}
 		return expressionEClass;
 	}
@@ -9397,7 +9394,7 @@
 	public EClass getSlot() {
 		if (slotEClass == null) {
 			slotEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(81);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(85);
 		}
 		return slotEClass;
 	}
@@ -9437,7 +9434,7 @@
 	public EClass getInstanceSpecification() {
 		if (instanceSpecificationEClass == null) {
 			instanceSpecificationEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(80);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(84);
 		}
 		return instanceSpecificationEClass;
 	}
@@ -9468,15 +9465,6 @@
 	 * @generated
 	 */
 	public EOperation getInstanceSpecification__ValidateDefiningFeature__DiagnosticChain_Map() {
-		return getInstanceSpecification().getEOperations().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getInstanceSpecification__ValidateStructuralFeature__DiagnosticChain_Map() {
 		return getInstanceSpecification().getEOperations().get(1);
 	}
 
@@ -9485,8 +9473,17 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EOperation getInstanceSpecification__ValidateStructuralFeature__DiagnosticChain_Map() {
+		return getInstanceSpecification().getEOperations().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EOperation getInstanceSpecification__ValidateDeploymentTarget__DiagnosticChain_Map() {
-		return getInstanceSpecification().getEOperations().get(3);
+		return getInstanceSpecification().getEOperations().get(2);
 	}
 
 	/**
@@ -9495,7 +9492,7 @@
 	 * @generated
 	 */
 	public EOperation getInstanceSpecification__ValidateDeploymentArtifact__DiagnosticChain_Map() {
-		return getInstanceSpecification().getEOperations().get(0);
+		return getInstanceSpecification().getEOperations().get(3);
 	}
 
 	/**
@@ -9516,7 +9513,7 @@
 	public EClass getEnumeration() {
 		if (enumerationEClass == null) {
 			enumerationEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(78);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(82);
 		}
 		return enumerationEClass;
 	}
@@ -9538,7 +9535,7 @@
 	public EClass getEnumerationLiteral() {
 		if (enumerationLiteralEClass == null) {
 			enumerationLiteralEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(79);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(83);
 		}
 		return enumerationLiteralEClass;
 	}
@@ -9588,7 +9585,7 @@
 	public EClass getPrimitiveType() {
 		if (primitiveTypeEClass == null) {
 			primitiveTypeEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(82);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(86);
 		}
 		return primitiveTypeEClass;
 	}
@@ -9739,7 +9736,7 @@
 	public EClass getUsage() {
 		if (usageEClass == null) {
 			usageEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(83);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(87);
 		}
 		return usageEClass;
 	}
@@ -9844,15 +9841,6 @@
 	 * @generated
 	 */
 	public EOperation getMessage__ValidateSignatureReferTo__DiagnosticChain_Map() {
-		return getMessage().getEOperations().get(5);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getMessage__ValidateSignatureIsOperation__DiagnosticChain_Map() {
 		return getMessage().getEOperations().get(6);
 	}
 
@@ -9861,7 +9849,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EOperation getMessage__ValidateSignatureIsSignal__DiagnosticChain_Map() {
+	public EOperation getMessage__ValidateSignatureIsOperation__DiagnosticChain_Map() {
 		return getMessage().getEOperations().get(3);
 	}
 
@@ -9870,16 +9858,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EOperation getMessage__ValidateArguments__DiagnosticChain_Map() {
-		return getMessage().getEOperations().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getMessage__ValidateCannotCrossBoundaries__DiagnosticChain_Map() {
+	public EOperation getMessage__ValidateSignatureIsSignal__DiagnosticChain_Map() {
 		return getMessage().getEOperations().get(2);
 	}
 
@@ -9888,7 +9867,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EOperation getMessage__ValidateOccurrenceSpecifications__DiagnosticChain_Map() {
+	public EOperation getMessage__ValidateArguments__DiagnosticChain_Map() {
 		return getMessage().getEOperations().get(4);
 	}
 
@@ -9897,6 +9876,24 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EOperation getMessage__ValidateCannotCrossBoundaries__DiagnosticChain_Map() {
+		return getMessage().getEOperations().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EOperation getMessage__ValidateOccurrenceSpecifications__DiagnosticChain_Map() {
+		return getMessage().getEOperations().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EOperation getMessage__GetMessageKind() {
 		return getMessage().getEOperations().get(7);
 	}
@@ -10098,15 +10095,6 @@
 	 * @generated
 	 */
 	public EOperation getLifeline__ValidateInteractionUsesShareLifeline__DiagnosticChain_Map() {
-		return getLifeline().getEOperations().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getLifeline__ValidateSelectorSpecified__DiagnosticChain_Map() {
 		return getLifeline().getEOperations().get(0);
 	}
 
@@ -10115,7 +10103,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EOperation getLifeline__ValidateSameClassifier__DiagnosticChain_Map() {
+	public EOperation getLifeline__ValidateSelectorSpecified__DiagnosticChain_Map() {
 		return getLifeline().getEOperations().get(2);
 	}
 
@@ -10124,6 +10112,15 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EOperation getLifeline__ValidateSameClassifier__DiagnosticChain_Map() {
+		return getLifeline().getEOperations().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EClass getPartDecomposition() {
 		if (partDecompositionEClass == null) {
 			partDecompositionEClass = (EClass) EPackage.Registry.INSTANCE
@@ -10138,7 +10135,7 @@
 	 * @generated
 	 */
 	public EOperation getPartDecomposition__ValidatePartsOfInternalStructures__DiagnosticChain_Map() {
-		return getPartDecomposition().getEOperations().get(2);
+		return getPartDecomposition().getEOperations().get(0);
 	}
 
 	/**
@@ -10156,7 +10153,7 @@
 	 * @generated
 	 */
 	public EOperation getPartDecomposition__ValidateCommutativityOfDecomposition__DiagnosticChain_Map() {
-		return getPartDecomposition().getEOperations().get(0);
+		return getPartDecomposition().getEOperations().get(2);
 	}
 
 	/**
@@ -10223,24 +10220,6 @@
 	 * @generated
 	 */
 	public EOperation getInteractionUse__ValidateGatesMatch__DiagnosticChain_Map() {
-		return getInteractionUse().getEOperations().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getInteractionUse__ValidateAllLifelines__DiagnosticChain_Map() {
-		return getInteractionUse().getEOperations().get(5);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getInteractionUse__ValidateArgumentsCorrespondToParameters__DiagnosticChain_Map() {
 		return getInteractionUse().getEOperations().get(3);
 	}
 
@@ -10249,8 +10228,26 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EOperation getInteractionUse__ValidateAllLifelines__DiagnosticChain_Map() {
+		return getInteractionUse().getEOperations().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EOperation getInteractionUse__ValidateArgumentsCorrespondToParameters__DiagnosticChain_Map() {
+		return getInteractionUse().getEOperations().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EOperation getInteractionUse__ValidateReturnValueTypeRecipientCorrespondence__DiagnosticChain_Map() {
-		return getInteractionUse().getEOperations().get(4);
+		return getInteractionUse().getEOperations().get(5);
 	}
 
 	/**
@@ -10259,7 +10256,7 @@
 	 * @generated
 	 */
 	public EOperation getInteractionUse__ValidateArgumentsAreConstants__DiagnosticChain_Map() {
-		return getInteractionUse().getEOperations().get(1);
+		return getInteractionUse().getEOperations().get(4);
 	}
 
 	/**
@@ -10268,7 +10265,7 @@
 	 * @generated
 	 */
 	public EOperation getInteractionUse__ValidateReturnValueRecipientCoverage__DiagnosticChain_Map() {
-		return getInteractionUse().getEOperations().get(2);
+		return getInteractionUse().getEOperations().get(1);
 	}
 
 	/**
@@ -10419,7 +10416,7 @@
 	 * @generated
 	 */
 	public EReference getActivityNode_Outgoing() {
-		return (EReference) getActivityNode().getEStructuralFeatures().get(5);
+		return (EReference) getActivityNode().getEStructuralFeatures().get(4);
 	}
 
 	/**
@@ -10428,7 +10425,7 @@
 	 * @generated
 	 */
 	public EReference getActivityNode_InGroup() {
-		return (EReference) getActivityNode().getEStructuralFeatures().get(1);
+		return (EReference) getActivityNode().getEStructuralFeatures().get(6);
 	}
 
 	/**
@@ -10437,7 +10434,7 @@
 	 * @generated
 	 */
 	public EReference getActivityNode_InPartition() {
-		return (EReference) getActivityNode().getEStructuralFeatures().get(2);
+		return (EReference) getActivityNode().getEStructuralFeatures().get(1);
 	}
 
 	/**
@@ -10446,7 +10443,7 @@
 	 * @generated
 	 */
 	public EReference getActivityNode_InStructuredNode() {
-		return (EReference) getActivityNode().getEStructuralFeatures().get(3);
+		return (EReference) getActivityNode().getEStructuralFeatures().get(2);
 	}
 
 	/**
@@ -10464,7 +10461,7 @@
 	 * @generated
 	 */
 	public EReference getActivityNode_Incoming() {
-		return (EReference) getActivityNode().getEStructuralFeatures().get(6);
+		return (EReference) getActivityNode().getEStructuralFeatures().get(5);
 	}
 
 	/**
@@ -10473,7 +10470,7 @@
 	 * @generated
 	 */
 	public EReference getActivityNode_InInterruptibleRegion() {
-		return (EReference) getActivityNode().getEStructuralFeatures().get(4);
+		return (EReference) getActivityNode().getEStructuralFeatures().get(3);
 	}
 
 	/**
@@ -10511,7 +10508,7 @@
 	public EClass getActivityEdge() {
 		if (activityEdgeEClass == null) {
 			activityEdgeEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(109);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(110);
 		}
 		return activityEdgeEClass;
 	}
@@ -10522,7 +10519,7 @@
 	 * @generated
 	 */
 	public EReference getActivityEdge_Activity() {
-		return (EReference) getActivityEdge().getEStructuralFeatures().get(9);
+		return (EReference) getActivityEdge().getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -10558,7 +10555,7 @@
 	 * @generated
 	 */
 	public EReference getActivityEdge_InGroup() {
-		return (EReference) getActivityEdge().getEStructuralFeatures().get(1);
+		return (EReference) getActivityEdge().getEStructuralFeatures().get(9);
 	}
 
 	/**
@@ -10603,7 +10600,7 @@
 	 * @generated
 	 */
 	public EReference getActivityEdge_Guard() {
-		return (EReference) getActivityEdge().getEStructuralFeatures().get(0);
+		return (EReference) getActivityEdge().getEStructuralFeatures().get(1);
 	}
 
 	/**
@@ -10651,70 +10648,16 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EReference getActivity_OwnedGroup() {
+		return (EReference) getActivity().getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EAttribute getActivity_IsReadOnly() {
-		return (EAttribute) getActivity().getEStructuralFeatures().get(4);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getActivity_Partition() {
-		return (EReference) getActivity().getEStructuralFeatures().get(6);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getActivity_Group() {
-		return (EReference) getActivity().getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getActivity__ValidateNoSupergroups__DiagnosticChain_Map() {
-		return getActivity().getEOperations().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getActivity__ValidateActivityParameterNode__DiagnosticChain_Map() {
-		return getActivity().getEOperations().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getActivity__GetStructuredNodes() {
-		return getActivity().getEOperations().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getActivity__ValidateAutonomous__DiagnosticChain_Map() {
-		return getActivity().getEOperations().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getActivity_IsSingleExecution() {
 		return (EAttribute) getActivity().getEStructuralFeatures().get(5);
 	}
 
@@ -10723,25 +10666,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getActivity_StructuredNode() {
-		return (EReference) getActivity().getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getActivity_Variable() {
-		return (EReference) getActivity().getEStructuralFeatures().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getActivity_Node() {
+	public EReference getActivity_Partition() {
 		return (EReference) getActivity().getEStructuralFeatures().get(7);
 	}
 
@@ -10750,8 +10675,89 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EReference getActivity_Group() {
+		return (EReference) getActivity().getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getActivity_OwnedNode() {
+		return (EReference) getActivity().getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EOperation getActivity__ValidateNoSupergroups__DiagnosticChain_Map() {
+		return getActivity().getEOperations().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EOperation getActivity__ValidateActivityParameterNode__DiagnosticChain_Map() {
+		return getActivity().getEOperations().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EOperation getActivity__ValidateAutonomous__DiagnosticChain_Map() {
+		return getActivity().getEOperations().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getActivity_IsSingleExecution() {
+		return (EAttribute) getActivity().getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getActivity_StructuredNode() {
+		return (EReference) getActivity().getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getActivity_Variable() {
+		return (EReference) getActivity().getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getActivity_Node() {
+		return (EReference) getActivity().getEStructuralFeatures().get(9);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EReference getActivity_Edge() {
-		return (EReference) getActivity().getEStructuralFeatures().get(0);
+		return (EReference) getActivity().getEStructuralFeatures().get(1);
 	}
 
 	/**
@@ -10812,15 +10818,6 @@
 	 * @generated
 	 */
 	public EOperation getActivityPartition__ValidateRepresentsPart__DiagnosticChain_Map() {
-		return getActivityPartition().getEOperations().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getActivityPartition__ValidateRepresentsClassifier__DiagnosticChain_Map() {
 		return getActivityPartition().getEOperations().get(0);
 	}
 
@@ -10829,7 +10826,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EOperation getActivityPartition__ValidateRepresentsPartAndIsContained__DiagnosticChain_Map() {
+	public EOperation getActivityPartition__ValidateRepresentsClassifier__DiagnosticChain_Map() {
 		return getActivityPartition().getEOperations().get(1);
 	}
 
@@ -10838,6 +10835,15 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EOperation getActivityPartition__ValidateRepresentsPartAndIsContained__DiagnosticChain_Map() {
+		return getActivityPartition().getEOperations().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EReference getActivityPartition_Node() {
 		return (EReference) getActivityPartition().getEStructuralFeatures()
 			.get(2);
@@ -10881,7 +10887,7 @@
 	public EClass getActivityGroup() {
 		if (activityGroupEClass == null) {
 			activityGroupEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(110);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(109);
 		}
 		return activityGroupEClass;
 	}
@@ -10892,15 +10898,6 @@
 	 * @generated
 	 */
 	public EReference getActivityGroup_Subgroup() {
-		return (EReference) getActivityGroup().getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getActivityGroup_SuperGroup() {
 		return (EReference) getActivityGroup().getEStructuralFeatures().get(3);
 	}
 
@@ -10909,43 +10906,16 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EReference getActivityGroup_SuperGroup() {
+		return (EReference) getActivityGroup().getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EReference getActivityGroup_ContainedNode() {
-		return (EReference) getActivityGroup().getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getActivityGroup__ValidateNodesAndEdges__DiagnosticChain_Map() {
-		return getActivityGroup().getEOperations().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getActivityGroup__ValidateNotContained__DiagnosticChain_Map() {
-		return getActivityGroup().getEOperations().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getActivityGroup__ValidateGroupOwned__DiagnosticChain_Map() {
-		return getActivityGroup().getEOperations().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getActivityGroup_InActivity() {
 		return (EReference) getActivityGroup().getEStructuralFeatures().get(1);
 	}
 
@@ -10954,8 +10924,44 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EOperation getActivityGroup__ValidateNodesAndEdges__DiagnosticChain_Map() {
+		return getActivityGroup().getEOperations().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EOperation getActivityGroup__ValidateNotContained__DiagnosticChain_Map() {
+		return getActivityGroup().getEOperations().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EOperation getActivityGroup__ValidateGroupOwned__DiagnosticChain_Map() {
+		return getActivityGroup().getEOperations().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getActivityGroup_InActivity() {
+		return (EReference) getActivityGroup().getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EReference getActivityGroup_ContainedEdge() {
-		return (EReference) getActivityGroup().getEStructuralFeatures().get(4);
+		return (EReference) getActivityGroup().getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -11026,7 +11032,7 @@
 	 * @generated
 	 */
 	public EOperation getStructuredActivityNode__ValidateInputPinEdges__DiagnosticChain_Map() {
-		return getStructuredActivityNode().getEOperations().get(2);
+		return getStructuredActivityNode().getEOperations().get(0);
 	}
 
 	/**
@@ -11055,7 +11061,7 @@
 	 * @generated
 	 */
 	public EOperation getStructuredActivityNode__ValidateOutputPinEdges__DiagnosticChain_Map() {
-		return getStructuredActivityNode().getEOperations().get(0);
+		return getStructuredActivityNode().getEOperations().get(2);
 	}
 
 	/**
@@ -11208,7 +11214,7 @@
 	 * @generated
 	 */
 	public EOperation getExceptionHandler__ValidateExceptionBody__DiagnosticChain_Map() {
-		return getExceptionHandler().getEOperations().get(0);
+		return getExceptionHandler().getEOperations().get(3);
 	}
 
 	/**
@@ -11217,15 +11223,6 @@
 	 * @generated
 	 */
 	public EOperation getExceptionHandler__ValidateResultPins__DiagnosticChain_Map() {
-		return getExceptionHandler().getEOperations().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getExceptionHandler__ValidateOneInput__DiagnosticChain_Map() {
 		return getExceptionHandler().getEOperations().get(2);
 	}
 
@@ -11234,8 +11231,17 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EOperation getExceptionHandler__ValidateOneInput__DiagnosticChain_Map() {
+		return getExceptionHandler().getEOperations().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EOperation getExceptionHandler__ValidateEdgeSourceTarget__DiagnosticChain_Map() {
-		return getExceptionHandler().getEOperations().get(3);
+		return getExceptionHandler().getEOperations().get(1);
 	}
 
 	/**
@@ -11302,7 +11308,7 @@
 	 * @generated
 	 */
 	public EOperation getObjectNode__ValidateObjectFlowEdges__DiagnosticChain_Map() {
-		return getObjectNode().getEOperations().get(2);
+		return getObjectNode().getEOperations().get(0);
 	}
 
 	/**
@@ -11320,7 +11326,7 @@
 	 * @generated
 	 */
 	public EOperation getObjectNode__ValidateInputOutputParameter__DiagnosticChain_Map() {
-		return getObjectNode().getEOperations().get(0);
+		return getObjectNode().getEOperations().get(2);
 	}
 
 	/**
@@ -11512,7 +11518,7 @@
 	 * @generated
 	 */
 	public EOperation getInteractionOperand__ValidateGuardDirectlyPrior__DiagnosticChain_Map() {
-		return getInteractionOperand().getEOperations().get(1);
+		return getInteractionOperand().getEOperations().get(0);
 	}
 
 	/**
@@ -11521,7 +11527,7 @@
 	 * @generated
 	 */
 	public EOperation getInteractionOperand__ValidateGuardContainReferences__DiagnosticChain_Map() {
-		return getInteractionOperand().getEOperations().get(0);
+		return getInteractionOperand().getEOperations().get(1);
 	}
 
 	/**
@@ -11563,7 +11569,7 @@
 	 * @generated
 	 */
 	public EOperation getInteractionConstraint__ValidateDynamicVariables__DiagnosticChain_Map() {
-		return getInteractionConstraint().getEOperations().get(3);
+		return getInteractionConstraint().getEOperations().get(5);
 	}
 
 	/**
@@ -11572,7 +11578,7 @@
 	 * @generated
 	 */
 	public EOperation getInteractionConstraint__ValidateGlobalData__DiagnosticChain_Map() {
-		return getInteractionConstraint().getEOperations().get(4);
+		return getInteractionConstraint().getEOperations().get(3);
 	}
 
 	/**
@@ -11581,15 +11587,6 @@
 	 * @generated
 	 */
 	public EOperation getInteractionConstraint__ValidateMinintMaxint__DiagnosticChain_Map() {
-		return getInteractionConstraint().getEOperations().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getInteractionConstraint__ValidateMinintNonNegative__DiagnosticChain_Map() {
 		return getInteractionConstraint().getEOperations().get(1);
 	}
 
@@ -11598,7 +11595,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EOperation getInteractionConstraint__ValidateMaxintPositive__DiagnosticChain_Map() {
+	public EOperation getInteractionConstraint__ValidateMinintNonNegative__DiagnosticChain_Map() {
 		return getInteractionConstraint().getEOperations().get(2);
 	}
 
@@ -11607,8 +11604,17 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EOperation getInteractionConstraint__ValidateMaxintPositive__DiagnosticChain_Map() {
+		return getInteractionConstraint().getEOperations().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EOperation getInteractionConstraint__ValidateMaxintGreaterEqualMinint__DiagnosticChain_Map() {
-		return getInteractionConstraint().getEOperations().get(5);
+		return getInteractionConstraint().getEOperations().get(4);
 	}
 
 	/**
@@ -11828,7 +11834,7 @@
 	 * @generated
 	 */
 	public EOperation getCombinedFragment__ValidateOptLoopBreakNeg__DiagnosticChain_Map() {
-		return getCombinedFragment().getEOperations().get(3);
+		return getCombinedFragment().getEOperations().get(1);
 	}
 
 	/**
@@ -11837,7 +11843,7 @@
 	 * @generated
 	 */
 	public EOperation getCombinedFragment__ValidateMinintAndMaxint__DiagnosticChain_Map() {
-		return getCombinedFragment().getEOperations().get(0);
+		return getCombinedFragment().getEOperations().get(3);
 	}
 
 	/**
@@ -11846,7 +11852,7 @@
 	 * @generated
 	 */
 	public EOperation getCombinedFragment__ValidateBreak__DiagnosticChain_Map() {
-		return getCombinedFragment().getEOperations().get(1);
+		return getCombinedFragment().getEOperations().get(0);
 	}
 
 	/**
@@ -11886,7 +11892,7 @@
 	 * @generated
 	 */
 	public EOperation getContinuation__ValidateSameName__DiagnosticChain_Map() {
-		return getContinuation().getEOperations().get(1);
+		return getContinuation().getEOperations().get(0);
 	}
 
 	/**
@@ -11904,7 +11910,7 @@
 	 * @generated
 	 */
 	public EOperation getContinuation__ValidateFirstOrLastInteractionFragment__DiagnosticChain_Map() {
-		return getContinuation().getEOperations().get(0);
+		return getContinuation().getEOperations().get(1);
 	}
 
 	/**
@@ -11936,7 +11942,7 @@
 	 * @generated
 	 */
 	public EOperation getConsiderIgnoreFragment__ValidateConsiderOrIgnore__DiagnosticChain_Map() {
-		return getConsiderIgnoreFragment().getEOperations().get(0);
+		return getConsiderIgnoreFragment().getEOperations().get(1);
 	}
 
 	/**
@@ -11945,7 +11951,7 @@
 	 * @generated
 	 */
 	public EOperation getConsiderIgnoreFragment__ValidateType__DiagnosticChain_Map() {
-		return getConsiderIgnoreFragment().getEOperations().get(1);
+		return getConsiderIgnoreFragment().getEOperations().get(0);
 	}
 
 	/**
@@ -12066,7 +12072,7 @@
 	 * @generated
 	 */
 	public EOperation getCreateObjectAction__ValidateClassifierNotAbstract__DiagnosticChain_Map() {
-		return getCreateObjectAction().getEOperations().get(0);
+		return getCreateObjectAction().getEOperations().get(1);
 	}
 
 	/**
@@ -12075,7 +12081,7 @@
 	 * @generated
 	 */
 	public EOperation getCreateObjectAction__ValidateClassifierNotAssociationClass__DiagnosticChain_Map() {
-		return getCreateObjectAction().getEOperations().get(2);
+		return getCreateObjectAction().getEOperations().get(0);
 	}
 
 	/**
@@ -12084,7 +12090,7 @@
 	 * @generated
 	 */
 	public EOperation getCreateObjectAction__ValidateSameType__DiagnosticChain_Map() {
-		return getCreateObjectAction().getEOperations().get(3);
+		return getCreateObjectAction().getEOperations().get(2);
 	}
 
 	/**
@@ -12093,7 +12099,7 @@
 	 * @generated
 	 */
 	public EOperation getCreateObjectAction__ValidateMultiplicity__DiagnosticChain_Map() {
-		return getCreateObjectAction().getEOperations().get(1);
+		return getCreateObjectAction().getEOperations().get(3);
 	}
 
 	/**
@@ -12295,7 +12301,7 @@
 	 * @generated
 	 */
 	public EOperation getReadSelfAction__ValidateType__DiagnosticChain_Map() {
-		return getReadSelfAction().getEOperations().get(3);
+		return getReadSelfAction().getEOperations().get(1);
 	}
 
 	/**
@@ -12304,7 +12310,7 @@
 	 * @generated
 	 */
 	public EOperation getReadSelfAction__ValidateMultiplicity__DiagnosticChain_Map() {
-		return getReadSelfAction().getEOperations().get(1);
+		return getReadSelfAction().getEOperations().get(3);
 	}
 
 	/**
@@ -12346,33 +12352,6 @@
 	 * @generated
 	 */
 	public EOperation getStructuralFeatureAction__ValidateNotStatic__DiagnosticChain_Map() {
-		return getStructuralFeatureAction().getEOperations().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getStructuralFeatureAction__ValidateSameType__DiagnosticChain_Map() {
-		return getStructuralFeatureAction().getEOperations().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getStructuralFeatureAction__ValidateMultiplicity__DiagnosticChain_Map() {
-		return getStructuralFeatureAction().getEOperations().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getStructuralFeatureAction__ValidateVisibility__DiagnosticChain_Map() {
 		return getStructuralFeatureAction().getEOperations().get(2);
 	}
 
@@ -12381,7 +12360,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EOperation getStructuralFeatureAction__ValidateOneFeaturingClassifier__DiagnosticChain_Map() {
+	public EOperation getStructuralFeatureAction__ValidateSameType__DiagnosticChain_Map() {
 		return getStructuralFeatureAction().getEOperations().get(4);
 	}
 
@@ -12390,6 +12369,33 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EOperation getStructuralFeatureAction__ValidateMultiplicity__DiagnosticChain_Map() {
+		return getStructuralFeatureAction().getEOperations().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EOperation getStructuralFeatureAction__ValidateVisibility__DiagnosticChain_Map() {
+		return getStructuralFeatureAction().getEOperations().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EOperation getStructuralFeatureAction__ValidateOneFeaturingClassifier__DiagnosticChain_Map() {
+		return getStructuralFeatureAction().getEOperations().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EClass getReadStructuralFeatureAction() {
 		if (readStructuralFeatureActionEClass == null) {
 			readStructuralFeatureActionEClass = (EClass) EPackage.Registry.INSTANCE
@@ -12456,7 +12462,7 @@
 	 * @generated
 	 */
 	public EOperation getWriteStructuralFeatureAction__ValidateInputPin__DiagnosticChain_Map() {
-		return getWriteStructuralFeatureAction().getEOperations().get(1);
+		return getWriteStructuralFeatureAction().getEOperations().get(0);
 	}
 
 	/**
@@ -12465,7 +12471,7 @@
 	 * @generated
 	 */
 	public EOperation getWriteStructuralFeatureAction__ValidateTypeOfResult__DiagnosticChain_Map() {
-		return getWriteStructuralFeatureAction().getEOperations().get(2);
+		return getWriteStructuralFeatureAction().getEOperations().get(1);
 	}
 
 	/**
@@ -12474,7 +12480,7 @@
 	 * @generated
 	 */
 	public EOperation getWriteStructuralFeatureAction__ValidateMultiplicityOfResult__DiagnosticChain_Map() {
-		return getWriteStructuralFeatureAction().getEOperations().get(0);
+		return getWriteStructuralFeatureAction().getEOperations().get(2);
 	}
 
 	/**
@@ -12506,7 +12512,7 @@
 	 * @generated
 	 */
 	public EOperation getClearStructuralFeatureAction__ValidateTypeOfResult__DiagnosticChain_Map() {
-		return getClearStructuralFeatureAction().getEOperations().get(0);
+		return getClearStructuralFeatureAction().getEOperations().get(1);
 	}
 
 	/**
@@ -12515,7 +12521,7 @@
 	 * @generated
 	 */
 	public EOperation getClearStructuralFeatureAction__ValidateMultiplicityOfResult__DiagnosticChain_Map() {
-		return getClearStructuralFeatureAction().getEOperations().get(1);
+		return getClearStructuralFeatureAction().getEOperations().get(0);
 	}
 
 	/**
@@ -12589,7 +12595,7 @@
 	 * @generated
 	 */
 	public EOperation getAddStructuralFeatureValueAction__ValidateRequiredValue__DiagnosticChain_Map() {
-		return getAddStructuralFeatureValueAction().getEOperations().get(0);
+		return getAddStructuralFeatureValueAction().getEOperations().get(1);
 	}
 
 	/**
@@ -12608,7 +12614,7 @@
 	 * @generated
 	 */
 	public EOperation getAddStructuralFeatureValueAction__ValidateUnlimitedNaturalAndMultiplicity__DiagnosticChain_Map() {
-		return getAddStructuralFeatureValueAction().getEOperations().get(1);
+		return getAddStructuralFeatureValueAction().getEOperations().get(0);
 	}
 
 	/**
@@ -12724,15 +12730,6 @@
 	 * @generated
 	 */
 	public EOperation getLinkEndData__ValidatePropertyIsAssociationEnd__DiagnosticChain_Map() {
-		return getLinkEndData().getEOperations().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getLinkEndData__ValidateSameType__DiagnosticChain_Map() {
 		return getLinkEndData().getEOperations().get(0);
 	}
 
@@ -12741,8 +12738,17 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EOperation getLinkEndData__ValidateSameType__DiagnosticChain_Map() {
+		return getLinkEndData().getEOperations().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EOperation getLinkEndData__ValidateMultiplicity__DiagnosticChain_Map() {
-		return getLinkEndData().getEOperations().get(1);
+		return getLinkEndData().getEOperations().get(3);
 	}
 
 	/**
@@ -12760,7 +12766,7 @@
 	 * @generated
 	 */
 	public EOperation getLinkEndData__ValidateEndObjectInputPin__DiagnosticChain_Map() {
-		return getLinkEndData().getEOperations().get(2);
+		return getLinkEndData().getEOperations().get(1);
 	}
 
 	/**
@@ -12800,7 +12806,7 @@
 	 * @generated
 	 */
 	public EOperation getQualifierValue__ValidateQualifierAttribute__DiagnosticChain_Map() {
-		return getQualifierValue().getEOperations().get(2);
+		return getQualifierValue().getEOperations().get(0);
 	}
 
 	/**
@@ -12809,7 +12815,7 @@
 	 * @generated
 	 */
 	public EOperation getQualifierValue__ValidateTypeOfQualifier__DiagnosticChain_Map() {
-		return getQualifierValue().getEOperations().get(1);
+		return getQualifierValue().getEOperations().get(2);
 	}
 
 	/**
@@ -12818,7 +12824,7 @@
 	 * @generated
 	 */
 	public EOperation getQualifierValue__ValidateMultiplicityOfQualifier__DiagnosticChain_Map() {
-		return getQualifierValue().getEOperations().get(0);
+		return getQualifierValue().getEOperations().get(1);
 	}
 
 	/**
@@ -12849,7 +12855,7 @@
 	 * @generated
 	 */
 	public EOperation getReadLinkAction__ValidateOneOpenEnd__DiagnosticChain_Map() {
-		return getReadLinkAction().getEOperations().get(3);
+		return getReadLinkAction().getEOperations().get(1);
 	}
 
 	/**
@@ -12867,7 +12873,7 @@
 	 * @generated
 	 */
 	public EOperation getReadLinkAction__ValidateCompatibleMultiplicity__DiagnosticChain_Map() {
-		return getReadLinkAction().getEOperations().get(1);
+		return getReadLinkAction().getEOperations().get(2);
 	}
 
 	/**
@@ -12876,7 +12882,7 @@
 	 * @generated
 	 */
 	public EOperation getReadLinkAction__ValidateNavigableOpenEnd__DiagnosticChain_Map() {
-		return getReadLinkAction().getEOperations().get(4);
+		return getReadLinkAction().getEOperations().get(3);
 	}
 
 	/**
@@ -12885,7 +12891,7 @@
 	 * @generated
 	 */
 	public EOperation getReadLinkAction__ValidateVisibility__DiagnosticChain_Map() {
-		return getReadLinkAction().getEOperations().get(2);
+		return getReadLinkAction().getEOperations().get(4);
 	}
 
 	/**
@@ -12927,7 +12933,7 @@
 	 * @generated
 	 */
 	public EOperation getLinkEndCreationData__ValidateCreateLinkAction__DiagnosticChain_Map() {
-		return getLinkEndCreationData().getEOperations().get(1);
+		return getLinkEndCreationData().getEOperations().get(0);
 	}
 
 	/**
@@ -12936,7 +12942,7 @@
 	 * @generated
 	 */
 	public EOperation getLinkEndCreationData__ValidateSingleInputPin__DiagnosticChain_Map() {
-		return getLinkEndCreationData().getEOperations().get(0);
+		return getLinkEndCreationData().getEOperations().get(1);
 	}
 
 	/**
@@ -13035,7 +13041,7 @@
 	 * @generated
 	 */
 	public EOperation getLinkEndDestructionData__ValidateDestroyLinkAction__DiagnosticChain_Map() {
-		return getLinkEndDestructionData().getEOperations().get(1);
+		return getLinkEndDestructionData().getEOperations().get(0);
 	}
 
 	/**
@@ -13044,7 +13050,7 @@
 	 * @generated
 	 */
 	public EOperation getLinkEndDestructionData__ValidateUnlimitedNaturalAndMultiplicity__DiagnosticChain_Map() {
-		return getLinkEndDestructionData().getEOperations().get(0);
+		return getLinkEndDestructionData().getEOperations().get(1);
 	}
 
 	/**
@@ -13127,7 +13133,7 @@
 	 * @generated
 	 */
 	public EOperation getBroadcastSignalAction__ValidateNumberAndOrder__DiagnosticChain_Map() {
-		return getBroadcastSignalAction().getEOperations().get(0);
+		return getBroadcastSignalAction().getEOperations().get(1);
 	}
 
 	/**
@@ -13136,7 +13142,7 @@
 	 * @generated
 	 */
 	public EOperation getBroadcastSignalAction__ValidateTypeOrderingMultiplicity__DiagnosticChain_Map() {
-		return getBroadcastSignalAction().getEOperations().get(1);
+		return getBroadcastSignalAction().getEOperations().get(0);
 	}
 
 	/**
@@ -13368,7 +13374,7 @@
 	 * @generated
 	 */
 	public EOperation getValuePin__ValidateCompatibleType__DiagnosticChain_Map() {
-		return getValuePin().getEOperations().get(1);
+		return getValuePin().getEOperations().get(0);
 	}
 
 	/**
@@ -13377,7 +13383,7 @@
 	 * @generated
 	 */
 	public EOperation getValuePin__ValidateNoIncomingEdges__DiagnosticChain_Map() {
-		return getValuePin().getEOperations().get(0);
+		return getValuePin().getEOperations().get(1);
 	}
 
 	/**
@@ -13665,7 +13671,7 @@
 	 * @generated
 	 */
 	public EOperation getCallAction__ValidateSynchronousCall__DiagnosticChain_Map() {
-		return getCallAction().getEOperations().get(2);
+		return getCallAction().getEOperations().get(0);
 	}
 
 	/**
@@ -13683,7 +13689,7 @@
 	 * @generated
 	 */
 	public EOperation getCallAction__ValidateTypeOrderingMultiplicity__DiagnosticChain_Map() {
-		return getCallAction().getEOperations().get(0);
+		return getCallAction().getEOperations().get(2);
 	}
 
 	/**
@@ -13776,7 +13782,7 @@
 	 * @generated
 	 */
 	public EOperation getCallOperationAction__ValidateArgumentPinEqualParameter__DiagnosticChain_Map() {
-		return getCallOperationAction().getEOperations().get(1);
+		return getCallOperationAction().getEOperations().get(0);
 	}
 
 	/**
@@ -13785,7 +13791,7 @@
 	 * @generated
 	 */
 	public EOperation getCallOperationAction__ValidateResultPinEqualParameter__DiagnosticChain_Map() {
-		return getCallOperationAction().getEOperations().get(2);
+		return getCallOperationAction().getEOperations().get(1);
 	}
 
 	/**
@@ -13794,7 +13800,7 @@
 	 * @generated
 	 */
 	public EOperation getCallOperationAction__ValidateTypeTargetPin__DiagnosticChain_Map() {
-		return getCallOperationAction().getEOperations().get(0);
+		return getCallOperationAction().getEOperations().get(2);
 	}
 
 	/**
@@ -13867,7 +13873,7 @@
 	 * @generated
 	 */
 	public EOperation getInformationItem__ValidateSourcesAndTargets__DiagnosticChain_Map() {
-		return getInformationItem().getEOperations().get(0);
+		return getInformationItem().getEOperations().get(2);
 	}
 
 	/**
@@ -13876,7 +13882,7 @@
 	 * @generated
 	 */
 	public EOperation getInformationItem__ValidateHasNo__DiagnosticChain_Map() {
-		return getInformationItem().getEOperations().get(1);
+		return getInformationItem().getEOperations().get(0);
 	}
 
 	/**
@@ -13885,7 +13891,7 @@
 	 * @generated
 	 */
 	public EOperation getInformationItem__ValidateNotInstantiable__DiagnosticChain_Map() {
-		return getInformationItem().getEOperations().get(2);
+		return getInformationItem().getEOperations().get(1);
 	}
 
 	/**
@@ -13977,7 +13983,7 @@
 	 * @generated
 	 */
 	public EOperation getInformationFlow__ValidateSourcesAndTargetsKind__DiagnosticChain_Map() {
-		return getInformationFlow().getEOperations().get(1);
+		return getInformationFlow().getEOperations().get(0);
 	}
 
 	/**
@@ -13986,7 +13992,7 @@
 	 * @generated
 	 */
 	public EOperation getInformationFlow__ValidateMustConform__DiagnosticChain_Map() {
-		return getInformationFlow().getEOperations().get(0);
+		return getInformationFlow().getEOperations().get(1);
 	}
 
 	/**
@@ -14006,7 +14012,7 @@
 	public EClass getModel() {
 		if (modelEClass == null) {
 			modelEClass = (EClass) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(77);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(81);
 		}
 		return modelEClass;
 	}
@@ -14130,7 +14136,7 @@
 	 * @generated
 	 */
 	public EOperation getWriteVariableAction__ValidateSameType__DiagnosticChain_Map() {
-		return getWriteVariableAction().getEOperations().get(0);
+		return getWriteVariableAction().getEOperations().get(1);
 	}
 
 	/**
@@ -14139,7 +14145,7 @@
 	 * @generated
 	 */
 	public EOperation getWriteVariableAction__ValidateMultiplicity__DiagnosticChain_Map() {
-		return getWriteVariableAction().getEOperations().get(1);
+		return getWriteVariableAction().getEOperations().get(0);
 	}
 
 	/**
@@ -14299,7 +14305,7 @@
 	 * @generated
 	 */
 	public EOperation getActionInputPin__ValidateOneOutputPin__DiagnosticChain_Map() {
-		return getActionInputPin().getEOperations().get(1);
+		return getActionInputPin().getEOperations().get(2);
 	}
 
 	/**
@@ -14317,7 +14323,7 @@
 	 * @generated
 	 */
 	public EOperation getActionInputPin__ValidateNoControlOrDataFlow__DiagnosticChain_Map() {
-		return getActionInputPin().getEOperations().get(2);
+		return getActionInputPin().getEOperations().get(1);
 	}
 
 	/**
@@ -14430,7 +14436,7 @@
 	 * @generated
 	 */
 	public EOperation getReclassifyObjectAction__ValidateClassifierNotAbstract__DiagnosticChain_Map() {
-		return getReclassifyObjectAction().getEOperations().get(1);
+		return getReclassifyObjectAction().getEOperations().get(2);
 	}
 
 	/**
@@ -14439,7 +14445,7 @@
 	 * @generated
 	 */
 	public EOperation getReclassifyObjectAction__ValidateMultiplicity__DiagnosticChain_Map() {
-		return getReclassifyObjectAction().getEOperations().get(2);
+		return getReclassifyObjectAction().getEOperations().get(1);
 	}
 
 	/**
@@ -14569,7 +14575,7 @@
 	 * @generated
 	 */
 	public EOperation getStartClassifierBehaviorAction__ValidateMultiplicity__DiagnosticChain_Map() {
-		return getStartClassifierBehaviorAction().getEOperations().get(0);
+		return getStartClassifierBehaviorAction().getEOperations().get(1);
 	}
 
 	/**
@@ -14578,7 +14584,7 @@
 	 * @generated
 	 */
 	public EOperation getStartClassifierBehaviorAction__ValidateTypeHasClassifier__DiagnosticChain_Map() {
-		return getStartClassifierBehaviorAction().getEOperations().get(1);
+		return getStartClassifierBehaviorAction().getEOperations().get(0);
 	}
 
 	/**
@@ -14630,7 +14636,7 @@
 	 * @generated
 	 */
 	public EOperation getReadLinkObjectEndAction__ValidateProperty__DiagnosticChain_Map() {
-		return getReadLinkObjectEndAction().getEOperations().get(0);
+		return getReadLinkObjectEndAction().getEOperations().get(4);
 	}
 
 	/**
@@ -14639,7 +14645,7 @@
 	 * @generated
 	 */
 	public EOperation getReadLinkObjectEndAction__ValidateAssociationOfAssociation__DiagnosticChain_Map() {
-		return getReadLinkObjectEndAction().getEOperations().get(6);
+		return getReadLinkObjectEndAction().getEOperations().get(0);
 	}
 
 	/**
@@ -14648,7 +14654,7 @@
 	 * @generated
 	 */
 	public EOperation getReadLinkObjectEndAction__ValidateEndsOfAssociation__DiagnosticChain_Map() {
-		return getReadLinkObjectEndAction().getEOperations().get(2);
+		return getReadLinkObjectEndAction().getEOperations().get(6);
 	}
 
 	/**
@@ -14657,7 +14663,7 @@
 	 * @generated
 	 */
 	public EOperation getReadLinkObjectEndAction__ValidateTypeOfObject__DiagnosticChain_Map() {
-		return getReadLinkObjectEndAction().getEOperations().get(5);
+		return getReadLinkObjectEndAction().getEOperations().get(3);
 	}
 
 	/**
@@ -14675,7 +14681,7 @@
 	 * @generated
 	 */
 	public EOperation getReadLinkObjectEndAction__ValidateTypeOfResult__DiagnosticChain_Map() {
-		return getReadLinkObjectEndAction().getEOperations().get(3);
+		return getReadLinkObjectEndAction().getEOperations().get(2);
 	}
 
 	/**
@@ -14684,7 +14690,7 @@
 	 * @generated
 	 */
 	public EOperation getReadLinkObjectEndAction__ValidateMultiplicityOfResult__DiagnosticChain_Map() {
-		return getReadLinkObjectEndAction().getEOperations().get(4);
+		return getReadLinkObjectEndAction().getEOperations().get(5);
 	}
 
 	/**
@@ -14763,24 +14769,6 @@
 	 * @generated
 	 */
 	public EOperation getReadLinkObjectEndQualifierAction__ValidateTypeOfObject__DiagnosticChain_Map() {
-		return getReadLinkObjectEndQualifierAction().getEOperations().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getReadLinkObjectEndQualifierAction__ValidateMultiplicityOfQualifier__DiagnosticChain_Map() {
-		return getReadLinkObjectEndQualifierAction().getEOperations().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getReadLinkObjectEndQualifierAction__ValidateMultiplicityOfObject__DiagnosticChain_Map() {
 		return getReadLinkObjectEndQualifierAction().getEOperations().get(0);
 	}
 
@@ -14789,7 +14777,16 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EOperation getReadLinkObjectEndQualifierAction__ValidateSameType__DiagnosticChain_Map() {
+	public EOperation getReadLinkObjectEndQualifierAction__ValidateMultiplicityOfQualifier__DiagnosticChain_Map() {
+		return getReadLinkObjectEndQualifierAction().getEOperations().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EOperation getReadLinkObjectEndQualifierAction__ValidateMultiplicityOfObject__DiagnosticChain_Map() {
 		return getReadLinkObjectEndQualifierAction().getEOperations().get(5);
 	}
 
@@ -14798,8 +14795,17 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EOperation getReadLinkObjectEndQualifierAction__ValidateSameType__DiagnosticChain_Map() {
+		return getReadLinkObjectEndQualifierAction().getEOperations().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EOperation getReadLinkObjectEndQualifierAction__ValidateMultiplicityOfResult__DiagnosticChain_Map() {
-		return getReadLinkObjectEndQualifierAction().getEOperations().get(4);
+		return getReadLinkObjectEndQualifierAction().getEOperations().get(1);
 	}
 
 	/**
@@ -14831,7 +14837,7 @@
 	 * @generated
 	 */
 	public EOperation getCreateLinkObjectAction__ValidateAssociationClass__DiagnosticChain_Map() {
-		return getCreateLinkObjectAction().getEOperations().get(2);
+		return getCreateLinkObjectAction().getEOperations().get(0);
 	}
 
 	/**
@@ -14849,7 +14855,7 @@
 	 * @generated
 	 */
 	public EOperation getCreateLinkObjectAction__ValidateMultiplicity__DiagnosticChain_Map() {
-		return getCreateLinkObjectAction().getEOperations().get(0);
+		return getCreateLinkObjectAction().getEOperations().get(2);
 	}
 
 	/**
@@ -14901,24 +14907,6 @@
 	 * @generated
 	 */
 	public EOperation getAcceptEventAction__ValidateNoInputPins__DiagnosticChain_Map() {
-		return getAcceptEventAction().getEOperations().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getAcceptEventAction__ValidateNoOutputPins__DiagnosticChain_Map() {
-		return getAcceptEventAction().getEOperations().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getAcceptEventAction__ValidateTriggerEvents__DiagnosticChain_Map() {
 		return getAcceptEventAction().getEOperations().get(0);
 	}
 
@@ -14927,7 +14915,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EOperation getAcceptEventAction__ValidateUnmarshallSignalEvents__DiagnosticChain_Map() {
+	public EOperation getAcceptEventAction__ValidateNoOutputPins__DiagnosticChain_Map() {
 		return getAcceptEventAction().getEOperations().get(3);
 	}
 
@@ -14936,6 +14924,24 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EOperation getAcceptEventAction__ValidateTriggerEvents__DiagnosticChain_Map() {
+		return getAcceptEventAction().getEOperations().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EOperation getAcceptEventAction__ValidateUnmarshallSignalEvents__DiagnosticChain_Map() {
+		return getAcceptEventAction().getEOperations().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EClass getAcceptCallAction() {
 		if (acceptCallActionEClass == null) {
 			acceptCallActionEClass = (EClass) EPackage.Registry.INSTANCE
@@ -14960,7 +14966,7 @@
 	 * @generated
 	 */
 	public EOperation getAcceptCallAction__ValidateResultPins__DiagnosticChain_Map() {
-		return getAcceptCallAction().getEOperations().get(0);
+		return getAcceptCallAction().getEOperations().get(2);
 	}
 
 	/**
@@ -14969,7 +14975,7 @@
 	 * @generated
 	 */
 	public EOperation getAcceptCallAction__ValidateTriggerCallEvent__DiagnosticChain_Map() {
-		return getAcceptCallAction().getEOperations().get(1);
+		return getAcceptCallAction().getEOperations().get(0);
 	}
 
 	/**
@@ -14978,7 +14984,7 @@
 	 * @generated
 	 */
 	public EOperation getAcceptCallAction__ValidateUnmarshall__DiagnosticChain_Map() {
-		return getAcceptCallAction().getEOperations().get(2);
+		return getAcceptCallAction().getEOperations().get(1);
 	}
 
 	/**
@@ -15027,7 +15033,7 @@
 	 * @generated
 	 */
 	public EOperation getReplyAction__ValidatePinsMatchParameter__DiagnosticChain_Map() {
-		return getReplyAction().getEOperations().get(0);
+		return getReplyAction().getEOperations().get(1);
 	}
 
 	/**
@@ -15036,7 +15042,7 @@
 	 * @generated
 	 */
 	public EOperation getReplyAction__ValidateEventOnReplyToCallTrigger__DiagnosticChain_Map() {
-		return getReplyAction().getEOperations().get(1);
+		return getReplyAction().getEOperations().get(0);
 	}
 
 	/**
@@ -15088,7 +15094,7 @@
 	 * @generated
 	 */
 	public EOperation getUnmarshallAction__ValidateSameType__DiagnosticChain_Map() {
-		return getUnmarshallAction().getEOperations().get(6);
+		return getUnmarshallAction().getEOperations().get(0);
 	}
 
 	/**
@@ -15097,7 +15103,7 @@
 	 * @generated
 	 */
 	public EOperation getUnmarshallAction__ValidateMultiplicityOfObject__DiagnosticChain_Map() {
-		return getUnmarshallAction().getEOperations().get(5);
+		return getUnmarshallAction().getEOperations().get(2);
 	}
 
 	/**
@@ -15106,7 +15112,7 @@
 	 * @generated
 	 */
 	public EOperation getUnmarshallAction__ValidateNumberOfResult__DiagnosticChain_Map() {
-		return getUnmarshallAction().getEOperations().get(1);
+		return getUnmarshallAction().getEOperations().get(4);
 	}
 
 	/**
@@ -15124,7 +15130,7 @@
 	 * @generated
 	 */
 	public EOperation getUnmarshallAction__ValidateMultiplicityOfResult__DiagnosticChain_Map() {
-		return getUnmarshallAction().getEOperations().get(2);
+		return getUnmarshallAction().getEOperations().get(6);
 	}
 
 	/**
@@ -15133,7 +15139,7 @@
 	 * @generated
 	 */
 	public EOperation getUnmarshallAction__ValidateStructuralFeature__DiagnosticChain_Map() {
-		return getUnmarshallAction().getEOperations().get(0);
+		return getUnmarshallAction().getEOperations().get(1);
 	}
 
 	/**
@@ -15142,7 +15148,7 @@
 	 * @generated
 	 */
 	public EOperation getUnmarshallAction__ValidateUnmarshallTypeIsClassifier__DiagnosticChain_Map() {
-		return getUnmarshallAction().getEOperations().get(4);
+		return getUnmarshallAction().getEOperations().get(5);
 	}
 
 	/**
@@ -15200,15 +15206,6 @@
 	 * @generated
 	 */
 	public EOperation getReduceAction__ValidateInputTypeIsCollection__DiagnosticChain_Map() {
-		return getReduceAction().getEOperations().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getReduceAction__ValidateOutputTypesAreCompatible__DiagnosticChain_Map() {
 		return getReduceAction().getEOperations().get(2);
 	}
 
@@ -15217,7 +15214,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EOperation getReduceAction__ValidateReducerInputsOutput__DiagnosticChain_Map() {
+	public EOperation getReduceAction__ValidateOutputTypesAreCompatible__DiagnosticChain_Map() {
 		return getReduceAction().getEOperations().get(0);
 	}
 
@@ -15226,6 +15223,15 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EOperation getReduceAction__ValidateReducerInputsOutput__DiagnosticChain_Map() {
+		return getReduceAction().getEOperations().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EClass getStartObjectBehaviorAction() {
 		if (startObjectBehaviorActionEClass == null) {
 			startObjectBehaviorActionEClass = (EClass) EPackage.Registry.INSTANCE
@@ -15250,24 +15256,6 @@
 	 * @generated
 	 */
 	public EOperation getStartObjectBehaviorAction__ValidateTypeOfObject__DiagnosticChain_Map() {
-		return getStartObjectBehaviorAction().getEOperations().get(4);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getStartObjectBehaviorAction__ValidateMultiplicityOfObject__DiagnosticChain_Map() {
-		return getStartObjectBehaviorAction().getEOperations().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getStartObjectBehaviorAction__ValidateNumberOrderArguments__DiagnosticChain_Map() {
 		return getStartObjectBehaviorAction().getEOperations().get(3);
 	}
 
@@ -15276,7 +15264,16 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EOperation getStartObjectBehaviorAction__ValidateNumberOrderResults__DiagnosticChain_Map() {
+	public EOperation getStartObjectBehaviorAction__ValidateMultiplicityOfObject__DiagnosticChain_Map() {
+		return getStartObjectBehaviorAction().getEOperations().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EOperation getStartObjectBehaviorAction__ValidateNumberOrderArguments__DiagnosticChain_Map() {
 		return getStartObjectBehaviorAction().getEOperations().get(0);
 	}
 
@@ -15285,7 +15282,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EOperation getStartObjectBehaviorAction__ValidateTypeOrderingMultiplicityMatch__DiagnosticChain_Map() {
+	public EOperation getStartObjectBehaviorAction__ValidateNumberOrderResults__DiagnosticChain_Map() {
 		return getStartObjectBehaviorAction().getEOperations().get(2);
 	}
 
@@ -15294,6 +15291,15 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EOperation getStartObjectBehaviorAction__ValidateTypeOrderingMultiplicityMatch__DiagnosticChain_Map() {
+		return getStartObjectBehaviorAction().getEOperations().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EClass getControlNode() {
 		if (controlNodeEClass == null) {
 			controlNodeEClass = (EClass) EPackage.Registry.INSTANCE
@@ -15384,24 +15390,6 @@
 	 * @generated
 	 */
 	public EOperation getActivityParameterNode__ValidateHasParameters__DiagnosticChain_Map() {
-		return getActivityParameterNode().getEOperations().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getActivityParameterNode__ValidateSameType__DiagnosticChain_Map() {
-		return getActivityParameterNode().getEOperations().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getActivityParameterNode__ValidateNoEdges__DiagnosticChain_Map() {
 		return getActivityParameterNode().getEOperations().get(6);
 	}
 
@@ -15410,7 +15398,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EOperation getActivityParameterNode__ValidateNoIncomingEdges__DiagnosticChain_Map() {
+	public EOperation getActivityParameterNode__ValidateSameType__DiagnosticChain_Map() {
 		return getActivityParameterNode().getEOperations().get(5);
 	}
 
@@ -15419,8 +15407,26 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EOperation getActivityParameterNode__ValidateNoEdges__DiagnosticChain_Map() {
+		return getActivityParameterNode().getEOperations().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EOperation getActivityParameterNode__ValidateNoIncomingEdges__DiagnosticChain_Map() {
+		return getActivityParameterNode().getEOperations().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EOperation getActivityParameterNode__ValidateNoOutgoingEdges__DiagnosticChain_Map() {
-		return getActivityParameterNode().getEOperations().get(0);
+		return getActivityParameterNode().getEOperations().get(4);
 	}
 
 	/**
@@ -15429,7 +15435,7 @@
 	 * @generated
 	 */
 	public EOperation getActivityParameterNode__ValidateMaximumOneParameterNode__DiagnosticChain_Map() {
-		return getActivityParameterNode().getEOperations().get(4);
+		return getActivityParameterNode().getEOperations().get(0);
 	}
 
 	/**
@@ -15588,24 +15594,6 @@
 	 * @generated
 	 */
 	public EOperation getDecisionNode__ValidateIncomingOutgoingEdges__DiagnosticChain_Map() {
-		return getDecisionNode().getEOperations().get(4);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getDecisionNode__ValidateEdges__DiagnosticChain_Map() {
-		return getDecisionNode().getEOperations().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getDecisionNode__ValidateDecisionInputFlowIncoming__DiagnosticChain_Map() {
 		return getDecisionNode().getEOperations().get(2);
 	}
 
@@ -15614,25 +15602,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EOperation getDecisionNode__ValidateParameters__DiagnosticChain_Map() {
-		return getDecisionNode().getEOperations().get(6);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getDecisionNode__ValidateZeroInputParameters__DiagnosticChain_Map() {
-		return getDecisionNode().getEOperations().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getDecisionNode__ValidateIncomingObjectOneInputParameter__DiagnosticChain_Map() {
+	public EOperation getDecisionNode__ValidateEdges__DiagnosticChain_Map() {
 		return getDecisionNode().getEOperations().get(7);
 	}
 
@@ -15641,7 +15611,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EOperation getDecisionNode__ValidateIncomingControlOneInputParameter__DiagnosticChain_Map() {
+	public EOperation getDecisionNode__ValidateDecisionInputFlowIncoming__DiagnosticChain_Map() {
 		return getDecisionNode().getEOperations().get(5);
 	}
 
@@ -15650,7 +15620,34 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EOperation getDecisionNode__ValidateTwoInputParameters__DiagnosticChain_Map() {
+	public EOperation getDecisionNode__ValidateParameters__DiagnosticChain_Map() {
+		return getDecisionNode().getEOperations().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EOperation getDecisionNode__ValidateZeroInputParameters__DiagnosticChain_Map() {
+		return getDecisionNode().getEOperations().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EOperation getDecisionNode__ValidateIncomingObjectOneInputParameter__DiagnosticChain_Map() {
+		return getDecisionNode().getEOperations().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EOperation getDecisionNode__ValidateIncomingControlOneInputParameter__DiagnosticChain_Map() {
 		return getDecisionNode().getEOperations().get(3);
 	}
 
@@ -15659,6 +15656,15 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EOperation getDecisionNode__ValidateTwoInputParameters__DiagnosticChain_Map() {
+		return getDecisionNode().getEOperations().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EClass getActivityFinalNode() {
 		if (activityFinalNodeEClass == null) {
 			activityFinalNodeEClass = (EClass) EPackage.Registry.INSTANCE
@@ -15784,7 +15790,7 @@
 	 * @generated
 	 */
 	public EOperation getObjectFlow__ValidateNoActions__DiagnosticChain_Map() {
-		return getObjectFlow().getEOperations().get(1);
+		return getObjectFlow().getEOperations().get(3);
 	}
 
 	/**
@@ -15793,7 +15799,7 @@
 	 * @generated
 	 */
 	public EOperation getObjectFlow__ValidateCompatibleTypes__DiagnosticChain_Map() {
-		return getObjectFlow().getEOperations().get(4);
+		return getObjectFlow().getEOperations().get(2);
 	}
 
 	/**
@@ -15802,7 +15808,7 @@
 	 * @generated
 	 */
 	public EOperation getObjectFlow__ValidateSameUpperBounds__DiagnosticChain_Map() {
-		return getObjectFlow().getEOperations().get(5);
+		return getObjectFlow().getEOperations().get(7);
 	}
 
 	/**
@@ -15820,7 +15826,7 @@
 	 * @generated
 	 */
 	public EOperation getObjectFlow__ValidateTransformationBehaviour__DiagnosticChain_Map() {
-		return getObjectFlow().getEOperations().get(2);
+		return getObjectFlow().getEOperations().get(5);
 	}
 
 	/**
@@ -15829,7 +15835,7 @@
 	 * @generated
 	 */
 	public EOperation getObjectFlow__ValidateSelectionBehaviour__DiagnosticChain_Map() {
-		return getObjectFlow().getEOperations().get(3);
+		return getObjectFlow().getEOperations().get(1);
 	}
 
 	/**
@@ -15838,7 +15844,7 @@
 	 * @generated
 	 */
 	public EOperation getObjectFlow__ValidateInputAndOutputParameter__DiagnosticChain_Map() {
-		return getObjectFlow().getEOperations().get(0);
+		return getObjectFlow().getEOperations().get(4);
 	}
 
 	/**
@@ -15847,7 +15853,7 @@
 	 * @generated
 	 */
 	public EOperation getObjectFlow__ValidateIsMulticastOrIsMultireceive__DiagnosticChain_Map() {
-		return getObjectFlow().getEOperations().get(7);
+		return getObjectFlow().getEOperations().get(0);
 	}
 
 	/**
@@ -15931,42 +15937,6 @@
 	 * @generated
 	 */
 	public EOperation getConditionalNode__ValidateResultNoIncoming__DiagnosticChain_Map() {
-		return getConditionalNode().getEOperations().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getConditionalNode__ValidateNoInputPins__DiagnosticChain_Map() {
-		return getConditionalNode().getEOperations().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getConditionalNode__ValidateOneClauseWithExecutableNode__DiagnosticChain_Map() {
-		return getConditionalNode().getEOperations().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getConditionalNode__ValidateMatchingOutputPins__DiagnosticChain_Map() {
-		return getConditionalNode().getEOperations().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getConditionalNode__ValidateExecutableNodes__DiagnosticChain_Map() {
 		return getConditionalNode().getEOperations().get(4);
 	}
 
@@ -15975,7 +15945,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EOperation getConditionalNode__ValidateClauseNoPredecessor__DiagnosticChain_Map() {
+	public EOperation getConditionalNode__ValidateNoInputPins__DiagnosticChain_Map() {
 		return getConditionalNode().getEOperations().get(5);
 	}
 
@@ -15984,6 +15954,42 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EOperation getConditionalNode__ValidateOneClauseWithExecutableNode__DiagnosticChain_Map() {
+		return getConditionalNode().getEOperations().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EOperation getConditionalNode__ValidateMatchingOutputPins__DiagnosticChain_Map() {
+		return getConditionalNode().getEOperations().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EOperation getConditionalNode__ValidateExecutableNodes__DiagnosticChain_Map() {
+		return getConditionalNode().getEOperations().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EOperation getConditionalNode__ValidateClauseNoPredecessor__DiagnosticChain_Map() {
+		return getConditionalNode().getEOperations().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EClass getClause() {
 		if (clauseEClass == null) {
 			clauseEClass = (EClass) EPackage.Registry.INSTANCE
@@ -16052,15 +16058,6 @@
 	 * @generated
 	 */
 	public EOperation getClause__ValidateDeciderOutput__DiagnosticChain_Map() {
-		return getClause().getEOperations().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getClause__ValidateTestAndBody__DiagnosticChain_Map() {
 		return getClause().getEOperations().get(2);
 	}
 
@@ -16069,7 +16066,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EOperation getClause__ValidateBodyOutputPins__DiagnosticChain_Map() {
+	public EOperation getClause__ValidateTestAndBody__DiagnosticChain_Map() {
 		return getClause().getEOperations().get(0);
 	}
 
@@ -16078,6 +16075,15 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EOperation getClause__ValidateBodyOutputPins__DiagnosticChain_Map() {
+		return getClause().getEOperations().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EClass getLoopNode() {
 		if (loopNodeEClass == null) {
 			loopNodeEClass = (EClass) EPackage.Registry.INSTANCE
@@ -16173,24 +16179,6 @@
 	 * @generated
 	 */
 	public EOperation getLoopNode__ValidateInputEdges__DiagnosticChain_Map() {
-		return getLoopNode().getEOperations().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getLoopNode__ValidateExecutableNodes__DiagnosticChain_Map() {
-		return getLoopNode().getEOperations().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getLoopNode__ValidateBodyOutputPins__DiagnosticChain_Map() {
 		return getLoopNode().getEOperations().get(3);
 	}
 
@@ -16199,7 +16187,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EOperation getLoopNode__ValidateResultNoIncoming__DiagnosticChain_Map() {
+	public EOperation getLoopNode__ValidateExecutableNodes__DiagnosticChain_Map() {
 		return getLoopNode().getEOperations().get(0);
 	}
 
@@ -16208,6 +16196,24 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EOperation getLoopNode__ValidateBodyOutputPins__DiagnosticChain_Map() {
+		return getLoopNode().getEOperations().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EOperation getLoopNode__ValidateResultNoIncoming__DiagnosticChain_Map() {
+		return getLoopNode().getEOperations().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EClass getExpansionNode() {
 		if (expansionNodeEClass == null) {
 			expansionNodeEClass = (EClass) EPackage.Registry.INSTANCE
@@ -16365,7 +16371,7 @@
 	 * @generated
 	 */
 	public EOperation getComponent__ValidateNoNestedClassifiers__DiagnosticChain_Map() {
-		return getComponent().getEOperations().get(0);
+		return getComponent().getEOperations().get(1);
 	}
 
 	/**
@@ -16374,7 +16380,7 @@
 	 * @generated
 	 */
 	public EOperation getComponent__ValidateNoPackagedElements__DiagnosticChain_Map() {
-		return getComponent().getEOperations().get(1);
+		return getComponent().getEOperations().get(0);
 	}
 
 	/**
@@ -16583,42 +16589,6 @@
 	 * @generated
 	 */
 	public EOperation getFinalState__ValidateNoOutgoingTransitions__DiagnosticChain_Map() {
-		return getFinalState().getEOperations().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getFinalState__ValidateNoRegions__DiagnosticChain_Map() {
-		return getFinalState().getEOperations().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getFinalState__ValidateCannotReferenceSubmachine__DiagnosticChain_Map() {
-		return getFinalState().getEOperations().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getFinalState__ValidateNoEntryBehavior__DiagnosticChain_Map() {
-		return getFinalState().getEOperations().get(4);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EOperation getFinalState__ValidateNoExitBehavior__DiagnosticChain_Map() {
 		return getFinalState().getEOperations().get(0);
 	}
 
@@ -16627,7 +16597,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EOperation getFinalState__ValidateNoStateBehavior__DiagnosticChain_Map() {
+	public EOperation getFinalState__ValidateNoRegions__DiagnosticChain_Map() {
 		return getFinalState().getEOperations().get(5);
 	}
 
@@ -16636,6 +16606,42 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EOperation getFinalState__ValidateCannotReferenceSubmachine__DiagnosticChain_Map() {
+		return getFinalState().getEOperations().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EOperation getFinalState__ValidateNoEntryBehavior__DiagnosticChain_Map() {
+		return getFinalState().getEOperations().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EOperation getFinalState__ValidateNoExitBehavior__DiagnosticChain_Map() {
+		return getFinalState().getEOperations().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EOperation getFinalState__ValidateNoStateBehavior__DiagnosticChain_Map() {
+		return getFinalState().getEOperations().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EClass getTimeEvent() {
 		if (timeEventEClass == null) {
 			timeEventEClass = (EClass) EPackage.Registry.INSTANCE
@@ -16668,7 +16674,7 @@
 	 * @generated
 	 */
 	public EOperation getTimeEvent__ValidateWhenNonNegative__DiagnosticChain_Map() {
-		return getTimeEvent().getEOperations().get(0);
+		return getTimeEvent().getEOperations().get(1);
 	}
 
 	/**
@@ -16677,7 +16683,7 @@
 	 * @generated
 	 */
 	public EOperation getTimeEvent__ValidateStartingTime__DiagnosticChain_Map() {
-		return getTimeEvent().getEOperations().get(1);
+		return getTimeEvent().getEOperations().get(0);
 	}
 
 	/**
@@ -16778,7 +16784,7 @@
 	 * @generated
 	 */
 	public EOperation getAssociationClass__ValidateCannotBeDefined__DiagnosticChain_Map() {
-		return getAssociationClass().getEOperations().get(0);
+		return getAssociationClass().getEOperations().get(1);
 	}
 
 	/**
@@ -16787,7 +16793,7 @@
 	 * @generated
 	 */
 	public EOperation getAssociationClass__ValidateDisjointAttributesEnds__DiagnosticChain_Map() {
-		return getAssociationClass().getEOperations().get(1);
+		return getAssociationClass().getEOperations().get(0);
 	}
 
 	/**
@@ -16798,7 +16804,7 @@
 	public EEnum getVisibilityKind() {
 		if (visibilityKindEEnum == null) {
 			visibilityKindEEnum = (EEnum) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(24);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(30);
 		}
 		return visibilityKindEEnum;
 	}
@@ -16811,7 +16817,7 @@
 	public EEnum getCallConcurrencyKind() {
 		if (callConcurrencyKindEEnum == null) {
 			callConcurrencyKindEEnum = (EEnum) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(48);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(50);
 		}
 		return callConcurrencyKindEEnum;
 	}
@@ -16850,7 +16856,7 @@
 	public EEnum getAggregationKind() {
 		if (aggregationKindEEnum == null) {
 			aggregationKindEEnum = (EEnum) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(75);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(79);
 		}
 		return aggregationKindEEnum;
 	}
@@ -16863,7 +16869,7 @@
 	public EEnum getParameterDirectionKind() {
 		if (parameterDirectionKindEEnum == null) {
 			parameterDirectionKindEEnum = (EEnum) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(51);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(74);
 		}
 		return parameterDirectionKindEEnum;
 	}
@@ -16876,7 +16882,7 @@
 	public EEnum getParameterEffectKind() {
 		if (parameterEffectKindEEnum == null) {
 			parameterEffectKindEEnum = (EEnum) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(52);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(75);
 		}
 		return parameterEffectKindEEnum;
 	}
@@ -16889,7 +16895,7 @@
 	public EEnum getConnectorKind() {
 		if (connectorKindEEnum == null) {
 			connectorKindEEnum = (EEnum) EPackage.Registry.INSTANCE
-				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(88);
+				.getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(100);
 		}
 		return connectorKindEEnum;
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UnmarshallActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UnmarshallActionImpl.java
index aedfd02..350f879 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UnmarshallActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UnmarshallActionImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: UnmarshallActionImpl.java,v 1.30 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -496,8 +495,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.UNMARSHALL_ACTION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.UNMARSHALL_ACTION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.UNMARSHALL_ACTION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -574,8 +571,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.UNMARSHALL_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.UNMARSHALL_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.UNMARSHALL_ACTION__IN_STRUCTURED_NODE :
@@ -588,6 +583,8 @@
 				return getOutgoings();
 			case UMLPackage.UNMARSHALL_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.UNMARSHALL_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.UNMARSHALL_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.UNMARSHALL_ACTION__HANDLER :
@@ -834,8 +831,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.UNMARSHALL_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.UNMARSHALL_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.UNMARSHALL_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.UNMARSHALL_ACTION__IN_STRUCTURED_NODE :
@@ -847,6 +842,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.UNMARSHALL_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.UNMARSHALL_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.UNMARSHALL_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.UNMARSHALL_ACTION__HANDLER :
@@ -967,10 +964,6 @@
 				return allOwnedElements();
 			case UMLPackage.UNMARSHALL_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.UNMARSHALL_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.UNMARSHALL_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -979,6 +972,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.UNMARSHALL_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.UNMARSHALL_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.UNMARSHALL_ACTION___CREATE_USAGE__NAMEDELEMENT :
@@ -1026,32 +1023,32 @@
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.UNMARSHALL_ACTION___GET_CONTEXT :
 				return getContext();
+			case UMLPackage.UNMARSHALL_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP :
+				return validateSameType((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.UNMARSHALL_ACTION___VALIDATE_STRUCTURAL_FEATURE__DIAGNOSTICCHAIN_MAP :
 				return validateStructuralFeature(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.UNMARSHALL_ACTION___VALIDATE_NUMBER_OF_RESULT__DIAGNOSTICCHAIN_MAP :
-				return validateNumberOfResult(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.UNMARSHALL_ACTION___VALIDATE_MULTIPLICITY_OF_RESULT__DIAGNOSTICCHAIN_MAP :
-				return validateMultiplicityOfResult(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.UNMARSHALL_ACTION___VALIDATE_TYPE_AND_ORDERING__DIAGNOSTICCHAIN_MAP :
-				return validateTypeAndOrdering(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.UNMARSHALL_ACTION___VALIDATE_UNMARSHALL_TYPE_IS_CLASSIFIER__DIAGNOSTICCHAIN_MAP :
-				return validateUnmarshallTypeIsClassifier(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.UNMARSHALL_ACTION___VALIDATE_MULTIPLICITY_OF_OBJECT__DIAGNOSTICCHAIN_MAP :
 				return validateMultiplicityOfObject(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.UNMARSHALL_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP :
-				return validateSameType((DiagnosticChain) arguments.get(0),
+			case UMLPackage.UNMARSHALL_ACTION___VALIDATE_TYPE_AND_ORDERING__DIAGNOSTICCHAIN_MAP :
+				return validateTypeAndOrdering(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.UNMARSHALL_ACTION___VALIDATE_NUMBER_OF_RESULT__DIAGNOSTICCHAIN_MAP :
+				return validateNumberOfResult(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.UNMARSHALL_ACTION___VALIDATE_UNMARSHALL_TYPE_IS_CLASSIFIER__DIAGNOSTICCHAIN_MAP :
+				return validateUnmarshallTypeIsClassifier(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.UNMARSHALL_ACTION___VALIDATE_MULTIPLICITY_OF_RESULT__DIAGNOSTICCHAIN_MAP :
+				return validateMultiplicityOfResult(
+					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UseCaseImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UseCaseImpl.java
index d730a38..fdec18c 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UseCaseImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UseCaseImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: UseCaseImpl.java,v 1.30 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -1198,10 +1197,6 @@
 				return allOwnedElements();
 			case UMLPackage.USE_CASE___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.USE_CASE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.USE_CASE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1210,6 +1205,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.USE_CASE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.USE_CASE___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.USE_CASE___CREATE_USAGE__NAMEDELEMENT :
@@ -1299,14 +1298,6 @@
 				return isTemplate();
 			case UMLPackage.USE_CASE___PARAMETERABLE_ELEMENTS :
 				return parameterableElements();
-			case UMLPackage.USE_CASE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
-				return validateSpecializeType(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.USE_CASE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
-				return validateMapsToGeneralizationSet(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.USE_CASE___VALIDATE_NON_FINAL_PARENTS__DIAGNOSTICCHAIN_MAP :
 				return validateNonFinalParents(
 					(DiagnosticChain) arguments.get(0),
@@ -1315,6 +1306,14 @@
 				return validateNoCyclesInGeneralization(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.USE_CASE___VALIDATE_SPECIALIZE_TYPE__DIAGNOSTICCHAIN_MAP :
+				return validateSpecializeType(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.USE_CASE___VALIDATE_MAPS_TO_GENERALIZATION_SET__DIAGNOSTICCHAIN_MAP :
+				return validateMapsToGeneralizationSet(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.USE_CASE___GET_ALL_ATTRIBUTES :
 				return getAllAttributes();
 			case UMLPackage.USE_CASE___GET_ALL_OPERATIONS :
@@ -1361,6 +1360,13 @@
 				return getAllImplementedInterfaces();
 			case UMLPackage.USE_CASE___GET_IMPLEMENTED_INTERFACES :
 				return getImplementedInterfaces();
+			case UMLPackage.USE_CASE___VALIDATE_MUST_HAVE_NAME__DIAGNOSTICCHAIN_MAP :
+				return validateMustHaveName((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.USE_CASE___VALIDATE_CANNOT_INCLUDE_SELF__DIAGNOSTICCHAIN_MAP :
+				return validateCannotIncludeSelf(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.USE_CASE___VALIDATE_BINARY_ASSOCIATIONS__DIAGNOSTICCHAIN_MAP :
 				return validateBinaryAssociations(
 					(DiagnosticChain) arguments.get(0),
@@ -1369,13 +1375,6 @@
 				return validateNoAssociationToUseCase(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.USE_CASE___VALIDATE_CANNOT_INCLUDE_SELF__DIAGNOSTICCHAIN_MAP :
-				return validateCannotIncludeSelf(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.USE_CASE___VALIDATE_MUST_HAVE_NAME__DIAGNOSTICCHAIN_MAP :
-				return validateMustHaveName((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.USE_CASE___ALL_INCLUDED_USE_CASES :
 				return allIncludedUseCases();
 		}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ValuePinImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ValuePinImpl.java
index 22ba0d0..3a3c2ff 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ValuePinImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ValuePinImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ValuePinImpl.java,v 1.30 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -289,8 +288,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.VALUE_PIN__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.VALUE_PIN__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.VALUE_PIN__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -361,8 +358,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.VALUE_PIN__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.VALUE_PIN__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.VALUE_PIN__IN_STRUCTURED_NODE :
@@ -375,6 +370,8 @@
 				return getOutgoings();
 			case UMLPackage.VALUE_PIN__INCOMING :
 				return getIncomings();
+			case UMLPackage.VALUE_PIN__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.VALUE_PIN__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.VALUE_PIN__TYPE :
@@ -671,8 +668,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.VALUE_PIN__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.VALUE_PIN__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.VALUE_PIN__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.VALUE_PIN__IN_STRUCTURED_NODE :
@@ -684,6 +679,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.VALUE_PIN__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.VALUE_PIN__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.VALUE_PIN__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.VALUE_PIN__TYPE :
@@ -810,10 +807,6 @@
 				return allOwnedElements();
 			case UMLPackage.VALUE_PIN___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.VALUE_PIN___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.VALUE_PIN___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -822,6 +815,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.VALUE_PIN___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.VALUE_PIN___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.VALUE_PIN___CREATE_USAGE__NAMEDELEMENT :
@@ -867,32 +864,32 @@
 				return validateOwnedStructuredNode(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.VALUE_PIN___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP :
-				return validateInputOutputParameter(
+			case UMLPackage.VALUE_PIN___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP :
+				return validateObjectFlowEdges(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.VALUE_PIN___VALIDATE_SELECTION_BEHAVIOR__DIAGNOSTICCHAIN_MAP :
 				return validateSelectionBehavior(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.VALUE_PIN___VALIDATE_OBJECT_FLOW_EDGES__DIAGNOSTICCHAIN_MAP :
-				return validateObjectFlowEdges(
+			case UMLPackage.VALUE_PIN___VALIDATE_INPUT_OUTPUT_PARAMETER__DIAGNOSTICCHAIN_MAP :
+				return validateInputOutputParameter(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.VALUE_PIN___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP :
-				return validateUpperGeLower((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.VALUE_PIN___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP :
 				return validateLowerGe0((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.VALUE_PIN___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP :
-				return validateValueSpecificationNoSideEffects(
-					(DiagnosticChain) arguments.get(0),
+			case UMLPackage.VALUE_PIN___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP :
+				return validateUpperGeLower((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.VALUE_PIN___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP :
 				return validateValueSpecificationConstant(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.VALUE_PIN___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP :
+				return validateValueSpecificationNoSideEffects(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.VALUE_PIN___SET_LOWER__INT :
 				setLower((Integer) arguments.get(0));
 				return null;
@@ -926,14 +923,14 @@
 				return validateOutgoingEdgesStructuredOnly(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.VALUE_PIN___VALIDATE_NO_INCOMING_EDGES__DIAGNOSTICCHAIN_MAP :
-				return validateNoIncomingEdges(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.VALUE_PIN___VALIDATE_COMPATIBLE_TYPE__DIAGNOSTICCHAIN_MAP :
 				return validateCompatibleType(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.VALUE_PIN___VALIDATE_NO_INCOMING_EDGES__DIAGNOSTICCHAIN_MAP :
+				return validateNoIncomingEdges(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ValueSpecificationActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ValueSpecificationActionImpl.java
index aff1af9..20cf3bd 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ValueSpecificationActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ValueSpecificationActionImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ValueSpecificationActionImpl.java,v 1.29 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -397,8 +396,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.VALUE_SPECIFICATION_ACTION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.VALUE_SPECIFICATION_ACTION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.VALUE_SPECIFICATION_ACTION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -474,8 +471,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.VALUE_SPECIFICATION_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.VALUE_SPECIFICATION_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.VALUE_SPECIFICATION_ACTION__IN_STRUCTURED_NODE :
@@ -488,6 +483,8 @@
 				return getOutgoings();
 			case UMLPackage.VALUE_SPECIFICATION_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.VALUE_SPECIFICATION_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.VALUE_SPECIFICATION_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.VALUE_SPECIFICATION_ACTION__HANDLER :
@@ -725,8 +722,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.VALUE_SPECIFICATION_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.VALUE_SPECIFICATION_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.VALUE_SPECIFICATION_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.VALUE_SPECIFICATION_ACTION__IN_STRUCTURED_NODE :
@@ -738,6 +733,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.VALUE_SPECIFICATION_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.VALUE_SPECIFICATION_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.VALUE_SPECIFICATION_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.VALUE_SPECIFICATION_ACTION__HANDLER :
@@ -856,10 +853,6 @@
 				return allOwnedElements();
 			case UMLPackage.VALUE_SPECIFICATION_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.VALUE_SPECIFICATION_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.VALUE_SPECIFICATION_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -868,6 +861,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.VALUE_SPECIFICATION_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.VALUE_SPECIFICATION_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.VALUE_SPECIFICATION_ACTION___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ValueSpecificationImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ValueSpecificationImpl.java
index 37b597d..7ff39d2 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ValueSpecificationImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ValueSpecificationImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ValueSpecificationImpl.java,v 1.17 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -506,10 +505,6 @@
 				return allOwnedElements();
 			case UMLPackage.VALUE_SPECIFICATION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.VALUE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.VALUE_SPECIFICATION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -518,6 +513,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.VALUE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.VALUE_SPECIFICATION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.VALUE_SPECIFICATION___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/VariableActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/VariableActionImpl.java
index b1063de..0580d7f 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/VariableActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/VariableActionImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: VariableActionImpl.java,v 1.20 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -193,8 +192,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.VARIABLE_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.VARIABLE_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.VARIABLE_ACTION__IN_STRUCTURED_NODE :
@@ -207,6 +204,8 @@
 				return getOutgoings();
 			case UMLPackage.VARIABLE_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.VARIABLE_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.VARIABLE_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.VARIABLE_ACTION__HANDLER :
@@ -434,8 +433,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.VARIABLE_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.VARIABLE_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.VARIABLE_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.VARIABLE_ACTION__IN_STRUCTURED_NODE :
@@ -447,6 +444,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.VARIABLE_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.VARIABLE_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.VARIABLE_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.VARIABLE_ACTION__HANDLER :
@@ -563,10 +562,6 @@
 				return allOwnedElements();
 			case UMLPackage.VARIABLE_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.VARIABLE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.VARIABLE_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -575,6 +570,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.VARIABLE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.VARIABLE_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.VARIABLE_ACTION___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/VariableImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/VariableImpl.java
index d0eabb6..dc2a74a 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/VariableImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/VariableImpl.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: VariableImpl.java,v 1.38 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -1194,14 +1193,14 @@
 	public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
 		if (baseClass == MultiplicityElement.class) {
 			switch (baseOperationID) {
-				case UMLPackage.MULTIPLICITY_ELEMENT___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP :
-					return UMLPackage.VARIABLE___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP;
 				case UMLPackage.MULTIPLICITY_ELEMENT___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP :
 					return UMLPackage.VARIABLE___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP;
-				case UMLPackage.MULTIPLICITY_ELEMENT___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP :
-					return UMLPackage.VARIABLE___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP;
+				case UMLPackage.MULTIPLICITY_ELEMENT___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP :
+					return UMLPackage.VARIABLE___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP;
 				case UMLPackage.MULTIPLICITY_ELEMENT___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP :
 					return UMLPackage.VARIABLE___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP;
+				case UMLPackage.MULTIPLICITY_ELEMENT___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP :
+					return UMLPackage.VARIABLE___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP;
 				case UMLPackage.MULTIPLICITY_ELEMENT___SET_LOWER__INT :
 					return UMLPackage.VARIABLE___SET_LOWER__INT;
 				case UMLPackage.MULTIPLICITY_ELEMENT___SET_UPPER__INT :
@@ -1323,10 +1322,6 @@
 				return allOwnedElements();
 			case UMLPackage.VARIABLE___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.VARIABLE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.VARIABLE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -1335,6 +1330,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.VARIABLE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.VARIABLE___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.VARIABLE___CREATE_USAGE__NAMEDELEMENT :
@@ -1362,20 +1361,20 @@
 				return isTemplateParameter();
 			case UMLPackage.VARIABLE___GET_ENDS :
 				return getEnds();
-			case UMLPackage.VARIABLE___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP :
-				return validateUpperGeLower((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.VARIABLE___VALIDATE_LOWER_GE0__DIAGNOSTICCHAIN_MAP :
 				return validateLowerGe0((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.VARIABLE___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP :
-				return validateValueSpecificationNoSideEffects(
-					(DiagnosticChain) arguments.get(0),
+			case UMLPackage.VARIABLE___VALIDATE_UPPER_GE_LOWER__DIAGNOSTICCHAIN_MAP :
+				return validateUpperGeLower((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.VARIABLE___VALIDATE_VALUE_SPECIFICATION_CONSTANT__DIAGNOSTICCHAIN_MAP :
 				return validateValueSpecificationConstant(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.VARIABLE___VALIDATE_VALUE_SPECIFICATION_NO_SIDE_EFFECTS__DIAGNOSTICCHAIN_MAP :
+				return validateValueSpecificationNoSideEffects(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.VARIABLE___SET_LOWER__INT :
 				setLower((Integer) arguments.get(0));
 				return null;
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/VertexImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/VertexImpl.java
index 21da6e7..1fd58b7 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/VertexImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/VertexImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: VertexImpl.java,v 1.26 2010/09/28 21:02:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -557,10 +556,6 @@
 				return allOwnedElements();
 			case UMLPackage.VERTEX___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.VERTEX___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.VERTEX___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -569,6 +564,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.VERTEX___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.VERTEX___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.VERTEX___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/WriteLinkActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/WriteLinkActionImpl.java
index a30a933..54e3229 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/WriteLinkActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/WriteLinkActionImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: WriteLinkActionImpl.java,v 1.5 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -166,10 +165,6 @@
 				return allOwnedElements();
 			case UMLPackage.WRITE_LINK_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.WRITE_LINK_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.WRITE_LINK_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -178,6 +173,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.WRITE_LINK_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.WRITE_LINK_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.WRITE_LINK_ACTION___CREATE_USAGE__NAMEDELEMENT :
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/WriteStructuralFeatureActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/WriteStructuralFeatureActionImpl.java
index dfcd625..6c1cb1a 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/WriteStructuralFeatureActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/WriteStructuralFeatureActionImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: WriteStructuralFeatureActionImpl.java,v 1.30 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -430,8 +429,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -509,8 +506,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__IN_STRUCTURED_NODE :
@@ -523,6 +518,8 @@
 				return getOutgoings();
 			case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__HANDLER :
@@ -780,8 +777,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__IN_STRUCTURED_NODE :
@@ -793,6 +788,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__HANDLER :
@@ -915,10 +912,6 @@
 				return allOwnedElements();
 			case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -927,6 +920,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION___CREATE_USAGE__NAMEDELEMENT :
@@ -974,15 +971,12 @@
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION___GET_CONTEXT :
 				return getContext();
-			case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
-				return validateMultiplicity((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP :
-				return validateSameType((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_VISIBILITY__DIAGNOSTICCHAIN_MAP :
 				return validateVisibility((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
+				return validateMultiplicity((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_NOT_STATIC__DIAGNOSTICCHAIN_MAP :
 				return validateNotStatic((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
@@ -990,9 +984,8 @@
 				return validateOneFeaturingClassifier(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_MULTIPLICITY_OF_RESULT__DIAGNOSTICCHAIN_MAP :
-				return validateMultiplicityOfResult(
-					(DiagnosticChain) arguments.get(0),
+			case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP :
+				return validateSameType((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_INPUT_PIN__DIAGNOSTICCHAIN_MAP :
 				return validateInputPin((DiagnosticChain) arguments.get(0),
@@ -1000,6 +993,10 @@
 			case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_TYPE_OF_RESULT__DIAGNOSTICCHAIN_MAP :
 				return validateTypeOfResult((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION___VALIDATE_MULTIPLICITY_OF_RESULT__DIAGNOSTICCHAIN_MAP :
+				return validateMultiplicityOfResult(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/WriteVariableActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/WriteVariableActionImpl.java
index c19300c..4e5da8b 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/WriteVariableActionImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/WriteVariableActionImpl.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329, 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: WriteVariableActionImpl.java,v 1.29 2010/09/28 21:02:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -285,8 +284,6 @@
 					.basicRemove(otherEnd, msgs);
 			case UMLPackage.WRITE_VARIABLE_ACTION__NAME_EXPRESSION :
 				return basicSetNameExpression(null, msgs);
-			case UMLPackage.WRITE_VARIABLE_ACTION__ACTIVITY :
-				return basicSetActivity(null, msgs);
 			case UMLPackage.WRITE_VARIABLE_ACTION__IN_PARTITION :
 				return ((InternalEList<?>) getInPartitions()).basicRemove(
 					otherEnd, msgs);
@@ -360,8 +357,6 @@
 				if (resolve)
 					return getActivity();
 				return basicGetActivity();
-			case UMLPackage.WRITE_VARIABLE_ACTION__IN_GROUP :
-				return getInGroups();
 			case UMLPackage.WRITE_VARIABLE_ACTION__IN_PARTITION :
 				return getInPartitions();
 			case UMLPackage.WRITE_VARIABLE_ACTION__IN_STRUCTURED_NODE :
@@ -374,6 +369,8 @@
 				return getOutgoings();
 			case UMLPackage.WRITE_VARIABLE_ACTION__INCOMING :
 				return getIncomings();
+			case UMLPackage.WRITE_VARIABLE_ACTION__IN_GROUP :
+				return getInGroups();
 			case UMLPackage.WRITE_VARIABLE_ACTION__REDEFINED_NODE :
 				return getRedefinedNodes();
 			case UMLPackage.WRITE_VARIABLE_ACTION__HANDLER :
@@ -611,8 +608,6 @@
 				return isSetRedefinitionContexts();
 			case UMLPackage.WRITE_VARIABLE_ACTION__ACTIVITY :
 				return basicGetActivity() != null;
-			case UMLPackage.WRITE_VARIABLE_ACTION__IN_GROUP :
-				return isSetInGroups();
 			case UMLPackage.WRITE_VARIABLE_ACTION__IN_PARTITION :
 				return inPartitions != null && !inPartitions.isEmpty();
 			case UMLPackage.WRITE_VARIABLE_ACTION__IN_STRUCTURED_NODE :
@@ -624,6 +619,8 @@
 				return outgoings != null && !outgoings.isEmpty();
 			case UMLPackage.WRITE_VARIABLE_ACTION__INCOMING :
 				return incomings != null && !incomings.isEmpty();
+			case UMLPackage.WRITE_VARIABLE_ACTION__IN_GROUP :
+				return isSetInGroups();
 			case UMLPackage.WRITE_VARIABLE_ACTION__REDEFINED_NODE :
 				return redefinedNodes != null && !redefinedNodes.isEmpty();
 			case UMLPackage.WRITE_VARIABLE_ACTION__HANDLER :
@@ -742,10 +739,6 @@
 				return allOwnedElements();
 			case UMLPackage.WRITE_VARIABLE_ACTION___MUST_BE_OWNED :
 				return mustBeOwned();
-			case UMLPackage.WRITE_VARIABLE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
-				return validateVisibilityNeedsOwnership(
-					(DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.WRITE_VARIABLE_ACTION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP :
 				return validateHasQualifiedName(
 					(DiagnosticChain) arguments.get(0),
@@ -754,6 +747,10 @@
 				return validateHasNoQualifiedName(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.WRITE_VARIABLE_ACTION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP :
+				return validateVisibilityNeedsOwnership(
+					(DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.WRITE_VARIABLE_ACTION___CREATE_DEPENDENCY__NAMEDELEMENT :
 				return createDependency((NamedElement) arguments.get(0));
 			case UMLPackage.WRITE_VARIABLE_ACTION___CREATE_USAGE__NAMEDELEMENT :
@@ -805,12 +802,12 @@
 				return validateScopeOfVariable(
 					(DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
-			case UMLPackage.WRITE_VARIABLE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP :
-				return validateSameType((DiagnosticChain) arguments.get(0),
-					(Map<Object, Object>) arguments.get(1));
 			case UMLPackage.WRITE_VARIABLE_ACTION___VALIDATE_MULTIPLICITY__DIAGNOSTICCHAIN_MAP :
 				return validateMultiplicity((DiagnosticChain) arguments.get(0),
 					(Map<Object, Object>) arguments.get(1));
+			case UMLPackage.WRITE_VARIABLE_ACTION___VALIDATE_SAME_TYPE__DIAGNOSTICCHAIN_MAP :
+				return validateSameType((DiagnosticChain) arguments.get(0),
+					(Map<Object, Object>) arguments.get(1));
 		}
 		return eDynamicInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/uml.ecore b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/uml.ecore
index abab981..0640583 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/uml.ecore
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/uml.ecore
@@ -1,8 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<ecore:EPackage xmi:version="2.0"
-    xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="uml"
-    nsURI="http://www.eclipse.org/uml2/4.0.0/UML" nsPrefix="uml">
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="uml" nsURI="http://www.eclipse.org/uml2/4.0.0/UML" nsPrefix="uml">
   <eClassifiers xsi:type="ecore:EClass" name="Abstraction" eSuperTypes="#//Dependency">
     <eStructuralFeatures xsi:type="ecore:EReference" name="mapping" ordered="false"
         eType="#//OpaqueExpression" containment="true">
@@ -19,27 +17,27 @@
       <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="DirectedRelationship" abstract="true"
-      eSuperTypes="#//Relationship">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="source" ordered="false"
-        lowerBound="1" upperBound="-1" eType="#//Element" changeable="false" volatile="true"
-        transient="true" derived="true">
-      <eAnnotations source="union"/>
-      <eAnnotations source="subsets" references="#//Relationship/relatedElement"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="target" ordered="false"
-        lowerBound="1" upperBound="-1" eType="#//Element" changeable="false" volatile="true"
-        transient="true" derived="true">
-      <eAnnotations source="union"/>
-      <eAnnotations source="subsets" references="#//Relationship/relatedElement"/>
-    </eStructuralFeatures>
+  <eClassifiers xsi:type="ecore:EClass" name="PackageableElement" abstract="true"
+      eSuperTypes="#//NamedElement #//ParameterableElement">
+    <eAnnotations source="duplicates">
+      <contents xsi:type="ecore:EAttribute" name="visibility" ordered="false" eType="#//VisibilityKind"
+          defaultValueLiteral="public">
+        <eAnnotations source="redefines" references="#//NamedElement/visibility"/>
+      </contents>
+    </eAnnotations>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Relationship" abstract="true" eSuperTypes="#//Element">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="relatedElement" ordered="false"
-        lowerBound="1" upperBound="-1" eType="#//Element" changeable="false" volatile="true"
-        transient="true" derived="true">
-      <eAnnotations source="union"/>
+  <eClassifiers xsi:type="ecore:EClass" name="ParameterableElement" abstract="true"
+      eSuperTypes="#//Element">
+    <eOperations name="isCompatibleWith" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eParameters name="p" ordered="false" lowerBound="1" eType="#//ParameterableElement"/>
+    </eOperations>
+    <eOperations name="isTemplateParameter" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="owningTemplateParameter"
+        ordered="false" eType="#//TemplateParameter" eOpposite="#//TemplateParameter/ownedParameteredElement">
+      <eAnnotations source="subsets" references="#//ParameterableElement/templateParameter #//Element/owner"/>
     </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="templateParameter" ordered="false"
+        eType="#//TemplateParameter" eOpposite="#//TemplateParameter/parameteredElement"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Element" abstract="true" eSuperTypes="http://www.eclipse.org/emf/2002/Ecore#//EModelElement">
     <eOperations name="has_owner" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
@@ -172,16 +170,7 @@
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Stereotype" eSuperTypes="#//Class">
-    <eOperations name="binaryAssociationsOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="generalize" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="associationEndOwnership" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -199,7 +188,16 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="associationEndOwnership" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="binaryAssociationsOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="generalize" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -247,7 +245,7 @@
       <contents xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
           eType="#//Property" containment="true" eOpposite="#//Property/class">
         <eAnnotations source="redefines" references="#//StructuredClassifier/ownedAttribute"/>
-        <eAnnotations source="subsets" references="#//Classifier/attribute #//Namespace/ownedMember"/>
+        <eAnnotations source="subsets" references="#//Namespace/ownedMember #//Classifier/attribute"/>
       </contents>
       <contents xsi:type="ecore:EAttribute" name="isAbstract" ordered="false" lowerBound="1"
           eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
@@ -296,9 +294,18 @@
       <eAnnotations source="redefines" references="#//Classifier/general"/>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="BehavioredClassifier" abstract="true"
+  <eClassifiers xsi:type="ecore:EClass" name="EncapsulatedClassifier" abstract="true"
+      eSuperTypes="#//StructuredClassifier">
+    <eOperations name="getOwnedPorts" ordered="false" upperBound="-1" eType="#//Port"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedPort" ordered="false"
+        upperBound="-1" eType="#//Port" changeable="false" volatile="true" transient="true"
+        derived="true">
+      <eAnnotations source="subsets" references="#//StructuredClassifier/ownedAttribute"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="StructuredClassifier" abstract="true"
       eSuperTypes="#//Classifier">
-    <eOperations name="class_behavior" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="multiplicities" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -307,20 +314,28 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="getAllImplementedInterfaces" ordered="false" upperBound="-1"
-        eType="#//Interface"/>
-    <eOperations name="getImplementedInterfaces" ordered="false" upperBound="-1" eType="#//Interface"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="classifierBehavior" ordered="false"
-        eType="#//Behavior">
-      <eAnnotations source="subsets" references="#//BehavioredClassifier/ownedBehavior"/>
+    <eOperations name="createOwnedAttribute" ordered="false" lowerBound="1" eType="#//Property">
+      <eParameters name="name" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String"/>
+      <eParameters name="type" ordered="false" eType="#//Type"/>
+      <eParameters name="lower" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer"/>
+      <eParameters name="upper" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//UnlimitedNatural"/>
+    </eOperations>
+    <eOperations name="getParts" ordered="false" upperBound="-1" eType="#//Property"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
+        eType="#//Property" containment="true">
+      <eAnnotations source="subsets" references="#//Classifier/attribute #//Namespace/ownedMember #//StructuredClassifier/role"/>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="interfaceRealization" ordered="false"
-        upperBound="-1" eType="#//InterfaceRealization" containment="true" eOpposite="#//InterfaceRealization/implementingClassifier">
-      <eAnnotations source="subsets" references="#//Element/ownedElement #//NamedElement/clientDependency"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedConnector" ordered="false"
+        upperBound="-1" eType="#//Connector" containment="true">
+      <eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/ownedMember"/>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedBehavior" ordered="false"
-        upperBound="-1" eType="#//Behavior" containment="true">
-      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="part" ordered="false" upperBound="-1"
+        eType="#//Property" changeable="false" volatile="true" transient="true" derived="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="role" ordered="false" upperBound="-1"
+        eType="#//ConnectableElement" changeable="false" volatile="true" transient="true"
+        derived="true">
+      <eAnnotations source="union"/>
+      <eAnnotations source="subsets" references="#//Namespace/member"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Classifier" abstract="true" eSuperTypes="#//Namespace #//RedefinableElement #//Type #//TemplateableElement">
@@ -338,24 +353,6 @@
         <eAnnotations source="redefines" references="#//ParameterableElement/templateParameter"/>
       </contents>
     </eAnnotations>
-    <eOperations name="specialize_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="maps_to_generalization_set" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="non_final_parents" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
@@ -374,6 +371,24 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="specialize_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="maps_to_generalization_set" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eOperations name="getAllAttributes" ordered="false" upperBound="-1" eType="#//Property"/>
     <eOperations name="getAllOperations" ordered="false" upperBound="-1" eType="#//Operation"/>
     <eOperations name="getAllUsedInterfaces" ordered="false" upperBound="-1" eType="#//Interface"/>
@@ -527,15 +542,6 @@
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="NamedElement" abstract="true" eSuperTypes="#//Element">
-    <eOperations name="visibility_needs_ownership" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="has_qualified_name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
@@ -554,6 +560,15 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="visibility_needs_ownership" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eOperations name="createDependency" ordered="false" lowerBound="1" eType="#//Dependency">
       <eParameters name="supplier" ordered="false" lowerBound="1" eType="#//NamedElement"/>
     </eOperations>
@@ -599,7 +614,7 @@
         <eAnnotations source="redefines" references="#//ValueSpecification/stringValue"/>
       </contents>
     </eAnnotations>
-    <eOperations name="operands" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="subexpressions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -608,7 +623,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="subexpressions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="operands" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -626,136 +641,6 @@
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="TemplateableElement" abstract="true"
-      eSuperTypes="#//Element">
-    <eOperations name="isTemplate" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"/>
-    <eOperations name="parameterableElements" ordered="false" upperBound="-1" eType="#//ParameterableElement"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedTemplateSignature"
-        ordered="false" eType="#//TemplateSignature" containment="true" eOpposite="#//TemplateSignature/template">
-      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="templateBinding" ordered="false"
-        upperBound="-1" eType="#//TemplateBinding" containment="true" eOpposite="#//TemplateBinding/boundElement">
-      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="TemplateSignature" eSuperTypes="#//Element">
-    <eOperations name="own_elements" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedParameter" upperBound="-1"
-        eType="#//TemplateParameter" containment="true" eOpposite="#//TemplateParameter/signature">
-      <eAnnotations source="subsets" references="#//Element/ownedElement #//TemplateSignature/parameter"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="parameter" lowerBound="1"
-        upperBound="-1" eType="#//TemplateParameter"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="template" ordered="false"
-        lowerBound="1" eType="#//TemplateableElement" eOpposite="#//TemplateableElement/ownedTemplateSignature">
-      <eAnnotations source="subsets" references="#//Element/owner"/>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="TemplateParameter" eSuperTypes="#//Element">
-    <eOperations name="must_be_compatible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="default" ordered="false"
-        eType="#//ParameterableElement"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedParameteredElement"
-        ordered="false" eType="#//ParameterableElement" containment="true" eOpposite="#//ParameterableElement/owningTemplateParameter">
-      <eAnnotations source="subsets" references="#//Element/ownedElement #//TemplateParameter/parameteredElement"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="parameteredElement" ordered="false"
-        lowerBound="1" eType="#//ParameterableElement" eOpposite="#//ParameterableElement/templateParameter"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedDefault" ordered="false"
-        eType="#//ParameterableElement" containment="true">
-      <eAnnotations source="subsets" references="#//Element/ownedElement #//TemplateParameter/default"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="signature" ordered="false"
-        lowerBound="1" eType="#//TemplateSignature" eOpposite="#//TemplateSignature/ownedParameter">
-      <eAnnotations source="subsets" references="#//Element/owner"/>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ParameterableElement" abstract="true"
-      eSuperTypes="#//Element">
-    <eOperations name="isCompatibleWith" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
-      <eParameters name="p" ordered="false" lowerBound="1" eType="#//ParameterableElement"/>
-    </eOperations>
-    <eOperations name="isTemplateParameter" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningTemplateParameter"
-        ordered="false" eType="#//TemplateParameter" eOpposite="#//TemplateParameter/ownedParameteredElement">
-      <eAnnotations source="subsets" references="#//ParameterableElement/templateParameter #//Element/owner"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="templateParameter" ordered="false"
-        eType="#//TemplateParameter" eOpposite="#//TemplateParameter/parameteredElement"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="TemplateBinding" eSuperTypes="#//DirectedRelationship">
-    <eOperations name="parameter_substitution_formal" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="one_parameter_substitution" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="parameterSubstitution"
-        ordered="false" upperBound="-1" eType="#//TemplateParameterSubstitution" containment="true"
-        eOpposite="#//TemplateParameterSubstitution/templateBinding">
-      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="signature" ordered="false"
-        lowerBound="1" eType="#//TemplateSignature">
-      <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="boundElement" ordered="false"
-        lowerBound="1" eType="#//TemplateableElement" eOpposite="#//TemplateableElement/templateBinding">
-      <eAnnotations source="subsets" references="#//DirectedRelationship/source #//Element/owner"/>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="TemplateParameterSubstitution" eSuperTypes="#//Element">
-    <eOperations name="must_be_compatible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="actual" ordered="false"
-        lowerBound="1" eType="#//ParameterableElement"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="formal" ordered="false"
-        lowerBound="1" eType="#//TemplateParameter"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedActual" ordered="false"
-        eType="#//ParameterableElement" containment="true">
-      <eAnnotations source="subsets" references="#//Element/ownedElement #//TemplateParameterSubstitution/actual"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="templateBinding" ordered="false"
-        lowerBound="1" eType="#//TemplateBinding" eOpposite="#//TemplateBinding/parameterSubstitution">
-      <eAnnotations source="subsets" references="#//Element/owner"/>
-    </eStructuralFeatures>
-  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Expression" eSuperTypes="#//ValueSpecification">
     <eStructuralFeatures xsi:type="ecore:EReference" name="operand" upperBound="-1"
         eType="#//ValueSpecification" containment="true">
@@ -807,21 +692,6 @@
       <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="PackageableElement" abstract="true"
-      eSuperTypes="#//NamedElement #//ParameterableElement">
-    <eAnnotations source="duplicates">
-      <contents xsi:type="ecore:EAttribute" name="visibility" ordered="false" eType="#//VisibilityKind"
-          defaultValueLiteral="public">
-        <eAnnotations source="redefines" references="#//NamedElement/visibility"/>
-      </contents>
-    </eAnnotations>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EEnum" name="VisibilityKind">
-    <eLiterals name="public"/>
-    <eLiterals name="private" value="1"/>
-    <eLiterals name="protected" value="2"/>
-    <eLiterals name="package" value="3"/>
-  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Package" eSuperTypes="#//Namespace #//PackageableElement #//TemplateableElement">
     <eAnnotations source="duplicates">
       <contents xsi:type="ecore:EOperation" name="mustBeOwned" ordered="false" lowerBound="1"
@@ -925,6 +795,145 @@
       <eAnnotations source="subsets" references="#//Package/packagedElement"/>
     </eStructuralFeatures>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="TemplateableElement" abstract="true"
+      eSuperTypes="#//Element">
+    <eOperations name="isTemplate" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"/>
+    <eOperations name="parameterableElements" ordered="false" upperBound="-1" eType="#//ParameterableElement"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedTemplateSignature"
+        ordered="false" eType="#//TemplateSignature" containment="true" eOpposite="#//TemplateSignature/template">
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="templateBinding" ordered="false"
+        upperBound="-1" eType="#//TemplateBinding" containment="true" eOpposite="#//TemplateBinding/boundElement">
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="TemplateSignature" eSuperTypes="#//Element">
+    <eOperations name="own_elements" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedParameter" upperBound="-1"
+        eType="#//TemplateParameter" containment="true" eOpposite="#//TemplateParameter/signature">
+      <eAnnotations source="subsets" references="#//TemplateSignature/parameter #//Element/ownedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parameter" lowerBound="1"
+        upperBound="-1" eType="#//TemplateParameter"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="template" ordered="false"
+        lowerBound="1" eType="#//TemplateableElement" eOpposite="#//TemplateableElement/ownedTemplateSignature">
+      <eAnnotations source="subsets" references="#//Element/owner"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="TemplateParameter" eSuperTypes="#//Element">
+    <eOperations name="must_be_compatible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="default" ordered="false"
+        eType="#//ParameterableElement"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedDefault" ordered="false"
+        eType="#//ParameterableElement" containment="true">
+      <eAnnotations source="subsets" references="#//Element/ownedElement #//TemplateParameter/default"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedParameteredElement"
+        ordered="false" eType="#//ParameterableElement" containment="true" eOpposite="#//ParameterableElement/owningTemplateParameter">
+      <eAnnotations source="subsets" references="#//TemplateParameter/parameteredElement #//Element/ownedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parameteredElement" ordered="false"
+        lowerBound="1" eType="#//ParameterableElement" eOpposite="#//ParameterableElement/templateParameter"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="signature" ordered="false"
+        lowerBound="1" eType="#//TemplateSignature" eOpposite="#//TemplateSignature/ownedParameter">
+      <eAnnotations source="subsets" references="#//Element/owner"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="TemplateBinding" eSuperTypes="#//DirectedRelationship">
+    <eOperations name="parameter_substitution_formal" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="one_parameter_substitution" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parameterSubstitution"
+        ordered="false" upperBound="-1" eType="#//TemplateParameterSubstitution" containment="true"
+        eOpposite="#//TemplateParameterSubstitution/templateBinding">
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="signature" ordered="false"
+        lowerBound="1" eType="#//TemplateSignature">
+      <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="boundElement" ordered="false"
+        lowerBound="1" eType="#//TemplateableElement" eOpposite="#//TemplateableElement/templateBinding">
+      <eAnnotations source="subsets" references="#//Element/owner #//DirectedRelationship/source"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="DirectedRelationship" abstract="true"
+      eSuperTypes="#//Relationship">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="source" ordered="false"
+        lowerBound="1" upperBound="-1" eType="#//Element" changeable="false" volatile="true"
+        transient="true" derived="true">
+      <eAnnotations source="union"/>
+      <eAnnotations source="subsets" references="#//Relationship/relatedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="target" ordered="false"
+        lowerBound="1" upperBound="-1" eType="#//Element" changeable="false" volatile="true"
+        transient="true" derived="true">
+      <eAnnotations source="union"/>
+      <eAnnotations source="subsets" references="#//Relationship/relatedElement"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Relationship" abstract="true" eSuperTypes="#//Element">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="relatedElement" ordered="false"
+        lowerBound="1" upperBound="-1" eType="#//Element" changeable="false" volatile="true"
+        transient="true" derived="true">
+      <eAnnotations source="union"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="TemplateParameterSubstitution" eSuperTypes="#//Element">
+    <eOperations name="must_be_compatible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="actual" ordered="false"
+        lowerBound="1" eType="#//ParameterableElement"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="formal" ordered="false"
+        lowerBound="1" eType="#//TemplateParameter"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedActual" ordered="false"
+        eType="#//ParameterableElement" containment="true">
+      <eAnnotations source="subsets" references="#//Element/ownedElement #//TemplateParameterSubstitution/actual"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="templateBinding" ordered="false"
+        lowerBound="1" eType="#//TemplateBinding" eOpposite="#//TemplateBinding/parameterSubstitution">
+      <eAnnotations source="subsets" references="#//Element/owner"/>
+    </eStructuralFeatures>
+  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="PackageMerge" eSuperTypes="#//DirectedRelationship">
     <eStructuralFeatures xsi:type="ecore:EReference" name="mergedPackage" ordered="false"
         lowerBound="1" eType="#//Package">
@@ -932,7 +941,7 @@
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="receivingPackage" ordered="false"
         lowerBound="1" eType="#//Package" eOpposite="#//Package/packageMerge">
-      <eAnnotations source="subsets" references="#//DirectedRelationship/source #//Element/owner"/>
+      <eAnnotations source="subsets" references="#//Element/owner #//DirectedRelationship/source"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ProfileApplication" eSuperTypes="#//DirectedRelationship">
@@ -949,7 +958,7 @@
         defaultValueLiteral="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="applyingPackage" ordered="false"
         lowerBound="1" eType="#//Package" eOpposite="#//Package/profileApplication">
-      <eAnnotations source="subsets" references="#//DirectedRelationship/source #//Element/owner"/>
+      <eAnnotations source="subsets" references="#//Element/owner #//DirectedRelationship/source"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Profile" eSuperTypes="#//Package">
@@ -1010,7 +1019,7 @@
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ElementImport" eSuperTypes="#//DirectedRelationship">
-    <eOperations name="imported_element_is_public" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="visibility_public_or_private" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -1019,7 +1028,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="visibility_public_or_private" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="imported_element_is_public" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -1037,11 +1046,17 @@
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="importingNamespace" ordered="false"
         lowerBound="1" eType="#//Namespace" eOpposite="#//Namespace/elementImport">
-      <eAnnotations source="subsets" references="#//DirectedRelationship/source #//Element/owner"/>
+      <eAnnotations source="subsets" references="#//Element/owner #//DirectedRelationship/source"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="visibility" ordered="false"
         lowerBound="1" eType="#//VisibilityKind" defaultValueLiteral="public"/>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="VisibilityKind">
+    <eLiterals name="public"/>
+    <eLiterals name="private" value="1"/>
+    <eLiterals name="protected" value="2"/>
+    <eLiterals name="package" value="3"/>
+  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="PackageImport" eSuperTypes="#//DirectedRelationship">
     <eOperations name="public_or_private" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
@@ -1058,7 +1073,7 @@
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="importingNamespace" ordered="false"
         lowerBound="1" eType="#//Namespace" eOpposite="#//Namespace/packageImport">
-      <eAnnotations source="subsets" references="#//DirectedRelationship/source #//Element/owner"/>
+      <eAnnotations source="subsets" references="#//Element/owner #//DirectedRelationship/source"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="visibility" ordered="false"
         lowerBound="1" eType="#//VisibilityKind" defaultValueLiteral="public"/>
@@ -1111,7 +1126,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="specialized_end_types" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="association_ends" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -1129,7 +1144,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="association_ends" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="specialized_end_types" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -1154,7 +1169,7 @@
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ownedEnd" upperBound="-1"
         eType="#//Property" containment="true" eOpposite="#//Property/owningAssociation">
-      <eAnnotations source="subsets" references="#//Classifier/feature #//Association/memberEnd #//Namespace/ownedMember"/>
+      <eAnnotations source="subsets" references="#//Association/memberEnd #//Classifier/feature #//Namespace/ownedMember"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="navigableOwnedEnd" ordered="false"
         upperBound="-1" eType="#//Property">
@@ -1179,34 +1194,7 @@
         <eAnnotations source="redefines" references="#//StructuralFeature/isReadOnly"/>
       </contents>
     </eAnnotations>
-    <eOperations name="subsetting_context_conforms" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="derived_union_is_read_only" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="multiplicity_of_composite" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="redefined_property_inherited" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="subsetted_property_names" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -1224,6 +1212,15 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="multiplicity_of_composite" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eOperations name="binding_to_attribute" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
@@ -1233,7 +1230,16 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="derived_union_is_derived" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="redefined_property_inherited" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="subsetting_context_conforms" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -1251,7 +1257,16 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="subsetted_property_names" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="derived_union_is_derived" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="derived_union_is_read_only" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -1299,14 +1314,14 @@
     <eOperations name="isNavigable" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"/>
     <eOperations name="getOpposite" ordered="false" eType="#//Property"/>
     <eOperations name="subsettingContext" ordered="false" upperBound="-1" eType="#//Type"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" ordered="false"
-        eType="#//DataType" eOpposite="#//DataType/ownedAttribute">
-      <eAnnotations source="subsets" references="#//NamedElement/namespace #//Feature/featuringClassifier #//RedefinableElement/redefinitionContext"/>
-    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="interface" ordered="false"
         eType="#//Interface" eOpposite="#//Interface/ownedAttribute">
       <eAnnotations source="subsets" references="#//NamedElement/namespace #//Feature/featuringClassifier #//RedefinableElement/redefinitionContext"/>
     </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" ordered="false"
+        eType="#//DataType" eOpposite="#//DataType/ownedAttribute">
+      <eAnnotations source="subsets" references="#//NamedElement/namespace #//Feature/featuringClassifier #//RedefinableElement/redefinitionContext"/>
+    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="aggregation" ordered="false"
         lowerBound="1" eType="#//AggregationKind" defaultValueLiteral="none"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="associationEnd" ordered="false"
@@ -1344,7 +1359,7 @@
         eType="#//Property" volatile="true" transient="true" derived="true"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="owningAssociation" ordered="false"
         eType="#//Association" eOpposite="#//Association/ownedEnd">
-      <eAnnotations source="subsets" references="#//Feature/featuringClassifier #//NamedElement/namespace #//Property/association #//RedefinableElement/redefinitionContext"/>
+      <eAnnotations source="subsets" references="#//Feature/featuringClassifier #//RedefinableElement/redefinitionContext #//NamedElement/namespace #//Property/association"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedProperty" ordered="false"
         upperBound="-1" eType="#//Property">
@@ -1355,74 +1370,13 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="association" ordered="false"
         eType="#//Association" eOpposite="#//Association/memberEnd"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ConnectableElement" abstract="true"
-      eSuperTypes="#//TypedElement #//ParameterableElement">
-    <eAnnotations source="duplicates">
-      <contents xsi:type="ecore:EReference" name="templateParameter" ordered="false"
-          eType="#//TemplateParameter" eOpposite="#//ConnectableElementTemplateParameter/%duplicates%/parameteredElement">
-        <eAnnotations source="redefines" references="#//ParameterableElement/templateParameter"/>
-      </contents>
-    </eAnnotations>
-    <eOperations name="getEnds" ordered="false" upperBound="-1" eType="#//ConnectorEnd"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="end" upperBound="-1" eType="#//ConnectorEnd"
-        changeable="false" volatile="true" transient="true" derived="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ConnectorEnd" eSuperTypes="#//MultiplicityElement">
-    <eOperations name="role_and_part_with_port" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="part_with_port_empty" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="self_part_with_port" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="getDefiningEnd" ordered="false" eType="#//Property"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="definingEnd" ordered="false"
-        eType="#//Property" changeable="false" volatile="true" transient="true" derived="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="partWithPort" ordered="false"
-        eType="#//Property"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="role" ordered="false" lowerBound="1"
-        eType="#//ConnectableElement"/>
+  <eClassifiers xsi:type="ecore:EClass" name="StructuralFeature" abstract="true" eSuperTypes="#//Feature #//TypedElement #//MultiplicityElement">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isReadOnly" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+        defaultValueLiteral="false"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="MultiplicityElement" abstract="true"
       eSuperTypes="#//Element">
-    <eOperations name="upper_ge_lower" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="lower_ge_0" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
@@ -1432,7 +1386,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="value_specification_no_side_effects" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="upper_ge_lower" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -1450,6 +1404,15 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="value_specification_no_side_effects" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eOperations name="setLower" ordered="false" lowerBound="1">
       <eParameters name="newLower" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer"/>
     </eOperations>
@@ -1495,6 +1458,123 @@
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Feature" abstract="true" eSuperTypes="#//RedefinableElement">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="featuringClassifier" ordered="false"
+        upperBound="-1" eType="#//Classifier" changeable="false" volatile="true" transient="true"
+        derived="true" eOpposite="#//Classifier/feature">
+      <eAnnotations source="union"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isStatic" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+        defaultValueLiteral="false"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="RedefinableElement" abstract="true"
+      eSuperTypes="#//NamedElement">
+    <eOperations name="redefinition_consistent" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="non_leaf_redefinition" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="redefinition_context_valid" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="isConsistentWith" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
+    </eOperations>
+    <eOperations name="isRedefinitionContextValid" ordered="false" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eParameters name="redefined" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isLeaf" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+        defaultValueLiteral="false"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedElement" ordered="false"
+        upperBound="-1" eType="#//RedefinableElement" changeable="false" volatile="true"
+        transient="true" derived="true">
+      <eAnnotations source="union"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="redefinitionContext" ordered="false"
+        upperBound="-1" eType="#//Classifier" changeable="false" volatile="true" transient="true"
+        derived="true">
+      <eAnnotations source="union"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="ConnectableElement" abstract="true"
+      eSuperTypes="#//TypedElement #//ParameterableElement">
+    <eAnnotations source="duplicates">
+      <contents xsi:type="ecore:EReference" name="templateParameter" ordered="false"
+          eType="#//TemplateParameter" eOpposite="#//ConnectableElementTemplateParameter/%duplicates%/parameteredElement">
+        <eAnnotations source="redefines" references="#//ParameterableElement/templateParameter"/>
+      </contents>
+    </eAnnotations>
+    <eOperations name="getEnds" ordered="false" upperBound="-1" eType="#//ConnectorEnd"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="end" upperBound="-1" eType="#//ConnectorEnd"
+        changeable="false" volatile="true" transient="true" derived="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="ConnectorEnd" eSuperTypes="#//MultiplicityElement">
+    <eOperations name="role_and_part_with_port" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="self_part_with_port" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="part_with_port_empty" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="getDefiningEnd" ordered="false" eType="#//Property"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="definingEnd" ordered="false"
+        eType="#//Property" changeable="false" volatile="true" transient="true" derived="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="partWithPort" ordered="false"
+        eType="#//Property"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="role" ordered="false" lowerBound="1"
+        eType="#//ConnectableElement"/>
+  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ConnectableElementTemplateParameter"
       eSuperTypes="#//TemplateParameter">
     <eAnnotations source="duplicates">
@@ -1525,11 +1605,11 @@
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="location" ordered="false"
         lowerBound="1" eType="#//DeploymentTarget" eOpposite="#//DeploymentTarget/deployment">
-      <eAnnotations source="subsets" references="#//Dependency/client #//Element/owner"/>
+      <eAnnotations source="subsets" references="#//Element/owner #//Dependency/client"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="DeploymentSpecification" eSuperTypes="#//Artifact">
-    <eOperations name="deployment_target" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="deployed_elements" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -1538,7 +1618,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="deployed_elements" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="deployment_target" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -1581,7 +1661,7 @@
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
         eType="#//Property" containment="true">
-      <eAnnotations source="subsets" references="#//Classifier/attribute #//Namespace/ownedMember"/>
+      <eAnnotations source="subsets" references="#//Namespace/ownedMember #//Classifier/attribute"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ownedOperation" upperBound="-1"
         eType="#//Operation" containment="true">
@@ -1655,21 +1735,21 @@
     <eOperations name="returnResult" ordered="false" upperBound="-1" eType="#//Parameter"/>
     <eOperations name="getType" ordered="false" lowerBound="1" eType="#//Type"/>
     <eOperations name="getUpper" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//UnlimitedNatural"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="interface" ordered="false"
+        eType="#//Interface" eOpposite="#//Interface/ownedOperation">
+      <eAnnotations source="subsets" references="#//Feature/featuringClassifier #//RedefinableElement/redefinitionContext #//NamedElement/namespace"/>
+    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="bodyCondition" ordered="false"
         eType="#//Constraint">
       <eAnnotations source="subsets" references="#//Namespace/ownedRule"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="class" ordered="false"
         eType="#//Class" eOpposite="#//Class/ownedOperation">
-      <eAnnotations source="subsets" references="#//Feature/featuringClassifier #//NamedElement/namespace #//RedefinableElement/redefinitionContext"/>
+      <eAnnotations source="subsets" references="#//Feature/featuringClassifier #//RedefinableElement/redefinitionContext #//NamedElement/namespace"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" ordered="false"
         eType="#//DataType" eOpposite="#//DataType/ownedOperation">
-      <eAnnotations source="subsets" references="#//Feature/featuringClassifier #//NamedElement/namespace #//RedefinableElement/redefinitionContext"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="interface" ordered="false"
-        eType="#//Interface" eOpposite="#//Interface/ownedOperation">
-      <eAnnotations source="subsets" references="#//Feature/featuringClassifier #//NamedElement/namespace #//RedefinableElement/redefinitionContext"/>
+      <eAnnotations source="subsets" references="#//Feature/featuringClassifier #//RedefinableElement/redefinitionContext #//NamedElement/namespace"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="isOrdered" ordered="false"
         lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
@@ -1736,73 +1816,22 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="raisedException" ordered="false"
         upperBound="-1" eType="#//Type"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Feature" abstract="true" eSuperTypes="#//RedefinableElement">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="featuringClassifier" ordered="false"
-        upperBound="-1" eType="#//Classifier" changeable="false" volatile="true" transient="true"
-        derived="true" eOpposite="#//Classifier/feature">
-      <eAnnotations source="union"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isStatic" ordered="false"
-        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
-        defaultValueLiteral="false"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="RedefinableElement" abstract="true"
-      eSuperTypes="#//NamedElement">
-    <eOperations name="redefinition_consistent" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="non_leaf_redefinition" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="redefinition_context_valid" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="isConsistentWith" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
-      <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
-    </eOperations>
-    <eOperations name="isRedefinitionContextValid" ordered="false" lowerBound="1"
-        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
-      <eParameters name="redefined" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isLeaf" ordered="false"
-        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
-        defaultValueLiteral="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedElement" ordered="false"
-        upperBound="-1" eType="#//RedefinableElement" changeable="false" volatile="true"
-        transient="true" derived="true">
-      <eAnnotations source="union"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="redefinitionContext" ordered="false"
-        upperBound="-1" eType="#//Classifier" changeable="false" volatile="true" transient="true"
-        derived="true">
-      <eAnnotations source="union"/>
-    </eStructuralFeatures>
-  </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="CallConcurrencyKind">
     <eLiterals name="sequential"/>
     <eLiterals name="guarded" value="1"/>
     <eLiterals name="concurrent" value="2"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Behavior" abstract="true" eSuperTypes="#//Class">
-    <eOperations name="most_one_behaviour" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="parameters_match" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="feature_of_context_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -1820,16 +1849,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="parameters_match" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="feature_of_context_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="most_one_behaviour" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -1870,8 +1890,9 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="specification" ordered="false"
         eType="#//BehavioralFeature" eOpposite="#//BehavioralFeature/method"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Parameter" eSuperTypes="#//ConnectableElement #//MultiplicityElement">
-    <eOperations name="in_and_out" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+  <eClassifiers xsi:type="ecore:EClass" name="BehavioredClassifier" abstract="true"
+      eSuperTypes="#//Classifier">
+    <eOperations name="class_behavior" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -1880,7 +1901,840 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="not_exception" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="getAllImplementedInterfaces" ordered="false" upperBound="-1"
+        eType="#//Interface"/>
+    <eOperations name="getImplementedInterfaces" ordered="false" upperBound="-1" eType="#//Interface"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="classifierBehavior" ordered="false"
+        eType="#//Behavior">
+      <eAnnotations source="subsets" references="#//BehavioredClassifier/ownedBehavior"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="interfaceRealization" ordered="false"
+        upperBound="-1" eType="#//InterfaceRealization" containment="true" eOpposite="#//InterfaceRealization/implementingClassifier">
+      <eAnnotations source="subsets" references="#//Element/ownedElement #//NamedElement/clientDependency"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedBehavior" ordered="false"
+        upperBound="-1" eType="#//Behavior" containment="true">
+      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="InterfaceRealization" eSuperTypes="#//Realization">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="contract" ordered="false"
+        lowerBound="1" eType="#//Interface">
+      <eAnnotations source="subsets" references="#//Dependency/supplier"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="implementingClassifier"
+        ordered="false" lowerBound="1" eType="#//BehavioredClassifier" eOpposite="#//BehavioredClassifier/interfaceRealization">
+      <eAnnotations source="subsets" references="#//Element/owner #//Dependency/client"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Realization" eSuperTypes="#//Abstraction"/>
+  <eClassifiers xsi:type="ecore:EClass" name="Interface" eSuperTypes="#//Classifier">
+    <eOperations name="visibility" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="createOwnedAttribute" ordered="false" lowerBound="1" eType="#//Property">
+      <eParameters name="name" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String"/>
+      <eParameters name="type" ordered="false" eType="#//Type"/>
+      <eParameters name="lower" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer"/>
+      <eParameters name="upper" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//UnlimitedNatural"/>
+    </eOperations>
+    <eOperations name="createOwnedOperation" ordered="false" lowerBound="1" eType="#//Operation">
+      <eParameters name="name" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String"/>
+      <eParameters name="parameterNames" ordered="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String"/>
+      <eParameters name="parameterTypes" ordered="false" upperBound="-1" eType="#//Type"/>
+      <eParameters name="returnType" ordered="false" eType="#//Type"/>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="nestedClassifier" upperBound="-1"
+        eType="#//Classifier" containment="true">
+      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
+        eType="#//Property" containment="true" eOpposite="#//Property/interface">
+      <eAnnotations source="subsets" references="#//Namespace/ownedMember #//Classifier/attribute"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedOperation" upperBound="-1"
+        eType="#//Operation" containment="true" eOpposite="#//Operation/interface">
+      <eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/ownedMember"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedReception" ordered="false"
+        upperBound="-1" eType="#//Reception" containment="true">
+      <eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/ownedMember"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="protocol" ordered="false"
+        eType="#//ProtocolStateMachine" containment="true">
+      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedInterface" ordered="false"
+        upperBound="-1" eType="#//Interface">
+      <eAnnotations source="subsets" references="#//Classifier/redefinedClassifier"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Reception" eSuperTypes="#//BehavioralFeature">
+    <eOperations name="not_query" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="signal" ordered="false"
+        lowerBound="1" eType="#//Signal"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Signal" eSuperTypes="#//Classifier">
+    <eOperations name="createOwnedAttribute" ordered="false" lowerBound="1" eType="#//Property">
+      <eParameters name="name" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String"/>
+      <eParameters name="type" ordered="false" eType="#//Type"/>
+      <eParameters name="lower" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer"/>
+      <eParameters name="upper" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//UnlimitedNatural"/>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
+        eType="#//Property" containment="true">
+      <eAnnotations source="subsets" references="#//Namespace/ownedMember #//Classifier/attribute"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="ProtocolStateMachine" eSuperTypes="#//StateMachine">
+    <eAnnotations source="duplicates">
+      <contents xsi:type="ecore:EOperation" name="classifier_context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+        <eAnnotations source="redefines" references="#//StateMachine/classifier_context"/>
+        <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+        <eParameters name="context">
+          <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+            <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+            <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          </eGenericType>
+        </eParameters>
+      </contents>
+    </eAnnotations>
+    <eOperations name="entry_exit_do" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="protocol_transitions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="deep_or_shallow_history" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="ports_connected" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="conformance" ordered="false"
+        upperBound="-1" eType="#//ProtocolConformance" containment="true" eOpposite="#//ProtocolConformance/specificMachine">
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="StateMachine" eSuperTypes="#//Behavior">
+    <eAnnotations source="duplicates">
+      <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
+          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+        <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
+        <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
+      </contents>
+    </eAnnotations>
+    <eOperations name="method" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="classifier_context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="context_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="connection_points" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="LCA" ordered="false" lowerBound="1" eType="#//Namespace">
+      <eParameters name="s1" ordered="false" lowerBound="1" eType="#//State"/>
+      <eParameters name="s2" ordered="false" lowerBound="1" eType="#//State"/>
+    </eOperations>
+    <eOperations name="ancestor" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eParameters name="s1" ordered="false" lowerBound="1" eType="#//State"/>
+      <eParameters name="s2" ordered="false" lowerBound="1" eType="#//State"/>
+    </eOperations>
+    <eOperations name="isRedefinitionContextValid" ordered="false" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="redefines" references="#//RedefinableElement/isRedefinitionContextValid"/>
+      <eParameters name="redefined" ordered="false" lowerBound="1" eType="#//StateMachine"/>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="connectionPoint" ordered="false"
+        upperBound="-1" eType="#//Pseudostate" containment="true" eOpposite="#//Pseudostate/stateMachine">
+      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="submachineState" ordered="false"
+        upperBound="-1" eType="#//State" eOpposite="#//State/submachine"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="region" ordered="false"
+        lowerBound="1" upperBound="-1" eType="#//Region" containment="true" eOpposite="#//Region/stateMachine">
+      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="extendedStateMachine" ordered="false"
+        upperBound="-1" eType="#//StateMachine">
+      <eAnnotations source="redefines" references="#//Behavior/redefinedBehavior"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Pseudostate" eSuperTypes="#//Vertex">
+    <eOperations name="junction_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="history_vertices" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="transitions_outgoing" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="outgoing_from_initial" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="fork_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="join_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="choice_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="initial_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="transitions_incoming" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="state" ordered="false"
+        eType="#//State" eOpposite="#//State/connectionPoint">
+      <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" ordered="false" lowerBound="1"
+        eType="#//PseudostateKind" defaultValueLiteral="initial"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="stateMachine" ordered="false"
+        eType="#//StateMachine" eOpposite="#//StateMachine/connectionPoint">
+      <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Vertex" abstract="true" eSuperTypes="#//NamedElement">
+    <eOperations name="containingStateMachine" ordered="false" lowerBound="1" eType="#//StateMachine"/>
+    <eOperations name="getIncomings" ordered="false" upperBound="-1" eType="#//Transition"/>
+    <eOperations name="getOutgoings" ordered="false" upperBound="-1" eType="#//Transition"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="container" ordered="false"
+        eType="#//Region" eOpposite="#//Region/subvertex">
+      <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="incoming" ordered="false"
+        upperBound="-1" eType="#//Transition" changeable="false" volatile="true" transient="true"
+        derived="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="outgoing" ordered="false"
+        upperBound="-1" eType="#//Transition" changeable="false" volatile="true" transient="true"
+        derived="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Region" eSuperTypes="#//Namespace #//RedefinableElement">
+    <eAnnotations source="duplicates">
+      <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
+          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+        <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
+        <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
+      </contents>
+      <contents xsi:type="ecore:EReference" name="redefinitionContext" ordered="false"
+          upperBound="-1" eType="#//Classifier" changeable="false" volatile="true"
+          transient="true" derived="true">
+        <eAnnotations source="redefines" references="#//RedefinableElement/redefinitionContext"/>
+      </contents>
+    </eAnnotations>
+    <eOperations name="shallow_history_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="deep_history_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="initial_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="owned" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="belongsToPSM" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"/>
+    <eOperations name="containingStateMachine" ordered="false" lowerBound="1" eType="#//StateMachine"/>
+    <eOperations name="isRedefinitionContextValid" ordered="false" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="redefines" references="#//RedefinableElement/isRedefinitionContextValid"/>
+      <eParameters name="redefined" ordered="false" lowerBound="1" eType="#//Region"/>
+    </eOperations>
+    <eOperations name="redefinitionContext" ordered="false" lowerBound="1" eType="#//Classifier"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="extendedRegion" ordered="false"
+        eType="#//Region">
+      <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="state" ordered="false"
+        eType="#//State" eOpposite="#//State/region">
+      <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="stateMachine" ordered="false"
+        eType="#//StateMachine" eOpposite="#//StateMachine/region">
+      <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="transition" ordered="false"
+        upperBound="-1" eType="#//Transition" containment="true" eOpposite="#//Transition/container">
+      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="subvertex" ordered="false"
+        upperBound="-1" eType="#//Vertex" containment="true" eOpposite="#//Vertex/container">
+      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="State" eSuperTypes="#//Namespace #//RedefinableElement #//Vertex">
+    <eAnnotations source="duplicates">
+      <contents xsi:type="ecore:EOperation" name="containingStateMachine" ordered="false"
+          lowerBound="1" eType="#//StateMachine">
+        <eAnnotations source="redefines" references="#//Vertex/containingStateMachine"/>
+      </contents>
+      <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
+          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+        <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
+        <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
+      </contents>
+      <contents xsi:type="ecore:EReference" name="redefinitionContext" ordered="false"
+          upperBound="-1" eType="#//Classifier" changeable="false" volatile="true"
+          transient="true" derived="true">
+        <eAnnotations source="redefines" references="#//RedefinableElement/redefinitionContext"/>
+      </contents>
+    </eAnnotations>
+    <eOperations name="entry_or_exit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="composite_states" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="destinations_or_sources_of_transitions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="submachine_or_regions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="submachine_states" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="isComposite" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"/>
+    <eOperations name="isOrthogonal" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"/>
+    <eOperations name="isRedefinitionContextValid" ordered="false" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+      <eAnnotations source="redefines" references="#//RedefinableElement/isRedefinitionContextValid"/>
+      <eParameters name="redefined" ordered="false" lowerBound="1" eType="#//State"/>
+    </eOperations>
+    <eOperations name="isSimple" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"/>
+    <eOperations name="isSubmachineState" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"/>
+    <eOperations name="redefinitionContext" ordered="false" lowerBound="1" eType="#//Classifier"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="connection" ordered="false"
+        upperBound="-1" eType="#//ConnectionPointReference" containment="true" eOpposite="#//ConnectionPointReference/state">
+      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="connectionPoint" ordered="false"
+        upperBound="-1" eType="#//Pseudostate" containment="true" eOpposite="#//Pseudostate/state">
+      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="deferrableTrigger" ordered="false"
+        upperBound="-1" eType="#//Trigger" containment="true">
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="doActivity" ordered="false"
+        eType="#//Behavior" containment="true">
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="entry" ordered="false"
+        eType="#//Behavior" containment="true">
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="exit" ordered="false" eType="#//Behavior"
+        containment="true">
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isComposite" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+        changeable="false" volatile="true" transient="true" defaultValueLiteral="false"
+        derived="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isOrthogonal" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+        changeable="false" volatile="true" transient="true" defaultValueLiteral="false"
+        derived="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isSimple" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+        changeable="false" volatile="true" transient="true" defaultValueLiteral="true"
+        derived="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isSubmachineState" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+        changeable="false" volatile="true" transient="true" defaultValueLiteral="false"
+        derived="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedState" ordered="false"
+        eType="#//State">
+      <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="stateInvariant" ordered="false"
+        eType="#//Constraint">
+      <eAnnotations source="subsets" references="#//Namespace/ownedRule"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="submachine" ordered="false"
+        eType="#//StateMachine" eOpposite="#//StateMachine/submachineState"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="region" ordered="false"
+        upperBound="-1" eType="#//Region" containment="true" eOpposite="#//Region/state">
+      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="ConnectionPointReference" eSuperTypes="#//Vertex">
+    <eOperations name="entry_pseudostates" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="exit_pseudostates" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="entry" ordered="false"
+        upperBound="-1" eType="#//Pseudostate"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="exit" ordered="false" upperBound="-1"
+        eType="#//Pseudostate"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="state" ordered="false"
+        eType="#//State" eOpposite="#//State/connection">
+      <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Trigger" eSuperTypes="#//NamedElement">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="event" ordered="false"
+        lowerBound="1" eType="#//Event"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="port" ordered="false" upperBound="-1"
+        eType="#//Port"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Event" abstract="true" eSuperTypes="#//PackageableElement"/>
+  <eClassifiers xsi:type="ecore:EClass" name="Port" eSuperTypes="#//Property">
+    <eOperations name="default_value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="port_aggregation" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="port_destroyed" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="getProvideds" ordered="false" upperBound="-1" eType="#//Interface"/>
+    <eOperations name="getRequireds" ordered="false" upperBound="-1" eType="#//Interface"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isBehavior" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+        defaultValueLiteral="false"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isConjugated" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+        defaultValueLiteral="false"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isService" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
+        defaultValueLiteral="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="protocol" ordered="false"
+        eType="#//ProtocolStateMachine"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="provided" ordered="false"
+        upperBound="-1" eType="#//Interface" changeable="false" volatile="true" transient="true"
+        derived="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedPort" ordered="false"
+        upperBound="-1" eType="#//Port">
+      <eAnnotations source="subsets" references="#//Property/redefinedProperty"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="required" ordered="false"
+        upperBound="-1" eType="#//Interface" changeable="false" volatile="true" transient="true"
+        derived="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Constraint" eSuperTypes="#//PackageableElement">
+    <eOperations name="not_apply_to_self" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="no_side_effects" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="boolean_value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="value_specification_boolean" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="constrainedElement" upperBound="-1"
+        eType="#//Element"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="context" ordered="false"
+        eType="#//Namespace" eOpposite="#//Namespace/ownedRule">
+      <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="specification" ordered="false"
+        lowerBound="1" eType="#//ValueSpecification" containment="true">
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Transition" eSuperTypes="#//Namespace #//RedefinableElement">
+    <eAnnotations source="duplicates">
+      <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
+          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
+        <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
+        <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
+      </contents>
+      <contents xsi:type="ecore:EReference" name="redefinitionContext" ordered="false"
+          upperBound="-1" eType="#//Classifier" changeable="false" volatile="true"
+          transient="true" derived="true">
+        <eAnnotations source="redefines" references="#//RedefinableElement/redefinitionContext"/>
+      </contents>
+    </eAnnotations>
+    <eOperations name="state_is_local" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="fork_segment_guards" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="join_segment_state" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="initial_transition" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="outgoing_pseudostates" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="signatures_compatible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="state_is_internal" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="join_segment_guards" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="fork_segment_state" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="state_is_external" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="containingStateMachine" ordered="false" lowerBound="1" eType="#//StateMachine"/>
+    <eOperations name="redefinitionContext" ordered="false" lowerBound="1" eType="#//Classifier"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="effect" ordered="false"
+        eType="#//Behavior" containment="true">
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="guard" ordered="false"
+        eType="#//Constraint">
+      <eAnnotations source="subsets" references="#//Namespace/ownedRule"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" ordered="false" lowerBound="1"
+        eType="#//TransitionKind" defaultValueLiteral="external"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedTransition" ordered="false"
+        eType="#//Transition">
+      <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="source" ordered="false"
+        lowerBound="1" eType="#//Vertex"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="target" ordered="false"
+        lowerBound="1" eType="#//Vertex"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="trigger" ordered="false"
+        upperBound="-1" eType="#//Trigger" containment="true">
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="container" ordered="false"
+        lowerBound="1" eType="#//Region" eOpposite="#//Region/transition">
+      <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="TransitionKind">
+    <eLiterals name="internal"/>
+    <eLiterals name="local" value="1"/>
+    <eLiterals name="external" value="2"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="PseudostateKind">
+    <eLiterals name="initial"/>
+    <eLiterals name="deepHistory" value="1"/>
+    <eLiterals name="shallowHistory" value="2"/>
+    <eLiterals name="join" value="3"/>
+    <eLiterals name="fork" value="4"/>
+    <eLiterals name="junction" value="5"/>
+    <eLiterals name="choice" value="6"/>
+    <eLiterals name="entryPoint" value="7"/>
+    <eLiterals name="exitPoint" value="8"/>
+    <eLiterals name="terminate" value="9"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="ProtocolConformance" eSuperTypes="#//DirectedRelationship">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="generalMachine" ordered="false"
+        lowerBound="1" eType="#//ProtocolStateMachine">
+      <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="specificMachine" ordered="false"
+        lowerBound="1" eType="#//ProtocolStateMachine" eOpposite="#//ProtocolStateMachine/conformance">
+      <eAnnotations source="subsets" references="#//Element/owner #//DirectedRelationship/source"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Parameter" eSuperTypes="#//ConnectableElement #//MultiplicityElement">
+    <eOperations name="reentrant_behaviors" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -1898,7 +2752,16 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="reentrant_behaviors" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="not_exception" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="in_and_out" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -1975,7 +2838,7 @@
     <eLiterals name="delete" value="3"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ParameterSet" eSuperTypes="#//NamedElement">
-    <eOperations name="same_parameterized_entity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="two_parameter_sets" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -1993,7 +2856,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="two_parameter_sets" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="same_parameterized_entity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -2009,54 +2872,6 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="parameter" ordered="false"
         lowerBound="1" upperBound="-1" eType="#//Parameter" eOpposite="#//Parameter/parameterSet"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Constraint" eSuperTypes="#//PackageableElement">
-    <eOperations name="boolean_value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="no_side_effects" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="not_apply_to_self" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="value_specification_boolean" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="constrainedElement" upperBound="-1"
-        eType="#//Element"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="context" ordered="false"
-        eType="#//Namespace" eOpposite="#//Namespace/ownedRule">
-      <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="specification" ordered="false"
-        lowerBound="1" eType="#//ValueSpecification" containment="true">
-      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
-    </eStructuralFeatures>
-  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="DataType" eSuperTypes="#//Classifier">
     <eAnnotations source="duplicates">
       <contents xsi:type="ecore:EOperation" name="inherit" ordered="false" upperBound="-1"
@@ -2079,770 +2894,13 @@
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
         eType="#//Property" containment="true" eOpposite="#//Property/datatype">
-      <eAnnotations source="subsets" references="#//Classifier/attribute #//Namespace/ownedMember"/>
+      <eAnnotations source="subsets" references="#//Namespace/ownedMember #//Classifier/attribute"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ownedOperation" upperBound="-1"
         eType="#//Operation" containment="true" eOpposite="#//Operation/datatype">
       <eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/ownedMember"/>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Interface" eSuperTypes="#//Classifier">
-    <eOperations name="visibility" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="createOwnedAttribute" ordered="false" lowerBound="1" eType="#//Property">
-      <eParameters name="name" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String"/>
-      <eParameters name="type" ordered="false" eType="#//Type"/>
-      <eParameters name="lower" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer"/>
-      <eParameters name="upper" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//UnlimitedNatural"/>
-    </eOperations>
-    <eOperations name="createOwnedOperation" ordered="false" lowerBound="1" eType="#//Operation">
-      <eParameters name="name" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String"/>
-      <eParameters name="parameterNames" ordered="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String"/>
-      <eParameters name="parameterTypes" ordered="false" upperBound="-1" eType="#//Type"/>
-      <eParameters name="returnType" ordered="false" eType="#//Type"/>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="nestedClassifier" upperBound="-1"
-        eType="#//Classifier" containment="true">
-      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
-        eType="#//Property" containment="true" eOpposite="#//Property/interface">
-      <eAnnotations source="subsets" references="#//Classifier/attribute #//Namespace/ownedMember"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedReception" ordered="false"
-        upperBound="-1" eType="#//Reception" containment="true">
-      <eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/ownedMember"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="protocol" ordered="false"
-        eType="#//ProtocolStateMachine" containment="true">
-      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedInterface" ordered="false"
-        upperBound="-1" eType="#//Interface">
-      <eAnnotations source="subsets" references="#//Classifier/redefinedClassifier"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedOperation" upperBound="-1"
-        eType="#//Operation" containment="true" eOpposite="#//Operation/interface">
-      <eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/ownedMember"/>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Reception" eSuperTypes="#//BehavioralFeature">
-    <eOperations name="not_query" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="signal" ordered="false"
-        lowerBound="1" eType="#//Signal"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Signal" eSuperTypes="#//Classifier">
-    <eOperations name="createOwnedAttribute" ordered="false" lowerBound="1" eType="#//Property">
-      <eParameters name="name" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String"/>
-      <eParameters name="type" ordered="false" eType="#//Type"/>
-      <eParameters name="lower" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer"/>
-      <eParameters name="upper" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//UnlimitedNatural"/>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
-        eType="#//Property" containment="true">
-      <eAnnotations source="subsets" references="#//Classifier/attribute #//Namespace/ownedMember"/>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ProtocolStateMachine" eSuperTypes="#//StateMachine">
-    <eAnnotations source="duplicates">
-      <contents xsi:type="ecore:EOperation" name="classifier_context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-        <eAnnotations source="redefines" references="#//StateMachine/classifier_context"/>
-        <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-        <eParameters name="context">
-          <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-            <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-            <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          </eGenericType>
-        </eParameters>
-      </contents>
-    </eAnnotations>
-    <eOperations name="deep_or_shallow_history" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="entry_exit_do" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="ports_connected" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="protocol_transitions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="conformance" ordered="false"
-        upperBound="-1" eType="#//ProtocolConformance" containment="true" eOpposite="#//ProtocolConformance/specificMachine">
-      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="StateMachine" eSuperTypes="#//Behavior">
-    <eAnnotations source="duplicates">
-      <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
-          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
-        <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
-        <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
-      </contents>
-    </eAnnotations>
-    <eOperations name="connection_points" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="classifier_context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="method" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="context_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="LCA" ordered="false" lowerBound="1" eType="#//Namespace">
-      <eParameters name="s1" ordered="false" lowerBound="1" eType="#//State"/>
-      <eParameters name="s2" ordered="false" lowerBound="1" eType="#//State"/>
-    </eOperations>
-    <eOperations name="ancestor" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
-      <eParameters name="s1" ordered="false" lowerBound="1" eType="#//State"/>
-      <eParameters name="s2" ordered="false" lowerBound="1" eType="#//State"/>
-    </eOperations>
-    <eOperations name="isRedefinitionContextValid" ordered="false" lowerBound="1"
-        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
-      <eAnnotations source="redefines" references="#//RedefinableElement/isRedefinitionContextValid"/>
-      <eParameters name="redefined" ordered="false" lowerBound="1" eType="#//StateMachine"/>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="connectionPoint" ordered="false"
-        upperBound="-1" eType="#//Pseudostate" containment="true" eOpposite="#//Pseudostate/stateMachine">
-      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="submachineState" ordered="false"
-        upperBound="-1" eType="#//State" eOpposite="#//State/submachine"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="region" ordered="false"
-        lowerBound="1" upperBound="-1" eType="#//Region" containment="true" eOpposite="#//Region/stateMachine">
-      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="extendedStateMachine" ordered="false"
-        upperBound="-1" eType="#//StateMachine">
-      <eAnnotations source="redefines" references="#//Behavior/redefinedBehavior"/>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Pseudostate" eSuperTypes="#//Vertex">
-    <eOperations name="transitions_outgoing" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="choice_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="outgoing_from_initial" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="join_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="junction_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="history_vertices" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="initial_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="fork_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="transitions_incoming" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="state" ordered="false"
-        eType="#//State" eOpposite="#//State/connectionPoint">
-      <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" ordered="false" lowerBound="1"
-        eType="#//PseudostateKind" defaultValueLiteral="initial"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="stateMachine" ordered="false"
-        eType="#//StateMachine" eOpposite="#//StateMachine/connectionPoint">
-      <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Vertex" abstract="true" eSuperTypes="#//NamedElement">
-    <eOperations name="containingStateMachine" ordered="false" lowerBound="1" eType="#//StateMachine"/>
-    <eOperations name="getIncomings" ordered="false" upperBound="-1" eType="#//Transition"/>
-    <eOperations name="getOutgoings" ordered="false" upperBound="-1" eType="#//Transition"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="container" ordered="false"
-        eType="#//Region" eOpposite="#//Region/subvertex">
-      <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="incoming" ordered="false"
-        upperBound="-1" eType="#//Transition" changeable="false" volatile="true" transient="true"
-        derived="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="outgoing" ordered="false"
-        upperBound="-1" eType="#//Transition" changeable="false" volatile="true" transient="true"
-        derived="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Region" eSuperTypes="#//Namespace #//RedefinableElement">
-    <eAnnotations source="duplicates">
-      <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
-          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
-        <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
-        <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
-      </contents>
-      <contents xsi:type="ecore:EReference" name="redefinitionContext" ordered="false"
-          upperBound="-1" eType="#//Classifier" changeable="false" volatile="true"
-          transient="true" derived="true">
-        <eAnnotations source="redefines" references="#//RedefinableElement/redefinitionContext"/>
-      </contents>
-    </eAnnotations>
-    <eOperations name="deep_history_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="shallow_history_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="owned" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="initial_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="belongsToPSM" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"/>
-    <eOperations name="containingStateMachine" ordered="false" lowerBound="1" eType="#//StateMachine"/>
-    <eOperations name="isRedefinitionContextValid" ordered="false" lowerBound="1"
-        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
-      <eAnnotations source="redefines" references="#//RedefinableElement/isRedefinitionContextValid"/>
-      <eParameters name="redefined" ordered="false" lowerBound="1" eType="#//Region"/>
-    </eOperations>
-    <eOperations name="redefinitionContext" ordered="false" lowerBound="1" eType="#//Classifier"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="extendedRegion" ordered="false"
-        eType="#//Region">
-      <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="state" ordered="false"
-        eType="#//State" eOpposite="#//State/region">
-      <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="stateMachine" ordered="false"
-        eType="#//StateMachine" eOpposite="#//StateMachine/region">
-      <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="transition" ordered="false"
-        upperBound="-1" eType="#//Transition" containment="true" eOpposite="#//Transition/container">
-      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="subvertex" ordered="false"
-        upperBound="-1" eType="#//Vertex" containment="true" eOpposite="#//Vertex/container">
-      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="State" eSuperTypes="#//Namespace #//RedefinableElement #//Vertex">
-    <eAnnotations source="duplicates">
-      <contents xsi:type="ecore:EOperation" name="containingStateMachine" ordered="false"
-          lowerBound="1" eType="#//StateMachine">
-        <eAnnotations source="redefines" references="#//Vertex/containingStateMachine"/>
-      </contents>
-      <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
-          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
-        <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
-        <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
-      </contents>
-      <contents xsi:type="ecore:EReference" name="redefinitionContext" ordered="false"
-          upperBound="-1" eType="#//Classifier" changeable="false" volatile="true"
-          transient="true" derived="true">
-        <eAnnotations source="redefines" references="#//RedefinableElement/redefinitionContext"/>
-      </contents>
-    </eAnnotations>
-    <eOperations name="entry_or_exit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="submachine_states" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="composite_states" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="destinations_or_sources_of_transitions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="submachine_or_regions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="isComposite" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"/>
-    <eOperations name="isOrthogonal" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"/>
-    <eOperations name="isRedefinitionContextValid" ordered="false" lowerBound="1"
-        eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
-      <eAnnotations source="redefines" references="#//RedefinableElement/isRedefinitionContextValid"/>
-      <eParameters name="redefined" ordered="false" lowerBound="1" eType="#//State"/>
-    </eOperations>
-    <eOperations name="isSimple" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"/>
-    <eOperations name="isSubmachineState" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"/>
-    <eOperations name="redefinitionContext" ordered="false" lowerBound="1" eType="#//Classifier"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="connection" ordered="false"
-        upperBound="-1" eType="#//ConnectionPointReference" containment="true" eOpposite="#//ConnectionPointReference/state">
-      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="connectionPoint" ordered="false"
-        upperBound="-1" eType="#//Pseudostate" containment="true" eOpposite="#//Pseudostate/state">
-      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="deferrableTrigger" ordered="false"
-        upperBound="-1" eType="#//Trigger" containment="true">
-      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="doActivity" ordered="false"
-        eType="#//Behavior" containment="true">
-      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="entry" ordered="false"
-        eType="#//Behavior" containment="true">
-      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="exit" ordered="false" eType="#//Behavior"
-        containment="true">
-      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isComposite" ordered="false"
-        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
-        changeable="false" volatile="true" transient="true" defaultValueLiteral="false"
-        derived="true"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isOrthogonal" ordered="false"
-        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
-        changeable="false" volatile="true" transient="true" defaultValueLiteral="false"
-        derived="true"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isSimple" ordered="false"
-        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
-        changeable="false" volatile="true" transient="true" defaultValueLiteral="true"
-        derived="true"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isSubmachineState" ordered="false"
-        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
-        changeable="false" volatile="true" transient="true" defaultValueLiteral="false"
-        derived="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedState" ordered="false"
-        eType="#//State">
-      <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="stateInvariant" ordered="false"
-        eType="#//Constraint">
-      <eAnnotations source="subsets" references="#//Namespace/ownedRule"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="submachine" ordered="false"
-        eType="#//StateMachine" eOpposite="#//StateMachine/submachineState"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="region" ordered="false"
-        upperBound="-1" eType="#//Region" containment="true" eOpposite="#//Region/state">
-      <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ConnectionPointReference" eSuperTypes="#//Vertex">
-    <eOperations name="exit_pseudostates" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="entry_pseudostates" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="entry" ordered="false"
-        upperBound="-1" eType="#//Pseudostate"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="exit" ordered="false" upperBound="-1"
-        eType="#//Pseudostate"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="state" ordered="false"
-        eType="#//State" eOpposite="#//State/connection">
-      <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Trigger" eSuperTypes="#//NamedElement">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="event" ordered="false"
-        lowerBound="1" eType="#//Event"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="port" ordered="false" upperBound="-1"
-        eType="#//Port"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Event" abstract="true" eSuperTypes="#//PackageableElement"/>
-  <eClassifiers xsi:type="ecore:EClass" name="Port" eSuperTypes="#//Property">
-    <eOperations name="port_destroyed" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="port_aggregation" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="default_value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="getProvideds" ordered="false" upperBound="-1" eType="#//Interface"/>
-    <eOperations name="getRequireds" ordered="false" upperBound="-1" eType="#//Interface"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isBehavior" ordered="false"
-        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
-        defaultValueLiteral="false"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isConjugated" ordered="false"
-        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
-        defaultValueLiteral="false"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isService" ordered="false"
-        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
-        defaultValueLiteral="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="protocol" ordered="false"
-        eType="#//ProtocolStateMachine"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="provided" ordered="false"
-        upperBound="-1" eType="#//Interface" changeable="false" volatile="true" transient="true"
-        derived="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedPort" ordered="false"
-        upperBound="-1" eType="#//Port">
-      <eAnnotations source="subsets" references="#//Property/redefinedProperty"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="required" ordered="false"
-        upperBound="-1" eType="#//Interface" changeable="false" volatile="true" transient="true"
-        derived="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Transition" eSuperTypes="#//Namespace #//RedefinableElement">
-    <eAnnotations source="duplicates">
-      <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
-          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean">
-        <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
-        <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
-      </contents>
-      <contents xsi:type="ecore:EReference" name="redefinitionContext" ordered="false"
-          upperBound="-1" eType="#//Classifier" changeable="false" volatile="true"
-          transient="true" derived="true">
-        <eAnnotations source="redefines" references="#//RedefinableElement/redefinitionContext"/>
-      </contents>
-    </eAnnotations>
-    <eOperations name="state_is_external" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="join_segment_guards" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="state_is_internal" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="outgoing_pseudostates" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="join_segment_state" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="fork_segment_state" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="signatures_compatible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="state_is_local" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="initial_transition" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="fork_segment_guards" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="containingStateMachine" ordered="false" lowerBound="1" eType="#//StateMachine"/>
-    <eOperations name="redefinitionContext" ordered="false" lowerBound="1" eType="#//Classifier"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="effect" ordered="false"
-        eType="#//Behavior" containment="true">
-      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="guard" ordered="false"
-        eType="#//Constraint">
-      <eAnnotations source="subsets" references="#//Namespace/ownedRule"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" ordered="false" lowerBound="1"
-        eType="#//TransitionKind" defaultValueLiteral="external"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedTransition" ordered="false"
-        eType="#//Transition">
-      <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="source" ordered="false"
-        lowerBound="1" eType="#//Vertex"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="target" ordered="false"
-        lowerBound="1" eType="#//Vertex"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="trigger" ordered="false"
-        upperBound="-1" eType="#//Trigger" containment="true">
-      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="container" ordered="false"
-        lowerBound="1" eType="#//Region" eOpposite="#//Region/transition">
-      <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EEnum" name="TransitionKind">
-    <eLiterals name="internal"/>
-    <eLiterals name="local" value="1"/>
-    <eLiterals name="external" value="2"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EEnum" name="PseudostateKind">
-    <eLiterals name="initial"/>
-    <eLiterals name="deepHistory" value="1"/>
-    <eLiterals name="shallowHistory" value="2"/>
-    <eLiterals name="join" value="3"/>
-    <eLiterals name="fork" value="4"/>
-    <eLiterals name="junction" value="5"/>
-    <eLiterals name="choice" value="6"/>
-    <eLiterals name="entryPoint" value="7"/>
-    <eLiterals name="exitPoint" value="8"/>
-    <eLiterals name="terminate" value="9"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ProtocolConformance" eSuperTypes="#//DirectedRelationship">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="generalMachine" ordered="false"
-        lowerBound="1" eType="#//ProtocolStateMachine">
-      <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="specificMachine" ordered="false"
-        lowerBound="1" eType="#//ProtocolStateMachine" eOpposite="#//ProtocolStateMachine/conformance">
-      <eAnnotations source="subsets" references="#//DirectedRelationship/source #//Element/owner"/>
-    </eStructuralFeatures>
-  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="OperationTemplateParameter" eSuperTypes="#//TemplateParameter">
     <eAnnotations source="duplicates">
       <contents xsi:type="ecore:EReference" name="parameteredElement" ordered="false"
@@ -2851,11 +2909,6 @@
       </contents>
     </eAnnotations>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="StructuralFeature" abstract="true" eSuperTypes="#//Feature #//TypedElement #//MultiplicityElement">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isReadOnly" ordered="false"
-        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
-        defaultValueLiteral="false"/>
-  </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="AggregationKind">
     <eLiterals name="none"/>
     <eLiterals name="shared" value="1"/>
@@ -2936,15 +2989,6 @@
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="InstanceSpecification" eSuperTypes="#//DeploymentTarget #//PackageableElement #//DeployedArtifact">
-    <eOperations name="deployment_artifact" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="structural_feature" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
@@ -2972,6 +3016,15 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="deployment_artifact" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="classifier" ordered="false"
         upperBound="-1" eType="#//Classifier"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="slot" ordered="false" upperBound="-1"
@@ -2998,7 +3051,7 @@
   <eClassifiers xsi:type="ecore:EClass" name="PrimitiveType" eSuperTypes="#//DataType"/>
   <eClassifiers xsi:type="ecore:EClass" name="Usage" eSuperTypes="#//Dependency"/>
   <eClassifiers xsi:type="ecore:EClass" name="CollaborationUse" eSuperTypes="#//NamedElement">
-    <eOperations name="client_elements" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="connectors" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -3016,7 +3069,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="connectors" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="client_elements" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -3038,98 +3091,6 @@
       <eAnnotations source="subsets" references="#//StructuredClassifier/role"/>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="StructuredClassifier" abstract="true"
-      eSuperTypes="#//Classifier">
-    <eOperations name="multiplicities" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="createOwnedAttribute" ordered="false" lowerBound="1" eType="#//Property">
-      <eParameters name="name" ordered="false" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String"/>
-      <eParameters name="type" ordered="false" eType="#//Type"/>
-      <eParameters name="lower" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Integer"/>
-      <eParameters name="upper" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//UnlimitedNatural"/>
-    </eOperations>
-    <eOperations name="getParts" ordered="false" upperBound="-1" eType="#//Property"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
-        eType="#//Property" containment="true">
-      <eAnnotations source="subsets" references="#//Classifier/attribute #//StructuredClassifier/role #//Namespace/ownedMember"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedConnector" ordered="false"
-        upperBound="-1" eType="#//Connector" containment="true">
-      <eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/ownedMember"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="part" ordered="false" upperBound="-1"
-        eType="#//Property" changeable="false" volatile="true" transient="true" derived="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="role" ordered="false" upperBound="-1"
-        eType="#//ConnectableElement" changeable="false" volatile="true" transient="true"
-        derived="true">
-      <eAnnotations source="union"/>
-      <eAnnotations source="subsets" references="#//Namespace/member"/>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Connector" eSuperTypes="#//Feature">
-    <eOperations name="types" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="roles" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="between_interfaces_ports" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="compatible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="getKind" ordered="false" lowerBound="1" eType="#//ConnectorKind"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="contract" ordered="false"
-        upperBound="-1" eType="#//Behavior"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="end" lowerBound="2" upperBound="-1"
-        eType="#//ConnectorEnd" containment="true">
-      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" ordered="false" lowerBound="1"
-        eType="#//ConnectorKind" changeable="false" volatile="true" transient="true"
-        derived="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedConnector" ordered="false"
-        upperBound="-1" eType="#//Connector">
-      <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" eType="#//Association"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EEnum" name="ConnectorKind">
-    <eLiterals name="assembly"/>
-    <eLiterals name="delegation" value="1"/>
-  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Generalization" eSuperTypes="#//DirectedRelationship">
     <eOperations name="generalization_same_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
@@ -3151,11 +3112,11 @@
         defaultValueLiteral="true"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="specific" ordered="false"
         lowerBound="1" eType="#//Classifier" eOpposite="#//Classifier/generalization">
-      <eAnnotations source="subsets" references="#//DirectedRelationship/source #//Element/owner"/>
+      <eAnnotations source="subsets" references="#//Element/owner #//DirectedRelationship/source"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="GeneralizationSet" eSuperTypes="#//PackageableElement">
-    <eOperations name="generalization_same_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="maps_to_generalization_set" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -3164,7 +3125,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="maps_to_generalization_set" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="generalization_same_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -3218,16 +3179,7 @@
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="UseCase" eSuperTypes="#//BehavioredClassifier">
-    <eOperations name="binary_associations" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="no_association_to_use_case" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="must_have_name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -3245,7 +3197,16 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="must_have_name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="binary_associations" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="no_association_to_use_case" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -3292,7 +3253,7 @@
         upperBound="-1" eType="#//ExtensionPoint"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="extension" ordered="false"
         lowerBound="1" eType="#//UseCase" eOpposite="#//UseCase/extend">
-      <eAnnotations source="subsets" references="#//NamedElement/namespace #//DirectedRelationship/source"/>
+      <eAnnotations source="subsets" references="#//DirectedRelationship/source #//NamedElement/namespace"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ExtensionPoint" eSuperTypes="#//RedefinableElement">
@@ -3317,7 +3278,7 @@
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="includingCase" ordered="false"
         lowerBound="1" eType="#//UseCase" eOpposite="#//UseCase/include">
-      <eAnnotations source="subsets" references="#//NamedElement/namespace #//DirectedRelationship/source"/>
+      <eAnnotations source="subsets" references="#//DirectedRelationship/source #//NamedElement/namespace"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Substitution" eSuperTypes="#//Realization">
@@ -3327,10 +3288,9 @@
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="substitutingClassifier"
         ordered="false" lowerBound="1" eType="#//Classifier" eOpposite="#//Classifier/substitution">
-      <eAnnotations source="subsets" references="#//Dependency/client #//Element/owner"/>
+      <eAnnotations source="subsets" references="#//Element/owner #//Dependency/client"/>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Realization" eSuperTypes="#//Abstraction"/>
   <eClassifiers xsi:type="ecore:EClass" name="ClassifierTemplateParameter" eSuperTypes="#//TemplateParameter">
     <eAnnotations source="duplicates">
       <contents xsi:type="ecore:EReference" name="parameteredElement" ordered="false"
@@ -3353,24 +3313,62 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="constrainingClassifier"
         ordered="false" upperBound="-1" eType="#//Classifier"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="InterfaceRealization" eSuperTypes="#//Realization">
+  <eClassifiers xsi:type="ecore:EClass" name="Connector" eSuperTypes="#//Feature">
+    <eOperations name="compatible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="roles" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="between_interfaces_ports" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="types" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="getKind" ordered="false" lowerBound="1" eType="#//ConnectorKind"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="contract" ordered="false"
-        lowerBound="1" eType="#//Interface">
-      <eAnnotations source="subsets" references="#//Dependency/supplier"/>
+        upperBound="-1" eType="#//Behavior"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="end" lowerBound="2" upperBound="-1"
+        eType="#//ConnectorEnd" containment="true">
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="implementingClassifier"
-        ordered="false" lowerBound="1" eType="#//BehavioredClassifier" eOpposite="#//BehavioredClassifier/interfaceRealization">
-      <eAnnotations source="subsets" references="#//Dependency/client #//Element/owner"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" ordered="false" lowerBound="1"
+        eType="#//ConnectorKind" changeable="false" volatile="true" transient="true"
+        derived="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedConnector" ordered="false"
+        upperBound="-1" eType="#//Connector">
+      <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
     </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" eType="#//Association"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="EncapsulatedClassifier" abstract="true"
-      eSuperTypes="#//StructuredClassifier">
-    <eOperations name="getOwnedPorts" ordered="false" upperBound="-1" eType="#//Port"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedPort" ordered="false"
-        upperBound="-1" eType="#//Port" changeable="false" volatile="true" transient="true"
-        derived="true">
-      <eAnnotations source="subsets" references="#//StructuredClassifier/ownedAttribute"/>
-    </eStructuralFeatures>
+  <eClassifiers xsi:type="ecore:EEnum" name="ConnectorKind">
+    <eLiterals name="assembly"/>
+    <eLiterals name="delegation" value="1"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Image" eSuperTypes="#//Element">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="content" ordered="false"
@@ -3386,7 +3384,7 @@
         <eAnnotations source="redefines" references="#//ValueSpecification/stringValue"/>
       </contents>
     </eAnnotations>
-    <eOperations name="language_body_size" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="only_return_result_parameters" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -3404,7 +3402,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="only_return_result_parameters" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="language_body_size" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -3432,15 +3430,6 @@
         eType="#//Parameter" changeable="false" volatile="true" transient="true" derived="true"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="AcceptCallAction" eSuperTypes="#//AcceptEventAction">
-    <eOperations name="result_pins" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="trigger_call_event" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
@@ -3459,13 +3448,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="returnInformation" ordered="false"
-        lowerBound="1" eType="#//OutputPin" containment="true">
-      <eAnnotations source="subsets" references="#//Action/output"/>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="AcceptEventAction" eSuperTypes="#//Action">
-    <eOperations name="trigger_events" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="result_pins" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -3474,6 +3457,12 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="returnInformation" ordered="false"
+        lowerBound="1" eType="#//OutputPin" containment="true">
+      <eAnnotations source="subsets" references="#//Action/output"/>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="AcceptEventAction" eSuperTypes="#//Action">
     <eOperations name="no_input_pins" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
@@ -3483,7 +3472,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="no_output_pins" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="trigger_events" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -3501,6 +3490,15 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="no_output_pins" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="isUnmarshall" ordered="false"
         lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
         defaultValueLiteral="false"/>
@@ -3566,21 +3564,16 @@
       </eParameters>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="activity" ordered="false"
-        eType="#//Activity" eOpposite="#//Activity/node">
+        eType="#//Activity" volatile="true" transient="true" derived="true" eOpposite="#//Activity/node">
       <eAnnotations source="subsets" references="#//Element/owner"/>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="inGroup" ordered="false"
-        upperBound="-1" eType="#//ActivityGroup" changeable="false" volatile="true"
-        transient="true" derived="true" eOpposite="#//ActivityGroup/containedNode">
-      <eAnnotations source="union"/>
-    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="inPartition" ordered="false"
         upperBound="-1" eType="#//ActivityPartition" eOpposite="#//ActivityPartition/node">
       <eAnnotations source="subsets" references="#//ActivityNode/inGroup"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="inStructuredNode" ordered="false"
         eType="#//StructuredActivityNode" eOpposite="#//StructuredActivityNode/node">
-      <eAnnotations source="subsets" references="#//Element/owner #//ActivityNode/inGroup"/>
+      <eAnnotations source="subsets" references="#//ActivityNode/inGroup #//Element/owner"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="inInterruptibleRegion"
         ordered="false" upperBound="-1" eType="#//InterruptibleActivityRegion" eOpposite="#//InterruptibleActivityRegion/node">
@@ -3590,12 +3583,26 @@
         upperBound="-1" eType="#//ActivityEdge" eOpposite="#//ActivityEdge/source"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="incoming" ordered="false"
         upperBound="-1" eType="#//ActivityEdge" eOpposite="#//ActivityEdge/target"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="inGroup" ordered="false"
+        upperBound="-1" eType="#//ActivityGroup" changeable="false" volatile="true"
+        transient="true" derived="true" eOpposite="#//ActivityGroup/containedNode">
+      <eAnnotations source="union"/>
+    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedNode" ordered="false"
         upperBound="-1" eType="#//ActivityNode">
       <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Activity" eSuperTypes="#//Behavior">
+    <eOperations name="activity_parameter_node" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eOperations name="autonomous" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
@@ -3614,33 +3621,38 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="activity_parameter_node" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="getStructuredNodes" ordered="false" upperBound="-1" eType="#//StructuredActivityNode"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedGroup" ordered="false"
+        upperBound="-1" eType="#//ActivityGroup" containment="true">
+      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+        <details key="name" value="group"/>
+        <details key="kind" value="element"/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Activity/group"/>
+    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="edge" ordered="false" upperBound="-1"
         eType="#//ActivityEdge" containment="true" eOpposite="#//ActivityEdge/activity">
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="group" ordered="false"
-        upperBound="-1" eType="#//ActivityGroup" containment="true" eOpposite="#//ActivityGroup/inActivity">
-      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="structuredNode" ordered="false"
-        upperBound="-1" eType="#//StructuredActivityNode" changeable="false" volatile="true"
-        transient="true" derived="true">
-      <eAnnotations source="subsets" references="#//Activity/group #//Activity/node"/>
-    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="variable" ordered="false"
         upperBound="-1" eType="#//Variable" containment="true" eOpposite="#//Variable/activityScope">
       <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
     </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="group" ordered="false"
+        upperBound="-1" eType="#//ActivityGroup" volatile="true" transient="true"
+        derived="true" eOpposite="#//ActivityGroup/inActivity">
+      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+        <details key="kind" value="attribute"/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedNode" ordered="false"
+        upperBound="-1" eType="#//ActivityNode" containment="true">
+      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+        <details key="name" value="node"/>
+        <details key="kind" value="element"/>
+      </eAnnotations>
+      <eAnnotations source="subsets" references="#//Activity/node"/>
+    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="isReadOnly" ordered="false"
         lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//Boolean"
         defaultValueLiteral="false"/>
@@ -3649,13 +3661,75 @@
         defaultValueLiteral="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="partition" ordered="false"
         upperBound="-1" eType="#//ActivityPartition">
-      <eAnnotations source="subsets" references="#//Activity/group"/>
+      <eAnnotations source="subsets" references="#//Activity/group #//Activity/ownedGroup"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="structuredNode" ordered="false"
+        upperBound="-1" eType="#//StructuredActivityNode" containment="true">
+      <eAnnotations source="subsets" references="#//Activity/group #//Activity/node"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="node" ordered="false" upperBound="-1"
-        eType="#//ActivityNode" containment="true" eOpposite="#//ActivityNode/activity">
+        eType="#//ActivityNode" volatile="true" transient="true" derived="true" eOpposite="#//ActivityNode/activity">
+      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+        <details key="kind" value="attribute"/>
+      </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="ActivityGroup" abstract="true" eSuperTypes="#//NamedElement">
+    <eOperations name="group_owned" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="not_contained" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="nodes_and_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="containedEdge" ordered="false"
+        upperBound="-1" eType="#//ActivityEdge" changeable="false" volatile="true"
+        transient="true" derived="true" eOpposite="#//ActivityEdge/inGroup">
+      <eAnnotations source="union"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="containedNode" ordered="false"
+        upperBound="-1" eType="#//ActivityNode" changeable="false" volatile="true"
+        transient="true" derived="true" eOpposite="#//ActivityNode/inGroup">
+      <eAnnotations source="union"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="inActivity" ordered="false"
+        eType="#//Activity" volatile="true" transient="true" derived="true" eOpposite="#//Activity/group">
+      <eAnnotations source="subsets" references="#//Element/owner"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="subgroup" ordered="false"
+        upperBound="-1" eType="#//ActivityGroup" changeable="false" volatile="true"
+        transient="true" derived="true" eOpposite="#//ActivityGroup/superGroup">
+      <eAnnotations source="union"/>
+      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="superGroup" ordered="false"
+        eType="#//ActivityGroup" changeable="false" volatile="true" transient="true"
+        derived="true" eOpposite="#//ActivityGroup/subgroup">
+      <eAnnotations source="union"/>
+      <eAnnotations source="subsets" references="#//Element/owner"/>
+    </eStructuralFeatures>
+  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ActivityEdge" abstract="true" eSuperTypes="#//RedefinableElement">
     <eOperations name="owned" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
@@ -3684,15 +3758,14 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="activity" ordered="false"
+        eType="#//Activity" eOpposite="#//Activity/edge">
+      <eAnnotations source="subsets" references="#//Element/owner"/>
+    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="guard" ordered="false"
         lowerBound="1" eType="#//ValueSpecification" containment="true">
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="inGroup" ordered="false"
-        upperBound="-1" eType="#//ActivityGroup" changeable="false" volatile="true"
-        transient="true" derived="true" eOpposite="#//ActivityGroup/containedEdge">
-      <eAnnotations source="union"/>
-    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="inPartition" ordered="false"
         upperBound="-1" eType="#//ActivityPartition" eOpposite="#//ActivityPartition/edge">
       <eAnnotations source="subsets" references="#//ActivityEdge/inGroup"/>
@@ -3715,67 +3788,22 @@
         lowerBound="1" eType="#//ValueSpecification" containment="true">
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="activity" ordered="false"
-        eType="#//Activity" eOpposite="#//Activity/edge">
-      <eAnnotations source="subsets" references="#//Element/owner"/>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ActivityGroup" abstract="true" eSuperTypes="#//NamedElement">
-    <eOperations name="nodes_and_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="group_owned" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="not_contained" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="containedNode" ordered="false"
-        upperBound="-1" eType="#//ActivityNode" changeable="false" volatile="true"
-        transient="true" derived="true" eOpposite="#//ActivityNode/inGroup">
-      <eAnnotations source="union"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="inActivity" ordered="false"
-        eType="#//Activity" eOpposite="#//Activity/group">
-      <eAnnotations source="subsets" references="#//Element/owner"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="subgroup" ordered="false"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="inGroup" ordered="false"
         upperBound="-1" eType="#//ActivityGroup" changeable="false" volatile="true"
-        transient="true" derived="true" eOpposite="#//ActivityGroup/superGroup">
-      <eAnnotations source="union"/>
-      <eAnnotations source="subsets" references="#//Element/ownedElement"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="superGroup" ordered="false"
-        eType="#//ActivityGroup" changeable="false" volatile="true" transient="true"
-        derived="true" eOpposite="#//ActivityGroup/subgroup">
-      <eAnnotations source="union"/>
-      <eAnnotations source="subsets" references="#//Element/owner"/>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="containedEdge" ordered="false"
-        upperBound="-1" eType="#//ActivityEdge" changeable="false" volatile="true"
-        transient="true" derived="true" eOpposite="#//ActivityEdge/inGroup">
+        transient="true" derived="true" eOpposite="#//ActivityGroup/containedEdge">
       <eAnnotations source="union"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ActivityPartition" eSuperTypes="#//ActivityGroup">
+    <eOperations name="represents_part" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eOperations name="represents_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
@@ -3794,15 +3822,6 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="represents_part" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="dimension_not_contained" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
@@ -3840,11 +3859,11 @@
   <eClassifiers xsi:type="ecore:EClass" name="StructuredActivityNode" eSuperTypes="#//Action #//Namespace #//ActivityGroup">
     <eAnnotations source="duplicates">
       <contents xsi:type="ecore:EReference" name="activity" ordered="false" eType="#//Activity"
-          volatile="true" transient="true" derived="true" eOpposite="#//Activity/structuredNode">
+          volatile="true" transient="true" derived="true">
         <eAnnotations source="redefines" references="#//ActivityGroup/inActivity #//ActivityNode/activity"/>
       </contents>
     </eAnnotations>
-    <eOperations name="output_pin_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="input_pin_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -3862,7 +3881,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="input_pin_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="output_pin_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -3876,7 +3895,7 @@
         defaultValueLiteral="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="node" ordered="false" upperBound="-1"
         eType="#//ActivityNode" containment="true" eOpposite="#//ActivityNode/inStructuredNode">
-      <eAnnotations source="subsets" references="#//Element/ownedElement #//ActivityGroup/containedNode"/>
+      <eAnnotations source="subsets" references="#//ActivityGroup/containedNode #//Element/ownedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="structuredNodeInput" ordered="false"
         upperBound="-1" eType="#//InputPin" containment="true">
@@ -3921,7 +3940,7 @@
         defaultValueLiteral="false"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ObjectNode" abstract="true" eSuperTypes="#//ActivityNode #//TypedElement">
-    <eOperations name="input_output_parameter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="object_flow_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -3939,7 +3958,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="object_flow_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="input_output_parameter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -4019,7 +4038,16 @@
         upperBound="-1" eType="#//ActivityEdge" eOpposite="#//ActivityEdge/interrupts"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ExceptionHandler" eSuperTypes="#//Element">
-    <eOperations name="exception_body" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="one_input" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="edge_source_target" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -4037,16 +4065,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="one_input" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="edge_source_target" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="exception_body" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -4113,15 +4132,6 @@
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Lifeline" eSuperTypes="#//NamedElement">
-    <eOperations name="selector_specified" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="interaction_uses_share_lifeline" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
@@ -4140,6 +4150,15 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="selector_specified" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="decomposedAs" ordered="false"
         eType="#//PartDecomposition"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="interaction" ordered="false"
@@ -4156,7 +4175,7 @@
         upperBound="-1" eType="#//InteractionFragment" eOpposite="#//InteractionFragment/covered"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="PartDecomposition" eSuperTypes="#//InteractionUse">
-    <eOperations name="commutativity_of_decomposition" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="parts_of_internal_structures" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -4174,7 +4193,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="parts_of_internal_structures" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="commutativity_of_decomposition" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -4185,16 +4204,7 @@
     </eOperations>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="InteractionUse" eSuperTypes="#//InteractionFragment">
-    <eOperations name="gates_match" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="arguments_are_constants" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="all_lifelines" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -4221,7 +4231,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="returnValue_type_recipient_correspondence" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="gates_match" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -4230,7 +4240,16 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="all_lifelines" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="arguments_are_constants" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="returnValue_type_recipient_correspondence" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -4290,6 +4309,33 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="occurrence_specifications" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="signature_is_signal" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="signature_is_operation" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eOperations name="arguments" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
@@ -4308,24 +4354,6 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="signature_is_signal" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="occurrence_specifications" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="signature_refer_to" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
@@ -4335,15 +4363,6 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="signature_is_operation" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="getMessageKind" ordered="false" lowerBound="1" eType="#//MessageKind"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="argument" upperBound="-1"
         eType="#//ValueSpecification" containment="true">
@@ -4404,7 +4423,7 @@
     <eLiterals name="reply" value="5"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="InteractionOperand" eSuperTypes="#//Namespace #//InteractionFragment">
-    <eOperations name="guard_contain_references" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="guard_directly_prior" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -4413,7 +4432,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="guard_directly_prior" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="guard_contain_references" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -4432,6 +4451,15 @@
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="InteractionConstraint" eSuperTypes="#//Constraint">
+    <eOperations name="maxint_positive" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eOperations name="minint_maxint" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
@@ -4450,24 +4478,6 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="maxint_positive" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="dynamic_variables" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="global_data" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
@@ -4486,6 +4496,15 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="dynamic_variables" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="maxint" ordered="false"
         eType="#//ValueSpecification" containment="true">
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
@@ -4532,7 +4551,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="one_output_pin" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="no_control_or_data_flow" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -4541,7 +4560,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="no_control_or_data_flow" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="one_output_pin" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -4569,7 +4588,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ControlNode" abstract="true" eSuperTypes="#//ActivityNode"/>
   <eClassifiers xsi:type="ecore:EClass" name="ActivityParameterNode" eSuperTypes="#//ObjectNode">
-    <eOperations name="no_outgoing_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="maximum_one_parameter_node" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -4587,25 +4606,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="has_parameters" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="same_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="maximum_one_parameter_node" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="no_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -4623,7 +4624,25 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="no_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="no_outgoing_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="same_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="has_parameters" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -4656,7 +4675,7 @@
     </eOperations>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="AddStructuralFeatureValueAction" eSuperTypes="#//WriteStructuralFeatureAction">
-    <eOperations name="required_value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="unlimited_natural_and_multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -4665,7 +4684,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="unlimited_natural_and_multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="required_value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -4696,15 +4715,6 @@
         </eParameters>
       </contents>
     </eAnnotations>
-    <eOperations name="multiplicity_of_result" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="input_pin" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
@@ -4723,6 +4733,15 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="multiplicity_of_result" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="result" ordered="false"
         eType="#//OutputPin" containment="true">
       <eAnnotations source="subsets" references="#//Action/output"/>
@@ -4734,24 +4753,6 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="StructuralFeatureAction" abstract="true"
       eSuperTypes="#//Action">
-    <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="same_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="visibility" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
@@ -4761,6 +4762,15 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eOperations name="not_static" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
@@ -4779,6 +4789,15 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="same_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="object" ordered="false"
         lowerBound="1" eType="#//InputPin" containment="true">
       <eAnnotations source="subsets" references="#//Action/input"/>
@@ -4815,7 +4834,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="WriteVariableAction" abstract="true"
       eSuperTypes="#//VariableAction">
-    <eOperations name="same_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -4824,7 +4843,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="same_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -4854,7 +4873,7 @@
   <eClassifiers xsi:type="ecore:EClass" name="AnyReceiveEvent" eSuperTypes="#//MessageEvent"/>
   <eClassifiers xsi:type="ecore:EClass" name="MessageEvent" abstract="true" eSuperTypes="#//Event"/>
   <eClassifiers xsi:type="ecore:EClass" name="AssociationClass" eSuperTypes="#//Class #//Association">
-    <eOperations name="cannot_be_defined" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="disjoint_attributes_ends" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -4863,7 +4882,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="disjoint_attributes_ends" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="cannot_be_defined" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -4878,7 +4897,7 @@
         eType="#//Behavior"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="BroadcastSignalAction" eSuperTypes="#//InvocationAction">
-    <eOperations name="number_and_order" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="type_ordering_multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -4887,7 +4906,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="type_ordering_multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="number_and_order" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -4917,7 +4936,7 @@
         eType="#//Port"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="CallAction" abstract="true" eSuperTypes="#//InvocationAction">
-    <eOperations name="type_ordering_multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="synchronous_call" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -4935,7 +4954,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="synchronous_call" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="type_ordering_multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -5003,15 +5022,6 @@
         </eParameters>
       </contents>
     </eAnnotations>
-    <eOperations name="type_target_pin" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="argument_pin_equal_parameter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
@@ -5030,6 +5040,15 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="type_target_pin" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="operation" ordered="false"
         lowerBound="1" eType="#//Operation"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="target" ordered="false"
@@ -5045,6 +5064,15 @@
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Clause" eSuperTypes="#//Element">
+    <eOperations name="test_and_body" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eOperations name="body_output_pins" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
@@ -5063,15 +5091,6 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="test_and_body" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="body" ordered="false" upperBound="-1"
         eType="#//ExecutableNode"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="bodyOutput" upperBound="-1"
@@ -5112,7 +5131,7 @@
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ClearStructuralFeatureAction" eSuperTypes="#//StructuralFeatureAction">
-    <eOperations name="type_of_result" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="multiplicity_of_result" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -5121,7 +5140,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="multiplicity_of_result" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="type_of_result" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -5137,7 +5156,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ClearVariableAction" eSuperTypes="#//VariableAction"/>
   <eClassifiers xsi:type="ecore:EClass" name="CombinedFragment" eSuperTypes="#//InteractionFragment">
-    <eOperations name="minint_and_maxint" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="break" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -5146,7 +5165,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="break" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="opt_loop_break_neg" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -5164,7 +5183,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="opt_loop_break_neg" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="minint_and_maxint" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -5213,7 +5232,7 @@
     </eAnnotations>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Component" eSuperTypes="#//Class">
-    <eOperations name="no_nested_classifiers" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="no_packaged_elements" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -5222,7 +5241,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="no_packaged_elements" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="no_nested_classifiers" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -5281,7 +5300,7 @@
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ConditionalNode" eSuperTypes="#//StructuredActivityNode">
-    <eOperations name="result_no_incoming" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="executable_nodes" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -5290,16 +5309,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="no_input_pins" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="one_clause_with_executable_node" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="clause_no_predecessor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -5317,7 +5327,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="executable_nodes" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="one_clause_with_executable_node" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -5326,7 +5336,16 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="clause_no_predecessor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="result_no_incoming" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="no_input_pins" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -5351,7 +5370,7 @@
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ConsiderIgnoreFragment" eSuperTypes="#//CombinedFragment">
-    <eOperations name="consider_or_ignore" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -5360,7 +5379,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="consider_or_ignore" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -5373,7 +5392,7 @@
         upperBound="-1" eType="#//NamedElement"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Continuation" eSuperTypes="#//InteractionFragment">
-    <eOperations name="first_or_last_interaction_fragment" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="same_name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -5382,7 +5401,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="same_name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="first_or_last_interaction_fragment" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -5482,16 +5501,7 @@
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="LinkEndData" eSuperTypes="#//Element">
-    <eOperations name="same_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="property_is_association_end" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -5509,7 +5519,16 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="property_is_association_end" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="same_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -5537,6 +5556,15 @@
         eType="#//InputPin"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="QualifierValue" eSuperTypes="#//Element">
+    <eOperations name="qualifier_attribute" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eOperations name="multiplicity_of_qualifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
@@ -5555,22 +5583,13 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="qualifier_attribute" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="qualifier" ordered="false"
         lowerBound="1" eType="#//Property"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="value" ordered="false"
         lowerBound="1" eType="#//InputPin"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="LinkEndCreationData" eSuperTypes="#//LinkEndData">
-    <eOperations name="single_input_pin" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="create_link_action" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -5579,7 +5598,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="create_link_action" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="single_input_pin" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -5595,7 +5614,7 @@
         defaultValueLiteral="false"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="CreateLinkObjectAction" eSuperTypes="#//CreateLinkAction">
-    <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="association_class" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -5613,7 +5632,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="association_class" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -5628,24 +5647,6 @@
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="CreateObjectAction" eSuperTypes="#//Action">
-    <eOperations name="classifier_not_abstract" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="classifier_not_association_class" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
@@ -5655,6 +5656,15 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="classifier_not_abstract" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eOperations name="same_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
@@ -5664,6 +5674,15 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="classifier" ordered="false"
         lowerBound="1" eType="#//Classifier"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="result" ordered="false"
@@ -5673,7 +5692,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="DataStoreNode" eSuperTypes="#//CentralBufferNode"/>
   <eClassifiers xsi:type="ecore:EClass" name="DecisionNode" eSuperTypes="#//ControlNode">
-    <eOperations name="zero_input_parameters" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="parameters" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -5682,25 +5701,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="decision_input_flow_incoming" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="two_input_parameters" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="incoming_object_one_input_parameter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -5727,7 +5728,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="parameters" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="two_input_parameters" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -5736,7 +5737,25 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="incoming_object_one_input_parameter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="decision_input_flow_incoming" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="zero_input_parameters" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -5751,25 +5770,7 @@
         eType="#//ObjectFlow"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ObjectFlow" eSuperTypes="#//ActivityEdge">
-    <eOperations name="input_and_output_parameter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="no_actions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="transformation_behaviour" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="is_multicast_or_is_multireceive" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -5796,7 +5797,25 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="same_upper_bounds" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="no_actions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="input_and_output_parameter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="transformation_behaviour" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -5814,7 +5833,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="is_multicast_or_is_multireceive" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="same_upper_bounds" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -5843,7 +5862,7 @@
     </eAnnotations>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="LinkEndDestructionData" eSuperTypes="#//LinkEndData">
-    <eOperations name="unlimited_natural_and_multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="destroy_link_action" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -5852,7 +5871,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="destroy_link_action" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="unlimited_natural_and_multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -6057,15 +6076,6 @@
     <eLiterals name="stream" value="2"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="FinalState" eSuperTypes="#//State">
-    <eOperations name="no_exit_behavior" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="no_outgoing_transitions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
@@ -6075,7 +6085,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="no_regions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="cannot_reference_submachine" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -6084,7 +6094,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="cannot_reference_submachine" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="no_exit_behavior" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -6111,6 +6121,15 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="no_regions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="FlowFinalNode" eSuperTypes="#//FinalNode"/>
   <eClassifiers xsi:type="ecore:EClass" name="ForkNode" eSuperTypes="#//ControlNode">
@@ -6164,7 +6183,7 @@
         eType="ecore:EDataType http://www.eclipse.org/uml2/4.0.0/Types#//String" unsettable="true"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="InformationFlow" eSuperTypes="#//PackageableElement #//DirectedRelationship">
-    <eOperations name="must_conform" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="sources_and_targets_kind" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -6173,7 +6192,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="sources_and_targets_kind" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="must_conform" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -6211,15 +6230,6 @@
         upperBound="-1" eType="#//Message"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="InformationItem" eSuperTypes="#//Classifier">
-    <eOperations name="sources_and_targets" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="has_no" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
@@ -6238,6 +6248,15 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="sources_and_targets" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="represented" ordered="false"
         upperBound="-1" eType="#//Classifier"/>
   </eClassifiers>
@@ -6400,24 +6419,6 @@
         defaultValueLiteral="0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="LoopNode" eSuperTypes="#//StructuredActivityNode">
-    <eOperations name="result_no_incoming" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="input_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="executable_nodes" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
@@ -6436,6 +6437,24 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="result_no_incoming" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="input_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="bodyOutput" upperBound="-1"
         eType="#//OutputPin"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="bodyPart" ordered="false"
@@ -6632,24 +6651,6 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="compatible_multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="visibility" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="one_open_end" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
@@ -6659,6 +6660,15 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="compatible_multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eOperations name="navigable_open_end" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
@@ -6668,13 +6678,22 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="visibility" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="result" ordered="false"
         lowerBound="1" eType="#//OutputPin" containment="true">
       <eAnnotations source="subsets" references="#//Action/output"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ReadLinkObjectEndAction" eSuperTypes="#//Action">
-    <eOperations name="property" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="association_of_association" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -6692,15 +6711,6 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="ends_of_association" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="type_of_result" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
@@ -6710,15 +6720,6 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="multiplicity_of_result" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="type_of_object" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
@@ -6728,7 +6729,25 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="association_of_association" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="property" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="multiplicity_of_result" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="ends_of_association" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -6749,15 +6768,6 @@
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ReadLinkObjectEndQualifierAction" eSuperTypes="#//Action">
-    <eOperations name="multiplicity_of_object" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="type_of_object" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
@@ -6767,24 +6777,6 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="multiplicity_of_qualifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="ends_of_association" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="multiplicity_of_result" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
@@ -6803,6 +6795,33 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="ends_of_association" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="multiplicity_of_qualifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="multiplicity_of_object" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eOperations name="association_of_association" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
@@ -6842,7 +6861,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -6860,7 +6879,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -6935,7 +6954,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="classifier_not_abstract" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -6944,7 +6963,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="classifier_not_abstract" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -6966,6 +6985,15 @@
         upperBound="-1" eType="#//Classifier"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ReduceAction" eSuperTypes="#//Action">
+    <eOperations name="output_types_are_compatible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eOperations name="reducer_inputs_output" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
@@ -6984,15 +7012,6 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="output_types_are_compatible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="collection" ordered="false"
         lowerBound="1" eType="#//InputPin" containment="true">
       <eAnnotations source="subsets" references="#//Action/input"/>
@@ -7045,7 +7064,7 @@
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ReplyAction" eSuperTypes="#//Action">
-    <eOperations name="pins_match_parameter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="event_on_reply_to_call_trigger" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -7054,7 +7073,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="event_on_reply_to_call_trigger" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="pins_match_parameter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -7121,7 +7140,7 @@
         lowerBound="1" eType="#//Signal"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="StartClassifierBehaviorAction" eSuperTypes="#//Action">
-    <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="type_has_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -7130,7 +7149,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="type_has_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -7145,16 +7164,7 @@
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="StartObjectBehaviorAction" eSuperTypes="#//CallAction">
-    <eOperations name="number_order_results" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="multiplicity_of_object" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="number_order_arguments" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -7172,7 +7182,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="number_order_arguments" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="number_order_results" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -7190,6 +7200,15 @@
         </eGenericType>
       </eParameters>
     </eOperations>
+    <eOperations name="multiplicity_of_object" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="object" ordered="false"
         lowerBound="1" eType="#//InputPin" containment="true">
       <eAnnotations source="subsets" references="#//Action/input"/>
@@ -7285,7 +7304,7 @@
         upperBound="-1" eType="#//Observation"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="TimeEvent" eSuperTypes="#//Event">
-    <eOperations name="when_non_negative" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="starting_time" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -7294,7 +7313,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="starting_time" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="when_non_negative" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -7319,6 +7338,15 @@
         defaultValueLiteral="true"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="UnmarshallAction" eSuperTypes="#//Action">
+    <eOperations name="same_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
     <eOperations name="structural_feature" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
@@ -7328,42 +7356,6 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="number_of_result" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="multiplicity_of_result" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="type_and_ordering" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="unmarshallType_is_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
     <eOperations name="multiplicity_of_object" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
@@ -7373,7 +7365,34 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="same_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="type_and_ordering" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="number_of_result" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="unmarshallType_is_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="multiplicity_of_result" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -7394,7 +7413,7 @@
         lowerBound="1" eType="#//Classifier"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ValuePin" eSuperTypes="#//InputPin">
-    <eOperations name="no_incoming_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="compatible_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
@@ -7403,7 +7422,7 @@
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="compatible_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+    <eOperations name="no_incoming_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context">
         <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AcceptCallActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AcceptCallActionOperations.java
index 5db4485..1ab0fd0 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AcceptCallActionOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AcceptCallActionOperations.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation, CEA, and others.
  * 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
@@ -7,8 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: AcceptCallActionOperations.java,v 1.8 2007/05/03 21:11:51 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -19,6 +19,9 @@
 import org.eclipse.emf.common.util.DiagnosticChain;
 
 import org.eclipse.uml2.uml.AcceptCallAction;
+import org.eclipse.uml2.uml.CallEvent;
+import org.eclipse.uml2.uml.Trigger;
+import org.eclipse.uml2.uml.UMLPlugin;
 
 import org.eclipse.uml2.uml.util.UMLValidator;
 
@@ -30,9 +33,9 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.AcceptCallAction#validateResultPins(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Result Pins</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.AcceptCallAction#validateTriggerCallEvent(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Trigger Call Event</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.AcceptCallAction#validateUnmarshall(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Unmarshall</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.AcceptCallAction#validateResultPins(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Result Pins</em>}</li>
  * </ul>
  * </p>
  *
@@ -95,30 +98,34 @@
 	 * @param diagnostics The chain of diagnostics to which problems are to be appended.
 	 * @param context The cache of context-specific information.
 	 * <!-- end-model-doc -->
-	 * @generated
+	 * @generated NOT
 	 */
 	public static boolean validateTriggerCallEvent(
 			AcceptCallAction acceptCallAction, DiagnosticChain diagnostics,
 			Map<Object, Object> context) {
-		// TODO: implement this method
-		// -> specify the condition that violates the invariant
-		// -> verify the details of the diagnostic, including severity and message
-		// Ensure that you remove @generated or mark it @generated NOT
-		if (false) {
-			if (diagnostics != null) {
-				diagnostics
-					.add(new BasicDiagnostic(
-						Diagnostic.ERROR,
-						UMLValidator.DIAGNOSTIC_SOURCE,
-						UMLValidator.ACCEPT_CALL_ACTION__TRIGGER_CALL_EVENT,
-						org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE
-							.getString(
-								"_UI_GenericInvariant_diagnostic", new Object[]{"validateTriggerCallEvent", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(acceptCallAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$
-						new Object[]{acceptCallAction}));
+		boolean result = true;
+
+		for (Trigger trigger : acceptCallAction.getTriggers()) {
+
+			if (!(trigger.getEvent() instanceof CallEvent)) {
+				result = false;
+				break;
 			}
-			return false;
 		}
-		return true;
+
+		if (!result && diagnostics != null) {
+			diagnostics
+				.add(new BasicDiagnostic(
+					Diagnostic.WARNING,
+					UMLValidator.DIAGNOSTIC_SOURCE,
+					UMLValidator.ACCEPT_CALL_ACTION__TRIGGER_CALL_EVENT,
+					UMLPlugin.INSTANCE
+						.getString(
+							"_UI_AcceptCallAction_TriggerCallEvent_diagnostic", getMessageSubstitutions(context, acceptCallAction)), //$NON-NLS-1$
+					new Object[]{acceptCallAction}));
+		}
+
+		return result;
 	}
 
 	/**
@@ -131,29 +138,25 @@
 	 * @param diagnostics The chain of diagnostics to which problems are to be appended.
 	 * @param context The cache of context-specific information.
 	 * <!-- end-model-doc -->
-	 * @generated
+	 * @generated NOT
 	 */
 	public static boolean validateUnmarshall(AcceptCallAction acceptCallAction,
 			DiagnosticChain diagnostics, Map<Object, Object> context) {
-		// TODO: implement this method
-		// -> specify the condition that violates the invariant
-		// -> verify the details of the diagnostic, including severity and message
-		// Ensure that you remove @generated or mark it @generated NOT
-		if (false) {
-			if (diagnostics != null) {
-				diagnostics
-					.add(new BasicDiagnostic(
-						Diagnostic.ERROR,
-						UMLValidator.DIAGNOSTIC_SOURCE,
-						UMLValidator.ACCEPT_CALL_ACTION__UNMARSHALL,
-						org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE
-							.getString(
-								"_UI_GenericInvariant_diagnostic", new Object[]{"validateUnmarshall", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(acceptCallAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$
-						new Object[]{acceptCallAction}));
-			}
-			return false;
+		boolean result = acceptCallAction.isUnmarshall();
+
+		if (!result && diagnostics != null) {
+			diagnostics
+				.add(new BasicDiagnostic(
+					Diagnostic.WARNING,
+					UMLValidator.DIAGNOSTIC_SOURCE,
+					UMLValidator.ACCEPT_CALL_ACTION__UNMARSHALL,
+					UMLPlugin.INSTANCE
+						.getString(
+							"_UI_AcceptCallAction_Unmarshall_diagnostic", getMessageSubstitutions(context, acceptCallAction)), //$NON-NLS-1$
+					new Object[]{acceptCallAction}));
 		}
-		return true;
+
+		return result;
 	}
 
 } // AcceptCallActionOperations
\ No newline at end of file
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AcceptEventActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AcceptEventActionOperations.java
index 7502890..1b45907 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AcceptEventActionOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AcceptEventActionOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: AcceptEventActionOperations.java,v 1.7 2007/05/03 21:11:51 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,10 +30,10 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.AcceptEventAction#validateTriggerEvents(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Trigger Events</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.AcceptEventAction#validateNoInputPins(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Input Pins</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.AcceptEventAction#validateNoOutputPins(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Output Pins</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.AcceptEventAction#validateTriggerEvents(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Trigger Events</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.AcceptEventAction#validateUnmarshallSignalEvents(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Unmarshall Signal Events</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.AcceptEventAction#validateNoOutputPins(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Output Pins</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActionInputPinOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActionInputPinOperations.java
index 306207b..b13ca5f 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActionInputPinOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActionInputPinOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ActionInputPinOperations.java,v 1.7 2007/05/03 21:11:53 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -32,8 +31,8 @@
  * The following operations are supported:
  * <ul>
  *   <li>{@link org.eclipse.uml2.uml.ActionInputPin#validateInputPin(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Input Pin</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ActionInputPin#validateOneOutputPin(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate One Output Pin</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ActionInputPin#validateNoControlOrDataFlow(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Control Or Data Flow</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ActionInputPin#validateOneOutputPin(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate One Output Pin</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityGroupOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityGroupOperations.java
index ab3c994..a0a19d3 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityGroupOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityGroupOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ActivityGroupOperations.java,v 1.6 2007/05/03 21:11:51 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,9 +30,9 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.ActivityGroup#validateNodesAndEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Nodes And Edges</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ActivityGroup#validateGroupOwned(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Group Owned</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ActivityGroup#validateNotContained(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Not Contained</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ActivityGroup#validateNodesAndEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Nodes And Edges</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityOperations.java
index 6e96756..ffc43c1 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ActivityOperations.java,v 1.6 2007/05/03 21:11:52 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -19,10 +18,8 @@
 import org.eclipse.emf.common.util.Diagnostic;
 import org.eclipse.emf.common.util.DiagnosticChain;
 
-import org.eclipse.emf.common.util.EList;
 import org.eclipse.uml2.uml.Activity;
 
-import org.eclipse.uml2.uml.StructuredActivityNode;
 import org.eclipse.uml2.uml.util.UMLValidator;
 
 /**
@@ -33,10 +30,9 @@
  * <p>
  * The following operations are supported:
  * <ul>
+ *   <li>{@link org.eclipse.uml2.uml.Activity#validateActivityParameterNode(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Activity Parameter Node</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Activity#validateAutonomous(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Autonomous</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Activity#validateNoSupergroups(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Supergroups</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Activity#validateActivityParameterNode(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Activity Parameter Node</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Activity#getStructuredNodes() <em>Get Structured Nodes</em>}</li>
  * </ul>
  * </p>
  *
@@ -128,21 +124,6 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * <!-- begin-model-doc -->
-	 * Missing derivation for Activity::/structuredNode : StructuredActivityNode
-	 * true
-	 * @param activity The receiving '<em><b>Activity</b></em>' model object.
-	 * <!-- end-model-doc -->
-	 * @generated NOT
-	 */
-	public static EList<StructuredActivityNode> getStructuredNodes(
-			Activity activity) {
-		return activity.getStructuredNodes();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * <!-- begin-model-doc -->
 	 * An activity cannot be autonomous and have a classifier or behavioral feature context at the same time.
 	 * true
 	 * @param activity The receiving '<em><b>Activity</b></em>' model object.
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityParameterNodeOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityParameterNodeOperations.java
index 49525bc..5158e6b 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityParameterNodeOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityParameterNodeOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ActivityParameterNodeOperations.java,v 1.9 2008/10/02 20:56:22 jbruck Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,13 +30,13 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.ActivityParameterNode#validateNoOutgoingEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Outgoing Edges</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ActivityParameterNode#validateMaximumTwoParameterNodes(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Maximum Two Parameter Nodes</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ActivityParameterNode#validateHasParameters(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Has Parameters</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ActivityParameterNode#validateSameType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Same Type</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ActivityParameterNode#validateMaximumOneParameterNode(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Maximum One Parameter Node</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ActivityParameterNode#validateNoIncomingEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Incoming Edges</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ActivityParameterNode#validateMaximumTwoParameterNodes(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Maximum Two Parameter Nodes</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ActivityParameterNode#validateNoEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Edges</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ActivityParameterNode#validateNoIncomingEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Incoming Edges</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ActivityParameterNode#validateNoOutgoingEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Outgoing Edges</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ActivityParameterNode#validateSameType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Same Type</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ActivityParameterNode#validateHasParameters(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Has Parameters</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityPartitionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityPartitionOperations.java
index 2f90d9a..35db261 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityPartitionOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityPartitionOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ActivityPartitionOperations.java,v 1.8 2007/05/03 21:11:51 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,9 +30,9 @@
  * <p>
  * The following operations are supported:
  * <ul>
+ *   <li>{@link org.eclipse.uml2.uml.ActivityPartition#validateRepresentsPart(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Represents Part</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ActivityPartition#validateRepresentsClassifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Represents Classifier</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ActivityPartition#validateRepresentsPartAndIsContained(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Represents Part And Is Contained</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ActivityPartition#validateRepresentsPart(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Represents Part</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ActivityPartition#validateDimensionNotContained(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Dimension Not Contained</em>}</li>
  * </ul>
  * </p>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActorOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActorOperations.java
index fb50da5..fad4b76 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActorOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActorOperations.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation, CEA, and others.
  * 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
@@ -7,8 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ActorOperations.java,v 1.6 2007/05/03 21:11:53 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -19,6 +19,12 @@
 import org.eclipse.emf.common.util.DiagnosticChain;
 
 import org.eclipse.uml2.uml.Actor;
+import org.eclipse.uml2.uml.Association;
+import org.eclipse.uml2.uml.Behavior;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Type;
+import org.eclipse.uml2.uml.UMLPlugin;
+import org.eclipse.uml2.uml.UseCase;
 
 import org.eclipse.uml2.uml.util.UMLValidator;
 
@@ -64,29 +70,35 @@
 	 * @param diagnostics The chain of diagnostics to which problems are to be appended.
 	 * @param context The cache of context-specific information.
 	 * <!-- end-model-doc -->
-	 * @generated
+	 * @generated NOT
 	 */
 	public static boolean validateAssociations(Actor actor,
 			DiagnosticChain diagnostics, Map<Object, Object> context) {
-		// TODO: implement this method
-		// -> specify the condition that violates the invariant
-		// -> verify the details of the diagnostic, including severity and message
-		// Ensure that you remove @generated or mark it @generated NOT
-		if (false) {
-			if (diagnostics != null) {
+		boolean result = true;
+
+		for (Association association : actor.getAssociations()) {
+			Property otherEnd = association.getMemberEnd(null, actor)
+				.getOtherEnd();
+			Type otherEndType = otherEnd == null
+				? null
+				: otherEnd.getType();
+
+			if (!(otherEndType instanceof UseCase || (otherEndType instanceof org.eclipse.uml2.uml.Class && !(otherEndType instanceof Behavior)))) {
+				result &= false;
+
 				diagnostics
 					.add(new BasicDiagnostic(
-						Diagnostic.ERROR,
+						Diagnostic.WARNING,
 						UMLValidator.DIAGNOSTIC_SOURCE,
 						UMLValidator.ACTOR__ASSOCIATIONS,
-						org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE
+						UMLPlugin.INSTANCE
 							.getString(
-								"_UI_GenericInvariant_diagnostic", new Object[]{"validateAssociations", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(actor, context)}), //$NON-NLS-1$ //$NON-NLS-2$
-						new Object[]{actor}));
+								"_UI_Actor_Associations_diagnostic", getMessageSubstitutions(context, actor, association)), //$NON-NLS-1$
+						new Object[]{actor, association}));
 			}
-			return false;
 		}
-		return true;
+
+		return result;
 	}
 
 	/**
@@ -99,29 +111,25 @@
 	 * @param diagnostics The chain of diagnostics to which problems are to be appended.
 	 * @param context The cache of context-specific information.
 	 * <!-- end-model-doc -->
-	 * @generated
+	 * @generated NOT
 	 */
 	public static boolean validateMustHaveName(Actor actor,
 			DiagnosticChain diagnostics, Map<Object, Object> context) {
-		// TODO: implement this method
-		// -> specify the condition that violates the invariant
-		// -> verify the details of the diagnostic, including severity and message
-		// Ensure that you remove @generated or mark it @generated NOT
-		if (false) {
-			if (diagnostics != null) {
-				diagnostics
-					.add(new BasicDiagnostic(
-						Diagnostic.ERROR,
-						UMLValidator.DIAGNOSTIC_SOURCE,
-						UMLValidator.ACTOR__MUST_HAVE_NAME,
-						org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE
-							.getString(
-								"_UI_GenericInvariant_diagnostic", new Object[]{"validateMustHaveName", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(actor, context)}), //$NON-NLS-1$ //$NON-NLS-2$
-						new Object[]{actor}));
-			}
-			return false;
+		boolean result = !isEmpty(actor.getName());
+
+		if (!result && diagnostics != null) {
+			diagnostics
+				.add(new BasicDiagnostic(
+					Diagnostic.WARNING,
+					UMLValidator.DIAGNOSTIC_SOURCE,
+					UMLValidator.ACTOR__MUST_HAVE_NAME,
+					UMLPlugin.INSTANCE
+						.getString(
+							"_UI_Actor_MustHaveName_diagnostic", getMessageSubstitutions(context, actor)), //$NON-NLS-1$
+					new Object[]{actor}));
 		}
-		return true;
+
+		return result;
 	}
 
 } // ActorOperations
\ No newline at end of file
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AddStructuralFeatureValueActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AddStructuralFeatureValueActionOperations.java
index 9683b19..8450691 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AddStructuralFeatureValueActionOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AddStructuralFeatureValueActionOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: AddStructuralFeatureValueActionOperations.java,v 1.6 2007/05/03 21:11:51 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -20,6 +19,11 @@
 import org.eclipse.emf.common.util.DiagnosticChain;
 
 import org.eclipse.uml2.uml.AddStructuralFeatureValueAction;
+import org.eclipse.uml2.uml.InputPin;
+import org.eclipse.uml2.uml.PrimitiveType;
+import org.eclipse.uml2.uml.StructuralFeature;
+import org.eclipse.uml2.uml.Type;
+import org.eclipse.uml2.uml.UMLPlugin;
 
 import org.eclipse.uml2.uml.util.UMLValidator;
 
@@ -31,8 +35,8 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.AddStructuralFeatureValueAction#validateRequiredValue(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Required Value</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.AddStructuralFeatureValueAction#validateUnlimitedNaturalAndMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Unlimited Natural And Multiplicity</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.AddStructuralFeatureValueAction#validateRequiredValue(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Required Value</em>}</li>
  * </ul>
  * </p>
  *
@@ -60,30 +64,26 @@
 	 * @param diagnostics The chain of diagnostics to which problems are to be appended.
 	 * @param context The cache of context-specific information.
 	 * <!-- end-model-doc -->
-	 * @generated
+	 * @generated NOT
 	 */
 	public static boolean validateRequiredValue(
 			AddStructuralFeatureValueAction addStructuralFeatureValueAction,
 			DiagnosticChain diagnostics, Map<Object, Object> context) {
-		// TODO: implement this method
-		// -> specify the condition that violates the invariant
-		// -> verify the details of the diagnostic, including severity and message
-		// Ensure that you remove @generated or mark it @generated NOT
-		if (false) {
-			if (diagnostics != null) {
-				diagnostics
-					.add(new BasicDiagnostic(
-						Diagnostic.ERROR,
-						UMLValidator.DIAGNOSTIC_SOURCE,
-						UMLValidator.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__REQUIRED_VALUE,
-						org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE
-							.getString(
-								"_UI_GenericInvariant_diagnostic", new Object[]{"validateRequiredValue", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(addStructuralFeatureValueAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$
-						new Object[]{addStructuralFeatureValueAction}));
-			}
-			return false;
+		boolean result = addStructuralFeatureValueAction.getValue() != null;
+
+		if (!result && diagnostics != null) {
+			diagnostics
+				.add(new BasicDiagnostic(
+					Diagnostic.WARNING,
+					UMLValidator.DIAGNOSTIC_SOURCE,
+					UMLValidator.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__REQUIRED_VALUE,
+					UMLPlugin.INSTANCE
+						.getString(
+							"_UI_AddStructuralFeatureValueAction_RequiredValue_diagnostic", getMessageSubstitutions(context, addStructuralFeatureValueAction)), //$NON-NLS-1$
+					new Object[]{addStructuralFeatureValueAction}));
 		}
-		return true;
+
+		return result;
 	}
 
 	/**
@@ -104,30 +104,45 @@
 	 * @param diagnostics The chain of diagnostics to which problems are to be appended.
 	 * @param context The cache of context-specific information.
 	 * <!-- end-model-doc -->
-	 * @generated
+	 * @generated NOT
 	 */
 	public static boolean validateUnlimitedNaturalAndMultiplicity(
 			AddStructuralFeatureValueAction addStructuralFeatureValueAction,
 			DiagnosticChain diagnostics, Map<Object, Object> context) {
-		// TODO: implement this method
-		// -> specify the condition that violates the invariant
-		// -> verify the details of the diagnostic, including severity and message
-		// Ensure that you remove @generated or mark it @generated NOT
-		if (false) {
-			if (diagnostics != null) {
+		boolean result = true;
+
+		StructuralFeature structuralFeature = addStructuralFeatureValueAction
+			.getStructuralFeature();
+
+		if (structuralFeature != null) {
+			InputPin insertAt = addStructuralFeatureValueAction.getInsertAt();
+
+			if (structuralFeature.isOrdered()) {
+				Type insertAtType = insertAt == null
+					? null
+					: insertAt.getType();
+
+				result = insertAtType instanceof PrimitiveType
+					&& safeEquals("PrimitiveTypes::UnlimitedNatural", //$NON-NLS-1$
+						insertAtType.getQualifiedName()) && insertAt.is(1, 1);
+			} else {
+				result = insertAt == null;
+			}
+
+			if (!result && diagnostics != null) {
 				diagnostics
 					.add(new BasicDiagnostic(
-						Diagnostic.ERROR,
+						Diagnostic.WARNING,
 						UMLValidator.DIAGNOSTIC_SOURCE,
 						UMLValidator.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__UNLIMITED_NATURAL_AND_MULTIPLICITY,
-						org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE
+						UMLPlugin.INSTANCE
 							.getString(
-								"_UI_GenericInvariant_diagnostic", new Object[]{"validateUnlimitedNaturalAndMultiplicity", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(addStructuralFeatureValueAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$
+								"_UI_AddStructuralFeatureValueAction_UnlimitedNaturalAndMultiplicity_diagnostic", getMessageSubstitutions(context, addStructuralFeatureValueAction)), //$NON-NLS-1$
 						new Object[]{addStructuralFeatureValueAction}));
 			}
-			return false;
 		}
-		return true;
+
+		return result;
 	}
 
 } // AddStructuralFeatureValueActionOperations
\ No newline at end of file
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AddVariableValueActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AddVariableValueActionOperations.java
index 50cf2f8..0f969c1 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AddVariableValueActionOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AddVariableValueActionOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: AddVariableValueActionOperations.java,v 1.6 2007/05/03 21:11:51 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -20,6 +19,11 @@
 import org.eclipse.emf.common.util.DiagnosticChain;
 
 import org.eclipse.uml2.uml.AddVariableValueAction;
+import org.eclipse.uml2.uml.InputPin;
+import org.eclipse.uml2.uml.PrimitiveType;
+import org.eclipse.uml2.uml.Type;
+import org.eclipse.uml2.uml.UMLPlugin;
+import org.eclipse.uml2.uml.Variable;
 
 import org.eclipse.uml2.uml.util.UMLValidator;
 
@@ -60,30 +64,26 @@
 	 * @param diagnostics The chain of diagnostics to which problems are to be appended.
 	 * @param context The cache of context-specific information.
 	 * <!-- end-model-doc -->
-	 * @generated
+	 * @generated NOT
 	 */
 	public static boolean validateRequiredValue(
 			AddVariableValueAction addVariableValueAction,
 			DiagnosticChain diagnostics, Map<Object, Object> context) {
-		// TODO: implement this method
-		// -> specify the condition that violates the invariant
-		// -> verify the details of the diagnostic, including severity and message
-		// Ensure that you remove @generated or mark it @generated NOT
-		if (false) {
-			if (diagnostics != null) {
-				diagnostics
-					.add(new BasicDiagnostic(
-						Diagnostic.ERROR,
-						UMLValidator.DIAGNOSTIC_SOURCE,
-						UMLValidator.ADD_VARIABLE_VALUE_ACTION__REQUIRED_VALUE,
-						org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE
-							.getString(
-								"_UI_GenericInvariant_diagnostic", new Object[]{"validateRequiredValue", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(addVariableValueAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$
-						new Object[]{addVariableValueAction}));
-			}
-			return false;
+		boolean result = addVariableValueAction.getValue() != null;
+
+		if (!result && diagnostics != null) {
+			diagnostics
+				.add(new BasicDiagnostic(
+					Diagnostic.WARNING,
+					UMLValidator.DIAGNOSTIC_SOURCE,
+					UMLValidator.ADD_VARIABLE_VALUE_ACTION__REQUIRED_VALUE,
+					UMLPlugin.INSTANCE
+						.getString(
+							"_UI_AddVariableValueAction_RequiredValue_diagnostic", getMessageSubstitutions(context, addVariableValueAction)), //$NON-NLS-1$
+					new Object[]{addVariableValueAction}));
 		}
-		return true;
+
+		return result;
 	}
 
 	/**
@@ -104,30 +104,44 @@
 	 * @param diagnostics The chain of diagnostics to which problems are to be appended.
 	 * @param context The cache of context-specific information.
 	 * <!-- end-model-doc -->
-	 * @generated
+	 * @generated NOT
 	 */
 	public static boolean validateSingleInputPin(
 			AddVariableValueAction addVariableValueAction,
 			DiagnosticChain diagnostics, Map<Object, Object> context) {
-		// TODO: implement this method
-		// -> specify the condition that violates the invariant
-		// -> verify the details of the diagnostic, including severity and message
-		// Ensure that you remove @generated or mark it @generated NOT
-		if (false) {
-			if (diagnostics != null) {
+		boolean result = true;
+
+		Variable variable = addVariableValueAction.getVariable();
+
+		if (variable != null) {
+			InputPin insertAt = addVariableValueAction.getInsertAt();
+
+			if (variable.isOrdered()) {
+				Type insertAtType = insertAt == null
+					? null
+					: insertAt.getType();
+
+				result = insertAtType instanceof PrimitiveType
+					&& safeEquals("PrimitiveTypes::UnlimitedNatural", //$NON-NLS-1$
+						insertAtType.getQualifiedName()) && insertAt.is(1, 1);
+			} else {
+				result = insertAt == null;
+			}
+
+			if (!result && diagnostics != null) {
 				diagnostics
 					.add(new BasicDiagnostic(
-						Diagnostic.ERROR,
+						Diagnostic.WARNING,
 						UMLValidator.DIAGNOSTIC_SOURCE,
 						UMLValidator.ADD_VARIABLE_VALUE_ACTION__SINGLE_INPUT_PIN,
-						org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE
+						UMLPlugin.INSTANCE
 							.getString(
-								"_UI_GenericInvariant_diagnostic", new Object[]{"validateSingleInputPin", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(addVariableValueAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$
+								"_UI_AddVariableValueAction_SingleInputPin_diagnostic", getMessageSubstitutions(context, addVariableValueAction)), //$NON-NLS-1$
 						new Object[]{addVariableValueAction}));
 			}
-			return false;
 		}
-		return true;
+
+		return result;
 	}
 
 } // AddVariableValueActionOperations
\ No newline at end of file
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AssociationClassOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AssociationClassOperations.java
index 7738502..93673c5 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AssociationClassOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AssociationClassOperations.java
@@ -7,26 +7,23 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: AssociationClassOperations.java,v 1.8 2007/05/03 21:11:52 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
+import java.util.Collections;
 import java.util.Map;
 
 import org.eclipse.emf.common.util.BasicDiagnostic;
 import org.eclipse.emf.common.util.Diagnostic;
 import org.eclipse.emf.common.util.DiagnosticChain;
-import org.eclipse.emf.common.util.ECollections;
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.common.util.UniqueEList;
 
 import org.eclipse.uml2.uml.AssociationClass;
 import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Type;
+import org.eclipse.uml2.uml.UMLPlugin;
 
-import org.eclipse.uml2.uml.Property;
 import org.eclipse.uml2.uml.util.UMLValidator;
 
 /**
@@ -37,8 +34,8 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.AssociationClass#validateCannotBeDefined(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Cannot Be Defined</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.AssociationClass#validateDisjointAttributesEnds(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Disjoint Attributes Ends</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.AssociationClass#validateCannotBeDefined(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Cannot Be Defined</em>}</li>
  * </ul>
  * </p>
  *
@@ -66,30 +63,37 @@
 	 * @param diagnostics The chain of diagnostics to which problems are to be appended.
 	 * @param context The cache of context-specific information.
 	 * <!-- end-model-doc -->
-	 * @generated
+	 * @generated NOT
 	 */
 	public static boolean validateCannotBeDefined(
 			AssociationClass associationClass, DiagnosticChain diagnostics,
 			Map<Object, Object> context) {
-		// TODO: implement this method
-		// -> specify the condition that violates the invariant
-		// -> verify the details of the diagnostic, including severity and message
-		// Ensure that you remove @generated or mark it @generated NOT
-		if (false) {
-			if (diagnostics != null) {
-				diagnostics
-					.add(new BasicDiagnostic(
-						Diagnostic.ERROR,
-						UMLValidator.DIAGNOSTIC_SOURCE,
-						UMLValidator.ASSOCIATION_CLASS__CANNOT_BE_DEFINED,
-						org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE
-							.getString(
-								"_UI_GenericInvariant_diagnostic", new Object[]{"validateCannotBeDefined", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(associationClass, context)}), //$NON-NLS-1$ //$NON-NLS-2$
-						new Object[]{associationClass}));
+		boolean result = true;
+
+		for (Type endType : associationClass.getEndTypes()) {
+
+			if (endType == associationClass
+				|| (endType instanceof Classifier && ((Classifier) endType)
+					.allParents().contains(associationClass))) {
+
+				result = false;
+				break;
 			}
-			return false;
 		}
-		return true;
+
+		if (!result && diagnostics != null) {
+			diagnostics
+				.add(new BasicDiagnostic(
+					Diagnostic.WARNING,
+					UMLValidator.DIAGNOSTIC_SOURCE,
+					UMLValidator.ASSOCIATION_CLASS__CANNOT_BE_DEFINED,
+					UMLPlugin.INSTANCE
+						.getString(
+							"_UI_AssociationClass_CannotBeDefined_diagnostic", getMessageSubstitutions(context, associationClass)), //$NON-NLS-1$
+					new Object[]{associationClass}));
+		}
+
+		return result;
 	}
 
 	/**
@@ -102,56 +106,28 @@
 	 * @param diagnostics The chain of diagnostics to which problems are to be appended.
 	 * @param context The cache of context-specific information.
 	 * <!-- end-model-doc -->
-	 * @generated
+	 * @generated NOT
 	 */
 	public static boolean validateDisjointAttributesEnds(
 			AssociationClass associationClass, DiagnosticChain diagnostics,
 			Map<Object, Object> context) {
-		// TODO: implement this method
-		// -> specify the condition that violates the invariant
-		// -> verify the details of the diagnostic, including severity and message
-		// Ensure that you remove @generated or mark it @generated NOT
-		if (false) {
-			if (diagnostics != null) {
-				diagnostics
-					.add(new BasicDiagnostic(
-						Diagnostic.ERROR,
-						UMLValidator.DIAGNOSTIC_SOURCE,
-						UMLValidator.ASSOCIATION_CLASS__DISJOINT_ATTRIBUTES_ENDS,
-						org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE
-							.getString(
-								"_UI_GenericInvariant_diagnostic", new Object[]{"validateDisjointAttributesEnds", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(associationClass, context)}), //$NON-NLS-1$ //$NON-NLS-2$
-						new Object[]{associationClass}));
-			}
-			return false;
-		}
-		return true;
-	}
+		boolean result = Collections.disjoint(
+			associationClass.getOwnedAttributes(),
+			associationClass.getOwnedEnds());
 
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * <!-- begin-model-doc -->
-	 * The operation allConnections results in the set of all AssociationEnds of the Association.
-	 * result = memberEnd->union ( self.parents ()->collect (p | p.allConnections () )
-	 * @param associationClass The receiving '<em><b>Association Class</b></em>' model object.
-	 * <!-- end-model-doc -->
-	 * @generated NOT
-	 */
-	public static EList<Property> allConnections(
-			AssociationClass associationClass) {
-		EList<Property> allConnections = new UniqueEList.FastCompare<Property>(
-			associationClass.getMemberEnds());
-
-		for (Classifier parent : associationClass.allParents()) {
-
-			if (parent instanceof AssociationClass) {
-				allConnections.addAll(((AssociationClass) parent)
-					.getMemberEnds());
-			}
+		if (!result && diagnostics != null) {
+			diagnostics
+				.add(new BasicDiagnostic(
+					Diagnostic.WARNING,
+					UMLValidator.DIAGNOSTIC_SOURCE,
+					UMLValidator.ASSOCIATION_CLASS__DISJOINT_ATTRIBUTES_ENDS,
+					UMLPlugin.INSTANCE
+						.getString(
+							"_UI_AssociationClass_DisjointAttributesEnds_diagnostic", getMessageSubstitutions(context, associationClass)), //$NON-NLS-1$
+					new Object[]{associationClass}));
 		}
 
-		return ECollections.unmodifiableEList(allConnections);
+		return result;
 	}
 
 } // AssociationClassOperations
\ No newline at end of file
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AssociationOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AssociationOperations.java
index ece0808..d685577 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AssociationOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AssociationOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: AssociationOperations.java,v 1.12 2007/05/03 21:11:52 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -40,9 +39,9 @@
  * The following operations are supported:
  * <ul>
  *   <li>{@link org.eclipse.uml2.uml.Association#validateSpecializedEndNumber(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Specialized End Number</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Association#validateSpecializedEndTypes(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Specialized End Types</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Association#validateBinaryAssociations(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Binary Associations</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Association#validateAssociationEnds(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Association Ends</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Association#validateBinaryAssociations(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Binary Associations</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Association#validateSpecializedEndTypes(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Specialized End Types</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Association#isBinary() <em>Is Binary</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Association#getEndTypes() <em>Get End Types</em>}</li>
  * </ul>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/BehaviorOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/BehaviorOperations.java
index 4bd255b..cdf4762 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/BehaviorOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/BehaviorOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: BehaviorOperations.java,v 1.13 2007/05/03 21:11:51 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -39,10 +38,10 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.Behavior#validateMostOneBehaviour(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Most One Behaviour</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Behavior#validateMustRealize(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Must Realize</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Behavior#validateParametersMatch(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Parameters Match</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Behavior#validateFeatureOfContextClassifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Feature Of Context Classifier</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Behavior#validateMustRealize(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Must Realize</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Behavior#validateMostOneBehaviour(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Most One Behaviour</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Behavior#getContext() <em>Get Context</em>}</li>
  * </ul>
  * </p>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/BroadcastSignalActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/BroadcastSignalActionOperations.java
index d26160b..3b10b33 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/BroadcastSignalActionOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/BroadcastSignalActionOperations.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation, CEA, and others.
  * 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
@@ -7,8 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
+ *   Kenn Hussey (CEA) - 351774
  *
- * $Id: BroadcastSignalActionOperations.java,v 1.6 2007/05/03 21:11:52 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -30,8 +30,8 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.BroadcastSignalAction#validateNumberAndOrder(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Number And Order</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.BroadcastSignalAction#validateTypeOrderingMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Ordering Multiplicity</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.BroadcastSignalAction#validateNumberAndOrder(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Number And Order</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CallActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CallActionOperations.java
index bdac673..174d33d 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CallActionOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CallActionOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: CallActionOperations.java,v 1.6 2007/05/03 21:11:51 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,9 +30,9 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.CallAction#validateTypeOrderingMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Ordering Multiplicity</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.CallAction#validateNumberAndOrder(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Number And Order</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.CallAction#validateSynchronousCall(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Synchronous Call</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.CallAction#validateNumberAndOrder(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Number And Order</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.CallAction#validateTypeOrderingMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Ordering Multiplicity</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CallOperationActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CallOperationActionOperations.java
index 54a673a..78425c5 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CallOperationActionOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CallOperationActionOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: CallOperationActionOperations.java,v 1.7 2007/05/03 21:11:51 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,9 +30,9 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.CallOperationAction#validateTypeTargetPin(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Target Pin</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.CallOperationAction#validateArgumentPinEqualParameter(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Argument Pin Equal Parameter</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.CallOperationAction#validateResultPinEqualParameter(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Result Pin Equal Parameter</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.CallOperationAction#validateTypeTargetPin(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Target Pin</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.CallOperationAction#validateTypeOrderingMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Ordering Multiplicity</em>}</li>
  * </ul>
  * </p>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ClassifierOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ClassifierOperations.java
index 2ec0740..d92e40f 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ClassifierOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ClassifierOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ClassifierOperations.java,v 1.22 2008/04/28 17:44:48 jbruck Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -57,10 +56,10 @@
  * The following operations are supported:
  * <ul>
  *   <li>{@link org.eclipse.uml2.uml.Classifier#isTemplate() <em>Is Template</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Classifier#validateSpecializeType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Specialize Type</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Classifier#validateMapsToGeneralizationSet(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Maps To Generalization Set</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Classifier#validateNonFinalParents(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Non Final Parents</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Classifier#validateNoCyclesInGeneralization(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Cycles In Generalization</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Classifier#validateSpecializeType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Specialize Type</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Classifier#validateMapsToGeneralizationSet(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Maps To Generalization Set</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Classifier#getAllAttributes() <em>Get All Attributes</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Classifier#getAllOperations() <em>Get All Operations</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Classifier#getAllUsedInterfaces() <em>Get All Used Interfaces</em>}</li>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ClauseOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ClauseOperations.java
index b454984..1b2ac97 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ClauseOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ClauseOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ClauseOperations.java,v 1.7 2007/05/03 21:11:51 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,9 +30,9 @@
  * <p>
  * The following operations are supported:
  * <ul>
+ *   <li>{@link org.eclipse.uml2.uml.Clause#validateTestAndBody(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Test And Body</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Clause#validateBodyOutputPins(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Body Output Pins</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Clause#validateDeciderOutput(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Decider Output</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Clause#validateTestAndBody(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Test And Body</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ClearStructuralFeatureActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ClearStructuralFeatureActionOperations.java
index 0f829b4..6131783 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ClearStructuralFeatureActionOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ClearStructuralFeatureActionOperations.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008 IBM Corporation and others.
+ * Copyright (c) 2008, 2011 IBM Corporation, CEA, and others.
  * 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
@@ -7,8 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
+ *   Kenn Hussey (CEA) - 351774
  *
- * $Id: ClearStructuralFeatureActionOperations.java,v 1.1 2008/10/02 20:56:22 jbruck Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -30,8 +30,8 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.ClearStructuralFeatureAction#validateTypeOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Of Result</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ClearStructuralFeatureAction#validateMultiplicityOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Result</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ClearStructuralFeatureAction#validateTypeOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Of Result</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CollaborationUseOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CollaborationUseOperations.java
index 7126a81..26067ef 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CollaborationUseOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CollaborationUseOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: CollaborationUseOperations.java,v 1.6 2007/05/03 21:11:51 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,9 +30,9 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.CollaborationUse#validateClientElements(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Client Elements</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.CollaborationUse#validateEveryRole(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Every Role</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.CollaborationUse#validateConnectors(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Connectors</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.CollaborationUse#validateEveryRole(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Every Role</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.CollaborationUse#validateClientElements(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Client Elements</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CombinedFragmentOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CombinedFragmentOperations.java
index 696b43a..e714a91 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CombinedFragmentOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CombinedFragmentOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: CombinedFragmentOperations.java,v 1.7 2007/05/03 21:11:51 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -35,10 +34,10 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.CombinedFragment#validateMinintAndMaxint(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Minint And Maxint</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.CombinedFragment#validateBreak(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Break</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.CombinedFragment#validateConsiderAndIgnore(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Consider And Ignore</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.CombinedFragment#validateOptLoopBreakNeg(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Opt Loop Break Neg</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.CombinedFragment#validateConsiderAndIgnore(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Consider And Ignore</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.CombinedFragment#validateMinintAndMaxint(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Minint And Maxint</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ComponentOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ComponentOperations.java
index aadd12b..6409c7d 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ComponentOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ComponentOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ComponentOperations.java,v 1.15 2008/10/02 20:56:22 jbruck Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -48,8 +47,8 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.Component#validateNoNestedClassifiers(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Nested Classifiers</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Component#validateNoPackagedElements(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Packaged Elements</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Component#validateNoNestedClassifiers(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Nested Classifiers</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Component#createOwnedClass(java.lang.String, boolean) <em>Create Owned Class</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Component#createOwnedEnumeration(java.lang.String) <em>Create Owned Enumeration</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Component#createOwnedInterface(java.lang.String) <em>Create Owned Interface</em>}</li>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConditionalNodeOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConditionalNodeOperations.java
index 5ec7f1f..0972fe0 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConditionalNodeOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConditionalNodeOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ConditionalNodeOperations.java,v 1.6 2007/05/03 21:11:52 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,12 +30,12 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.ConditionalNode#validateResultNoIncoming(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Result No Incoming</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ConditionalNode#validateNoInputPins(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Input Pins</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ConditionalNode#validateOneClauseWithExecutableNode(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate One Clause With Executable Node</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ConditionalNode#validateMatchingOutputPins(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Matching Output Pins</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ConditionalNode#validateExecutableNodes(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Executable Nodes</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ConditionalNode#validateClauseNoPredecessor(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Clause No Predecessor</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ConditionalNode#validateMatchingOutputPins(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Matching Output Pins</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ConditionalNode#validateOneClauseWithExecutableNode(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate One Clause With Executable Node</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ConditionalNode#validateResultNoIncoming(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Result No Incoming</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ConditionalNode#validateNoInputPins(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Input Pins</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConnectionPointReferenceOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConnectionPointReferenceOperations.java
index 282c044..fcb5698 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConnectionPointReferenceOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConnectionPointReferenceOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ConnectionPointReferenceOperations.java,v 1.6 2007/05/03 21:11:52 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,8 +30,8 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.ConnectionPointReference#validateExitPseudostates(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Exit Pseudostates</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ConnectionPointReference#validateEntryPseudostates(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Entry Pseudostates</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ConnectionPointReference#validateExitPseudostates(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Exit Pseudostates</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConnectorEndOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConnectorEndOperations.java
index a507102..c7d3757 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConnectorEndOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConnectorEndOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ConnectorEndOperations.java,v 1.9 2007/05/03 21:11:52 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -39,9 +38,9 @@
  * The following operations are supported:
  * <ul>
  *   <li>{@link org.eclipse.uml2.uml.ConnectorEnd#validateRoleAndPartWithPort(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Role And Part With Port</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ConnectorEnd#validatePartWithPortEmpty(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Part With Port Empty</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ConnectorEnd#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ConnectorEnd#validateSelfPartWithPort(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Self Part With Port</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ConnectorEnd#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ConnectorEnd#validatePartWithPortEmpty(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Part With Port Empty</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ConnectorEnd#getDefiningEnd() <em>Get Defining End</em>}</li>
  * </ul>
  * </p>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConnectorOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConnectorOperations.java
index edaa37a..5b4ddb3 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConnectorOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConnectorOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ConnectorOperations.java,v 1.14 2008/12/09 19:44:05 jbruck Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -43,10 +42,10 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.Connector#validateTypes(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Types</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Connector#validateCompatible(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Compatible</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Connector#validateRoles(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Roles</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Connector#validateBetweenInterfacesPorts(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Between Interfaces Ports</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Connector#validateCompatible(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Compatible</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Connector#validateTypes(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Types</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Connector#getKind() <em>Get Kind</em>}</li>
  * </ul>
  * </p>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConsiderIgnoreFragmentOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConsiderIgnoreFragmentOperations.java
index 3634e66..2430a21 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConsiderIgnoreFragmentOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConsiderIgnoreFragmentOperations.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation, CEA, and others.
  * 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
@@ -7,8 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
+ *   Kenn Hussey (CEA) - 351774
  *
- * $Id: ConsiderIgnoreFragmentOperations.java,v 1.6 2007/05/03 21:11:52 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -30,8 +30,8 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.ConsiderIgnoreFragment#validateConsiderOrIgnore(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Consider Or Ignore</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ConsiderIgnoreFragment#validateType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ConsiderIgnoreFragment#validateConsiderOrIgnore(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Consider Or Ignore</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConstraintOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConstraintOperations.java
index bcc3543..e736308 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConstraintOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConstraintOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ConstraintOperations.java,v 1.7 2007/05/03 21:11:51 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -32,9 +31,9 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.Constraint#validateBooleanValue(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Boolean Value</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Constraint#validateNoSideEffects(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Side Effects</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Constraint#validateNotApplyToSelf(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Not Apply To Self</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Constraint#validateNoSideEffects(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Side Effects</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Constraint#validateBooleanValue(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Boolean Value</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Constraint#validateValueSpecificationBoolean(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Value Specification Boolean</em>}</li>
  * </ul>
  * </p>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ContinuationOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ContinuationOperations.java
index 8e90562..d0fbf43 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ContinuationOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ContinuationOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ContinuationOperations.java,v 1.6 2007/05/03 21:11:52 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,8 +30,8 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.Continuation#validateFirstOrLastInteractionFragment(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate First Or Last Interaction Fragment</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Continuation#validateSameName(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Same Name</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Continuation#validateFirstOrLastInteractionFragment(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate First Or Last Interaction Fragment</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Continuation#validateGlobal(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Global</em>}</li>
  * </ul>
  * </p>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CreateLinkObjectActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CreateLinkObjectActionOperations.java
index 290f42b..36187d3 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CreateLinkObjectActionOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CreateLinkObjectActionOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: CreateLinkObjectActionOperations.java,v 1.6 2007/05/03 21:11:52 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,9 +30,9 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.CreateLinkObjectAction#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.CreateLinkObjectAction#validateTypeOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Of Result</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.CreateLinkObjectAction#validateAssociationClass(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Association Class</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.CreateLinkObjectAction#validateTypeOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Of Result</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.CreateLinkObjectAction#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CreateObjectActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CreateObjectActionOperations.java
index 2cd2b9f..9d4d3b8 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CreateObjectActionOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CreateObjectActionOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: CreateObjectActionOperations.java,v 1.6 2007/05/03 21:11:52 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,10 +30,10 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.CreateObjectAction#validateClassifierNotAbstract(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Classifier Not Abstract</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.CreateObjectAction#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.CreateObjectAction#validateClassifierNotAssociationClass(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Classifier Not Association Class</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.CreateObjectAction#validateClassifierNotAbstract(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Classifier Not Abstract</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.CreateObjectAction#validateSameType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Same Type</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.CreateObjectAction#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/DecisionNodeOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/DecisionNodeOperations.java
index 3477a34..24b8a9c 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/DecisionNodeOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/DecisionNodeOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: DecisionNodeOperations.java,v 1.8 2008/10/02 20:56:22 jbruck Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,14 +30,14 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.DecisionNode#validateZeroInputParameters(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Zero Input Parameters</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.DecisionNode#validateEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Edges</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.DecisionNode#validateDecisionInputFlowIncoming(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Decision Input Flow Incoming</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.DecisionNode#validateTwoInputParameters(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Two Input Parameters</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.DecisionNode#validateIncomingOutgoingEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Incoming Outgoing Edges</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.DecisionNode#validateIncomingControlOneInputParameter(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Incoming Control One Input Parameter</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.DecisionNode#validateParameters(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Parameters</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.DecisionNode#validateIncomingObjectOneInputParameter(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Incoming Object One Input Parameter</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.DecisionNode#validateIncomingOutgoingEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Incoming Outgoing Edges</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.DecisionNode#validateIncomingControlOneInputParameter(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Incoming Control One Input Parameter</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.DecisionNode#validateTwoInputParameters(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Two Input Parameters</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.DecisionNode#validateDecisionInputFlowIncoming(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Decision Input Flow Incoming</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.DecisionNode#validateZeroInputParameters(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Zero Input Parameters</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.DecisionNode#validateEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Edges</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/DeploymentSpecificationOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/DeploymentSpecificationOperations.java
index 04f922f..a9d8955 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/DeploymentSpecificationOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/DeploymentSpecificationOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: DeploymentSpecificationOperations.java,v 1.7 2007/05/03 21:11:52 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,8 +30,8 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.DeploymentSpecification#validateDeploymentTarget(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Deployment Target</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.DeploymentSpecification#validateDeployedElements(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Deployed Elements</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.DeploymentSpecification#validateDeploymentTarget(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Deployment Target</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ElementImportOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ElementImportOperations.java
index aac6f34..b66bacd 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ElementImportOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ElementImportOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ElementImportOperations.java,v 1.9 2007/05/03 21:11:52 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -34,8 +33,8 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.ElementImport#validateImportedElementIsPublic(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Imported Element Is Public</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ElementImport#validateVisibilityPublicOrPrivate(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Visibility Public Or Private</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ElementImport#validateImportedElementIsPublic(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Imported Element Is Public</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ElementImport#getName() <em>Get Name</em>}</li>
  * </ul>
  * </p>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ExceptionHandlerOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ExceptionHandlerOperations.java
index aeb9de5..4587212 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ExceptionHandlerOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ExceptionHandlerOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ExceptionHandlerOperations.java,v 1.6 2007/05/03 21:11:52 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,10 +30,10 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.ExceptionHandler#validateExceptionBody(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Exception Body</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ExceptionHandler#validateResultPins(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Result Pins</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ExceptionHandler#validateOneInput(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate One Input</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ExceptionHandler#validateEdgeSourceTarget(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Edge Source Target</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ExceptionHandler#validateResultPins(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Result Pins</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ExceptionHandler#validateExceptionBody(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Exception Body</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/FinalStateOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/FinalStateOperations.java
index 8a62192..b96fbc7 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/FinalStateOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/FinalStateOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: FinalStateOperations.java,v 1.7 2007/05/03 21:11:51 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,12 +30,12 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.FinalState#validateNoExitBehavior(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Exit Behavior</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.FinalState#validateNoOutgoingTransitions(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Outgoing Transitions</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.FinalState#validateNoRegions(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Regions</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.FinalState#validateCannotReferenceSubmachine(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Cannot Reference Submachine</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.FinalState#validateNoExitBehavior(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Exit Behavior</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.FinalState#validateNoEntryBehavior(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Entry Behavior</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.FinalState#validateNoStateBehavior(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No State Behavior</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.FinalState#validateNoRegions(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Regions</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/GeneralizationSetOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/GeneralizationSetOperations.java
index ceb8af9..48cc761 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/GeneralizationSetOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/GeneralizationSetOperations.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation, CEA, and others.
  * 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
@@ -7,8 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
+ *   Kenn Hussey (CEA) - 351774
  *
- * $Id: GeneralizationSetOperations.java,v 1.6 2007/05/03 21:11:51 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -30,8 +30,8 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.GeneralizationSet#validateGeneralizationSameClassifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Generalization Same Classifier</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.GeneralizationSet#validateMapsToGeneralizationSet(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Maps To Generalization Set</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.GeneralizationSet#validateGeneralizationSameClassifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Generalization Same Classifier</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InformationFlowOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InformationFlowOperations.java
index 289c487..f4e6b03 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InformationFlowOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InformationFlowOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: InformationFlowOperations.java,v 1.7 2007/05/03 21:11:51 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,8 +30,8 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.InformationFlow#validateMustConform(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Must Conform</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.InformationFlow#validateSourcesAndTargetsKind(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Sources And Targets Kind</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.InformationFlow#validateMustConform(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Must Conform</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.InformationFlow#validateConveyClassifiers(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Convey Classifiers</em>}</li>
  * </ul>
  * </p>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InformationItemOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InformationItemOperations.java
index 8cfb184..e222d15 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InformationItemOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InformationItemOperations.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation, CEA, and others.
  * 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
@@ -7,8 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
+ *   Kenn Hussey (CEA) - 351774
  *
- * $Id: InformationItemOperations.java,v 1.7 2007/05/03 21:11:52 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -30,9 +30,9 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.InformationItem#validateSourcesAndTargets(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Sources And Targets</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.InformationItem#validateHasNo(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Has No</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.InformationItem#validateNotInstantiable(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Not Instantiable</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.InformationItem#validateSourcesAndTargets(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Sources And Targets</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InstanceSpecificationOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InstanceSpecificationOperations.java
index 974651b..4bfa1c4 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InstanceSpecificationOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InstanceSpecificationOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: InstanceSpecificationOperations.java,v 1.6 2007/05/03 21:11:52 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,10 +30,10 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.InstanceSpecification#validateDeploymentArtifact(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Deployment Artifact</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.InstanceSpecification#validateStructuralFeature(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Structural Feature</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.InstanceSpecification#validateDefiningFeature(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Defining Feature</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.InstanceSpecification#validateDeploymentTarget(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Deployment Target</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.InstanceSpecification#validateDeploymentArtifact(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Deployment Artifact</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InteractionConstraintOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InteractionConstraintOperations.java
index 0225b7a..88bb75f 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InteractionConstraintOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InteractionConstraintOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: InteractionConstraintOperations.java,v 1.7 2007/05/03 21:11:52 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,12 +30,12 @@
  * <p>
  * The following operations are supported:
  * <ul>
+ *   <li>{@link org.eclipse.uml2.uml.InteractionConstraint#validateMaxintPositive(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Maxint Positive</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.InteractionConstraint#validateMinintMaxint(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Minint Maxint</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.InteractionConstraint#validateMinintNonNegative(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Minint Non Negative</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.InteractionConstraint#validateMaxintPositive(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Maxint Positive</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.InteractionConstraint#validateDynamicVariables(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Dynamic Variables</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.InteractionConstraint#validateGlobalData(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Global Data</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.InteractionConstraint#validateMaxintGreaterEqualMinint(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Maxint Greater Equal Minint</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.InteractionConstraint#validateDynamicVariables(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Dynamic Variables</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InteractionOperandOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InteractionOperandOperations.java
index df40a96..d038add 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InteractionOperandOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InteractionOperandOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: InteractionOperandOperations.java,v 1.6 2007/05/03 21:11:51 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,8 +30,8 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.InteractionOperand#validateGuardContainReferences(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Guard Contain References</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.InteractionOperand#validateGuardDirectlyPrior(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Guard Directly Prior</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.InteractionOperand#validateGuardContainReferences(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Guard Contain References</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InteractionUseOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InteractionUseOperations.java
index 13c0367..a3dbcbf 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InteractionUseOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InteractionUseOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: InteractionUseOperations.java,v 1.6 2007/05/03 21:11:51 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,12 +30,12 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.InteractionUse#validateGatesMatch(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Gates Match</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.InteractionUse#validateArgumentsAreConstants(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Arguments Are Constants</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.InteractionUse#validateAllLifelines(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate All Lifelines</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.InteractionUse#validateReturnValueRecipientCoverage(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Return Value Recipient Coverage</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.InteractionUse#validateArgumentsCorrespondToParameters(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Arguments Correspond To Parameters</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.InteractionUse#validateGatesMatch(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Gates Match</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.InteractionUse#validateArgumentsAreConstants(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Arguments Are Constants</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.InteractionUse#validateReturnValueTypeRecipientCorrespondence(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Return Value Type Recipient Correspondence</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.InteractionUse#validateAllLifelines(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate All Lifelines</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LifelineOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LifelineOperations.java
index 5492e82..1f85aef 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LifelineOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LifelineOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: LifelineOperations.java,v 1.6 2007/05/03 21:11:52 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,9 +30,9 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.Lifeline#validateSelectorSpecified(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Selector Specified</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Lifeline#validateInteractionUsesShareLifeline(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Interaction Uses Share Lifeline</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Lifeline#validateSameClassifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Same Classifier</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Lifeline#validateSelectorSpecified(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Selector Specified</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LinkEndCreationDataOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LinkEndCreationDataOperations.java
index 0d87fbe..e36ab8d 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LinkEndCreationDataOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LinkEndCreationDataOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: LinkEndCreationDataOperations.java,v 1.4 2007/05/03 21:11:52 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,8 +30,8 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.LinkEndCreationData#validateSingleInputPin(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Single Input Pin</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.LinkEndCreationData#validateCreateLinkAction(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Create Link Action</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.LinkEndCreationData#validateSingleInputPin(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Single Input Pin</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LinkEndDataOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LinkEndDataOperations.java
index 4f50134..4d1a821 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LinkEndDataOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LinkEndDataOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: LinkEndDataOperations.java,v 1.4 2007/05/03 21:11:51 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,10 +30,10 @@
  * <p>
  * The following operations are supported:
  * <ul>
+ *   <li>{@link org.eclipse.uml2.uml.LinkEndData#validatePropertyIsAssociationEnd(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Property Is Association End</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.LinkEndData#validateEndObjectInputPin(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate End Object Input Pin</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.LinkEndData#validateSameType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Same Type</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.LinkEndData#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.LinkEndData#validateEndObjectInputPin(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate End Object Input Pin</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.LinkEndData#validatePropertyIsAssociationEnd(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Property Is Association End</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.LinkEndData#validateQualifiers(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Qualifiers</em>}</li>
  * </ul>
  * </p>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LinkEndDestructionDataOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LinkEndDestructionDataOperations.java
index 8fe26cb..8187f43 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LinkEndDestructionDataOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LinkEndDestructionDataOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: LinkEndDestructionDataOperations.java,v 1.4 2007/05/03 21:11:51 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,8 +30,8 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.LinkEndDestructionData#validateUnlimitedNaturalAndMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Unlimited Natural And Multiplicity</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.LinkEndDestructionData#validateDestroyLinkAction(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Destroy Link Action</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.LinkEndDestructionData#validateUnlimitedNaturalAndMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Unlimited Natural And Multiplicity</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LoopNodeOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LoopNodeOperations.java
index eecba3b..7d9bd03 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LoopNodeOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LoopNodeOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: LoopNodeOperations.java,v 1.7 2007/05/03 21:11:52 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,10 +30,10 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.LoopNode#validateResultNoIncoming(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Result No Incoming</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.LoopNode#validateInputEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Input Edges</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.LoopNode#validateExecutableNodes(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Executable Nodes</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.LoopNode#validateBodyOutputPins(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Body Output Pins</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.LoopNode#validateResultNoIncoming(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Result No Incoming</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.LoopNode#validateInputEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Input Edges</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/MessageOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/MessageOperations.java
index e408847..ad9f4d2 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/MessageOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/MessageOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: MessageOperations.java,v 1.11 2007/05/03 21:11:51 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -47,12 +46,12 @@
  * The following operations are supported:
  * <ul>
  *   <li>{@link org.eclipse.uml2.uml.Message#validateSendingReceivingMessageEvent(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Sending Receiving Message Event</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Message#validateOccurrenceSpecifications(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Occurrence Specifications</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Message#validateSignatureIsSignal(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Signature Is Signal</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Message#validateSignatureIsOperation(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Signature Is Operation</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Message#validateArguments(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Arguments</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Message#validateCannotCrossBoundaries(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Cannot Cross Boundaries</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Message#validateSignatureIsSignal(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Signature Is Signal</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Message#validateOccurrenceSpecifications(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Occurrence Specifications</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Message#validateSignatureReferTo(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Signature Refer To</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Message#validateSignatureIsOperation(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Signature Is Operation</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Message#getMessageKind() <em>Get Message Kind</em>}</li>
  * </ul>
  * </p>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/MultiplicityElementOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/MultiplicityElementOperations.java
index f57b489..1a5db44 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/MultiplicityElementOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/MultiplicityElementOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: MultiplicityElementOperations.java,v 1.19 2008/10/02 20:56:22 jbruck Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -36,10 +35,10 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#validateUpperGeLower(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Upper Ge Lower</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#validateLowerGe0(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Lower Ge0</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#validateValueSpecificationNoSideEffects(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Value Specification No Side Effects</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#validateUpperGeLower(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Upper Ge Lower</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#validateValueSpecificationConstant(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Value Specification Constant</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#validateValueSpecificationNoSideEffects(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Value Specification No Side Effects</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#setLower(int) <em>Set Lower</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#setUpper(int) <em>Set Upper</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#compatibleWith(org.eclipse.uml2.uml.MultiplicityElement) <em>Compatible With</em>}</li>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/NamedElementOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/NamedElementOperations.java
index 8f61431..de56ebb 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/NamedElementOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/NamedElementOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: NamedElementOperations.java,v 1.22 2007/05/03 21:11:52 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -42,9 +41,9 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.NamedElement#validateVisibilityNeedsOwnership(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Visibility Needs Ownership</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.NamedElement#validateHasQualifiedName(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Has Qualified Name</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.NamedElement#validateHasNoQualifiedName(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Has No Qualified Name</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.NamedElement#validateVisibilityNeedsOwnership(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Visibility Needs Ownership</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.NamedElement#createDependency(org.eclipse.uml2.uml.NamedElement) <em>Create Dependency</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.NamedElement#createUsage(org.eclipse.uml2.uml.NamedElement) <em>Create Usage</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.NamedElement#getLabel() <em>Get Label</em>}</li>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ObjectFlowOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ObjectFlowOperations.java
index 028c87c..8ec245d 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ObjectFlowOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ObjectFlowOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ObjectFlowOperations.java,v 1.7 2007/05/03 21:11:52 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,14 +30,14 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.ObjectFlow#validateInputAndOutputParameter(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Input And Output Parameter</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ObjectFlow#validateNoActions(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Actions</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ObjectFlow#validateTransformationBehaviour(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Transformation Behaviour</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ObjectFlow#validateIsMulticastOrIsMultireceive(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Is Multicast Or Is Multireceive</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ObjectFlow#validateSelectionBehaviour(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Selection Behaviour</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ObjectFlow#validateCompatibleTypes(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Compatible Types</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ObjectFlow#validateSameUpperBounds(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Same Upper Bounds</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ObjectFlow#validateNoActions(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Actions</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ObjectFlow#validateInputAndOutputParameter(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Input And Output Parameter</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ObjectFlow#validateTransformationBehaviour(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Transformation Behaviour</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ObjectFlow#validateTarget(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Target</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ObjectFlow#validateIsMulticastOrIsMultireceive(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Is Multicast Or Is Multireceive</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ObjectFlow#validateSameUpperBounds(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Same Upper Bounds</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ObjectNodeOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ObjectNodeOperations.java
index 0f509e9..7b8d226 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ObjectNodeOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ObjectNodeOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ObjectNodeOperations.java,v 1.6 2007/05/03 21:11:52 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,9 +30,9 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.ObjectNode#validateInputOutputParameter(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Input Output Parameter</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ObjectNode#validateSelectionBehavior(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Selection Behavior</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ObjectNode#validateObjectFlowEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Object Flow Edges</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ObjectNode#validateSelectionBehavior(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Selection Behavior</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ObjectNode#validateInputOutputParameter(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Input Output Parameter</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/OpaqueExpressionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/OpaqueExpressionOperations.java
index be4354f..28d678e 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/OpaqueExpressionOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/OpaqueExpressionOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: OpaqueExpressionOperations.java,v 1.14 2007/05/03 21:11:52 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -36,9 +35,9 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.OpaqueExpression#validateLanguageBodySize(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Language Body Size</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.OpaqueExpression#validateOneReturnResultParameter(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate One Return Result Parameter</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.OpaqueExpression#validateOnlyReturnResultParameters(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Only Return Result Parameters</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.OpaqueExpression#validateOneReturnResultParameter(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate One Return Result Parameter</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.OpaqueExpression#validateLanguageBodySize(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Language Body Size</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.OpaqueExpression#isIntegral() <em>Is Integral</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.OpaqueExpression#isNonNegative() <em>Is Non Negative</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.OpaqueExpression#isPositive() <em>Is Positive</em>}</li>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ParameterOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ParameterOperations.java
index 8124028..2a84e0a 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ParameterOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ParameterOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ParameterOperations.java,v 1.20 2007/05/04 20:35:34 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -40,10 +39,10 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.Parameter#validateInAndOut(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate In And Out</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Parameter#validateNotException(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Not Exception</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Parameter#validateConnectorEnd(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Connector End</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Parameter#validateReentrantBehaviors(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Reentrant Behaviors</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Parameter#validateConnectorEnd(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Connector End</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Parameter#validateNotException(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Not Exception</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Parameter#validateInAndOut(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate In And Out</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Parameter#validateStreamAndException(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Stream And Exception</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Parameter#isSetDefault() <em>Is Set Default</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Parameter#setBooleanDefaultValue(boolean) <em>Set Boolean Default Value</em>}</li>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ParameterSetOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ParameterSetOperations.java
index 5427418..1e55b1d 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ParameterSetOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ParameterSetOperations.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation, CEA, and others.
  * 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
@@ -7,8 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
+ *   Kenn Hussey (CEA) - 351774
  *
- * $Id: ParameterSetOperations.java,v 1.6 2007/05/03 21:11:53 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -30,9 +30,9 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.ParameterSet#validateSameParameterizedEntity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Same Parameterized Entity</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ParameterSet#validateInput(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Input</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ParameterSet#validateTwoParameterSets(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Two Parameter Sets</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ParameterSet#validateInput(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Input</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ParameterSet#validateSameParameterizedEntity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Same Parameterized Entity</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PartDecompositionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PartDecompositionOperations.java
index b8ff4ca..2c96939 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PartDecompositionOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PartDecompositionOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: PartDecompositionOperations.java,v 1.7 2007/05/03 21:11:51 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,9 +30,9 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.PartDecomposition#validateCommutativityOfDecomposition(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Commutativity Of Decomposition</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.PartDecomposition#validateAssume(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Assume</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.PartDecomposition#validatePartsOfInternalStructures(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Parts Of Internal Structures</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.PartDecomposition#validateAssume(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Assume</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.PartDecomposition#validateCommutativityOfDecomposition(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Commutativity Of Decomposition</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PortOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PortOperations.java
index c4faf91..3ece47e 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PortOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PortOperations.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: PortOperations.java,v 1.18 2010/09/28 21:02:15 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -44,9 +43,9 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.Port#validatePortDestroyed(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Port Destroyed</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Port#validatePortAggregation(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Port Aggregation</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Port#validateDefaultValue(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Default Value</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Port#validatePortAggregation(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Port Aggregation</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Port#validatePortDestroyed(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Port Destroyed</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Port#getProvideds() <em>Get Provideds</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Port#getRequireds() <em>Get Requireds</em>}</li>
  * </ul>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PropertyOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PropertyOperations.java
index c732216..940fe24 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PropertyOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PropertyOperations.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: PropertyOperations.java,v 1.39 2010/09/28 21:02:15 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -58,15 +57,15 @@
  * The following operations are supported:
  * <ul>
  *   <li>{@link org.eclipse.uml2.uml.Property#isCompatibleWith(org.eclipse.uml2.uml.ParameterableElement) <em>Is Compatible With</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Property#validateSubsettingContextConforms(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Subsetting Context Conforms</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Property#validateDerivedUnionIsReadOnly(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Derived Union Is Read Only</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Property#validateMultiplicityOfComposite(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Composite</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Property#validateRedefinedPropertyInherited(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Redefined Property Inherited</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Property#validateSubsettingRules(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Subsetting Rules</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Property#validateBindingToAttribute(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Binding To Attribute</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Property#validateDerivedUnionIsDerived(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Derived Union Is Derived</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Property#validateDeploymentTarget(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Deployment Target</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Property#validateSubsettedPropertyNames(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Subsetted Property Names</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Property#validateSubsettingRules(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Subsetting Rules</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Property#validateMultiplicityOfComposite(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Composite</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Property#validateBindingToAttribute(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Binding To Attribute</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Property#validateRedefinedPropertyInherited(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Redefined Property Inherited</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Property#validateSubsettingContextConforms(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Subsetting Context Conforms</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Property#validateDeploymentTarget(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Deployment Target</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Property#validateDerivedUnionIsDerived(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Derived Union Is Derived</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Property#validateDerivedUnionIsReadOnly(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Derived Union Is Read Only</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Property#getOtherEnd() <em>Get Other End</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Property#isSetDefault() <em>Is Set Default</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Property#setBooleanDefaultValue(boolean) <em>Set Boolean Default Value</em>}</li>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ProtocolStateMachineOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ProtocolStateMachineOperations.java
index 7756bb3..f01cf27 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ProtocolStateMachineOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ProtocolStateMachineOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ProtocolStateMachineOperations.java,v 1.6 2007/05/03 21:11:52 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,10 +30,10 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.ProtocolStateMachine#validateDeepOrShallowHistory(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Deep Or Shallow History</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ProtocolStateMachine#validateEntryExitDo(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Entry Exit Do</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ProtocolStateMachine#validatePortsConnected(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Ports Connected</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ProtocolStateMachine#validateProtocolTransitions(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Protocol Transitions</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ProtocolStateMachine#validateDeepOrShallowHistory(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Deep Or Shallow History</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ProtocolStateMachine#validatePortsConnected(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Ports Connected</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ProtocolStateMachine#validateClassifierContext(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Classifier Context</em>}</li>
  * </ul>
  * </p>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PseudostateOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PseudostateOperations.java
index 9524646..1f9ca2f 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PseudostateOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PseudostateOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: PseudostateOperations.java,v 1.7 2007/05/03 21:11:52 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,14 +30,14 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.Pseudostate#validateTransitionsOutgoing(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Transitions Outgoing</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Pseudostate#validateChoiceVertex(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Choice Vertex</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Pseudostate#validateOutgoingFromInitial(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Outgoing From Initial</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Pseudostate#validateJoinVertex(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Join Vertex</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Pseudostate#validateJunctionVertex(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Junction Vertex</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Pseudostate#validateHistoryVertices(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate History Vertices</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Pseudostate#validateInitialVertex(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Initial Vertex</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Pseudostate#validateTransitionsOutgoing(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Transitions Outgoing</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Pseudostate#validateOutgoingFromInitial(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Outgoing From Initial</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Pseudostate#validateForkVertex(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Fork Vertex</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Pseudostate#validateJoinVertex(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Join Vertex</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Pseudostate#validateChoiceVertex(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Choice Vertex</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Pseudostate#validateInitialVertex(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Initial Vertex</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Pseudostate#validateTransitionsIncoming(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Transitions Incoming</em>}</li>
  * </ul>
  * </p>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/QualifierValueOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/QualifierValueOperations.java
index 8fa58ef..a754bd8 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/QualifierValueOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/QualifierValueOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: QualifierValueOperations.java,v 1.4 2007/05/03 21:11:51 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,9 +30,9 @@
  * <p>
  * The following operations are supported:
  * <ul>
+ *   <li>{@link org.eclipse.uml2.uml.QualifierValue#validateQualifierAttribute(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Qualifier Attribute</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.QualifierValue#validateMultiplicityOfQualifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Qualifier</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.QualifierValue#validateTypeOfQualifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Of Qualifier</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.QualifierValue#validateQualifierAttribute(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Qualifier Attribute</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadLinkActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadLinkActionOperations.java
index a047f24..cb693fe 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadLinkActionOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadLinkActionOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ReadLinkActionOperations.java,v 1.6 2007/05/03 21:11:51 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -32,10 +31,10 @@
  * The following operations are supported:
  * <ul>
  *   <li>{@link org.eclipse.uml2.uml.ReadLinkAction#validateTypeAndOrdering(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type And Ordering</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ReadLinkAction#validateCompatibleMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Compatible Multiplicity</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ReadLinkAction#validateVisibility(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Visibility</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ReadLinkAction#validateOneOpenEnd(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate One Open End</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ReadLinkAction#validateCompatibleMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Compatible Multiplicity</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ReadLinkAction#validateNavigableOpenEnd(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Navigable Open End</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ReadLinkAction#validateVisibility(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Visibility</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadLinkObjectEndActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadLinkObjectEndActionOperations.java
index 7dbb4db..fbe832c 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadLinkObjectEndActionOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadLinkObjectEndActionOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ReadLinkObjectEndActionOperations.java,v 1.6 2007/05/03 21:11:52 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,13 +30,13 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#validateProperty(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Property</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#validateMultiplicityOfObject(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Object</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#validateEndsOfAssociation(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Ends Of Association</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#validateTypeOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Of Result</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#validateMultiplicityOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Result</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#validateTypeOfObject(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Of Object</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#validateAssociationOfAssociation(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Association Of Association</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#validateMultiplicityOfObject(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Object</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#validateTypeOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Of Result</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#validateTypeOfObject(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Of Object</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#validateProperty(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Property</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#validateMultiplicityOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Result</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#validateEndsOfAssociation(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Ends Of Association</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadLinkObjectEndQualifierActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadLinkObjectEndQualifierActionOperations.java
index a24a315..d460325 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadLinkObjectEndQualifierActionOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadLinkObjectEndQualifierActionOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ReadLinkObjectEndQualifierActionOperations.java,v 1.6 2007/05/03 21:11:51 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,12 +30,12 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#validateMultiplicityOfObject(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Object</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#validateTypeOfObject(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Of Object</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#validateMultiplicityOfQualifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Qualifier</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#validateEndsOfAssociation(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Ends Of Association</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#validateMultiplicityOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Result</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#validateSameType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Same Type</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#validateEndsOfAssociation(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Ends Of Association</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#validateMultiplicityOfQualifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Qualifier</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#validateMultiplicityOfObject(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Object</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#validateAssociationOfAssociation(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Association Of Association</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#validateQualifierAttribute(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Qualifier Attribute</em>}</li>
  * </ul>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadSelfActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadSelfActionOperations.java
index a69ba60..da4ca93 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadSelfActionOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadSelfActionOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ReadSelfActionOperations.java,v 1.6 2007/05/03 21:11:52 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -32,9 +31,9 @@
  * The following operations are supported:
  * <ul>
  *   <li>{@link org.eclipse.uml2.uml.ReadSelfAction#validateContained(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Contained</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ReadSelfAction#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ReadSelfAction#validateNotStatic(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Not Static</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ReadSelfAction#validateType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ReadSelfAction#validateNotStatic(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Not Static</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ReadSelfAction#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReclassifyObjectActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReclassifyObjectActionOperations.java
index 2a09a47..94bfab2 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReclassifyObjectActionOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReclassifyObjectActionOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ReclassifyObjectActionOperations.java,v 1.6 2007/05/03 21:11:52 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -32,8 +31,8 @@
  * The following operations are supported:
  * <ul>
  *   <li>{@link org.eclipse.uml2.uml.ReclassifyObjectAction#validateInputPin(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Input Pin</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ReclassifyObjectAction#validateClassifierNotAbstract(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Classifier Not Abstract</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ReclassifyObjectAction#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ReclassifyObjectAction#validateClassifierNotAbstract(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Classifier Not Abstract</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReduceActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReduceActionOperations.java
index 2137313..73c155f 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReduceActionOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReduceActionOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ReduceActionOperations.java,v 1.4 2007/05/03 21:11:53 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,9 +30,9 @@
  * <p>
  * The following operations are supported:
  * <ul>
+ *   <li>{@link org.eclipse.uml2.uml.ReduceAction#validateOutputTypesAreCompatible(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Output Types Are Compatible</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ReduceAction#validateReducerInputsOutput(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Reducer Inputs Output</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ReduceAction#validateInputTypeIsCollection(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Input Type Is Collection</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ReduceAction#validateOutputTypesAreCompatible(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Output Types Are Compatible</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/RegionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/RegionOperations.java
index ec7c39a..5b39b3b 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/RegionOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/RegionOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: RegionOperations.java,v 1.12 2008/03/25 13:41:38 jbruck Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -42,10 +41,10 @@
  * The following operations are supported:
  * <ul>
  *   <li>{@link org.eclipse.uml2.uml.Region#isConsistentWith(org.eclipse.uml2.uml.RedefinableElement) <em>Is Consistent With</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Region#validateDeepHistoryVertex(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Deep History Vertex</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Region#validateShallowHistoryVertex(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Shallow History Vertex</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Region#validateOwned(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Owned</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Region#validateDeepHistoryVertex(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Deep History Vertex</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Region#validateInitialVertex(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Initial Vertex</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Region#validateOwned(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Owned</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Region#belongsToPSM() <em>Belongs To PSM</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Region#containingStateMachine() <em>Containing State Machine</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Region#isRedefinitionContextValid(org.eclipse.uml2.uml.Region) <em>Is Redefinition Context Valid</em>}</li>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReplyActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReplyActionOperations.java
index 45c1498..f69590e 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReplyActionOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReplyActionOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ReplyActionOperations.java,v 1.6 2007/05/03 21:11:51 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,8 +30,8 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.ReplyAction#validatePinsMatchParameter(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Pins Match Parameter</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ReplyAction#validateEventOnReplyToCallTrigger(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Event On Reply To Call Trigger</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ReplyAction#validatePinsMatchParameter(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Pins Match Parameter</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StartClassifierBehaviorActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StartClassifierBehaviorActionOperations.java
index 26a64ad..92f571c 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StartClassifierBehaviorActionOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StartClassifierBehaviorActionOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: StartClassifierBehaviorActionOperations.java,v 1.6 2007/05/03 21:11:52 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,8 +30,8 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.StartClassifierBehaviorAction#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.StartClassifierBehaviorAction#validateTypeHasClassifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Has Classifier</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.StartClassifierBehaviorAction#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StartObjectBehaviorActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StartObjectBehaviorActionOperations.java
index 1cff2fc..9d1011e 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StartObjectBehaviorActionOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StartObjectBehaviorActionOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: StartObjectBehaviorActionOperations.java,v 1.1 2008/10/02 20:56:22 jbruck Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,11 +30,11 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.StartObjectBehaviorAction#validateNumberOrderResults(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Number Order Results</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.StartObjectBehaviorAction#validateMultiplicityOfObject(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Object</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.StartObjectBehaviorAction#validateTypeOrderingMultiplicityMatch(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Ordering Multiplicity Match</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.StartObjectBehaviorAction#validateNumberOrderArguments(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Number Order Arguments</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.StartObjectBehaviorAction#validateTypeOrderingMultiplicityMatch(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Ordering Multiplicity Match</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.StartObjectBehaviorAction#validateNumberOrderResults(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Number Order Results</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.StartObjectBehaviorAction#validateTypeOfObject(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Of Object</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.StartObjectBehaviorAction#validateMultiplicityOfObject(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Object</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StateMachineOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StateMachineOperations.java
index 22cfd8f..e93728d 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StateMachineOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StateMachineOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: StateMachineOperations.java,v 1.13 2007/05/03 21:11:52 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -38,10 +37,10 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.StateMachine#validateConnectionPoints(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Connection Points</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.StateMachine#validateClassifierContext(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Classifier Context</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.StateMachine#validateMethod(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Method</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.StateMachine#validateClassifierContext(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Classifier Context</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.StateMachine#validateContextClassifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Context Classifier</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.StateMachine#validateConnectionPoints(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Connection Points</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.StateMachine#LCA(org.eclipse.uml2.uml.State, org.eclipse.uml2.uml.State) <em>LCA</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.StateMachine#ancestor(org.eclipse.uml2.uml.State, org.eclipse.uml2.uml.State) <em>Ancestor</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.StateMachine#isRedefinitionContextValid(org.eclipse.uml2.uml.StateMachine) <em>Is Redefinition Context Valid</em>}</li>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StateOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StateOperations.java
index 9e0d4d8..9d4d27b 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StateOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StateOperations.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: StateOperations.java,v 1.13 2010/09/28 21:02:15 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -42,10 +41,10 @@
  *   <li>{@link org.eclipse.uml2.uml.State#isConsistentWith(org.eclipse.uml2.uml.RedefinableElement) <em>Is Consistent With</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.State#containingStateMachine() <em>Containing State Machine</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.State#validateEntryOrExit(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Entry Or Exit</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.State#validateSubmachineStates(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Submachine States</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.State#validateCompositeStates(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Composite States</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.State#validateDestinationsOrSourcesOfTransitions(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Destinations Or Sources Of Transitions</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.State#validateSubmachineOrRegions(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Submachine Or Regions</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.State#validateSubmachineStates(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Submachine States</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.State#isComposite() <em>Is Composite</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.State#isOrthogonal() <em>Is Orthogonal</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.State#isRedefinitionContextValid(org.eclipse.uml2.uml.State) <em>Is Redefinition Context Valid</em>}</li>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StereotypeOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StereotypeOperations.java
index 92528c3..013ae83 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StereotypeOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StereotypeOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: StereotypeOperations.java,v 1.16 2007/06/01 16:00:39 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -46,10 +45,10 @@
  * <p>
  * The following operations are supported:
  * <ul>
+ *   <li>{@link org.eclipse.uml2.uml.Stereotype#validateAssociationEndOwnership(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Association End Ownership</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Stereotype#validateNameNotClash(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Name Not Clash</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Stereotype#validateBinaryAssociationsOnly(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Binary Associations Only</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Stereotype#validateGeneralize(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Generalize</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Stereotype#validateNameNotClash(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Name Not Clash</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Stereotype#validateAssociationEndOwnership(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Association End Ownership</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Stereotype#createExtension(org.eclipse.uml2.uml.Class, boolean) <em>Create Extension</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Stereotype#createIcon(java.lang.String) <em>Create Icon</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Stereotype#createIcon(java.lang.String, java.lang.String) <em>Create Icon</em>}</li>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StringExpressionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StringExpressionOperations.java
index ab9f93d..ba3902a 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StringExpressionOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StringExpressionOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: StringExpressionOperations.java,v 1.7 2007/05/03 21:11:53 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -33,8 +32,8 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.StringExpression#validateOperands(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Operands</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.StringExpression#validateSubexpressions(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Subexpressions</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.StringExpression#validateOperands(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Operands</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.StringExpression#stringValue() <em>String Value</em>}</li>
  * </ul>
  * </p>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StructuralFeatureActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StructuralFeatureActionOperations.java
index b6a01c6..08e9827 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StructuralFeatureActionOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StructuralFeatureActionOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: StructuralFeatureActionOperations.java,v 1.6 2007/05/03 21:11:52 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,11 +30,11 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.StructuralFeatureAction#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.StructuralFeatureAction#validateSameType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Same Type</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.StructuralFeatureAction#validateVisibility(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Visibility</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.StructuralFeatureAction#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.StructuralFeatureAction#validateNotStatic(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Not Static</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.StructuralFeatureAction#validateOneFeaturingClassifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate One Featuring Classifier</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.StructuralFeatureAction#validateSameType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Same Type</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StructuredActivityNodeOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StructuredActivityNodeOperations.java
index b12eb13..7a92924 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StructuredActivityNodeOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StructuredActivityNodeOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: StructuredActivityNodeOperations.java,v 1.6 2007/05/03 21:11:52 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,9 +30,9 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.StructuredActivityNode#validateOutputPinEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Output Pin Edges</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.StructuredActivityNode#validateEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Edges</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.StructuredActivityNode#validateInputPinEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Input Pin Edges</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.StructuredActivityNode#validateEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Edges</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.StructuredActivityNode#validateOutputPinEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Output Pin Edges</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TimeEventOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TimeEventOperations.java
index 1c8ae6b..20882fb 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TimeEventOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TimeEventOperations.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation, CEA, and others.
  * 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
@@ -7,8 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
+ *   Kenn Hussey (CEA) - 351774
  *
- * $Id: TimeEventOperations.java,v 1.7 2007/05/03 21:11:51 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -30,8 +30,8 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.TimeEvent#validateWhenNonNegative(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate When Non Negative</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.TimeEvent#validateStartingTime(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Starting Time</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.TimeEvent#validateWhenNonNegative(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate When Non Negative</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TransitionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TransitionOperations.java
index aba7955..cefc8f0 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TransitionOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TransitionOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: TransitionOperations.java,v 1.13 2008/10/02 20:56:22 jbruck Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -40,16 +39,16 @@
  * The following operations are supported:
  * <ul>
  *   <li>{@link org.eclipse.uml2.uml.Transition#isConsistentWith(org.eclipse.uml2.uml.RedefinableElement) <em>Is Consistent With</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Transition#validateStateIsExternal(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate State Is External</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Transition#validateJoinSegmentGuards(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Join Segment Guards</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Transition#validateStateIsInternal(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate State Is Internal</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Transition#validateOutgoingPseudostates(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Outgoing Pseudostates</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Transition#validateJoinSegmentState(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Join Segment State</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Transition#validateForkSegmentState(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Fork Segment State</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Transition#validateSignaturesCompatible(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Signatures Compatible</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Transition#validateStateIsLocal(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate State Is Local</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Transition#validateInitialTransition(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Initial Transition</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Transition#validateForkSegmentGuards(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Fork Segment Guards</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Transition#validateJoinSegmentState(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Join Segment State</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Transition#validateInitialTransition(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Initial Transition</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Transition#validateOutgoingPseudostates(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Outgoing Pseudostates</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Transition#validateSignaturesCompatible(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Signatures Compatible</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Transition#validateStateIsInternal(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate State Is Internal</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Transition#validateJoinSegmentGuards(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Join Segment Guards</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Transition#validateForkSegmentState(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Fork Segment State</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Transition#validateStateIsExternal(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate State Is External</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Transition#containingStateMachine() <em>Containing State Machine</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Transition#redefinitionContext() <em>Redefinition Context</em>}</li>
  * </ul>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/UnmarshallActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/UnmarshallActionOperations.java
index 2022654..ad09ce8 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/UnmarshallActionOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/UnmarshallActionOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: UnmarshallActionOperations.java,v 1.7 2007/05/03 21:11:53 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,13 +30,13 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.UnmarshallAction#validateStructuralFeature(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Structural Feature</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.UnmarshallAction#validateNumberOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Number Of Result</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.UnmarshallAction#validateMultiplicityOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Result</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.UnmarshallAction#validateTypeAndOrdering(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type And Ordering</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.UnmarshallAction#validateUnmarshallTypeIsClassifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Unmarshall Type Is Classifier</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.UnmarshallAction#validateMultiplicityOfObject(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Object</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.UnmarshallAction#validateSameType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Same Type</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.UnmarshallAction#validateStructuralFeature(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Structural Feature</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.UnmarshallAction#validateMultiplicityOfObject(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Object</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.UnmarshallAction#validateTypeAndOrdering(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type And Ordering</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.UnmarshallAction#validateNumberOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Number Of Result</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.UnmarshallAction#validateUnmarshallTypeIsClassifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Unmarshall Type Is Classifier</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.UnmarshallAction#validateMultiplicityOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Result</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/UseCaseOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/UseCaseOperations.java
index e1069b3..ce9328a 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/UseCaseOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/UseCaseOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: UseCaseOperations.java,v 1.12 2007/05/03 21:11:51 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -37,10 +36,10 @@
  * <p>
  * The following operations are supported:
  * <ul>
+ *   <li>{@link org.eclipse.uml2.uml.UseCase#validateMustHaveName(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Must Have Name</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.UseCase#validateCannotIncludeSelf(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Cannot Include Self</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.UseCase#validateBinaryAssociations(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Binary Associations</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.UseCase#validateNoAssociationToUseCase(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Association To Use Case</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.UseCase#validateCannotIncludeSelf(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Cannot Include Self</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.UseCase#validateMustHaveName(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Must Have Name</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.UseCase#allIncludedUseCases() <em>All Included Use Cases</em>}</li>
  * </ul>
  * </p>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ValuePinOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ValuePinOperations.java
index ce09e62..b10136d 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ValuePinOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ValuePinOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ValuePinOperations.java,v 1.7 2007/05/03 21:11:52 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,8 +30,8 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.ValuePin#validateNoIncomingEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Incoming Edges</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ValuePin#validateCompatibleType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Compatible Type</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ValuePin#validateNoIncomingEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Incoming Edges</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/WriteStructuralFeatureActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/WriteStructuralFeatureActionOperations.java
index a299d7a..f7eccbb 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/WriteStructuralFeatureActionOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/WriteStructuralFeatureActionOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: WriteStructuralFeatureActionOperations.java,v 1.7 2008/10/02 20:56:22 jbruck Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,9 +30,9 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.WriteStructuralFeatureAction#validateMultiplicityOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Result</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.WriteStructuralFeatureAction#validateInputPin(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Input Pin</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.WriteStructuralFeatureAction#validateTypeOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Of Result</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.WriteStructuralFeatureAction#validateMultiplicityOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Result</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.WriteStructuralFeatureAction#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity</em>}</li>
  * </ul>
  * </p>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/WriteVariableActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/WriteVariableActionOperations.java
index b49dbcc..25756c8 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/WriteVariableActionOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/WriteVariableActionOperations.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: WriteVariableActionOperations.java,v 1.6 2007/05/03 21:11:51 khussey Exp $
  */
 package org.eclipse.uml2.uml.internal.operations;
 
@@ -31,8 +30,8 @@
  * <p>
  * The following operations are supported:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.WriteVariableAction#validateSameType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Same Type</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.WriteVariableAction#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.WriteVariableAction#validateSameType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Same Type</em>}</li>
  * </ul>
  * </p>
  *
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLAdapterFactory.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLAdapterFactory.java
index 1987e70..3f695e6 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLAdapterFactory.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLAdapterFactory.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 205188
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: UMLAdapterFactory.java,v 1.13 2008/10/02 20:57:04 jbruck Exp $
  */
 package org.eclipse.uml2.uml.util;
 
@@ -333,13 +332,13 @@
 		}
 
 		@Override
-		public Adapter caseDirectedRelationship(DirectedRelationship object) {
-			return createDirectedRelationshipAdapter();
+		public Adapter casePackageableElement(PackageableElement object) {
+			return createPackageableElementAdapter();
 		}
 
 		@Override
-		public Adapter caseRelationship(Relationship object) {
-			return createRelationshipAdapter();
+		public Adapter caseParameterableElement(ParameterableElement object) {
+			return createParameterableElementAdapter();
 		}
 
 		@Override
@@ -363,8 +362,13 @@
 		}
 
 		@Override
-		public Adapter caseBehavioredClassifier(BehavioredClassifier object) {
-			return createBehavioredClassifierAdapter();
+		public Adapter caseEncapsulatedClassifier(EncapsulatedClassifier object) {
+			return createEncapsulatedClassifierAdapter();
+		}
+
+		@Override
+		public Adapter caseStructuredClassifier(StructuredClassifier object) {
+			return createStructuredClassifierAdapter();
 		}
 
 		@Override
@@ -388,37 +392,6 @@
 		}
 
 		@Override
-		public Adapter caseTemplateableElement(TemplateableElement object) {
-			return createTemplateableElementAdapter();
-		}
-
-		@Override
-		public Adapter caseTemplateSignature(TemplateSignature object) {
-			return createTemplateSignatureAdapter();
-		}
-
-		@Override
-		public Adapter caseTemplateParameter(TemplateParameter object) {
-			return createTemplateParameterAdapter();
-		}
-
-		@Override
-		public Adapter caseParameterableElement(ParameterableElement object) {
-			return createParameterableElementAdapter();
-		}
-
-		@Override
-		public Adapter caseTemplateBinding(TemplateBinding object) {
-			return createTemplateBindingAdapter();
-		}
-
-		@Override
-		public Adapter caseTemplateParameterSubstitution(
-				TemplateParameterSubstitution object) {
-			return createTemplateParameterSubstitutionAdapter();
-		}
-
-		@Override
 		public Adapter caseExpression(Expression object) {
 			return createExpressionAdapter();
 		}
@@ -439,13 +412,44 @@
 		}
 
 		@Override
-		public Adapter casePackageableElement(PackageableElement object) {
-			return createPackageableElementAdapter();
+		public Adapter casePackage(org.eclipse.uml2.uml.Package object) {
+			return createPackageAdapter();
 		}
 
 		@Override
-		public Adapter casePackage(org.eclipse.uml2.uml.Package object) {
-			return createPackageAdapter();
+		public Adapter caseTemplateableElement(TemplateableElement object) {
+			return createTemplateableElementAdapter();
+		}
+
+		@Override
+		public Adapter caseTemplateSignature(TemplateSignature object) {
+			return createTemplateSignatureAdapter();
+		}
+
+		@Override
+		public Adapter caseTemplateParameter(TemplateParameter object) {
+			return createTemplateParameterAdapter();
+		}
+
+		@Override
+		public Adapter caseTemplateBinding(TemplateBinding object) {
+			return createTemplateBindingAdapter();
+		}
+
+		@Override
+		public Adapter caseDirectedRelationship(DirectedRelationship object) {
+			return createDirectedRelationshipAdapter();
+		}
+
+		@Override
+		public Adapter caseRelationship(Relationship object) {
+			return createRelationshipAdapter();
+		}
+
+		@Override
+		public Adapter caseTemplateParameterSubstitution(
+				TemplateParameterSubstitution object) {
+			return createTemplateParameterSubstitutionAdapter();
 		}
 
 		@Override
@@ -489,6 +493,26 @@
 		}
 
 		@Override
+		public Adapter caseStructuralFeature(StructuralFeature object) {
+			return createStructuralFeatureAdapter();
+		}
+
+		@Override
+		public Adapter caseMultiplicityElement(MultiplicityElement object) {
+			return createMultiplicityElementAdapter();
+		}
+
+		@Override
+		public Adapter caseFeature(Feature object) {
+			return createFeatureAdapter();
+		}
+
+		@Override
+		public Adapter caseRedefinableElement(RedefinableElement object) {
+			return createRedefinableElementAdapter();
+		}
+
+		@Override
 		public Adapter caseConnectableElement(ConnectableElement object) {
 			return createConnectableElementAdapter();
 		}
@@ -499,11 +523,6 @@
 		}
 
 		@Override
-		public Adapter caseMultiplicityElement(MultiplicityElement object) {
-			return createMultiplicityElementAdapter();
-		}
-
-		@Override
 		public Adapter caseConnectableElementTemplateParameter(
 				ConnectableElementTemplateParameter object) {
 			return createConnectableElementTemplateParameterAdapter();
@@ -551,38 +570,23 @@
 		}
 
 		@Override
-		public Adapter caseFeature(Feature object) {
-			return createFeatureAdapter();
-		}
-
-		@Override
-		public Adapter caseRedefinableElement(RedefinableElement object) {
-			return createRedefinableElementAdapter();
-		}
-
-		@Override
 		public Adapter caseBehavior(Behavior object) {
 			return createBehaviorAdapter();
 		}
 
 		@Override
-		public Adapter caseParameter(Parameter object) {
-			return createParameterAdapter();
+		public Adapter caseBehavioredClassifier(BehavioredClassifier object) {
+			return createBehavioredClassifierAdapter();
 		}
 
 		@Override
-		public Adapter caseParameterSet(ParameterSet object) {
-			return createParameterSetAdapter();
+		public Adapter caseInterfaceRealization(InterfaceRealization object) {
+			return createInterfaceRealizationAdapter();
 		}
 
 		@Override
-		public Adapter caseConstraint(Constraint object) {
-			return createConstraintAdapter();
-		}
-
-		@Override
-		public Adapter caseDataType(DataType object) {
-			return createDataTypeAdapter();
+		public Adapter caseRealization(Realization object) {
+			return createRealizationAdapter();
 		}
 
 		@Override
@@ -652,6 +656,11 @@
 		}
 
 		@Override
+		public Adapter caseConstraint(Constraint object) {
+			return createConstraintAdapter();
+		}
+
+		@Override
 		public Adapter caseTransition(Transition object) {
 			return createTransitionAdapter();
 		}
@@ -662,14 +671,24 @@
 		}
 
 		@Override
-		public Adapter caseOperationTemplateParameter(
-				OperationTemplateParameter object) {
-			return createOperationTemplateParameterAdapter();
+		public Adapter caseParameter(Parameter object) {
+			return createParameterAdapter();
 		}
 
 		@Override
-		public Adapter caseStructuralFeature(StructuralFeature object) {
-			return createStructuralFeatureAdapter();
+		public Adapter caseParameterSet(ParameterSet object) {
+			return createParameterSetAdapter();
+		}
+
+		@Override
+		public Adapter caseDataType(DataType object) {
+			return createDataTypeAdapter();
+		}
+
+		@Override
+		public Adapter caseOperationTemplateParameter(
+				OperationTemplateParameter object) {
+			return createOperationTemplateParameterAdapter();
 		}
 
 		@Override
@@ -723,16 +742,6 @@
 		}
 
 		@Override
-		public Adapter caseStructuredClassifier(StructuredClassifier object) {
-			return createStructuredClassifierAdapter();
-		}
-
-		@Override
-		public Adapter caseConnector(Connector object) {
-			return createConnectorAdapter();
-		}
-
-		@Override
 		public Adapter caseGeneralization(Generalization object) {
 			return createGeneralizationAdapter();
 		}
@@ -774,24 +783,14 @@
 		}
 
 		@Override
-		public Adapter caseRealization(Realization object) {
-			return createRealizationAdapter();
-		}
-
-		@Override
 		public Adapter caseClassifierTemplateParameter(
 				ClassifierTemplateParameter object) {
 			return createClassifierTemplateParameterAdapter();
 		}
 
 		@Override
-		public Adapter caseInterfaceRealization(InterfaceRealization object) {
-			return createInterfaceRealizationAdapter();
-		}
-
-		@Override
-		public Adapter caseEncapsulatedClassifier(EncapsulatedClassifier object) {
-			return createEncapsulatedClassifierAdapter();
+		public Adapter caseConnector(Connector object) {
+			return createConnectorAdapter();
 		}
 
 		@Override
@@ -835,13 +834,13 @@
 		}
 
 		@Override
-		public Adapter caseActivityEdge(ActivityEdge object) {
-			return createActivityEdgeAdapter();
+		public Adapter caseActivityGroup(ActivityGroup object) {
+			return createActivityGroupAdapter();
 		}
 
 		@Override
-		public Adapter caseActivityGroup(ActivityGroup object) {
-			return createActivityGroupAdapter();
+		public Adapter caseActivityEdge(ActivityEdge object) {
+			return createActivityEdgeAdapter();
 		}
 
 		@Override
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLSwitch.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLSwitch.java
index 40116cc..2807888 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLSwitch.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLSwitch.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 205188
  *   Kenn Hussey - 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: UMLSwitch.java,v 1.21 2011/01/27 21:39:04 khussey Exp $
  */
 package org.eclipse.uml2.uml.util;
 
@@ -365,26 +364,28 @@
 					result = defaultCase(theEObject);
 				return result;
 			}
-			case UMLPackage.DIRECTED_RELATIONSHIP : {
-				DirectedRelationship directedRelationship = (DirectedRelationship) theEObject;
-				T result = caseDirectedRelationship(directedRelationship);
+			case UMLPackage.PACKAGEABLE_ELEMENT : {
+				PackageableElement packageableElement = (PackageableElement) theEObject;
+				T result = casePackageableElement(packageableElement);
 				if (result == null)
-					result = caseRelationship(directedRelationship);
+					result = caseNamedElement(packageableElement);
 				if (result == null)
-					result = caseElement(directedRelationship);
+					result = caseParameterableElement(packageableElement);
 				if (result == null)
-					result = caseEModelElement(directedRelationship);
+					result = caseElement(packageableElement);
+				if (result == null)
+					result = caseEModelElement(packageableElement);
 				if (result == null)
 					result = defaultCase(theEObject);
 				return result;
 			}
-			case UMLPackage.RELATIONSHIP : {
-				Relationship relationship = (Relationship) theEObject;
-				T result = caseRelationship(relationship);
+			case UMLPackage.PARAMETERABLE_ELEMENT : {
+				ParameterableElement parameterableElement = (ParameterableElement) theEObject;
+				T result = caseParameterableElement(parameterableElement);
 				if (result == null)
-					result = caseElement(relationship);
+					result = caseElement(parameterableElement);
 				if (result == null)
-					result = caseEModelElement(relationship);
+					result = caseEModelElement(parameterableElement);
 				if (result == null)
 					result = defaultCase(theEObject);
 				return result;
@@ -477,29 +478,58 @@
 					result = defaultCase(theEObject);
 				return result;
 			}
-			case UMLPackage.BEHAVIORED_CLASSIFIER : {
-				BehavioredClassifier behavioredClassifier = (BehavioredClassifier) theEObject;
-				T result = caseBehavioredClassifier(behavioredClassifier);
+			case UMLPackage.ENCAPSULATED_CLASSIFIER : {
+				EncapsulatedClassifier encapsulatedClassifier = (EncapsulatedClassifier) theEObject;
+				T result = caseEncapsulatedClassifier(encapsulatedClassifier);
 				if (result == null)
-					result = caseClassifier(behavioredClassifier);
+					result = caseStructuredClassifier(encapsulatedClassifier);
 				if (result == null)
-					result = caseNamespace(behavioredClassifier);
+					result = caseClassifier(encapsulatedClassifier);
 				if (result == null)
-					result = caseRedefinableElement(behavioredClassifier);
+					result = caseNamespace(encapsulatedClassifier);
 				if (result == null)
-					result = caseType(behavioredClassifier);
+					result = caseRedefinableElement(encapsulatedClassifier);
 				if (result == null)
-					result = caseTemplateableElement(behavioredClassifier);
+					result = caseType(encapsulatedClassifier);
 				if (result == null)
-					result = casePackageableElement(behavioredClassifier);
+					result = caseTemplateableElement(encapsulatedClassifier);
 				if (result == null)
-					result = caseNamedElement(behavioredClassifier);
+					result = casePackageableElement(encapsulatedClassifier);
 				if (result == null)
-					result = caseParameterableElement(behavioredClassifier);
+					result = caseNamedElement(encapsulatedClassifier);
 				if (result == null)
-					result = caseElement(behavioredClassifier);
+					result = caseParameterableElement(encapsulatedClassifier);
 				if (result == null)
-					result = caseEModelElement(behavioredClassifier);
+					result = caseElement(encapsulatedClassifier);
+				if (result == null)
+					result = caseEModelElement(encapsulatedClassifier);
+				if (result == null)
+					result = defaultCase(theEObject);
+				return result;
+			}
+			case UMLPackage.STRUCTURED_CLASSIFIER : {
+				StructuredClassifier structuredClassifier = (StructuredClassifier) theEObject;
+				T result = caseStructuredClassifier(structuredClassifier);
+				if (result == null)
+					result = caseClassifier(structuredClassifier);
+				if (result == null)
+					result = caseNamespace(structuredClassifier);
+				if (result == null)
+					result = caseRedefinableElement(structuredClassifier);
+				if (result == null)
+					result = caseType(structuredClassifier);
+				if (result == null)
+					result = caseTemplateableElement(structuredClassifier);
+				if (result == null)
+					result = casePackageableElement(structuredClassifier);
+				if (result == null)
+					result = caseNamedElement(structuredClassifier);
+				if (result == null)
+					result = caseParameterableElement(structuredClassifier);
+				if (result == null)
+					result = caseElement(structuredClassifier);
+				if (result == null)
+					result = caseEModelElement(structuredClassifier);
 				if (result == null)
 					result = defaultCase(theEObject);
 				return result;
@@ -578,76 +608,6 @@
 					result = defaultCase(theEObject);
 				return result;
 			}
-			case UMLPackage.TEMPLATEABLE_ELEMENT : {
-				TemplateableElement templateableElement = (TemplateableElement) theEObject;
-				T result = caseTemplateableElement(templateableElement);
-				if (result == null)
-					result = caseElement(templateableElement);
-				if (result == null)
-					result = caseEModelElement(templateableElement);
-				if (result == null)
-					result = defaultCase(theEObject);
-				return result;
-			}
-			case UMLPackage.TEMPLATE_SIGNATURE : {
-				TemplateSignature templateSignature = (TemplateSignature) theEObject;
-				T result = caseTemplateSignature(templateSignature);
-				if (result == null)
-					result = caseElement(templateSignature);
-				if (result == null)
-					result = caseEModelElement(templateSignature);
-				if (result == null)
-					result = defaultCase(theEObject);
-				return result;
-			}
-			case UMLPackage.TEMPLATE_PARAMETER : {
-				TemplateParameter templateParameter = (TemplateParameter) theEObject;
-				T result = caseTemplateParameter(templateParameter);
-				if (result == null)
-					result = caseElement(templateParameter);
-				if (result == null)
-					result = caseEModelElement(templateParameter);
-				if (result == null)
-					result = defaultCase(theEObject);
-				return result;
-			}
-			case UMLPackage.PARAMETERABLE_ELEMENT : {
-				ParameterableElement parameterableElement = (ParameterableElement) theEObject;
-				T result = caseParameterableElement(parameterableElement);
-				if (result == null)
-					result = caseElement(parameterableElement);
-				if (result == null)
-					result = caseEModelElement(parameterableElement);
-				if (result == null)
-					result = defaultCase(theEObject);
-				return result;
-			}
-			case UMLPackage.TEMPLATE_BINDING : {
-				TemplateBinding templateBinding = (TemplateBinding) theEObject;
-				T result = caseTemplateBinding(templateBinding);
-				if (result == null)
-					result = caseDirectedRelationship(templateBinding);
-				if (result == null)
-					result = caseRelationship(templateBinding);
-				if (result == null)
-					result = caseElement(templateBinding);
-				if (result == null)
-					result = caseEModelElement(templateBinding);
-				if (result == null)
-					result = defaultCase(theEObject);
-				return result;
-			}
-			case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION : {
-				TemplateParameterSubstitution templateParameterSubstitution = (TemplateParameterSubstitution) theEObject;
-				T result = caseTemplateParameterSubstitution(templateParameterSubstitution);
-				if (result == null)
-					result = caseElement(templateParameterSubstitution);
-				if (result == null)
-					result = caseEModelElement(templateParameterSubstitution);
-				if (result == null)
-					result = defaultCase(theEObject);
-				return result;
-			}
 			case UMLPackage.EXPRESSION : {
 				Expression expression = (Expression) theEObject;
 				T result = caseExpression(expression);
@@ -718,21 +678,6 @@
 					result = defaultCase(theEObject);
 				return result;
 			}
-			case UMLPackage.PACKAGEABLE_ELEMENT : {
-				PackageableElement packageableElement = (PackageableElement) theEObject;
-				T result = casePackageableElement(packageableElement);
-				if (result == null)
-					result = caseNamedElement(packageableElement);
-				if (result == null)
-					result = caseParameterableElement(packageableElement);
-				if (result == null)
-					result = caseElement(packageableElement);
-				if (result == null)
-					result = caseEModelElement(packageableElement);
-				if (result == null)
-					result = defaultCase(theEObject);
-				return result;
-			}
 			case UMLPackage.PACKAGE : {
 				org.eclipse.uml2.uml.Package package_ = (org.eclipse.uml2.uml.Package) theEObject;
 				T result = casePackage(package_);
@@ -754,6 +699,89 @@
 					result = defaultCase(theEObject);
 				return result;
 			}
+			case UMLPackage.TEMPLATEABLE_ELEMENT : {
+				TemplateableElement templateableElement = (TemplateableElement) theEObject;
+				T result = caseTemplateableElement(templateableElement);
+				if (result == null)
+					result = caseElement(templateableElement);
+				if (result == null)
+					result = caseEModelElement(templateableElement);
+				if (result == null)
+					result = defaultCase(theEObject);
+				return result;
+			}
+			case UMLPackage.TEMPLATE_SIGNATURE : {
+				TemplateSignature templateSignature = (TemplateSignature) theEObject;
+				T result = caseTemplateSignature(templateSignature);
+				if (result == null)
+					result = caseElement(templateSignature);
+				if (result == null)
+					result = caseEModelElement(templateSignature);
+				if (result == null)
+					result = defaultCase(theEObject);
+				return result;
+			}
+			case UMLPackage.TEMPLATE_PARAMETER : {
+				TemplateParameter templateParameter = (TemplateParameter) theEObject;
+				T result = caseTemplateParameter(templateParameter);
+				if (result == null)
+					result = caseElement(templateParameter);
+				if (result == null)
+					result = caseEModelElement(templateParameter);
+				if (result == null)
+					result = defaultCase(theEObject);
+				return result;
+			}
+			case UMLPackage.TEMPLATE_BINDING : {
+				TemplateBinding templateBinding = (TemplateBinding) theEObject;
+				T result = caseTemplateBinding(templateBinding);
+				if (result == null)
+					result = caseDirectedRelationship(templateBinding);
+				if (result == null)
+					result = caseRelationship(templateBinding);
+				if (result == null)
+					result = caseElement(templateBinding);
+				if (result == null)
+					result = caseEModelElement(templateBinding);
+				if (result == null)
+					result = defaultCase(theEObject);
+				return result;
+			}
+			case UMLPackage.DIRECTED_RELATIONSHIP : {
+				DirectedRelationship directedRelationship = (DirectedRelationship) theEObject;
+				T result = caseDirectedRelationship(directedRelationship);
+				if (result == null)
+					result = caseRelationship(directedRelationship);
+				if (result == null)
+					result = caseElement(directedRelationship);
+				if (result == null)
+					result = caseEModelElement(directedRelationship);
+				if (result == null)
+					result = defaultCase(theEObject);
+				return result;
+			}
+			case UMLPackage.RELATIONSHIP : {
+				Relationship relationship = (Relationship) theEObject;
+				T result = caseRelationship(relationship);
+				if (result == null)
+					result = caseElement(relationship);
+				if (result == null)
+					result = caseEModelElement(relationship);
+				if (result == null)
+					result = defaultCase(theEObject);
+				return result;
+			}
+			case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION : {
+				TemplateParameterSubstitution templateParameterSubstitution = (TemplateParameterSubstitution) theEObject;
+				T result = caseTemplateParameterSubstitution(templateParameterSubstitution);
+				if (result == null)
+					result = caseElement(templateParameterSubstitution);
+				if (result == null)
+					result = caseEModelElement(templateParameterSubstitution);
+				if (result == null)
+					result = defaultCase(theEObject);
+				return result;
+			}
 			case UMLPackage.PACKAGE_MERGE : {
 				PackageMerge packageMerge = (PackageMerge) theEObject;
 				T result = casePackageMerge(packageMerge);
@@ -926,6 +954,66 @@
 					result = defaultCase(theEObject);
 				return result;
 			}
+			case UMLPackage.STRUCTURAL_FEATURE : {
+				StructuralFeature structuralFeature = (StructuralFeature) theEObject;
+				T result = caseStructuralFeature(structuralFeature);
+				if (result == null)
+					result = caseFeature(structuralFeature);
+				if (result == null)
+					result = caseTypedElement(structuralFeature);
+				if (result == null)
+					result = caseMultiplicityElement(structuralFeature);
+				if (result == null)
+					result = caseRedefinableElement(structuralFeature);
+				if (result == null)
+					result = caseNamedElement(structuralFeature);
+				if (result == null)
+					result = caseElement(structuralFeature);
+				if (result == null)
+					result = caseEModelElement(structuralFeature);
+				if (result == null)
+					result = defaultCase(theEObject);
+				return result;
+			}
+			case UMLPackage.MULTIPLICITY_ELEMENT : {
+				MultiplicityElement multiplicityElement = (MultiplicityElement) theEObject;
+				T result = caseMultiplicityElement(multiplicityElement);
+				if (result == null)
+					result = caseElement(multiplicityElement);
+				if (result == null)
+					result = caseEModelElement(multiplicityElement);
+				if (result == null)
+					result = defaultCase(theEObject);
+				return result;
+			}
+			case UMLPackage.FEATURE : {
+				Feature feature = (Feature) theEObject;
+				T result = caseFeature(feature);
+				if (result == null)
+					result = caseRedefinableElement(feature);
+				if (result == null)
+					result = caseNamedElement(feature);
+				if (result == null)
+					result = caseElement(feature);
+				if (result == null)
+					result = caseEModelElement(feature);
+				if (result == null)
+					result = defaultCase(theEObject);
+				return result;
+			}
+			case UMLPackage.REDEFINABLE_ELEMENT : {
+				RedefinableElement redefinableElement = (RedefinableElement) theEObject;
+				T result = caseRedefinableElement(redefinableElement);
+				if (result == null)
+					result = caseNamedElement(redefinableElement);
+				if (result == null)
+					result = caseElement(redefinableElement);
+				if (result == null)
+					result = caseEModelElement(redefinableElement);
+				if (result == null)
+					result = defaultCase(theEObject);
+				return result;
+			}
 			case UMLPackage.CONNECTABLE_ELEMENT : {
 				ConnectableElement connectableElement = (ConnectableElement) theEObject;
 				T result = caseConnectableElement(connectableElement);
@@ -956,17 +1044,6 @@
 					result = defaultCase(theEObject);
 				return result;
 			}
-			case UMLPackage.MULTIPLICITY_ELEMENT : {
-				MultiplicityElement multiplicityElement = (MultiplicityElement) theEObject;
-				T result = caseMultiplicityElement(multiplicityElement);
-				if (result == null)
-					result = caseElement(multiplicityElement);
-				if (result == null)
-					result = caseEModelElement(multiplicityElement);
-				if (result == null)
-					result = defaultCase(theEObject);
-				return result;
-			}
 			case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER : {
 				ConnectableElementTemplateParameter connectableElementTemplateParameter = (ConnectableElementTemplateParameter) theEObject;
 				T result = caseConnectableElementTemplateParameter(connectableElementTemplateParameter);
@@ -1158,34 +1235,6 @@
 					result = defaultCase(theEObject);
 				return result;
 			}
-			case UMLPackage.FEATURE : {
-				Feature feature = (Feature) theEObject;
-				T result = caseFeature(feature);
-				if (result == null)
-					result = caseRedefinableElement(feature);
-				if (result == null)
-					result = caseNamedElement(feature);
-				if (result == null)
-					result = caseElement(feature);
-				if (result == null)
-					result = caseEModelElement(feature);
-				if (result == null)
-					result = defaultCase(theEObject);
-				return result;
-			}
-			case UMLPackage.REDEFINABLE_ELEMENT : {
-				RedefinableElement redefinableElement = (RedefinableElement) theEObject;
-				T result = caseRedefinableElement(redefinableElement);
-				if (result == null)
-					result = caseNamedElement(redefinableElement);
-				if (result == null)
-					result = caseElement(redefinableElement);
-				if (result == null)
-					result = caseEModelElement(redefinableElement);
-				if (result == null)
-					result = defaultCase(theEObject);
-				return result;
-			}
 			case UMLPackage.BEHAVIOR : {
 				Behavior behavior = (Behavior) theEObject;
 				T result = caseBehavior(behavior);
@@ -1221,80 +1270,81 @@
 					result = defaultCase(theEObject);
 				return result;
 			}
-			case UMLPackage.PARAMETER : {
-				Parameter parameter = (Parameter) theEObject;
-				T result = caseParameter(parameter);
+			case UMLPackage.BEHAVIORED_CLASSIFIER : {
+				BehavioredClassifier behavioredClassifier = (BehavioredClassifier) theEObject;
+				T result = caseBehavioredClassifier(behavioredClassifier);
 				if (result == null)
-					result = caseConnectableElement(parameter);
+					result = caseClassifier(behavioredClassifier);
 				if (result == null)
-					result = caseMultiplicityElement(parameter);
+					result = caseNamespace(behavioredClassifier);
 				if (result == null)
-					result = caseTypedElement(parameter);
+					result = caseRedefinableElement(behavioredClassifier);
 				if (result == null)
-					result = caseParameterableElement(parameter);
+					result = caseType(behavioredClassifier);
 				if (result == null)
-					result = caseNamedElement(parameter);
+					result = caseTemplateableElement(behavioredClassifier);
 				if (result == null)
-					result = caseElement(parameter);
+					result = casePackageableElement(behavioredClassifier);
 				if (result == null)
-					result = caseEModelElement(parameter);
+					result = caseNamedElement(behavioredClassifier);
+				if (result == null)
+					result = caseParameterableElement(behavioredClassifier);
+				if (result == null)
+					result = caseElement(behavioredClassifier);
+				if (result == null)
+					result = caseEModelElement(behavioredClassifier);
 				if (result == null)
 					result = defaultCase(theEObject);
 				return result;
 			}
-			case UMLPackage.PARAMETER_SET : {
-				ParameterSet parameterSet = (ParameterSet) theEObject;
-				T result = caseParameterSet(parameterSet);
+			case UMLPackage.INTERFACE_REALIZATION : {
+				InterfaceRealization interfaceRealization = (InterfaceRealization) theEObject;
+				T result = caseInterfaceRealization(interfaceRealization);
 				if (result == null)
-					result = caseNamedElement(parameterSet);
+					result = caseRealization(interfaceRealization);
 				if (result == null)
-					result = caseElement(parameterSet);
+					result = caseAbstraction(interfaceRealization);
 				if (result == null)
-					result = caseEModelElement(parameterSet);
+					result = caseDependency(interfaceRealization);
+				if (result == null)
+					result = casePackageableElement(interfaceRealization);
+				if (result == null)
+					result = caseDirectedRelationship(interfaceRealization);
+				if (result == null)
+					result = caseNamedElement(interfaceRealization);
+				if (result == null)
+					result = caseParameterableElement(interfaceRealization);
+				if (result == null)
+					result = caseRelationship(interfaceRealization);
+				if (result == null)
+					result = caseElement(interfaceRealization);
+				if (result == null)
+					result = caseEModelElement(interfaceRealization);
 				if (result == null)
 					result = defaultCase(theEObject);
 				return result;
 			}
-			case UMLPackage.CONSTRAINT : {
-				Constraint constraint = (Constraint) theEObject;
-				T result = caseConstraint(constraint);
+			case UMLPackage.REALIZATION : {
+				Realization realization = (Realization) theEObject;
+				T result = caseRealization(realization);
 				if (result == null)
-					result = casePackageableElement(constraint);
+					result = caseAbstraction(realization);
 				if (result == null)
-					result = caseNamedElement(constraint);
+					result = caseDependency(realization);
 				if (result == null)
-					result = caseParameterableElement(constraint);
+					result = casePackageableElement(realization);
 				if (result == null)
-					result = caseElement(constraint);
+					result = caseDirectedRelationship(realization);
 				if (result == null)
-					result = caseEModelElement(constraint);
+					result = caseNamedElement(realization);
 				if (result == null)
-					result = defaultCase(theEObject);
-				return result;
-			}
-			case UMLPackage.DATA_TYPE : {
-				DataType dataType = (DataType) theEObject;
-				T result = caseDataType(dataType);
+					result = caseParameterableElement(realization);
 				if (result == null)
-					result = caseClassifier(dataType);
+					result = caseRelationship(realization);
 				if (result == null)
-					result = caseNamespace(dataType);
+					result = caseElement(realization);
 				if (result == null)
-					result = caseRedefinableElement(dataType);
-				if (result == null)
-					result = caseType(dataType);
-				if (result == null)
-					result = caseTemplateableElement(dataType);
-				if (result == null)
-					result = casePackageableElement(dataType);
-				if (result == null)
-					result = caseNamedElement(dataType);
-				if (result == null)
-					result = caseParameterableElement(dataType);
-				if (result == null)
-					result = caseElement(dataType);
-				if (result == null)
-					result = caseEModelElement(dataType);
+					result = caseEModelElement(realization);
 				if (result == null)
 					result = defaultCase(theEObject);
 				return result;
@@ -1590,6 +1640,23 @@
 					result = defaultCase(theEObject);
 				return result;
 			}
+			case UMLPackage.CONSTRAINT : {
+				Constraint constraint = (Constraint) theEObject;
+				T result = caseConstraint(constraint);
+				if (result == null)
+					result = casePackageableElement(constraint);
+				if (result == null)
+					result = caseNamedElement(constraint);
+				if (result == null)
+					result = caseParameterableElement(constraint);
+				if (result == null)
+					result = caseElement(constraint);
+				if (result == null)
+					result = caseEModelElement(constraint);
+				if (result == null)
+					result = defaultCase(theEObject);
+				return result;
+			}
 			case UMLPackage.TRANSITION : {
 				Transition transition = (Transition) theEObject;
 				T result = caseTransition(transition);
@@ -1622,6 +1689,67 @@
 					result = defaultCase(theEObject);
 				return result;
 			}
+			case UMLPackage.PARAMETER : {
+				Parameter parameter = (Parameter) theEObject;
+				T result = caseParameter(parameter);
+				if (result == null)
+					result = caseConnectableElement(parameter);
+				if (result == null)
+					result = caseMultiplicityElement(parameter);
+				if (result == null)
+					result = caseTypedElement(parameter);
+				if (result == null)
+					result = caseParameterableElement(parameter);
+				if (result == null)
+					result = caseNamedElement(parameter);
+				if (result == null)
+					result = caseElement(parameter);
+				if (result == null)
+					result = caseEModelElement(parameter);
+				if (result == null)
+					result = defaultCase(theEObject);
+				return result;
+			}
+			case UMLPackage.PARAMETER_SET : {
+				ParameterSet parameterSet = (ParameterSet) theEObject;
+				T result = caseParameterSet(parameterSet);
+				if (result == null)
+					result = caseNamedElement(parameterSet);
+				if (result == null)
+					result = caseElement(parameterSet);
+				if (result == null)
+					result = caseEModelElement(parameterSet);
+				if (result == null)
+					result = defaultCase(theEObject);
+				return result;
+			}
+			case UMLPackage.DATA_TYPE : {
+				DataType dataType = (DataType) theEObject;
+				T result = caseDataType(dataType);
+				if (result == null)
+					result = caseClassifier(dataType);
+				if (result == null)
+					result = caseNamespace(dataType);
+				if (result == null)
+					result = caseRedefinableElement(dataType);
+				if (result == null)
+					result = caseType(dataType);
+				if (result == null)
+					result = caseTemplateableElement(dataType);
+				if (result == null)
+					result = casePackageableElement(dataType);
+				if (result == null)
+					result = caseNamedElement(dataType);
+				if (result == null)
+					result = caseParameterableElement(dataType);
+				if (result == null)
+					result = caseElement(dataType);
+				if (result == null)
+					result = caseEModelElement(dataType);
+				if (result == null)
+					result = defaultCase(theEObject);
+				return result;
+			}
 			case UMLPackage.OPERATION_TEMPLATE_PARAMETER : {
 				OperationTemplateParameter operationTemplateParameter = (OperationTemplateParameter) theEObject;
 				T result = caseOperationTemplateParameter(operationTemplateParameter);
@@ -1635,27 +1763,6 @@
 					result = defaultCase(theEObject);
 				return result;
 			}
-			case UMLPackage.STRUCTURAL_FEATURE : {
-				StructuralFeature structuralFeature = (StructuralFeature) theEObject;
-				T result = caseStructuralFeature(structuralFeature);
-				if (result == null)
-					result = caseFeature(structuralFeature);
-				if (result == null)
-					result = caseTypedElement(structuralFeature);
-				if (result == null)
-					result = caseMultiplicityElement(structuralFeature);
-				if (result == null)
-					result = caseRedefinableElement(structuralFeature);
-				if (result == null)
-					result = caseNamedElement(structuralFeature);
-				if (result == null)
-					result = caseElement(structuralFeature);
-				if (result == null)
-					result = caseEModelElement(structuralFeature);
-				if (result == null)
-					result = defaultCase(theEObject);
-				return result;
-			}
 			case UMLPackage.EXTENSION_END : {
 				ExtensionEnd extensionEnd = (ExtensionEnd) theEObject;
 				T result = caseExtensionEnd(extensionEnd);
@@ -1890,50 +1997,6 @@
 					result = defaultCase(theEObject);
 				return result;
 			}
-			case UMLPackage.STRUCTURED_CLASSIFIER : {
-				StructuredClassifier structuredClassifier = (StructuredClassifier) theEObject;
-				T result = caseStructuredClassifier(structuredClassifier);
-				if (result == null)
-					result = caseClassifier(structuredClassifier);
-				if (result == null)
-					result = caseNamespace(structuredClassifier);
-				if (result == null)
-					result = caseRedefinableElement(structuredClassifier);
-				if (result == null)
-					result = caseType(structuredClassifier);
-				if (result == null)
-					result = caseTemplateableElement(structuredClassifier);
-				if (result == null)
-					result = casePackageableElement(structuredClassifier);
-				if (result == null)
-					result = caseNamedElement(structuredClassifier);
-				if (result == null)
-					result = caseParameterableElement(structuredClassifier);
-				if (result == null)
-					result = caseElement(structuredClassifier);
-				if (result == null)
-					result = caseEModelElement(structuredClassifier);
-				if (result == null)
-					result = defaultCase(theEObject);
-				return result;
-			}
-			case UMLPackage.CONNECTOR : {
-				Connector connector = (Connector) theEObject;
-				T result = caseConnector(connector);
-				if (result == null)
-					result = caseFeature(connector);
-				if (result == null)
-					result = caseRedefinableElement(connector);
-				if (result == null)
-					result = caseNamedElement(connector);
-				if (result == null)
-					result = caseElement(connector);
-				if (result == null)
-					result = caseEModelElement(connector);
-				if (result == null)
-					result = defaultCase(theEObject);
-				return result;
-			}
 			case UMLPackage.GENERALIZATION : {
 				Generalization generalization = (Generalization) theEObject;
 				T result = caseGeneralization(generalization);
@@ -2088,31 +2151,6 @@
 					result = defaultCase(theEObject);
 				return result;
 			}
-			case UMLPackage.REALIZATION : {
-				Realization realization = (Realization) theEObject;
-				T result = caseRealization(realization);
-				if (result == null)
-					result = caseAbstraction(realization);
-				if (result == null)
-					result = caseDependency(realization);
-				if (result == null)
-					result = casePackageableElement(realization);
-				if (result == null)
-					result = caseDirectedRelationship(realization);
-				if (result == null)
-					result = caseNamedElement(realization);
-				if (result == null)
-					result = caseParameterableElement(realization);
-				if (result == null)
-					result = caseRelationship(realization);
-				if (result == null)
-					result = caseElement(realization);
-				if (result == null)
-					result = caseEModelElement(realization);
-				if (result == null)
-					result = defaultCase(theEObject);
-				return result;
-			}
 			case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER : {
 				ClassifierTemplateParameter classifierTemplateParameter = (ClassifierTemplateParameter) theEObject;
 				T result = caseClassifierTemplateParameter(classifierTemplateParameter);
@@ -2126,58 +2164,19 @@
 					result = defaultCase(theEObject);
 				return result;
 			}
-			case UMLPackage.INTERFACE_REALIZATION : {
-				InterfaceRealization interfaceRealization = (InterfaceRealization) theEObject;
-				T result = caseInterfaceRealization(interfaceRealization);
+			case UMLPackage.CONNECTOR : {
+				Connector connector = (Connector) theEObject;
+				T result = caseConnector(connector);
 				if (result == null)
-					result = caseRealization(interfaceRealization);
+					result = caseFeature(connector);
 				if (result == null)
-					result = caseAbstraction(interfaceRealization);
+					result = caseRedefinableElement(connector);
 				if (result == null)
-					result = caseDependency(interfaceRealization);
+					result = caseNamedElement(connector);
 				if (result == null)
-					result = casePackageableElement(interfaceRealization);
+					result = caseElement(connector);
 				if (result == null)
-					result = caseDirectedRelationship(interfaceRealization);
-				if (result == null)
-					result = caseNamedElement(interfaceRealization);
-				if (result == null)
-					result = caseParameterableElement(interfaceRealization);
-				if (result == null)
-					result = caseRelationship(interfaceRealization);
-				if (result == null)
-					result = caseElement(interfaceRealization);
-				if (result == null)
-					result = caseEModelElement(interfaceRealization);
-				if (result == null)
-					result = defaultCase(theEObject);
-				return result;
-			}
-			case UMLPackage.ENCAPSULATED_CLASSIFIER : {
-				EncapsulatedClassifier encapsulatedClassifier = (EncapsulatedClassifier) theEObject;
-				T result = caseEncapsulatedClassifier(encapsulatedClassifier);
-				if (result == null)
-					result = caseStructuredClassifier(encapsulatedClassifier);
-				if (result == null)
-					result = caseClassifier(encapsulatedClassifier);
-				if (result == null)
-					result = caseNamespace(encapsulatedClassifier);
-				if (result == null)
-					result = caseRedefinableElement(encapsulatedClassifier);
-				if (result == null)
-					result = caseType(encapsulatedClassifier);
-				if (result == null)
-					result = caseTemplateableElement(encapsulatedClassifier);
-				if (result == null)
-					result = casePackageableElement(encapsulatedClassifier);
-				if (result == null)
-					result = caseNamedElement(encapsulatedClassifier);
-				if (result == null)
-					result = caseParameterableElement(encapsulatedClassifier);
-				if (result == null)
-					result = caseElement(encapsulatedClassifier);
-				if (result == null)
-					result = caseEModelElement(encapsulatedClassifier);
+					result = caseEModelElement(connector);
 				if (result == null)
 					result = defaultCase(theEObject);
 				return result;
@@ -2346,6 +2345,19 @@
 					result = defaultCase(theEObject);
 				return result;
 			}
+			case UMLPackage.ACTIVITY_GROUP : {
+				ActivityGroup activityGroup = (ActivityGroup) theEObject;
+				T result = caseActivityGroup(activityGroup);
+				if (result == null)
+					result = caseNamedElement(activityGroup);
+				if (result == null)
+					result = caseElement(activityGroup);
+				if (result == null)
+					result = caseEModelElement(activityGroup);
+				if (result == null)
+					result = defaultCase(theEObject);
+				return result;
+			}
 			case UMLPackage.ACTIVITY_EDGE : {
 				ActivityEdge activityEdge = (ActivityEdge) theEObject;
 				T result = caseActivityEdge(activityEdge);
@@ -2361,19 +2373,6 @@
 					result = defaultCase(theEObject);
 				return result;
 			}
-			case UMLPackage.ACTIVITY_GROUP : {
-				ActivityGroup activityGroup = (ActivityGroup) theEObject;
-				T result = caseActivityGroup(activityGroup);
-				if (result == null)
-					result = caseNamedElement(activityGroup);
-				if (result == null)
-					result = caseElement(activityGroup);
-				if (result == null)
-					result = caseEModelElement(activityGroup);
-				if (result == null)
-					result = defaultCase(theEObject);
-				return result;
-			}
 			case UMLPackage.ACTIVITY_PARTITION : {
 				ActivityPartition activityPartition = (ActivityPartition) theEObject;
 				T result = caseActivityPartition(activityPartition);
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLValidator.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLValidator.java
index f6416f4..da2ae58 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLValidator.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLValidator.java
@@ -9,9 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 205188, 204200
  *   Kenn Hussey - 286329, 320318, 323000, 323181, 354453
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: UMLValidator.java,v 1.31 2011/05/23 17:47:05 khussey Exp $
  */
 package org.eclipse.uml2.uml.util;
 
@@ -324,7 +323,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int STEREOTYPE__BINARY_ASSOCIATIONS_ONLY = 3;
+	public static final int STEREOTYPE__BINARY_ASSOCIATIONS_ONLY = 5;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Has Owner' of 'Element'.
@@ -340,7 +339,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int NAMED_ELEMENT__HAS_NO_QUALIFIED_NAME = 16;
+	public static final int NAMED_ELEMENT__HAS_NO_QUALIFIED_NAME = 15;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Has Qualified Name' of 'Named Element'.
@@ -348,7 +347,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int NAMED_ELEMENT__HAS_QUALIFIED_NAME = 15;
+	public static final int NAMED_ELEMENT__HAS_QUALIFIED_NAME = 14;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Visibility Needs Ownership' of 'Named Element'.
@@ -356,7 +355,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int NAMED_ELEMENT__VISIBILITY_NEEDS_OWNERSHIP = 14;
+	public static final int NAMED_ELEMENT__VISIBILITY_NEEDS_OWNERSHIP = 16;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Must Be Compatible' of 'Template Parameter'.
@@ -364,7 +363,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int TEMPLATE_PARAMETER__MUST_BE_COMPATIBLE = 20;
+	public static final int TEMPLATE_PARAMETER__MUST_BE_COMPATIBLE = 21;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Own Elements' of 'Template Signature'.
@@ -372,7 +371,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int TEMPLATE_SIGNATURE__OWN_ELEMENTS = 19;
+	public static final int TEMPLATE_SIGNATURE__OWN_ELEMENTS = 20;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Parameter Substitution Formal' of 'Template Binding'.
@@ -380,7 +379,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int TEMPLATE_BINDING__PARAMETER_SUBSTITUTION_FORMAL = 21;
+	public static final int TEMPLATE_BINDING__PARAMETER_SUBSTITUTION_FORMAL = 22;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate One Parameter Substitution' of 'Template Binding'.
@@ -388,7 +387,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int TEMPLATE_BINDING__ONE_PARAMETER_SUBSTITUTION = 22;
+	public static final int TEMPLATE_BINDING__ONE_PARAMETER_SUBSTITUTION = 23;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Must Be Compatible' of 'Template Parameter Substitution'.
@@ -396,7 +395,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int TEMPLATE_PARAMETER_SUBSTITUTION__MUST_BE_COMPATIBLE = 23;
+	public static final int TEMPLATE_PARAMETER_SUBSTITUTION__MUST_BE_COMPATIBLE = 24;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Members Distinguishable' of 'Namespace'.
@@ -412,7 +411,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int ELEMENT_IMPORT__VISIBILITY_PUBLIC_OR_PRIVATE = 28;
+	public static final int ELEMENT_IMPORT__VISIBILITY_PUBLIC_OR_PRIVATE = 27;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Imported Element Is Public' of 'Element Import'.
@@ -420,7 +419,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int ELEMENT_IMPORT__IMPORTED_ELEMENT_IS_PUBLIC = 27;
+	public static final int ELEMENT_IMPORT__IMPORTED_ELEMENT_IS_PUBLIC = 28;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Public Or Private' of 'Package Import'.
@@ -436,7 +435,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int PACKAGE__ELEMENTS_PUBLIC_OR_PRIVATE = 24;
+	public static final int PACKAGE__ELEMENTS_PUBLIC_OR_PRIVATE = 19;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Metaclass Reference Not Specialized' of 'Profile'.
@@ -460,7 +459,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int STEREOTYPE__NAME_NOT_CLASH = 5;
+	public static final int STEREOTYPE__NAME_NOT_CLASH = 4;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Association End Ownership' of 'Stereotype'.
@@ -468,7 +467,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int STEREOTYPE__ASSOCIATION_END_OWNERSHIP = 6;
+	public static final int STEREOTYPE__ASSOCIATION_END_OWNERSHIP = 3;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Generalize' of 'Stereotype'.
@@ -476,7 +475,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int STEREOTYPE__GENERALIZE = 4;
+	public static final int STEREOTYPE__GENERALIZE = 6;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Passive Class' of 'Class'.
@@ -492,7 +491,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int BEHAVIORED_CLASSIFIER__CLASS_BEHAVIOR = 8;
+	public static final int BEHAVIORED_CLASSIFIER__CLASS_BEHAVIOR = 64;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No Cycles In Generalization' of 'Classifier'.
@@ -500,7 +499,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CLASSIFIER__NO_CYCLES_IN_GENERALIZATION = 12;
+	public static final int CLASSIFIER__NO_CYCLES_IN_GENERALIZATION = 10;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Specialize Type' of 'Classifier'.
@@ -508,7 +507,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CLASSIFIER__SPECIALIZE_TYPE = 9;
+	public static final int CLASSIFIER__SPECIALIZE_TYPE = 11;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Maps To Generalization Set' of 'Classifier'.
@@ -516,7 +515,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CLASSIFIER__MAPS_TO_GENERALIZATION_SET = 10;
+	public static final int CLASSIFIER__MAPS_TO_GENERALIZATION_SET = 12;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Non Final Parents' of 'Classifier'.
@@ -524,7 +523,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CLASSIFIER__NON_FINAL_PARENTS = 11;
+	public static final int CLASSIFIER__NON_FINAL_PARENTS = 9;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Redefinition Context Valid' of 'Redefinable Element'.
@@ -532,7 +531,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int REDEFINABLE_ELEMENT__REDEFINITION_CONTEXT_VALID = 59;
+	public static final int REDEFINABLE_ELEMENT__REDEFINITION_CONTEXT_VALID = 51;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Redefinition Consistent' of 'Redefinable Element'.
@@ -540,7 +539,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int REDEFINABLE_ELEMENT__REDEFINITION_CONSISTENT = 57;
+	public static final int REDEFINABLE_ELEMENT__REDEFINITION_CONSISTENT = 49;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Non Leaf Redefinition' of 'Redefinable Element'.
@@ -548,7 +547,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int REDEFINABLE_ELEMENT__NON_LEAF_REDEFINITION = 58;
+	public static final int REDEFINABLE_ELEMENT__NON_LEAF_REDEFINITION = 50;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Generalization Same Classifier' of 'Generalization'.
@@ -556,7 +555,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int GENERALIZATION__GENERALIZATION_SAME_CLASSIFIER = 135;
+	public static final int GENERALIZATION__GENERALIZATION_SAME_CLASSIFIER = 131;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Generalization Same Classifier' of 'Generalization Set'.
@@ -564,7 +563,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int GENERALIZATION_SET__GENERALIZATION_SAME_CLASSIFIER = 136;
+	public static final int GENERALIZATION_SET__GENERALIZATION_SAME_CLASSIFIER = 133;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Maps To Generalization Set' of 'Generalization Set'.
@@ -572,7 +571,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int GENERALIZATION_SET__MAPS_TO_GENERALIZATION_SET = 137;
+	public static final int GENERALIZATION_SET__MAPS_TO_GENERALIZATION_SET = 132;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Must Have Name' of 'Use Case'.
@@ -580,7 +579,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int USE_CASE__MUST_HAVE_NAME = 142;
+	public static final int USE_CASE__MUST_HAVE_NAME = 135;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Binary Associations' of 'Use Case'.
@@ -588,7 +587,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int USE_CASE__BINARY_ASSOCIATIONS = 139;
+	public static final int USE_CASE__BINARY_ASSOCIATIONS = 137;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No Association To Use Case' of 'Use Case'.
@@ -596,7 +595,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int USE_CASE__NO_ASSOCIATION_TO_USE_CASE = 140;
+	public static final int USE_CASE__NO_ASSOCIATION_TO_USE_CASE = 138;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Cannot Include Self' of 'Use Case'.
@@ -604,7 +603,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int USE_CASE__CANNOT_INCLUDE_SELF = 141;
+	public static final int USE_CASE__CANNOT_INCLUDE_SELF = 136;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Extension Points' of 'Extend'.
@@ -612,7 +611,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int EXTEND__EXTENSION_POINTS = 143;
+	public static final int EXTEND__EXTENSION_POINTS = 139;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Not Apply To Self' of 'Constraint'.
@@ -620,7 +619,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CONSTRAINT__NOT_APPLY_TO_SELF = 74;
+	public static final int CONSTRAINT__NOT_APPLY_TO_SELF = 99;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Value Specification Boolean' of 'Constraint'.
@@ -628,7 +627,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CONSTRAINT__VALUE_SPECIFICATION_BOOLEAN = 75;
+	public static final int CONSTRAINT__VALUE_SPECIFICATION_BOOLEAN = 102;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Boolean Value' of 'Constraint'.
@@ -636,7 +635,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CONSTRAINT__BOOLEAN_VALUE = 72;
+	public static final int CONSTRAINT__BOOLEAN_VALUE = 101;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No Side Effects' of 'Constraint'.
@@ -644,7 +643,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CONSTRAINT__NO_SIDE_EFFECTS = 73;
+	public static final int CONSTRAINT__NO_SIDE_EFFECTS = 100;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Must Have Name' of 'Extension Point'.
@@ -652,7 +651,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int EXTENSION_POINT__MUST_HAVE_NAME = 144;
+	public static final int EXTENSION_POINT__MUST_HAVE_NAME = 140;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Language Body Size' of 'Opaque Expression'.
@@ -660,7 +659,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int OPAQUE_EXPRESSION__LANGUAGE_BODY_SIZE = 146;
+	public static final int OPAQUE_EXPRESSION__LANGUAGE_BODY_SIZE = 148;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Only Return Result Parameters' of 'Opaque Expression'.
@@ -668,7 +667,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int OPAQUE_EXPRESSION__ONLY_RETURN_RESULT_PARAMETERS = 148;
+	public static final int OPAQUE_EXPRESSION__ONLY_RETURN_RESULT_PARAMETERS = 146;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate One Return Result Parameter' of 'Opaque Expression'.
@@ -684,7 +683,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int PARAMETER__CONNECTOR_END = 66;
+	public static final int PARAMETER__CONNECTOR_END = 114;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Stream And Exception' of 'Parameter'.
@@ -692,7 +691,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int PARAMETER__STREAM_AND_EXCEPTION = 68;
+	public static final int PARAMETER__STREAM_AND_EXCEPTION = 117;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Not Exception' of 'Parameter'.
@@ -700,7 +699,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int PARAMETER__NOT_EXCEPTION = 65;
+	public static final int PARAMETER__NOT_EXCEPTION = 115;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Reentrant Behaviors' of 'Parameter'.
@@ -708,7 +707,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int PARAMETER__REENTRANT_BEHAVIORS = 67;
+	public static final int PARAMETER__REENTRANT_BEHAVIORS = 113;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate In And Out' of 'Parameter'.
@@ -716,7 +715,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int PARAMETER__IN_AND_OUT = 64;
+	public static final int PARAMETER__IN_AND_OUT = 116;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Lower Ge0' of 'Multiplicity Element'.
@@ -724,7 +723,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int MULTIPLICITY_ELEMENT__LOWER_GE0 = 50;
+	public static final int MULTIPLICITY_ELEMENT__LOWER_GE0 = 45;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Upper Ge Lower' of 'Multiplicity Element'.
@@ -732,7 +731,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int MULTIPLICITY_ELEMENT__UPPER_GE_LOWER = 49;
+	public static final int MULTIPLICITY_ELEMENT__UPPER_GE_LOWER = 46;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Value Specification No Side Effects' of 'Multiplicity Element'.
@@ -740,7 +739,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int MULTIPLICITY_ELEMENT__VALUE_SPECIFICATION_NO_SIDE_EFFECTS = 51;
+	public static final int MULTIPLICITY_ELEMENT__VALUE_SPECIFICATION_NO_SIDE_EFFECTS = 48;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Value Specification Constant' of 'Multiplicity Element'.
@@ -748,7 +747,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int MULTIPLICITY_ELEMENT__VALUE_SPECIFICATION_CONSTANT = 52;
+	public static final int MULTIPLICITY_ELEMENT__VALUE_SPECIFICATION_CONSTANT = 47;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity' of 'Connector End'.
@@ -756,7 +755,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CONNECTOR_END__MULTIPLICITY = 47;
+	public static final int CONNECTOR_END__MULTIPLICITY = 54;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Part With Port Empty' of 'Connector End'.
@@ -764,7 +763,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CONNECTOR_END__PART_WITH_PORT_EMPTY = 46;
+	public static final int CONNECTOR_END__PART_WITH_PORT_EMPTY = 55;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Role And Part With Port' of 'Connector End'.
@@ -772,7 +771,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CONNECTOR_END__ROLE_AND_PART_WITH_PORT = 45;
+	public static final int CONNECTOR_END__ROLE_AND_PART_WITH_PORT = 52;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Self Part With Port' of 'Connector End'.
@@ -780,7 +779,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CONNECTOR_END__SELF_PART_WITH_PORT = 48;
+	public static final int CONNECTOR_END__SELF_PART_WITH_PORT = 53;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity Of Composite' of 'Property'.
@@ -796,7 +795,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int PROPERTY__SUBSETTING_CONTEXT_CONFORMS = 36;
+	public static final int PROPERTY__SUBSETTING_CONTEXT_CONFORMS = 41;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Redefined Property Inherited' of 'Property'.
@@ -804,7 +803,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int PROPERTY__REDEFINED_PROPERTY_INHERITED = 39;
+	public static final int PROPERTY__REDEFINED_PROPERTY_INHERITED = 40;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Subsetting Rules' of 'Property'.
@@ -812,7 +811,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int PROPERTY__SUBSETTING_RULES = 40;
+	public static final int PROPERTY__SUBSETTING_RULES = 37;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Derived Union Is Derived' of 'Property'.
@@ -820,7 +819,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int PROPERTY__DERIVED_UNION_IS_DERIVED = 42;
+	public static final int PROPERTY__DERIVED_UNION_IS_DERIVED = 43;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Derived Union Is Read Only' of 'Property'.
@@ -828,7 +827,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int PROPERTY__DERIVED_UNION_IS_READ_ONLY = 37;
+	public static final int PROPERTY__DERIVED_UNION_IS_READ_ONLY = 44;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Subsetted Property Names' of 'Property'.
@@ -836,7 +835,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int PROPERTY__SUBSETTED_PROPERTY_NAMES = 44;
+	public static final int PROPERTY__SUBSETTED_PROPERTY_NAMES = 36;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Deployment Target' of 'Property'.
@@ -844,7 +843,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int PROPERTY__DEPLOYMENT_TARGET = 43;
+	public static final int PROPERTY__DEPLOYMENT_TARGET = 42;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Binding To Attribute' of 'Property'.
@@ -852,7 +851,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int PROPERTY__BINDING_TO_ATTRIBUTE = 41;
+	public static final int PROPERTY__BINDING_TO_ATTRIBUTE = 39;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Deployed Elements' of 'Deployment Specification'.
@@ -860,7 +859,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int DEPLOYMENT_SPECIFICATION__DEPLOYED_ELEMENTS = 54;
+	public static final int DEPLOYMENT_SPECIFICATION__DEPLOYED_ELEMENTS = 56;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Deployment Target' of 'Deployment Specification'.
@@ -868,7 +867,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int DEPLOYMENT_SPECIFICATION__DEPLOYMENT_TARGET = 53;
+	public static final int DEPLOYMENT_SPECIFICATION__DEPLOYMENT_TARGET = 57;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate At Most One Return' of 'Operation'.
@@ -876,7 +875,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int OPERATION__AT_MOST_ONE_RETURN = 55;
+	public static final int OPERATION__AT_MOST_ONE_RETURN = 58;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Only Body For Query' of 'Operation'.
@@ -884,7 +883,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int OPERATION__ONLY_BODY_FOR_QUERY = 56;
+	public static final int OPERATION__ONLY_BODY_FOR_QUERY = 59;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Parameters Match' of 'Behavior'.
@@ -892,7 +891,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int BEHAVIOR__PARAMETERS_MATCH = 62;
+	public static final int BEHAVIOR__PARAMETERS_MATCH = 60;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Feature Of Context Classifier' of 'Behavior'.
@@ -900,7 +899,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int BEHAVIOR__FEATURE_OF_CONTEXT_CLASSIFIER = 63;
+	public static final int BEHAVIOR__FEATURE_OF_CONTEXT_CLASSIFIER = 61;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Must Realize' of 'Behavior'.
@@ -908,7 +907,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int BEHAVIOR__MUST_REALIZE = 61;
+	public static final int BEHAVIOR__MUST_REALIZE = 62;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Most One Behaviour' of 'Behavior'.
@@ -916,7 +915,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int BEHAVIOR__MOST_ONE_BEHAVIOUR = 60;
+	public static final int BEHAVIOR__MOST_ONE_BEHAVIOUR = 63;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Same Parameterized Entity' of 'Parameter Set'.
@@ -924,7 +923,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int PARAMETER_SET__SAME_PARAMETERIZED_ENTITY = 69;
+	public static final int PARAMETER_SET__SAME_PARAMETERIZED_ENTITY = 120;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Input' of 'Parameter Set'.
@@ -932,7 +931,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int PARAMETER_SET__INPUT = 70;
+	public static final int PARAMETER_SET__INPUT = 119;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Two Parameter Sets' of 'Parameter Set'.
@@ -940,7 +939,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int PARAMETER_SET__TWO_PARAMETER_SETS = 71;
+	public static final int PARAMETER_SET__TWO_PARAMETER_SETS = 118;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Visibility' of 'Interface'.
@@ -948,7 +947,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int INTERFACE__VISIBILITY = 76;
+	public static final int INTERFACE__VISIBILITY = 65;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Not Query' of 'Reception'.
@@ -956,7 +955,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int RECEPTION__NOT_QUERY = 77;
+	public static final int RECEPTION__NOT_QUERY = 66;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Protocol Transitions' of 'Protocol State Machine'.
@@ -964,7 +963,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int PROTOCOL_STATE_MACHINE__PROTOCOL_TRANSITIONS = 81;
+	public static final int PROTOCOL_STATE_MACHINE__PROTOCOL_TRANSITIONS = 68;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Entry Exit Do' of 'Protocol State Machine'.
@@ -972,7 +971,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int PROTOCOL_STATE_MACHINE__ENTRY_EXIT_DO = 79;
+	public static final int PROTOCOL_STATE_MACHINE__ENTRY_EXIT_DO = 67;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Deep Or Shallow History' of 'Protocol State Machine'.
@@ -980,7 +979,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int PROTOCOL_STATE_MACHINE__DEEP_OR_SHALLOW_HISTORY = 78;
+	public static final int PROTOCOL_STATE_MACHINE__DEEP_OR_SHALLOW_HISTORY = 69;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Ports Connected' of 'Protocol State Machine'.
@@ -988,7 +987,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int PROTOCOL_STATE_MACHINE__PORTS_CONNECTED = 80;
+	public static final int PROTOCOL_STATE_MACHINE__PORTS_CONNECTED = 70;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Classifier Context' of 'Protocol State Machine'.
@@ -996,7 +995,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int PROTOCOL_STATE_MACHINE__CLASSIFIER_CONTEXT = 82;
+	public static final int PROTOCOL_STATE_MACHINE__CLASSIFIER_CONTEXT = 71;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Classifier Context' of 'State Machine'.
@@ -1004,7 +1003,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int STATE_MACHINE__CLASSIFIER_CONTEXT = 84;
+	public static final int STATE_MACHINE__CLASSIFIER_CONTEXT = 73;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Context Classifier' of 'State Machine'.
@@ -1012,7 +1011,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int STATE_MACHINE__CONTEXT_CLASSIFIER = 86;
+	public static final int STATE_MACHINE__CONTEXT_CLASSIFIER = 74;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Connection Points' of 'State Machine'.
@@ -1020,7 +1019,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int STATE_MACHINE__CONNECTION_POINTS = 83;
+	public static final int STATE_MACHINE__CONNECTION_POINTS = 75;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Method' of 'State Machine'.
@@ -1028,7 +1027,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int STATE_MACHINE__METHOD = 85;
+	public static final int STATE_MACHINE__METHOD = 72;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Initial Vertex' of 'Region'.
@@ -1036,7 +1035,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int REGION__INITIAL_VERTEX = 99;
+	public static final int REGION__INITIAL_VERTEX = 87;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Deep History Vertex' of 'Region'.
@@ -1044,7 +1043,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int REGION__DEEP_HISTORY_VERTEX = 96;
+	public static final int REGION__DEEP_HISTORY_VERTEX = 86;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Shallow History Vertex' of 'Region'.
@@ -1052,7 +1051,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int REGION__SHALLOW_HISTORY_VERTEX = 97;
+	public static final int REGION__SHALLOW_HISTORY_VERTEX = 85;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Owned' of 'Region'.
@@ -1060,7 +1059,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int REGION__OWNED = 98;
+	public static final int REGION__OWNED = 88;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Fork Segment Guards' of 'Transition'.
@@ -1068,7 +1067,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int TRANSITION__FORK_SEGMENT_GUARDS = 119;
+	public static final int TRANSITION__FORK_SEGMENT_GUARDS = 104;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Join Segment Guards' of 'Transition'.
@@ -1076,7 +1075,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int TRANSITION__JOIN_SEGMENT_GUARDS = 111;
+	public static final int TRANSITION__JOIN_SEGMENT_GUARDS = 110;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate State Is Internal' of 'Transition'.
@@ -1084,7 +1083,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int TRANSITION__STATE_IS_INTERNAL = 112;
+	public static final int TRANSITION__STATE_IS_INTERNAL = 109;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Fork Segment State' of 'Transition'.
@@ -1092,7 +1091,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int TRANSITION__FORK_SEGMENT_STATE = 115;
+	public static final int TRANSITION__FORK_SEGMENT_STATE = 111;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Join Segment State' of 'Transition'.
@@ -1100,7 +1099,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int TRANSITION__JOIN_SEGMENT_STATE = 114;
+	public static final int TRANSITION__JOIN_SEGMENT_STATE = 105;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Outgoing Pseudostates' of 'Transition'.
@@ -1108,7 +1107,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int TRANSITION__OUTGOING_PSEUDOSTATES = 113;
+	public static final int TRANSITION__OUTGOING_PSEUDOSTATES = 107;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Initial Transition' of 'Transition'.
@@ -1116,7 +1115,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int TRANSITION__INITIAL_TRANSITION = 118;
+	public static final int TRANSITION__INITIAL_TRANSITION = 106;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Signatures Compatible' of 'Transition'.
@@ -1124,7 +1123,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int TRANSITION__SIGNATURES_COMPATIBLE = 116;
+	public static final int TRANSITION__SIGNATURES_COMPATIBLE = 108;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate State Is Local' of 'Transition'.
@@ -1132,7 +1131,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int TRANSITION__STATE_IS_LOCAL = 117;
+	public static final int TRANSITION__STATE_IS_LOCAL = 103;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Port Aggregation' of 'Port'.
@@ -1140,7 +1139,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int PORT__PORT_AGGREGATION = 108;
+	public static final int PORT__PORT_AGGREGATION = 97;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Port Destroyed' of 'Port'.
@@ -1148,7 +1147,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int PORT__PORT_DESTROYED = 107;
+	public static final int PORT__PORT_DESTROYED = 98;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Default Value' of 'Port'.
@@ -1156,7 +1155,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int PORT__DEFAULT_VALUE = 109;
+	public static final int PORT__DEFAULT_VALUE = 96;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate State Is External' of 'Transition'.
@@ -1164,7 +1163,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int TRANSITION__STATE_IS_EXTERNAL = 110;
+	public static final int TRANSITION__STATE_IS_EXTERNAL = 112;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Submachine States' of 'State'.
@@ -1172,7 +1171,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int STATE__SUBMACHINE_STATES = 101;
+	public static final int STATE__SUBMACHINE_STATES = 93;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Destinations Or Sources Of Transitions' of 'State'.
@@ -1180,7 +1179,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int STATE__DESTINATIONS_OR_SOURCES_OF_TRANSITIONS = 103;
+	public static final int STATE__DESTINATIONS_OR_SOURCES_OF_TRANSITIONS = 91;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Submachine Or Regions' of 'State'.
@@ -1188,7 +1187,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int STATE__SUBMACHINE_OR_REGIONS = 104;
+	public static final int STATE__SUBMACHINE_OR_REGIONS = 92;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Composite States' of 'State'.
@@ -1196,7 +1195,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int STATE__COMPOSITE_STATES = 102;
+	public static final int STATE__COMPOSITE_STATES = 90;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Entry Or Exit' of 'State'.
@@ -1204,7 +1203,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int STATE__ENTRY_OR_EXIT = 100;
+	public static final int STATE__ENTRY_OR_EXIT = 89;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Entry Pseudostates' of 'Connection Point Reference'.
@@ -1212,7 +1211,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CONNECTION_POINT_REFERENCE__ENTRY_PSEUDOSTATES = 106;
+	public static final int CONNECTION_POINT_REFERENCE__ENTRY_PSEUDOSTATES = 94;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Exit Pseudostates' of 'Connection Point Reference'.
@@ -1220,7 +1219,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CONNECTION_POINT_REFERENCE__EXIT_PSEUDOSTATES = 105;
+	public static final int CONNECTION_POINT_REFERENCE__EXIT_PSEUDOSTATES = 95;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Initial Vertex' of 'Pseudostate'.
@@ -1228,7 +1227,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int PSEUDOSTATE__INITIAL_VERTEX = 93;
+	public static final int PSEUDOSTATE__INITIAL_VERTEX = 83;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate History Vertices' of 'Pseudostate'.
@@ -1236,7 +1235,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int PSEUDOSTATE__HISTORY_VERTICES = 92;
+	public static final int PSEUDOSTATE__HISTORY_VERTICES = 77;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Join Vertex' of 'Pseudostate'.
@@ -1244,7 +1243,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int PSEUDOSTATE__JOIN_VERTEX = 90;
+	public static final int PSEUDOSTATE__JOIN_VERTEX = 81;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Transitions Incoming' of 'Pseudostate'.
@@ -1252,7 +1251,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int PSEUDOSTATE__TRANSITIONS_INCOMING = 95;
+	public static final int PSEUDOSTATE__TRANSITIONS_INCOMING = 84;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Fork Vertex' of 'Pseudostate'.
@@ -1260,7 +1259,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int PSEUDOSTATE__FORK_VERTEX = 94;
+	public static final int PSEUDOSTATE__FORK_VERTEX = 80;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Transitions Outgoing' of 'Pseudostate'.
@@ -1268,7 +1267,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int PSEUDOSTATE__TRANSITIONS_OUTGOING = 87;
+	public static final int PSEUDOSTATE__TRANSITIONS_OUTGOING = 78;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Junction Vertex' of 'Pseudostate'.
@@ -1276,7 +1275,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int PSEUDOSTATE__JUNCTION_VERTEX = 91;
+	public static final int PSEUDOSTATE__JUNCTION_VERTEX = 76;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Choice Vertex' of 'Pseudostate'.
@@ -1284,7 +1283,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int PSEUDOSTATE__CHOICE_VERTEX = 88;
+	public static final int PSEUDOSTATE__CHOICE_VERTEX = 82;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Outgoing From Initial' of 'Pseudostate'.
@@ -1292,7 +1291,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int PSEUDOSTATE__OUTGOING_FROM_INITIAL = 89;
+	public static final int PSEUDOSTATE__OUTGOING_FROM_INITIAL = 79;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Specialized End Number' of 'Association'.
@@ -1308,7 +1307,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int ASSOCIATION__SPECIALIZED_END_TYPES = 33;
+	public static final int ASSOCIATION__SPECIALIZED_END_TYPES = 35;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Binary Associations' of 'Association'.
@@ -1324,7 +1323,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int ASSOCIATION__ASSOCIATION_ENDS = 35;
+	public static final int ASSOCIATION__ASSOCIATION_ENDS = 33;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Client Elements' of 'Collaboration Use'.
@@ -1332,7 +1331,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int COLLABORATION_USE__CLIENT_ELEMENTS = 127;
+	public static final int COLLABORATION_USE__CLIENT_ELEMENTS = 130;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Every Role' of 'Collaboration Use'.
@@ -1340,7 +1339,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int COLLABORATION_USE__EVERY_ROLE = 128;
+	public static final int COLLABORATION_USE__EVERY_ROLE = 129;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Connectors' of 'Collaboration Use'.
@@ -1348,7 +1347,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int COLLABORATION_USE__CONNECTORS = 129;
+	public static final int COLLABORATION_USE__CONNECTORS = 128;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicities' of 'Structured Classifier'.
@@ -1356,7 +1355,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int STRUCTURED_CLASSIFIER__MULTIPLICITIES = 130;
+	public static final int STRUCTURED_CLASSIFIER__MULTIPLICITIES = 8;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Types' of 'Connector'.
@@ -1364,7 +1363,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CONNECTOR__TYPES = 131;
+	public static final int CONNECTOR__TYPES = 145;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Compatible' of 'Connector'.
@@ -1372,7 +1371,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CONNECTOR__COMPATIBLE = 134;
+	public static final int CONNECTOR__COMPATIBLE = 142;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Roles' of 'Connector'.
@@ -1380,7 +1379,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CONNECTOR__ROLES = 132;
+	public static final int CONNECTOR__ROLES = 143;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Between Interfaces Ports' of 'Connector'.
@@ -1388,7 +1387,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CONNECTOR__BETWEEN_INTERFACES_PORTS = 133;
+	public static final int CONNECTOR__BETWEEN_INTERFACES_PORTS = 144;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Inherited Parameters' of 'Redefinable Template Signature'.
@@ -1396,7 +1395,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int REDEFINABLE_TEMPLATE_SIGNATURE__INHERITED_PARAMETERS = 138;
+	public static final int REDEFINABLE_TEMPLATE_SIGNATURE__INHERITED_PARAMETERS = 134;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Has Constraining Classifier' of 'Classifier Template Parameter'.
@@ -1404,7 +1403,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CLASSIFIER_TEMPLATE_PARAMETER__HAS_CONSTRAINING_CLASSIFIER = 145;
+	public static final int CLASSIFIER_TEMPLATE_PARAMETER__HAS_CONSTRAINING_CLASSIFIER = 141;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Non Owned End' of 'Extension'.
@@ -1428,7 +1427,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int EXTENSION_END__MULTIPLICITY = 120;
+	public static final int EXTENSION_END__MULTIPLICITY = 121;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Aggregation' of 'Extension End'.
@@ -1436,7 +1435,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int EXTENSION_END__AGGREGATION = 121;
+	public static final int EXTENSION_END__AGGREGATION = 122;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Classifier Equals Owning Enumeration' of 'Enumeration Literal'.
@@ -1444,7 +1443,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int ENUMERATION_LITERAL__CLASSIFIER_EQUALS_OWNING_ENUMERATION = 122;
+	public static final int ENUMERATION_LITERAL__CLASSIFIER_EQUALS_OWNING_ENUMERATION = 123;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Operands' of 'String Expression'.
@@ -1452,7 +1451,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int STRING_EXPRESSION__OPERANDS = 17;
+	public static final int STRING_EXPRESSION__OPERANDS = 18;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Subexpressions' of 'String Expression'.
@@ -1460,7 +1459,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int STRING_EXPRESSION__SUBEXPRESSIONS = 18;
+	public static final int STRING_EXPRESSION__SUBEXPRESSIONS = 17;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Defining Feature' of 'Instance Specification'.
@@ -1492,7 +1491,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int INSTANCE_SPECIFICATION__DEPLOYMENT_ARTIFACT = 123;
+	public static final int INSTANCE_SPECIFICATION__DEPLOYMENT_ARTIFACT = 127;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate One Output Parameter' of 'Function Behavior'.
@@ -1532,7 +1531,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__REQUIRED_VALUE = 231;
+	public static final int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__REQUIRED_VALUE = 232;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Sending Receiving Message Event' of 'Message'.
@@ -1548,7 +1547,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int MESSAGE__SIGNATURE_REFER_TO = 207;
+	public static final int MESSAGE__SIGNATURE_REFER_TO = 208;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Signature Is Operation' of 'Message'.
@@ -1556,7 +1555,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int MESSAGE__SIGNATURE_IS_OPERATION = 208;
+	public static final int MESSAGE__SIGNATURE_IS_OPERATION = 205;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Signature Is Signal' of 'Message'.
@@ -1564,7 +1563,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int MESSAGE__SIGNATURE_IS_SIGNAL = 205;
+	public static final int MESSAGE__SIGNATURE_IS_SIGNAL = 204;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Arguments' of 'Message'.
@@ -1572,7 +1571,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int MESSAGE__ARGUMENTS = 203;
+	public static final int MESSAGE__ARGUMENTS = 206;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Cannot Cross Boundaries' of 'Message'.
@@ -1580,7 +1579,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int MESSAGE__CANNOT_CROSS_BOUNDARIES = 204;
+	public static final int MESSAGE__CANNOT_CROSS_BOUNDARIES = 207;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Occurrence Specifications' of 'Message'.
@@ -1588,7 +1587,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int MESSAGE__OCCURRENCE_SPECIFICATIONS = 206;
+	public static final int MESSAGE__OCCURRENCE_SPECIFICATIONS = 203;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Interaction Uses Share Lifeline' of 'Lifeline'.
@@ -1596,7 +1595,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int LIFELINE__INTERACTION_USES_SHARE_LIFELINE = 189;
+	public static final int LIFELINE__INTERACTION_USES_SHARE_LIFELINE = 188;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Selector Specified' of 'Lifeline'.
@@ -1604,7 +1603,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int LIFELINE__SELECTOR_SPECIFIED = 188;
+	public static final int LIFELINE__SELECTOR_SPECIFIED = 190;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Same Classifier' of 'Lifeline'.
@@ -1612,7 +1611,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int LIFELINE__SAME_CLASSIFIER = 190;
+	public static final int LIFELINE__SAME_CLASSIFIER = 189;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Parts Of Internal Structures' of 'Part Decomposition'.
@@ -1620,7 +1619,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int PART_DECOMPOSITION__PARTS_OF_INTERNAL_STRUCTURES = 193;
+	public static final int PART_DECOMPOSITION__PARTS_OF_INTERNAL_STRUCTURES = 191;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Assume' of 'Part Decomposition'.
@@ -1636,7 +1635,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int PART_DECOMPOSITION__COMMUTATIVITY_OF_DECOMPOSITION = 191;
+	public static final int PART_DECOMPOSITION__COMMUTATIVITY_OF_DECOMPOSITION = 193;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Gates Match' of 'Interaction Use'.
@@ -1644,7 +1643,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int INTERACTION_USE__GATES_MATCH = 194;
+	public static final int INTERACTION_USE__GATES_MATCH = 197;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate All Lifelines' of 'Interaction Use'.
@@ -1652,7 +1651,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int INTERACTION_USE__ALL_LIFELINES = 199;
+	public static final int INTERACTION_USE__ALL_LIFELINES = 194;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Arguments Correspond To Parameters' of 'Interaction Use'.
@@ -1660,7 +1659,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int INTERACTION_USE__ARGUMENTS_CORRESPOND_TO_PARAMETERS = 197;
+	public static final int INTERACTION_USE__ARGUMENTS_CORRESPOND_TO_PARAMETERS = 196;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Return Value Type Recipient Correspondence' of 'Interaction Use'.
@@ -1668,7 +1667,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int INTERACTION_USE__RETURN_VALUE_TYPE_RECIPIENT_CORRESPONDENCE = 198;
+	public static final int INTERACTION_USE__RETURN_VALUE_TYPE_RECIPIENT_CORRESPONDENCE = 199;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Arguments Are Constants' of 'Interaction Use'.
@@ -1676,7 +1675,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int INTERACTION_USE__ARGUMENTS_ARE_CONSTANTS = 195;
+	public static final int INTERACTION_USE__ARGUMENTS_ARE_CONSTANTS = 198;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Return Value Recipient Coverage' of 'Interaction Use'.
@@ -1684,7 +1683,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int INTERACTION_USE__RETURN_VALUE_RECIPIENT_COVERAGE = 196;
+	public static final int INTERACTION_USE__RETURN_VALUE_RECIPIENT_COVERAGE = 195;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Messages Actual Gate' of 'Gate'.
@@ -1724,7 +1723,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int ACTIVITY_EDGE__SOURCE_AND_TARGET = 162;
+	public static final int ACTIVITY_EDGE__SOURCE_AND_TARGET = 165;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Owned' of 'Activity Edge'.
@@ -1732,7 +1731,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int ACTIVITY_EDGE__OWNED = 161;
+	public static final int ACTIVITY_EDGE__OWNED = 164;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Structured Node' of 'Activity Edge'.
@@ -1740,7 +1739,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int ACTIVITY_EDGE__STRUCTURED_NODE = 163;
+	public static final int ACTIVITY_EDGE__STRUCTURED_NODE = 166;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No Supergroups' of 'Activity'.
@@ -1748,7 +1747,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int ACTIVITY__NO_SUPERGROUPS = 159;
+	public static final int ACTIVITY__NO_SUPERGROUPS = 160;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Activity Parameter Node' of 'Activity'.
@@ -1756,7 +1755,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int ACTIVITY__ACTIVITY_PARAMETER_NODE = 160;
+	public static final int ACTIVITY__ACTIVITY_PARAMETER_NODE = 158;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Autonomous' of 'Activity'.
@@ -1764,7 +1763,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int ACTIVITY__AUTONOMOUS = 158;
+	public static final int ACTIVITY__AUTONOMOUS = 159;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Dimension Not Contained' of 'Activity Partition'.
@@ -1780,7 +1779,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int STRUCTURED_ACTIVITY_NODE__OUTPUT_PIN_EDGES = 171;
+	public static final int STRUCTURED_ACTIVITY_NODE__OUTPUT_PIN_EDGES = 173;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Represents Part' of 'Activity Partition'.
@@ -1788,7 +1787,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int ACTIVITY_PARTITION__REPRESENTS_PART = 169;
+	public static final int ACTIVITY_PARTITION__REPRESENTS_PART = 167;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Represents Classifier' of 'Activity Partition'.
@@ -1796,7 +1795,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int ACTIVITY_PARTITION__REPRESENTS_CLASSIFIER = 167;
+	public static final int ACTIVITY_PARTITION__REPRESENTS_CLASSIFIER = 168;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Represents Part And Is Contained' of 'Activity Partition'.
@@ -1804,7 +1803,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int ACTIVITY_PARTITION__REPRESENTS_PART_AND_IS_CONTAINED = 168;
+	public static final int ACTIVITY_PARTITION__REPRESENTS_PART_AND_IS_CONTAINED = 169;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Nodes And Edges' of 'Activity Group'.
@@ -1812,7 +1811,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int ACTIVITY_GROUP__NODES_AND_EDGES = 164;
+	public static final int ACTIVITY_GROUP__NODES_AND_EDGES = 163;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Not Contained' of 'Activity Group'.
@@ -1820,7 +1819,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int ACTIVITY_GROUP__NOT_CONTAINED = 166;
+	public static final int ACTIVITY_GROUP__NOT_CONTAINED = 162;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Group Owned' of 'Activity Group'.
@@ -1828,7 +1827,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int ACTIVITY_GROUP__GROUP_OWNED = 165;
+	public static final int ACTIVITY_GROUP__GROUP_OWNED = 161;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Edges' of 'Structured Activity Node'.
@@ -1844,7 +1843,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int STRUCTURED_ACTIVITY_NODE__INPUT_PIN_EDGES = 173;
+	public static final int STRUCTURED_ACTIVITY_NODE__INPUT_PIN_EDGES = 171;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Owned' of 'Variable'.
@@ -1868,7 +1867,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int EXCEPTION_HANDLER__EXCEPTION_BODY = 182;
+	public static final int EXCEPTION_HANDLER__EXCEPTION_BODY = 185;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Result Pins' of 'Exception Handler'.
@@ -1876,7 +1875,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int EXCEPTION_HANDLER__RESULT_PINS = 183;
+	public static final int EXCEPTION_HANDLER__RESULT_PINS = 184;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate One Input' of 'Exception Handler'.
@@ -1884,7 +1883,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int EXCEPTION_HANDLER__ONE_INPUT = 184;
+	public static final int EXCEPTION_HANDLER__ONE_INPUT = 182;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Edge Source Target' of 'Exception Handler'.
@@ -1892,7 +1891,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int EXCEPTION_HANDLER__EDGE_SOURCE_TARGET = 185;
+	public static final int EXCEPTION_HANDLER__EDGE_SOURCE_TARGET = 183;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Object Flow Edges' of 'Object Node'.
@@ -1900,7 +1899,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int OBJECT_NODE__OBJECT_FLOW_EDGES = 178;
+	public static final int OBJECT_NODE__OBJECT_FLOW_EDGES = 176;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Selection Behavior' of 'Object Node'.
@@ -1916,7 +1915,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int OBJECT_NODE__INPUT_OUTPUT_PARAMETER = 176;
+	public static final int OBJECT_NODE__INPUT_OUTPUT_PARAMETER = 178;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Incoming Edges Structured Only' of 'Output Pin'.
@@ -1948,7 +1947,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int INTERACTION_OPERAND__GUARD_DIRECTLY_PRIOR = 210;
+	public static final int INTERACTION_OPERAND__GUARD_DIRECTLY_PRIOR = 209;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Guard Contain References' of 'Interaction Operand'.
@@ -1956,7 +1955,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int INTERACTION_OPERAND__GUARD_CONTAIN_REFERENCES = 209;
+	public static final int INTERACTION_OPERAND__GUARD_CONTAIN_REFERENCES = 210;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Dynamic Variables' of 'Interaction Constraint'.
@@ -1964,7 +1963,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int INTERACTION_CONSTRAINT__DYNAMIC_VARIABLES = 214;
+	public static final int INTERACTION_CONSTRAINT__DYNAMIC_VARIABLES = 216;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Global Data' of 'Interaction Constraint'.
@@ -1972,7 +1971,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int INTERACTION_CONSTRAINT__GLOBAL_DATA = 215;
+	public static final int INTERACTION_CONSTRAINT__GLOBAL_DATA = 214;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Minint Maxint' of 'Interaction Constraint'.
@@ -1980,7 +1979,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int INTERACTION_CONSTRAINT__MININT_MAXINT = 211;
+	public static final int INTERACTION_CONSTRAINT__MININT_MAXINT = 212;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Minint Non Negative' of 'Interaction Constraint'.
@@ -1988,7 +1987,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int INTERACTION_CONSTRAINT__MININT_NON_NEGATIVE = 212;
+	public static final int INTERACTION_CONSTRAINT__MININT_NON_NEGATIVE = 213;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Maxint Positive' of 'Interaction Constraint'.
@@ -1996,7 +1995,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int INTERACTION_CONSTRAINT__MAXINT_POSITIVE = 213;
+	public static final int INTERACTION_CONSTRAINT__MAXINT_POSITIVE = 211;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Maxint Greater Equal Minint' of 'Interaction Constraint'.
@@ -2004,7 +2003,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int INTERACTION_CONSTRAINT__MAXINT_GREATER_EQUAL_MININT = 216;
+	public static final int INTERACTION_CONSTRAINT__MAXINT_GREATER_EQUAL_MININT = 215;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Irreflexsive Transitive Closure' of 'General Ordering'.
@@ -2036,7 +2035,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int COMBINED_FRAGMENT__OPT_LOOP_BREAK_NEG = 272;
+	public static final int COMBINED_FRAGMENT__OPT_LOOP_BREAK_NEG = 270;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Minint And Maxint' of 'Combined Fragment'.
@@ -2044,7 +2043,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int COMBINED_FRAGMENT__MININT_AND_MAXINT = 269;
+	public static final int COMBINED_FRAGMENT__MININT_AND_MAXINT = 272;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Break' of 'Combined Fragment'.
@@ -2052,7 +2051,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int COMBINED_FRAGMENT__BREAK = 270;
+	public static final int COMBINED_FRAGMENT__BREAK = 269;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Consider And Ignore' of 'Combined Fragment'.
@@ -2068,7 +2067,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CONTINUATION__SAME_NAME = 285;
+	public static final int CONTINUATION__SAME_NAME = 284;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Global' of 'Continuation'.
@@ -2084,7 +2083,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CONTINUATION__FIRST_OR_LAST_INTERACTION_FRAGMENT = 284;
+	public static final int CONTINUATION__FIRST_OR_LAST_INTERACTION_FRAGMENT = 285;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Consider Or Ignore' of 'Consider Ignore Fragment'.
@@ -2092,7 +2091,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CONSIDER_IGNORE_FRAGMENT__CONSIDER_OR_IGNORE = 282;
+	public static final int CONSIDER_IGNORE_FRAGMENT__CONSIDER_OR_IGNORE = 283;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Type' of 'Consider Ignore Fragment'.
@@ -2100,7 +2099,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CONSIDER_IGNORE_FRAGMENT__TYPE = 283;
+	public static final int CONSIDER_IGNORE_FRAGMENT__TYPE = 282;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Classifier Not Abstract' of 'Create Object Action'.
@@ -2108,7 +2107,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CREATE_OBJECT_ACTION__CLASSIFIER_NOT_ABSTRACT = 306;
+	public static final int CREATE_OBJECT_ACTION__CLASSIFIER_NOT_ABSTRACT = 307;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Classifier Not Association Class' of 'Create Object Action'.
@@ -2116,7 +2115,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CREATE_OBJECT_ACTION__CLASSIFIER_NOT_ASSOCIATION_CLASS = 308;
+	public static final int CREATE_OBJECT_ACTION__CLASSIFIER_NOT_ASSOCIATION_CLASS = 306;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Same Type' of 'Create Object Action'.
@@ -2124,7 +2123,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CREATE_OBJECT_ACTION__SAME_TYPE = 309;
+	public static final int CREATE_OBJECT_ACTION__SAME_TYPE = 308;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity' of 'Create Object Action'.
@@ -2132,7 +2131,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CREATE_OBJECT_ACTION__MULTIPLICITY = 307;
+	public static final int CREATE_OBJECT_ACTION__MULTIPLICITY = 309;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity' of 'Destroy Object Action'.
@@ -2204,7 +2203,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int READ_SELF_ACTION__TYPE = 394;
+	public static final int READ_SELF_ACTION__TYPE = 392;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity' of 'Read Self Action'.
@@ -2212,7 +2211,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int READ_SELF_ACTION__MULTIPLICITY = 392;
+	public static final int READ_SELF_ACTION__MULTIPLICITY = 394;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Not Static' of 'Structural Feature Action'.
@@ -2220,7 +2219,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int STRUCTURAL_FEATURE_ACTION__NOT_STATIC = 240;
+	public static final int STRUCTURAL_FEATURE_ACTION__NOT_STATIC = 239;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Same Type' of 'Structural Feature Action'.
@@ -2228,7 +2227,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int STRUCTURAL_FEATURE_ACTION__SAME_TYPE = 238;
+	public static final int STRUCTURAL_FEATURE_ACTION__SAME_TYPE = 241;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity' of 'Structural Feature Action'.
@@ -2236,7 +2235,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int STRUCTURAL_FEATURE_ACTION__MULTIPLICITY = 237;
+	public static final int STRUCTURAL_FEATURE_ACTION__MULTIPLICITY = 238;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Visibility' of 'Structural Feature Action'.
@@ -2244,7 +2243,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int STRUCTURAL_FEATURE_ACTION__VISIBILITY = 239;
+	public static final int STRUCTURAL_FEATURE_ACTION__VISIBILITY = 237;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate One Featuring Classifier' of 'Structural Feature Action'.
@@ -2252,7 +2251,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int STRUCTURAL_FEATURE_ACTION__ONE_FEATURING_CLASSIFIER = 241;
+	public static final int STRUCTURAL_FEATURE_ACTION__ONE_FEATURING_CLASSIFIER = 240;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Required Value' of 'Add Variable Value Action'.
@@ -2284,7 +2283,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int WRITE_STRUCTURAL_FEATURE_ACTION__INPUT_PIN = 234;
+	public static final int WRITE_STRUCTURAL_FEATURE_ACTION__INPUT_PIN = 233;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Type Of Result' of 'Write Structural Feature Action'.
@@ -2292,7 +2291,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int WRITE_STRUCTURAL_FEATURE_ACTION__TYPE_OF_RESULT = 235;
+	public static final int WRITE_STRUCTURAL_FEATURE_ACTION__TYPE_OF_RESULT = 234;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity Of Result' of 'Write Structural Feature Action'.
@@ -2300,7 +2299,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int WRITE_STRUCTURAL_FEATURE_ACTION__MULTIPLICITY_OF_RESULT = 233;
+	public static final int WRITE_STRUCTURAL_FEATURE_ACTION__MULTIPLICITY_OF_RESULT = 235;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity' of 'Write Structural Feature Action'.
@@ -2316,7 +2315,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CLEAR_STRUCTURAL_FEATURE_ACTION__TYPE_OF_RESULT = 267;
+	public static final int CLEAR_STRUCTURAL_FEATURE_ACTION__TYPE_OF_RESULT = 268;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity Of Result' of 'Clear Structural Feature Action'.
@@ -2324,7 +2323,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CLEAR_STRUCTURAL_FEATURE_ACTION__MULTIPLICITY_OF_RESULT = 268;
+	public static final int CLEAR_STRUCTURAL_FEATURE_ACTION__MULTIPLICITY_OF_RESULT = 267;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Non Unique Removal' of 'Remove Structural Feature Value Action'.
@@ -2340,7 +2339,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__UNLIMITED_NATURAL_AND_MULTIPLICITY = 232;
+	public static final int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__UNLIMITED_NATURAL_AND_MULTIPLICITY = 231;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Same Association' of 'Link Action'.
@@ -2372,7 +2371,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int LINK_END_DATA__PROPERTY_IS_ASSOCIATION_END = 296;
+	public static final int LINK_END_DATA__PROPERTY_IS_ASSOCIATION_END = 293;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Same Type' of 'Link End Data'.
@@ -2380,7 +2379,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int LINK_END_DATA__SAME_TYPE = 293;
+	public static final int LINK_END_DATA__SAME_TYPE = 295;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity' of 'Link End Data'.
@@ -2388,7 +2387,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int LINK_END_DATA__MULTIPLICITY = 294;
+	public static final int LINK_END_DATA__MULTIPLICITY = 296;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Qualifiers' of 'Link End Data'.
@@ -2404,7 +2403,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int LINK_END_DATA__END_OBJECT_INPUT_PIN = 295;
+	public static final int LINK_END_DATA__END_OBJECT_INPUT_PIN = 294;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Qualifier Attribute' of 'Qualifier Value'.
@@ -2412,7 +2411,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int QUALIFIER_VALUE__QUALIFIER_ATTRIBUTE = 300;
+	public static final int QUALIFIER_VALUE__QUALIFIER_ATTRIBUTE = 298;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Type Of Qualifier' of 'Qualifier Value'.
@@ -2420,7 +2419,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int QUALIFIER_VALUE__TYPE_OF_QUALIFIER = 299;
+	public static final int QUALIFIER_VALUE__TYPE_OF_QUALIFIER = 300;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity Of Qualifier' of 'Qualifier Value'.
@@ -2428,7 +2427,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int QUALIFIER_VALUE__MULTIPLICITY_OF_QUALIFIER = 298;
+	public static final int QUALIFIER_VALUE__MULTIPLICITY_OF_QUALIFIER = 299;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate One Open End' of 'Read Link Action'.
@@ -2436,7 +2435,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int READ_LINK_ACTION__ONE_OPEN_END = 374;
+	public static final int READ_LINK_ACTION__ONE_OPEN_END = 372;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Type And Ordering' of 'Read Link Action'.
@@ -2452,7 +2451,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int READ_LINK_ACTION__COMPATIBLE_MULTIPLICITY = 372;
+	public static final int READ_LINK_ACTION__COMPATIBLE_MULTIPLICITY = 373;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Navigable Open End' of 'Read Link Action'.
@@ -2460,7 +2459,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int READ_LINK_ACTION__NAVIGABLE_OPEN_END = 375;
+	public static final int READ_LINK_ACTION__NAVIGABLE_OPEN_END = 374;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Visibility' of 'Read Link Action'.
@@ -2468,7 +2467,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int READ_LINK_ACTION__VISIBILITY = 373;
+	public static final int READ_LINK_ACTION__VISIBILITY = 375;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Create Link Action' of 'Link End Creation Data'.
@@ -2476,7 +2475,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int LINK_END_CREATION_DATA__CREATE_LINK_ACTION = 302;
+	public static final int LINK_END_CREATION_DATA__CREATE_LINK_ACTION = 301;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Single Input Pin' of 'Link End Creation Data'.
@@ -2484,7 +2483,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int LINK_END_CREATION_DATA__SINGLE_INPUT_PIN = 301;
+	public static final int LINK_END_CREATION_DATA__SINGLE_INPUT_PIN = 302;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Association Not Abstract' of 'Create Link Action'.
@@ -2508,7 +2507,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int LINK_END_DESTRUCTION_DATA__DESTROY_LINK_ACTION = 327;
+	public static final int LINK_END_DESTRUCTION_DATA__DESTROY_LINK_ACTION = 326;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Unlimited Natural And Multiplicity' of 'Link End Destruction Data'.
@@ -2516,7 +2515,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int LINK_END_DESTRUCTION_DATA__UNLIMITED_NATURAL_AND_MULTIPLICITY = 326;
+	public static final int LINK_END_DESTRUCTION_DATA__UNLIMITED_NATURAL_AND_MULTIPLICITY = 327;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Same Type' of 'Clear Association Action'.
@@ -2540,7 +2539,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int BROADCAST_SIGNAL_ACTION__NUMBER_AND_ORDER = 249;
+	public static final int BROADCAST_SIGNAL_ACTION__NUMBER_AND_ORDER = 250;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Type Ordering Multiplicity' of 'Broadcast Signal Action'.
@@ -2548,7 +2547,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int BROADCAST_SIGNAL_ACTION__TYPE_ORDERING_MULTIPLICITY = 250;
+	public static final int BROADCAST_SIGNAL_ACTION__TYPE_ORDERING_MULTIPLICITY = 249;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate On Port Receiver' of 'Invocation Action'.
@@ -2604,7 +2603,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int VALUE_PIN__COMPATIBLE_TYPE = 431;
+	public static final int VALUE_PIN__COMPATIBLE_TYPE = 430;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No Incoming Edges' of 'Value Pin'.
@@ -2612,7 +2611,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int VALUE_PIN__NO_INCOMING_EDGES = 430;
+	public static final int VALUE_PIN__NO_INCOMING_EDGES = 431;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Synchronous Call' of 'Call Action'.
@@ -2620,7 +2619,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CALL_ACTION__SYNCHRONOUS_CALL = 254;
+	public static final int CALL_ACTION__SYNCHRONOUS_CALL = 252;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Number And Order' of 'Call Action'.
@@ -2636,7 +2635,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CALL_ACTION__TYPE_ORDERING_MULTIPLICITY = 252;
+	public static final int CALL_ACTION__TYPE_ORDERING_MULTIPLICITY = 254;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Number Order' of 'Send Signal Action'.
@@ -2660,7 +2659,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CALL_OPERATION_ACTION__ARGUMENT_PIN_EQUAL_PARAMETER = 259;
+	public static final int CALL_OPERATION_ACTION__ARGUMENT_PIN_EQUAL_PARAMETER = 258;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Result Pin Equal Parameter' of 'Call Operation Action'.
@@ -2668,7 +2667,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CALL_OPERATION_ACTION__RESULT_PIN_EQUAL_PARAMETER = 260;
+	public static final int CALL_OPERATION_ACTION__RESULT_PIN_EQUAL_PARAMETER = 259;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Type Target Pin' of 'Call Operation Action'.
@@ -2676,7 +2675,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CALL_OPERATION_ACTION__TYPE_TARGET_PIN = 258;
+	public static final int CALL_OPERATION_ACTION__TYPE_TARGET_PIN = 260;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Type Ordering Multiplicity' of 'Call Operation Action'.
@@ -2716,7 +2715,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int INFORMATION_ITEM__SOURCES_AND_TARGETS = 349;
+	public static final int INFORMATION_ITEM__SOURCES_AND_TARGETS = 351;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Has No' of 'Information Item'.
@@ -2724,7 +2723,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int INFORMATION_ITEM__HAS_NO = 350;
+	public static final int INFORMATION_ITEM__HAS_NO = 349;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Not Instantiable' of 'Information Item'.
@@ -2732,7 +2731,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int INFORMATION_ITEM__NOT_INSTANTIABLE = 351;
+	public static final int INFORMATION_ITEM__NOT_INSTANTIABLE = 350;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Sources And Targets Kind' of 'Information Flow'.
@@ -2740,7 +2739,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int INFORMATION_FLOW__SOURCES_AND_TARGETS_KIND = 347;
+	public static final int INFORMATION_FLOW__SOURCES_AND_TARGETS_KIND = 346;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Must Conform' of 'Information Flow'.
@@ -2748,7 +2747,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int INFORMATION_FLOW__MUST_CONFORM = 346;
+	public static final int INFORMATION_FLOW__MUST_CONFORM = 347;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Convey Classifiers' of 'Information Flow'.
@@ -2788,7 +2787,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int WRITE_VARIABLE_ACTION__SAME_TYPE = 244;
+	public static final int WRITE_VARIABLE_ACTION__SAME_TYPE = 245;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity' of 'Write Variable Action'.
@@ -2796,7 +2795,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int WRITE_VARIABLE_ACTION__MULTIPLICITY = 245;
+	public static final int WRITE_VARIABLE_ACTION__MULTIPLICITY = 244;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Single Input Pin' of 'Add Variable Value Action'.
@@ -2820,7 +2819,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int ACTION_INPUT_PIN__ONE_OUTPUT_PIN = 219;
+	public static final int ACTION_INPUT_PIN__ONE_OUTPUT_PIN = 220;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Input Pin' of 'Action Input Pin'.
@@ -2836,7 +2835,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int ACTION_INPUT_PIN__NO_CONTROL_OR_DATA_FLOW = 220;
+	public static final int ACTION_INPUT_PIN__NO_CONTROL_OR_DATA_FLOW = 219;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Type Is Classifier' of 'Read Extent Action'.
@@ -2860,7 +2859,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int RECLASSIFY_OBJECT_ACTION__CLASSIFIER_NOT_ABSTRACT = 400;
+	public static final int RECLASSIFY_OBJECT_ACTION__CLASSIFIER_NOT_ABSTRACT = 401;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity' of 'Reclassify Object Action'.
@@ -2868,7 +2867,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int RECLASSIFY_OBJECT_ACTION__MULTIPLICITY = 401;
+	public static final int RECLASSIFY_OBJECT_ACTION__MULTIPLICITY = 400;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Input Pin' of 'Reclassify Object Action'.
@@ -2916,7 +2915,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int START_CLASSIFIER_BEHAVIOR_ACTION__MULTIPLICITY = 411;
+	public static final int START_CLASSIFIER_BEHAVIOR_ACTION__MULTIPLICITY = 412;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Type Has Classifier' of 'Start Classifier Behavior Action'.
@@ -2924,7 +2923,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int START_CLASSIFIER_BEHAVIOR_ACTION__TYPE_HAS_CLASSIFIER = 412;
+	public static final int START_CLASSIFIER_BEHAVIOR_ACTION__TYPE_HAS_CLASSIFIER = 411;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Property' of 'Read Link Object End Action'.
@@ -2932,7 +2931,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int READ_LINK_OBJECT_END_ACTION__PROPERTY = 376;
+	public static final int READ_LINK_OBJECT_END_ACTION__PROPERTY = 380;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Association Of Association' of 'Read Link Object End Action'.
@@ -2940,7 +2939,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int READ_LINK_OBJECT_END_ACTION__ASSOCIATION_OF_ASSOCIATION = 382;
+	public static final int READ_LINK_OBJECT_END_ACTION__ASSOCIATION_OF_ASSOCIATION = 376;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Ends Of Association' of 'Read Link Object End Action'.
@@ -2948,7 +2947,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int READ_LINK_OBJECT_END_ACTION__ENDS_OF_ASSOCIATION = 378;
+	public static final int READ_LINK_OBJECT_END_ACTION__ENDS_OF_ASSOCIATION = 382;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Type Of Object' of 'Read Link Object End Action'.
@@ -2956,7 +2955,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int READ_LINK_OBJECT_END_ACTION__TYPE_OF_OBJECT = 381;
+	public static final int READ_LINK_OBJECT_END_ACTION__TYPE_OF_OBJECT = 379;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity Of Object' of 'Read Link Object End Action'.
@@ -2972,7 +2971,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int READ_LINK_OBJECT_END_ACTION__TYPE_OF_RESULT = 379;
+	public static final int READ_LINK_OBJECT_END_ACTION__TYPE_OF_RESULT = 378;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity Of Result' of 'Read Link Object End Action'.
@@ -2980,7 +2979,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int READ_LINK_OBJECT_END_ACTION__MULTIPLICITY_OF_RESULT = 380;
+	public static final int READ_LINK_OBJECT_END_ACTION__MULTIPLICITY_OF_RESULT = 381;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Qualifier Attribute' of 'Read Link Object End Qualifier Action'.
@@ -3012,7 +3011,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int READ_LINK_OBJECT_END_QUALIFIER_ACTION__TYPE_OF_OBJECT = 384;
+	public static final int READ_LINK_OBJECT_END_QUALIFIER_ACTION__TYPE_OF_OBJECT = 383;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity Of Qualifier' of 'Read Link Object End Qualifier Action'.
@@ -3020,7 +3019,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int READ_LINK_OBJECT_END_QUALIFIER_ACTION__MULTIPLICITY_OF_QUALIFIER = 385;
+	public static final int READ_LINK_OBJECT_END_QUALIFIER_ACTION__MULTIPLICITY_OF_QUALIFIER = 387;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity Of Object' of 'Read Link Object End Qualifier Action'.
@@ -3028,7 +3027,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int READ_LINK_OBJECT_END_QUALIFIER_ACTION__MULTIPLICITY_OF_OBJECT = 383;
+	public static final int READ_LINK_OBJECT_END_QUALIFIER_ACTION__MULTIPLICITY_OF_OBJECT = 388;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Same Type' of 'Read Link Object End Qualifier Action'.
@@ -3036,7 +3035,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int READ_LINK_OBJECT_END_QUALIFIER_ACTION__SAME_TYPE = 388;
+	public static final int READ_LINK_OBJECT_END_QUALIFIER_ACTION__SAME_TYPE = 385;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity Of Result' of 'Read Link Object End Qualifier Action'.
@@ -3044,7 +3043,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int READ_LINK_OBJECT_END_QUALIFIER_ACTION__MULTIPLICITY_OF_RESULT = 387;
+	public static final int READ_LINK_OBJECT_END_QUALIFIER_ACTION__MULTIPLICITY_OF_RESULT = 384;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Association Class' of 'Create Link Object Action'.
@@ -3052,7 +3051,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CREATE_LINK_OBJECT_ACTION__ASSOCIATION_CLASS = 305;
+	public static final int CREATE_LINK_OBJECT_ACTION__ASSOCIATION_CLASS = 303;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Type Of Result' of 'Create Link Object Action'.
@@ -3068,7 +3067,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CREATE_LINK_OBJECT_ACTION__MULTIPLICITY = 303;
+	public static final int CREATE_LINK_OBJECT_ACTION__MULTIPLICITY = 305;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No Input Pins' of 'Accept Event Action'.
@@ -3076,7 +3075,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int ACCEPT_EVENT_ACTION__NO_INPUT_PINS = 153;
+	public static final int ACCEPT_EVENT_ACTION__NO_INPUT_PINS = 152;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No Output Pins' of 'Accept Event Action'.
@@ -3084,7 +3083,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int ACCEPT_EVENT_ACTION__NO_OUTPUT_PINS = 154;
+	public static final int ACCEPT_EVENT_ACTION__NO_OUTPUT_PINS = 155;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Trigger Events' of 'Accept Event Action'.
@@ -3092,7 +3091,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int ACCEPT_EVENT_ACTION__TRIGGER_EVENTS = 152;
+	public static final int ACCEPT_EVENT_ACTION__TRIGGER_EVENTS = 153;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Unmarshall Signal Events' of 'Accept Event Action'.
@@ -3100,7 +3099,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int ACCEPT_EVENT_ACTION__UNMARSHALL_SIGNAL_EVENTS = 155;
+	public static final int ACCEPT_EVENT_ACTION__UNMARSHALL_SIGNAL_EVENTS = 154;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Result Pins' of 'Accept Call Action'.
@@ -3108,7 +3107,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int ACCEPT_CALL_ACTION__RESULT_PINS = 149;
+	public static final int ACCEPT_CALL_ACTION__RESULT_PINS = 151;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Trigger Call Event' of 'Accept Call Action'.
@@ -3116,7 +3115,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int ACCEPT_CALL_ACTION__TRIGGER_CALL_EVENT = 150;
+	public static final int ACCEPT_CALL_ACTION__TRIGGER_CALL_EVENT = 149;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Unmarshall' of 'Accept Call Action'.
@@ -3124,7 +3123,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int ACCEPT_CALL_ACTION__UNMARSHALL = 151;
+	public static final int ACCEPT_CALL_ACTION__UNMARSHALL = 150;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Pins Match Parameter' of 'Reply Action'.
@@ -3132,7 +3131,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int REPLY_ACTION__PINS_MATCH_PARAMETER = 407;
+	public static final int REPLY_ACTION__PINS_MATCH_PARAMETER = 408;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Event On Reply To Call Trigger' of 'Reply Action'.
@@ -3140,7 +3139,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int REPLY_ACTION__EVENT_ON_REPLY_TO_CALL_TRIGGER = 408;
+	public static final int REPLY_ACTION__EVENT_ON_REPLY_TO_CALL_TRIGGER = 407;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Same Type' of 'Unmarshall Action'.
@@ -3148,7 +3147,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int UNMARSHALL_ACTION__SAME_TYPE = 429;
+	public static final int UNMARSHALL_ACTION__SAME_TYPE = 423;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity Of Object' of 'Unmarshall Action'.
@@ -3156,7 +3155,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int UNMARSHALL_ACTION__MULTIPLICITY_OF_OBJECT = 428;
+	public static final int UNMARSHALL_ACTION__MULTIPLICITY_OF_OBJECT = 425;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Number Of Result' of 'Unmarshall Action'.
@@ -3164,7 +3163,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int UNMARSHALL_ACTION__NUMBER_OF_RESULT = 424;
+	public static final int UNMARSHALL_ACTION__NUMBER_OF_RESULT = 427;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Type And Ordering' of 'Unmarshall Action'.
@@ -3180,7 +3179,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int UNMARSHALL_ACTION__MULTIPLICITY_OF_RESULT = 425;
+	public static final int UNMARSHALL_ACTION__MULTIPLICITY_OF_RESULT = 429;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Structural Feature' of 'Unmarshall Action'.
@@ -3188,7 +3187,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int UNMARSHALL_ACTION__STRUCTURAL_FEATURE = 423;
+	public static final int UNMARSHALL_ACTION__STRUCTURAL_FEATURE = 424;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Unmarshall Type Is Classifier' of 'Unmarshall Action'.
@@ -3196,7 +3195,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int UNMARSHALL_ACTION__UNMARSHALL_TYPE_IS_CLASSIFIER = 427;
+	public static final int UNMARSHALL_ACTION__UNMARSHALL_TYPE_IS_CLASSIFIER = 428;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Input Type Is Collection' of 'Reduce Action'.
@@ -3204,7 +3203,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int REDUCE_ACTION__INPUT_TYPE_IS_COLLECTION = 403;
+	public static final int REDUCE_ACTION__INPUT_TYPE_IS_COLLECTION = 404;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Output Types Are Compatible' of 'Reduce Action'.
@@ -3212,7 +3211,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int REDUCE_ACTION__OUTPUT_TYPES_ARE_COMPATIBLE = 404;
+	public static final int REDUCE_ACTION__OUTPUT_TYPES_ARE_COMPATIBLE = 402;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Reducer Inputs Output' of 'Reduce Action'.
@@ -3220,7 +3219,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int REDUCE_ACTION__REDUCER_INPUTS_OUTPUT = 402;
+	public static final int REDUCE_ACTION__REDUCER_INPUTS_OUTPUT = 403;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Type Of Object' of 'Start Object Behavior Action'.
@@ -3228,7 +3227,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int START_OBJECT_BEHAVIOR_ACTION__TYPE_OF_OBJECT = 417;
+	public static final int START_OBJECT_BEHAVIOR_ACTION__TYPE_OF_OBJECT = 416;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity Of Object' of 'Start Object Behavior Action'.
@@ -3236,7 +3235,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int START_OBJECT_BEHAVIOR_ACTION__MULTIPLICITY_OF_OBJECT = 414;
+	public static final int START_OBJECT_BEHAVIOR_ACTION__MULTIPLICITY_OF_OBJECT = 417;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Number Order Arguments' of 'Start Object Behavior Action'.
@@ -3244,7 +3243,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int START_OBJECT_BEHAVIOR_ACTION__NUMBER_ORDER_ARGUMENTS = 416;
+	public static final int START_OBJECT_BEHAVIOR_ACTION__NUMBER_ORDER_ARGUMENTS = 413;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Number Order Results' of 'Start Object Behavior Action'.
@@ -3252,7 +3251,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int START_OBJECT_BEHAVIOR_ACTION__NUMBER_ORDER_RESULTS = 413;
+	public static final int START_OBJECT_BEHAVIOR_ACTION__NUMBER_ORDER_RESULTS = 415;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Type Ordering Multiplicity Match' of 'Start Object Behavior Action'.
@@ -3260,7 +3259,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int START_OBJECT_BEHAVIOR_ACTION__TYPE_ORDERING_MULTIPLICITY_MATCH = 415;
+	public static final int START_OBJECT_BEHAVIOR_ACTION__TYPE_ORDERING_MULTIPLICITY_MATCH = 414;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Object Nodes' of 'Control Flow'.
@@ -3292,7 +3291,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int ACTIVITY_PARAMETER_NODE__HAS_PARAMETERS = 224;
+	public static final int ACTIVITY_PARAMETER_NODE__HAS_PARAMETERS = 228;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Same Type' of 'Activity Parameter Node'.
@@ -3300,7 +3299,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int ACTIVITY_PARAMETER_NODE__SAME_TYPE = 225;
+	public static final int ACTIVITY_PARAMETER_NODE__SAME_TYPE = 227;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No Edges' of 'Activity Parameter Node'.
@@ -3308,7 +3307,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int ACTIVITY_PARAMETER_NODE__NO_EDGES = 228;
+	public static final int ACTIVITY_PARAMETER_NODE__NO_EDGES = 224;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No Incoming Edges' of 'Activity Parameter Node'.
@@ -3316,7 +3315,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int ACTIVITY_PARAMETER_NODE__NO_INCOMING_EDGES = 227;
+	public static final int ACTIVITY_PARAMETER_NODE__NO_INCOMING_EDGES = 225;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No Outgoing Edges' of 'Activity Parameter Node'.
@@ -3324,7 +3323,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int ACTIVITY_PARAMETER_NODE__NO_OUTGOING_EDGES = 222;
+	public static final int ACTIVITY_PARAMETER_NODE__NO_OUTGOING_EDGES = 226;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Maximum One Parameter Node' of 'Activity Parameter Node'.
@@ -3332,7 +3331,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int ACTIVITY_PARAMETER_NODE__MAXIMUM_ONE_PARAMETER_NODE = 226;
+	public static final int ACTIVITY_PARAMETER_NODE__MAXIMUM_ONE_PARAMETER_NODE = 222;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Maximum Two Parameter Nodes' of 'Activity Parameter Node'.
@@ -3388,7 +3387,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int DECISION_NODE__INCOMING_OUTGOING_EDGES = 314;
+	public static final int DECISION_NODE__INCOMING_OUTGOING_EDGES = 312;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Edges' of 'Decision Node'.
@@ -3396,7 +3395,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int DECISION_NODE__EDGES = 311;
+	public static final int DECISION_NODE__EDGES = 317;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Decision Input Flow Incoming' of 'Decision Node'.
@@ -3404,7 +3403,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int DECISION_NODE__DECISION_INPUT_FLOW_INCOMING = 312;
+	public static final int DECISION_NODE__DECISION_INPUT_FLOW_INCOMING = 315;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Parameters' of 'Decision Node'.
@@ -3412,7 +3411,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int DECISION_NODE__PARAMETERS = 316;
+	public static final int DECISION_NODE__PARAMETERS = 310;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Zero Input Parameters' of 'Decision Node'.
@@ -3420,7 +3419,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int DECISION_NODE__ZERO_INPUT_PARAMETERS = 310;
+	public static final int DECISION_NODE__ZERO_INPUT_PARAMETERS = 316;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Incoming Object One Input Parameter' of 'Decision Node'.
@@ -3428,7 +3427,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int DECISION_NODE__INCOMING_OBJECT_ONE_INPUT_PARAMETER = 317;
+	public static final int DECISION_NODE__INCOMING_OBJECT_ONE_INPUT_PARAMETER = 311;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Incoming Control One Input Parameter' of 'Decision Node'.
@@ -3436,7 +3435,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int DECISION_NODE__INCOMING_CONTROL_ONE_INPUT_PARAMETER = 315;
+	public static final int DECISION_NODE__INCOMING_CONTROL_ONE_INPUT_PARAMETER = 313;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Two Input Parameters' of 'Decision Node'.
@@ -3444,7 +3443,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int DECISION_NODE__TWO_INPUT_PARAMETERS = 313;
+	public static final int DECISION_NODE__TWO_INPUT_PARAMETERS = 314;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate One Outgoing Edge' of 'Join Node'.
@@ -3468,7 +3467,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int OBJECT_FLOW__NO_ACTIONS = 319;
+	public static final int OBJECT_FLOW__NO_ACTIONS = 321;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Compatible Types' of 'Object Flow'.
@@ -3476,7 +3475,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int OBJECT_FLOW__COMPATIBLE_TYPES = 322;
+	public static final int OBJECT_FLOW__COMPATIBLE_TYPES = 320;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Same Upper Bounds' of 'Object Flow'.
@@ -3484,7 +3483,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int OBJECT_FLOW__SAME_UPPER_BOUNDS = 323;
+	public static final int OBJECT_FLOW__SAME_UPPER_BOUNDS = 325;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Target' of 'Object Flow'.
@@ -3500,7 +3499,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int OBJECT_FLOW__TRANSFORMATION_BEHAVIOUR = 320;
+	public static final int OBJECT_FLOW__TRANSFORMATION_BEHAVIOUR = 323;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Selection Behaviour' of 'Object Flow'.
@@ -3508,7 +3507,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int OBJECT_FLOW__SELECTION_BEHAVIOUR = 321;
+	public static final int OBJECT_FLOW__SELECTION_BEHAVIOUR = 319;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Input And Output Parameter' of 'Object Flow'.
@@ -3516,7 +3515,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int OBJECT_FLOW__INPUT_AND_OUTPUT_PARAMETER = 318;
+	public static final int OBJECT_FLOW__INPUT_AND_OUTPUT_PARAMETER = 322;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Is Multicast Or Is Multireceive' of 'Object Flow'.
@@ -3524,7 +3523,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int OBJECT_FLOW__IS_MULTICAST_OR_IS_MULTIRECEIVE = 325;
+	public static final int OBJECT_FLOW__IS_MULTICAST_OR_IS_MULTIRECEIVE = 318;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Result No Incoming' of 'Conditional Node'.
@@ -3532,7 +3531,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CONDITIONAL_NODE__RESULT_NO_INCOMING = 276;
+	public static final int CONDITIONAL_NODE__RESULT_NO_INCOMING = 280;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No Input Pins' of 'Conditional Node'.
@@ -3540,7 +3539,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CONDITIONAL_NODE__NO_INPUT_PINS = 277;
+	public static final int CONDITIONAL_NODE__NO_INPUT_PINS = 281;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate One Clause With Executable Node' of 'Conditional Node'.
@@ -3548,7 +3547,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CONDITIONAL_NODE__ONE_CLAUSE_WITH_EXECUTABLE_NODE = 278;
+	public static final int CONDITIONAL_NODE__ONE_CLAUSE_WITH_EXECUTABLE_NODE = 279;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Matching Output Pins' of 'Conditional Node'.
@@ -3556,7 +3555,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CONDITIONAL_NODE__MATCHING_OUTPUT_PINS = 279;
+	public static final int CONDITIONAL_NODE__MATCHING_OUTPUT_PINS = 278;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Executable Nodes' of 'Conditional Node'.
@@ -3564,7 +3563,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CONDITIONAL_NODE__EXECUTABLE_NODES = 280;
+	public static final int CONDITIONAL_NODE__EXECUTABLE_NODES = 276;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Clause No Predecessor' of 'Conditional Node'.
@@ -3572,7 +3571,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CONDITIONAL_NODE__CLAUSE_NO_PREDECESSOR = 281;
+	public static final int CONDITIONAL_NODE__CLAUSE_NO_PREDECESSOR = 277;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Decider Output' of 'Clause'.
@@ -3580,7 +3579,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CLAUSE__DECIDER_OUTPUT = 263;
+	public static final int CLAUSE__DECIDER_OUTPUT = 264;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Test And Body' of 'Clause'.
@@ -3588,7 +3587,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CLAUSE__TEST_AND_BODY = 264;
+	public static final int CLAUSE__TEST_AND_BODY = 262;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Body Output Pins' of 'Clause'.
@@ -3596,7 +3595,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int CLAUSE__BODY_OUTPUT_PINS = 262;
+	public static final int CLAUSE__BODY_OUTPUT_PINS = 263;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Input Edges' of 'Loop Node'.
@@ -3604,7 +3603,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int LOOP_NODE__INPUT_EDGES = 357;
+	public static final int LOOP_NODE__INPUT_EDGES = 359;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Executable Nodes' of 'Loop Node'.
@@ -3612,7 +3611,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int LOOP_NODE__EXECUTABLE_NODES = 358;
+	public static final int LOOP_NODE__EXECUTABLE_NODES = 356;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Body Output Pins' of 'Loop Node'.
@@ -3620,7 +3619,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int LOOP_NODE__BODY_OUTPUT_PINS = 359;
+	public static final int LOOP_NODE__BODY_OUTPUT_PINS = 357;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Result No Incoming' of 'Loop Node'.
@@ -3628,7 +3627,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int LOOP_NODE__RESULT_NO_INCOMING = 356;
+	public static final int LOOP_NODE__RESULT_NO_INCOMING = 358;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Expansion Nodes' of 'Expansion Region'.
@@ -3660,7 +3659,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int COMPONENT__NO_NESTED_CLASSIFIERS = 274;
+	public static final int COMPONENT__NO_NESTED_CLASSIFIERS = 275;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No Packaged Elements' of 'Component'.
@@ -3668,7 +3667,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int COMPONENT__NO_PACKAGED_ELEMENTS = 275;
+	public static final int COMPONENT__NO_PACKAGED_ELEMENTS = 274;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No Outgoing Transitions' of 'Final State'.
@@ -3676,7 +3675,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int FINAL_STATE__NO_OUTGOING_TRANSITIONS = 337;
+	public static final int FINAL_STATE__NO_OUTGOING_TRANSITIONS = 336;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No Regions' of 'Final State'.
@@ -3684,7 +3683,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int FINAL_STATE__NO_REGIONS = 338;
+	public static final int FINAL_STATE__NO_REGIONS = 341;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Cannot Reference Submachine' of 'Final State'.
@@ -3692,7 +3691,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int FINAL_STATE__CANNOT_REFERENCE_SUBMACHINE = 339;
+	public static final int FINAL_STATE__CANNOT_REFERENCE_SUBMACHINE = 337;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No Entry Behavior' of 'Final State'.
@@ -3700,7 +3699,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int FINAL_STATE__NO_ENTRY_BEHAVIOR = 340;
+	public static final int FINAL_STATE__NO_ENTRY_BEHAVIOR = 339;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No Exit Behavior' of 'Final State'.
@@ -3708,7 +3707,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int FINAL_STATE__NO_EXIT_BEHAVIOR = 336;
+	public static final int FINAL_STATE__NO_EXIT_BEHAVIOR = 338;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No State Behavior' of 'Final State'.
@@ -3716,7 +3715,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int FINAL_STATE__NO_STATE_BEHAVIOR = 341;
+	public static final int FINAL_STATE__NO_STATE_BEHAVIOR = 340;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate When Non Negative' of 'Time Event'.
@@ -3724,7 +3723,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int TIME_EVENT__WHEN_NON_NEGATIVE = 421;
+	public static final int TIME_EVENT__WHEN_NON_NEGATIVE = 422;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Starting Time' of 'Time Event'.
@@ -3732,7 +3731,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int TIME_EVENT__STARTING_TIME = 422;
+	public static final int TIME_EVENT__STARTING_TIME = 421;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Belongs To Psm' of 'Protocol Transition'.
@@ -3764,7 +3763,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int ASSOCIATION_CLASS__CANNOT_BE_DEFINED = 247;
+	public static final int ASSOCIATION_CLASS__CANNOT_BE_DEFINED = 248;
 
 	/**
 	 * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Disjoint Attributes Ends' of 'Association Class'.
@@ -3772,7 +3771,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final int ASSOCIATION_CLASS__DISJOINT_ATTRIBUTES_ENDS = 248;
+	public static final int ASSOCIATION_CLASS__DISJOINT_ATTRIBUTES_ENDS = 247;
 
 	/**
 	 * A constant with a fixed name that can be used as the base value for additional hand written constants.
@@ -3827,12 +3826,12 @@
 			case UMLPackage.DEPENDENCY :
 				return validateDependency((Dependency) value, diagnostics,
 					context);
-			case UMLPackage.DIRECTED_RELATIONSHIP :
-				return validateDirectedRelationship(
-					(DirectedRelationship) value, diagnostics, context);
-			case UMLPackage.RELATIONSHIP :
-				return validateRelationship((Relationship) value, diagnostics,
-					context);
+			case UMLPackage.PACKAGEABLE_ELEMENT :
+				return validatePackageableElement((PackageableElement) value,
+					diagnostics, context);
+			case UMLPackage.PARAMETERABLE_ELEMENT :
+				return validateParameterableElement(
+					(ParameterableElement) value, diagnostics, context);
 			case UMLPackage.ELEMENT :
 				return validateElement((Element) value, diagnostics, context);
 			case UMLPackage.COMMENT :
@@ -3843,9 +3842,12 @@
 			case UMLPackage.CLASS :
 				return validateClass((org.eclipse.uml2.uml.Class) value,
 					diagnostics, context);
-			case UMLPackage.BEHAVIORED_CLASSIFIER :
-				return validateBehavioredClassifier(
-					(BehavioredClassifier) value, diagnostics, context);
+			case UMLPackage.ENCAPSULATED_CLASSIFIER :
+				return validateEncapsulatedClassifier(
+					(EncapsulatedClassifier) value, diagnostics, context);
+			case UMLPackage.STRUCTURED_CLASSIFIER :
+				return validateStructuredClassifier(
+					(StructuredClassifier) value, diagnostics, context);
 			case UMLPackage.CLASSIFIER :
 				return validateClassifier((Classifier) value, diagnostics,
 					context);
@@ -3858,24 +3860,6 @@
 			case UMLPackage.STRING_EXPRESSION :
 				return validateStringExpression((StringExpression) value,
 					diagnostics, context);
-			case UMLPackage.TEMPLATEABLE_ELEMENT :
-				return validateTemplateableElement((TemplateableElement) value,
-					diagnostics, context);
-			case UMLPackage.TEMPLATE_SIGNATURE :
-				return validateTemplateSignature((TemplateSignature) value,
-					diagnostics, context);
-			case UMLPackage.TEMPLATE_PARAMETER :
-				return validateTemplateParameter((TemplateParameter) value,
-					diagnostics, context);
-			case UMLPackage.PARAMETERABLE_ELEMENT :
-				return validateParameterableElement(
-					(ParameterableElement) value, diagnostics, context);
-			case UMLPackage.TEMPLATE_BINDING :
-				return validateTemplateBinding((TemplateBinding) value,
-					diagnostics, context);
-			case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION :
-				return validateTemplateParameterSubstitution(
-					(TemplateParameterSubstitution) value, diagnostics, context);
 			case UMLPackage.EXPRESSION :
 				return validateExpression((Expression) value, diagnostics,
 					context);
@@ -3887,12 +3871,30 @@
 					context);
 			case UMLPackage.TYPE :
 				return validateType((Type) value, diagnostics, context);
-			case UMLPackage.PACKAGEABLE_ELEMENT :
-				return validatePackageableElement((PackageableElement) value,
-					diagnostics, context);
 			case UMLPackage.PACKAGE :
 				return validatePackage((org.eclipse.uml2.uml.Package) value,
 					diagnostics, context);
+			case UMLPackage.TEMPLATEABLE_ELEMENT :
+				return validateTemplateableElement((TemplateableElement) value,
+					diagnostics, context);
+			case UMLPackage.TEMPLATE_SIGNATURE :
+				return validateTemplateSignature((TemplateSignature) value,
+					diagnostics, context);
+			case UMLPackage.TEMPLATE_PARAMETER :
+				return validateTemplateParameter((TemplateParameter) value,
+					diagnostics, context);
+			case UMLPackage.TEMPLATE_BINDING :
+				return validateTemplateBinding((TemplateBinding) value,
+					diagnostics, context);
+			case UMLPackage.DIRECTED_RELATIONSHIP :
+				return validateDirectedRelationship(
+					(DirectedRelationship) value, diagnostics, context);
+			case UMLPackage.RELATIONSHIP :
+				return validateRelationship((Relationship) value, diagnostics,
+					context);
+			case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION :
+				return validateTemplateParameterSubstitution(
+					(TemplateParameterSubstitution) value, diagnostics, context);
 			case UMLPackage.PACKAGE_MERGE :
 				return validatePackageMerge((PackageMerge) value, diagnostics,
 					context);
@@ -3915,15 +3917,23 @@
 					context);
 			case UMLPackage.PROPERTY :
 				return validateProperty((Property) value, diagnostics, context);
+			case UMLPackage.STRUCTURAL_FEATURE :
+				return validateStructuralFeature((StructuralFeature) value,
+					diagnostics, context);
+			case UMLPackage.MULTIPLICITY_ELEMENT :
+				return validateMultiplicityElement((MultiplicityElement) value,
+					diagnostics, context);
+			case UMLPackage.FEATURE :
+				return validateFeature((Feature) value, diagnostics, context);
+			case UMLPackage.REDEFINABLE_ELEMENT :
+				return validateRedefinableElement((RedefinableElement) value,
+					diagnostics, context);
 			case UMLPackage.CONNECTABLE_ELEMENT :
 				return validateConnectableElement((ConnectableElement) value,
 					diagnostics, context);
 			case UMLPackage.CONNECTOR_END :
 				return validateConnectorEnd((ConnectorEnd) value, diagnostics,
 					context);
-			case UMLPackage.MULTIPLICITY_ELEMENT :
-				return validateMultiplicityElement((MultiplicityElement) value,
-					diagnostics, context);
 			case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER :
 				return validateConnectableElementTemplateParameter(
 					(ConnectableElementTemplateParameter) value, diagnostics,
@@ -3951,24 +3961,17 @@
 			case UMLPackage.BEHAVIORAL_FEATURE :
 				return validateBehavioralFeature((BehavioralFeature) value,
 					diagnostics, context);
-			case UMLPackage.FEATURE :
-				return validateFeature((Feature) value, diagnostics, context);
-			case UMLPackage.REDEFINABLE_ELEMENT :
-				return validateRedefinableElement((RedefinableElement) value,
-					diagnostics, context);
 			case UMLPackage.BEHAVIOR :
 				return validateBehavior((Behavior) value, diagnostics, context);
-			case UMLPackage.PARAMETER :
-				return validateParameter((Parameter) value, diagnostics,
+			case UMLPackage.BEHAVIORED_CLASSIFIER :
+				return validateBehavioredClassifier(
+					(BehavioredClassifier) value, diagnostics, context);
+			case UMLPackage.INTERFACE_REALIZATION :
+				return validateInterfaceRealization(
+					(InterfaceRealization) value, diagnostics, context);
+			case UMLPackage.REALIZATION :
+				return validateRealization((Realization) value, diagnostics,
 					context);
-			case UMLPackage.PARAMETER_SET :
-				return validateParameterSet((ParameterSet) value, diagnostics,
-					context);
-			case UMLPackage.CONSTRAINT :
-				return validateConstraint((Constraint) value, diagnostics,
-					context);
-			case UMLPackage.DATA_TYPE :
-				return validateDataType((DataType) value, diagnostics, context);
 			case UMLPackage.INTERFACE :
 				return validateInterface((Interface) value, diagnostics,
 					context);
@@ -4001,18 +4004,26 @@
 				return validateEvent((Event) value, diagnostics, context);
 			case UMLPackage.PORT :
 				return validatePort((Port) value, diagnostics, context);
+			case UMLPackage.CONSTRAINT :
+				return validateConstraint((Constraint) value, diagnostics,
+					context);
 			case UMLPackage.TRANSITION :
 				return validateTransition((Transition) value, diagnostics,
 					context);
 			case UMLPackage.PROTOCOL_CONFORMANCE :
 				return validateProtocolConformance((ProtocolConformance) value,
 					diagnostics, context);
+			case UMLPackage.PARAMETER :
+				return validateParameter((Parameter) value, diagnostics,
+					context);
+			case UMLPackage.PARAMETER_SET :
+				return validateParameterSet((ParameterSet) value, diagnostics,
+					context);
+			case UMLPackage.DATA_TYPE :
+				return validateDataType((DataType) value, diagnostics, context);
 			case UMLPackage.OPERATION_TEMPLATE_PARAMETER :
 				return validateOperationTemplateParameter(
 					(OperationTemplateParameter) value, diagnostics, context);
-			case UMLPackage.STRUCTURAL_FEATURE :
-				return validateStructuralFeature((StructuralFeature) value,
-					diagnostics, context);
 			case UMLPackage.EXTENSION_END :
 				return validateExtensionEnd((ExtensionEnd) value, diagnostics,
 					context);
@@ -4040,12 +4051,6 @@
 			case UMLPackage.COLLABORATION :
 				return validateCollaboration((Collaboration) value,
 					diagnostics, context);
-			case UMLPackage.STRUCTURED_CLASSIFIER :
-				return validateStructuredClassifier(
-					(StructuredClassifier) value, diagnostics, context);
-			case UMLPackage.CONNECTOR :
-				return validateConnector((Connector) value, diagnostics,
-					context);
 			case UMLPackage.GENERALIZATION :
 				return validateGeneralization((Generalization) value,
 					diagnostics, context);
@@ -4067,18 +4072,12 @@
 			case UMLPackage.SUBSTITUTION :
 				return validateSubstitution((Substitution) value, diagnostics,
 					context);
-			case UMLPackage.REALIZATION :
-				return validateRealization((Realization) value, diagnostics,
-					context);
 			case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER :
 				return validateClassifierTemplateParameter(
 					(ClassifierTemplateParameter) value, diagnostics, context);
-			case UMLPackage.INTERFACE_REALIZATION :
-				return validateInterfaceRealization(
-					(InterfaceRealization) value, diagnostics, context);
-			case UMLPackage.ENCAPSULATED_CLASSIFIER :
-				return validateEncapsulatedClassifier(
-					(EncapsulatedClassifier) value, diagnostics, context);
+			case UMLPackage.CONNECTOR :
+				return validateConnector((Connector) value, diagnostics,
+					context);
 			case UMLPackage.IMAGE :
 				return validateImage((Image) value, diagnostics, context);
 			case UMLPackage.OPAQUE_EXPRESSION :
@@ -4100,12 +4099,12 @@
 					context);
 			case UMLPackage.ACTIVITY :
 				return validateActivity((Activity) value, diagnostics, context);
-			case UMLPackage.ACTIVITY_EDGE :
-				return validateActivityEdge((ActivityEdge) value, diagnostics,
-					context);
 			case UMLPackage.ACTIVITY_GROUP :
 				return validateActivityGroup((ActivityGroup) value,
 					diagnostics, context);
+			case UMLPackage.ACTIVITY_EDGE :
+				return validateActivityEdge((ActivityEdge) value, diagnostics,
+					context);
 			case UMLPackage.ACTIVITY_PARTITION :
 				return validateActivityPartition((ActivityPartition) value,
 					diagnostics, context);
@@ -4520,18 +4519,18 @@
 			case UMLPackage.CALL_CONCURRENCY_KIND :
 				return validateCallConcurrencyKind((CallConcurrencyKind) value,
 					diagnostics, context);
-			case UMLPackage.PARAMETER_DIRECTION_KIND :
-				return validateParameterDirectionKind(
-					(ParameterDirectionKind) value, diagnostics, context);
-			case UMLPackage.PARAMETER_EFFECT_KIND :
-				return validateParameterEffectKind((ParameterEffectKind) value,
-					diagnostics, context);
 			case UMLPackage.TRANSITION_KIND :
 				return validateTransitionKind((TransitionKind) value,
 					diagnostics, context);
 			case UMLPackage.PSEUDOSTATE_KIND :
 				return validatePseudostateKind((PseudostateKind) value,
 					diagnostics, context);
+			case UMLPackage.PARAMETER_DIRECTION_KIND :
+				return validateParameterDirectionKind(
+					(ParameterDirectionKind) value, diagnostics, context);
+			case UMLPackage.PARAMETER_EFFECT_KIND :
+				return validateParameterEffectKind((ParameterEffectKind) value,
+					diagnostics, context);
 			case UMLPackage.AGGREGATION_KIND :
 				return validateAggregationKind((AggregationKind) value,
 					diagnostics, context);
@@ -4803,14 +4802,14 @@
 			result &= validateElement_validateNotOwnSelf(literalSpecification,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				literalSpecification, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				literalSpecification, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				literalSpecification, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				literalSpecification, diagnostics, context);
 		return result;
 	}
 
@@ -4855,14 +4854,14 @@
 			result &= validateElement_validateNotOwnSelf(valueSpecification,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				valueSpecification, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				valueSpecification, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				valueSpecification, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				valueSpecification, diagnostics, context);
 		return result;
 	}
 
@@ -4904,14 +4903,14 @@
 			result &= validateElement_validateNotOwnSelf(typedElement,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				typedElement, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				typedElement, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				typedElement, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				typedElement, diagnostics, context);
 		return result;
 	}
 
@@ -4953,14 +4952,14 @@
 			result &= validateElement_validateNotOwnSelf(namedElement,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				namedElement, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				namedElement, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				namedElement, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				namedElement, diagnostics, context);
 		return result;
 	}
 
@@ -5038,14 +5037,14 @@
 			result &= validateElement_validateNotOwnSelf(dependency,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				dependency, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(dependency,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				dependency, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				dependency, diagnostics, context);
 		return result;
 	}
 
@@ -5090,14 +5089,14 @@
 			result &= validateElement_validateNotOwnSelf(packageableElement,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				packageableElement, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				packageableElement, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				packageableElement, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				packageableElement, diagnostics, context);
 		return result;
 	}
 
@@ -5470,15 +5469,15 @@
 			result &= validateElement_validateNotOwnSelf(namespace,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				namespace, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(namespace,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				namespace, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				namespace, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(
 				namespace, diagnostics, context);
 		return result;
@@ -5534,10 +5533,10 @@
 			result &= validateElement_validateNotOwnSelf(elementImport,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateElementImport_validateImportedElementIsPublic(
+			result &= validateElementImport_validateVisibilityPublicOrPrivate(
 				elementImport, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateElementImport_validateVisibilityPublicOrPrivate(
+			result &= validateElementImport_validateImportedElementIsPublic(
 				elementImport, diagnostics, context);
 		return result;
 	}
@@ -5660,15 +5659,15 @@
 			result &= validateElement_validateNotOwnSelf(package_, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				package_, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(package_,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(package_,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				package_, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(
 				package_, diagnostics, context);
 		if (result || diagnostics != null)
@@ -5764,14 +5763,14 @@
 			result &= validateElement_validateNotOwnSelf(type, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				type, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(type,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(type,
 				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				type, diagnostics, context);
 		return result;
 	}
 
@@ -5854,15 +5853,15 @@
 			result &= validateElement_validateNotOwnSelf(profile, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				profile, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(profile,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(profile,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				profile, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(profile,
 				diagnostics, context);
 		if (result || diagnostics != null)
@@ -5939,15 +5938,15 @@
 			result &= validateElement_validateNotOwnSelf(stereotype,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				stereotype, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(stereotype,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				stereotype, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				stereotype, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(
 				stereotype, diagnostics, context);
 		if (result || diagnostics != null)
@@ -5960,18 +5959,18 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				stereotype, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateClassifier_validateSpecializeType(stereotype,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateClassifier_validateMapsToGeneralizationSet(
-				stereotype, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateClassifier_validateNonFinalParents(stereotype,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateClassifier_validateNoCyclesInGeneralization(
 				stereotype, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateClassifier_validateSpecializeType(stereotype,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateClassifier_validateMapsToGeneralizationSet(
+				stereotype, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateStructuredClassifier_validateMultiplicities(
 				stereotype, diagnostics, context);
 		if (result || diagnostics != null)
@@ -5981,17 +5980,17 @@
 			result &= validateClass_validatePassiveClass(stereotype,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateStereotype_validateAssociationEndOwnership(
+				stereotype, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateStereotype_validateNameNotClash(stereotype,
+				diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateStereotype_validateBinaryAssociationsOnly(
 				stereotype, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateStereotype_validateGeneralize(stereotype,
 				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateStereotype_validateNameNotClash(stereotype,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateStereotype_validateAssociationEndOwnership(
-				stereotype, diagnostics, context);
 		return result;
 	}
 
@@ -6077,15 +6076,15 @@
 			result &= validateElement_validateNotOwnSelf(class_, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				class_, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(class_,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(class_,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				class_, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(class_,
 				diagnostics, context);
 		if (result || diagnostics != null)
@@ -6098,18 +6097,18 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				class_, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateClassifier_validateSpecializeType(class_,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateClassifier_validateMapsToGeneralizationSet(
-				class_, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateClassifier_validateNonFinalParents(class_,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateClassifier_validateNoCyclesInGeneralization(
 				class_, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateClassifier_validateSpecializeType(class_,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateClassifier_validateMapsToGeneralizationSet(
+				class_, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateStructuredClassifier_validateMultiplicities(
 				class_, diagnostics, context);
 		if (result || diagnostics != null)
@@ -6174,15 +6173,15 @@
 			result &= validateElement_validateNotOwnSelf(behavioredClassifier,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				behavioredClassifier, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				behavioredClassifier, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				behavioredClassifier, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				behavioredClassifier, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(
 				behavioredClassifier, diagnostics, context);
 		if (result || diagnostics != null)
@@ -6195,18 +6194,18 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				behavioredClassifier, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateClassifier_validateSpecializeType(
-				behavioredClassifier, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateClassifier_validateMapsToGeneralizationSet(
-				behavioredClassifier, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateClassifier_validateNonFinalParents(
 				behavioredClassifier, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateClassifier_validateNoCyclesInGeneralization(
 				behavioredClassifier, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateClassifier_validateSpecializeType(
+				behavioredClassifier, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateClassifier_validateMapsToGeneralizationSet(
+				behavioredClassifier, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateBehavioredClassifier_validateClassBehavior(
 				behavioredClassifier, diagnostics, context);
 		return result;
@@ -6261,15 +6260,15 @@
 			result &= validateElement_validateNotOwnSelf(classifier,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				classifier, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(classifier,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				classifier, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				classifier, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(
 				classifier, diagnostics, context);
 		if (result || diagnostics != null)
@@ -6282,17 +6281,17 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				classifier, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateClassifier_validateSpecializeType(classifier,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateClassifier_validateMapsToGeneralizationSet(
-				classifier, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateClassifier_validateNonFinalParents(classifier,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateClassifier_validateNoCyclesInGeneralization(
 				classifier, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateClassifier_validateSpecializeType(classifier,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateClassifier_validateMapsToGeneralizationSet(
+				classifier, diagnostics, context);
 		return result;
 	}
 
@@ -6386,15 +6385,15 @@
 			result &= validateElement_validateNotOwnSelf(redefinableElement,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				redefinableElement, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				redefinableElement, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				redefinableElement, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				redefinableElement, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				redefinableElement, diagnostics, context);
 		if (result || diagnostics != null)
@@ -6542,20 +6541,20 @@
 			result &= validateElement_validateNotOwnSelf(generalizationSet,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				generalizationSet, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				generalizationSet, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				generalizationSet, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateGeneralizationSet_validateGeneralizationSameClassifier(
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
 				generalizationSet, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateGeneralizationSet_validateMapsToGeneralizationSet(
 				generalizationSet, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateGeneralizationSet_validateGeneralizationSameClassifier(
+				generalizationSet, diagnostics, context);
 		return result;
 	}
 
@@ -6621,15 +6620,15 @@
 			result &= validateElement_validateNotOwnSelf(feature, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				feature, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(feature,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(feature,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				feature, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				feature, diagnostics, context);
 		if (result || diagnostics != null)
@@ -6677,15 +6676,15 @@
 			result &= validateElement_validateNotOwnSelf(useCase, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				useCase, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(useCase,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(useCase,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				useCase, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(useCase,
 				diagnostics, context);
 		if (result || diagnostics != null)
@@ -6698,31 +6697,31 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				useCase, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateClassifier_validateSpecializeType(useCase,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateClassifier_validateMapsToGeneralizationSet(
-				useCase, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateClassifier_validateNonFinalParents(useCase,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateClassifier_validateNoCyclesInGeneralization(
 				useCase, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateClassifier_validateSpecializeType(useCase,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateClassifier_validateMapsToGeneralizationSet(
+				useCase, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateBehavioredClassifier_validateClassBehavior(
 				useCase, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateUseCase_validateBinaryAssociations(useCase,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateUseCase_validateNoAssociationToUseCase(useCase,
+			result &= validateUseCase_validateMustHaveName(useCase,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateUseCase_validateCannotIncludeSelf(useCase,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateUseCase_validateMustHaveName(useCase,
+			result &= validateUseCase_validateBinaryAssociations(useCase,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateUseCase_validateNoAssociationToUseCase(useCase,
 				diagnostics, context);
 		return result;
 	}
@@ -6808,14 +6807,14 @@
 			result &= validateElement_validateNotOwnSelf(include, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				include, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(include,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(include,
 				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				include, diagnostics, context);
 		return result;
 	}
 
@@ -6854,15 +6853,15 @@
 			result &= validateElement_validateNotOwnSelf(extend, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				extend, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(extend,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(extend,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				extend, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateExtend_validateExtensionPoints(extend,
 				diagnostics, context);
 		return result;
@@ -6916,22 +6915,22 @@
 			result &= validateElement_validateNotOwnSelf(constraint,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				constraint, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(constraint,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				constraint, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateConstraint_validateBooleanValue(constraint,
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				constraint, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateConstraint_validateNotApplyToSelf(constraint,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateConstraint_validateNoSideEffects(constraint,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateConstraint_validateNotApplyToSelf(constraint,
+			result &= validateConstraint_validateBooleanValue(constraint,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateConstraint_validateValueSpecificationBoolean(
@@ -7027,15 +7026,15 @@
 			result &= validateElement_validateNotOwnSelf(extensionPoint,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				extensionPoint, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				extensionPoint, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				extensionPoint, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				extensionPoint, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				extensionPoint, diagnostics, context);
 		if (result || diagnostics != null)
@@ -7100,14 +7099,14 @@
 			result &= validateElement_validateNotOwnSelf(substitution,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				substitution, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				substitution, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				substitution, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				substitution, diagnostics, context);
 		return result;
 	}
 
@@ -7148,14 +7147,14 @@
 			result &= validateElement_validateNotOwnSelf(realization,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				realization, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				realization, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				realization, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				realization, diagnostics, context);
 		return result;
 	}
 
@@ -7196,14 +7195,14 @@
 			result &= validateElement_validateNotOwnSelf(abstraction,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				abstraction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				abstraction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				abstraction, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				abstraction, diagnostics, context);
 		return result;
 	}
 
@@ -7246,22 +7245,22 @@
 			result &= validateElement_validateNotOwnSelf(opaqueExpression,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				opaqueExpression, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				opaqueExpression, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				opaqueExpression, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateOpaqueExpression_validateLanguageBodySize(
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				opaqueExpression, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateOpaqueExpression_validateOnlyReturnResultParameters(
 				opaqueExpression, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateOpaqueExpression_validateOneReturnResultParameter(
 				opaqueExpression, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateOpaqueExpression_validateOnlyReturnResultParameters(
+			result &= validateOpaqueExpression_validateLanguageBodySize(
 				opaqueExpression, diagnostics, context);
 		return result;
 	}
@@ -7341,37 +7340,37 @@
 			result &= validateElement_validateNotOwnSelf(parameter,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				parameter, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(parameter,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				parameter, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateMultiplicityElement_validateUpperGeLower(
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
 				parameter, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateMultiplicityElement_validateLowerGe0(parameter,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateMultiplicityElement_validateValueSpecificationNoSideEffects(
+			result &= validateMultiplicityElement_validateUpperGeLower(
 				parameter, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateMultiplicityElement_validateValueSpecificationConstant(
 				parameter, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateParameter_validateInAndOut(parameter,
-				diagnostics, context);
+			result &= validateMultiplicityElement_validateValueSpecificationNoSideEffects(
+				parameter, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateParameter_validateNotException(parameter,
+			result &= validateParameter_validateReentrantBehaviors(parameter,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateParameter_validateConnectorEnd(parameter,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateParameter_validateReentrantBehaviors(parameter,
+			result &= validateParameter_validateNotException(parameter,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateParameter_validateInAndOut(parameter,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateParameter_validateStreamAndException(parameter,
@@ -7477,17 +7476,17 @@
 			result &= validateElement_validateNotOwnSelf(multiplicityElement,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateMultiplicityElement_validateUpperGeLower(
-				multiplicityElement, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateMultiplicityElement_validateLowerGe0(
 				multiplicityElement, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateMultiplicityElement_validateValueSpecificationNoSideEffects(
+			result &= validateMultiplicityElement_validateUpperGeLower(
 				multiplicityElement, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateMultiplicityElement_validateValueSpecificationConstant(
 				multiplicityElement, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateMultiplicityElement_validateValueSpecificationNoSideEffects(
+				multiplicityElement, diagnostics, context);
 		return result;
 	}
 
@@ -7582,14 +7581,14 @@
 			result &= validateElement_validateNotOwnSelf(connectableElement,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				connectableElement, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				connectableElement, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				connectableElement, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				connectableElement, diagnostics, context);
 		return result;
 	}
 
@@ -7631,28 +7630,28 @@
 			result &= validateElement_validateNotOwnSelf(connectorEnd,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateMultiplicityElement_validateUpperGeLower(
-				connectorEnd, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateMultiplicityElement_validateLowerGe0(
 				connectorEnd, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateMultiplicityElement_validateValueSpecificationNoSideEffects(
+			result &= validateMultiplicityElement_validateUpperGeLower(
 				connectorEnd, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateMultiplicityElement_validateValueSpecificationConstant(
 				connectorEnd, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateMultiplicityElement_validateValueSpecificationNoSideEffects(
+				connectorEnd, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateConnectorEnd_validateRoleAndPartWithPort(
 				connectorEnd, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateConnectorEnd_validatePartWithPortEmpty(
+			result &= validateConnectorEnd_validateSelfPartWithPort(
 				connectorEnd, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateConnectorEnd_validateMultiplicity(connectorEnd,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateConnectorEnd_validateSelfPartWithPort(
+			result &= validateConnectorEnd_validatePartWithPortEmpty(
 				connectorEnd, diagnostics, context);
 		return result;
 	}
@@ -7742,15 +7741,15 @@
 			result &= validateElement_validateNotOwnSelf(property, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				property, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(property,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(property,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				property, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				property, diagnostics, context);
 		if (result || diagnostics != null)
@@ -7760,43 +7759,43 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				property, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateMultiplicityElement_validateUpperGeLower(
-				property, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateMultiplicityElement_validateLowerGe0(property,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateMultiplicityElement_validateValueSpecificationNoSideEffects(
+			result &= validateMultiplicityElement_validateUpperGeLower(
 				property, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateMultiplicityElement_validateValueSpecificationConstant(
 				property, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateProperty_validateSubsettingContextConforms(
+			result &= validateMultiplicityElement_validateValueSpecificationNoSideEffects(
 				property, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateProperty_validateDerivedUnionIsReadOnly(property,
+			result &= validateProperty_validateSubsettedPropertyNames(property,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateProperty_validateSubsettingRules(property,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateProperty_validateMultiplicityOfComposite(
 				property, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateProperty_validateBindingToAttribute(property,
+				diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateProperty_validateRedefinedPropertyInherited(
 				property, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateProperty_validateSubsettingRules(property,
-				diagnostics, context);
+			result &= validateProperty_validateSubsettingContextConforms(
+				property, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateProperty_validateBindingToAttribute(property,
+			result &= validateProperty_validateDeploymentTarget(property,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateProperty_validateDerivedUnionIsDerived(property,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateProperty_validateDeploymentTarget(property,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateProperty_validateSubsettedPropertyNames(property,
+			result &= validateProperty_validateDerivedUnionIsReadOnly(property,
 				diagnostics, context);
 		return result;
 	}
@@ -7947,14 +7946,14 @@
 			result &= validateElement_validateNotOwnSelf(deploymentTarget,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				deploymentTarget, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				deploymentTarget, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				deploymentTarget, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				deploymentTarget, diagnostics, context);
 		return result;
 	}
 
@@ -7995,14 +7994,14 @@
 			result &= validateElement_validateNotOwnSelf(deployment,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				deployment, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(deployment,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				deployment, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				deployment, diagnostics, context);
 		return result;
 	}
 
@@ -8045,14 +8044,14 @@
 			result &= validateElement_validateNotOwnSelf(deployedArtifact,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				deployedArtifact, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				deployedArtifact, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				deployedArtifact, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				deployedArtifact, diagnostics, context);
 		return result;
 	}
 
@@ -8097,15 +8096,15 @@
 			result &= validateElement_validateNotOwnSelf(
 				deploymentSpecification, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				deploymentSpecification, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				deploymentSpecification, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				deploymentSpecification, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				deploymentSpecification, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(
 				deploymentSpecification, diagnostics, context);
 		if (result || diagnostics != null)
@@ -8118,23 +8117,23 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				deploymentSpecification, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateClassifier_validateSpecializeType(
-				deploymentSpecification, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateClassifier_validateMapsToGeneralizationSet(
-				deploymentSpecification, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateClassifier_validateNonFinalParents(
 				deploymentSpecification, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateClassifier_validateNoCyclesInGeneralization(
 				deploymentSpecification, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateDeploymentSpecification_validateDeploymentTarget(
+			result &= validateClassifier_validateSpecializeType(
+				deploymentSpecification, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateClassifier_validateMapsToGeneralizationSet(
 				deploymentSpecification, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateDeploymentSpecification_validateDeployedElements(
 				deploymentSpecification, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateDeploymentSpecification_validateDeploymentTarget(
+				deploymentSpecification, diagnostics, context);
 		return result;
 	}
 
@@ -8201,15 +8200,15 @@
 			result &= validateElement_validateNotOwnSelf(artifact, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				artifact, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(artifact,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(artifact,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				artifact, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(
 				artifact, diagnostics, context);
 		if (result || diagnostics != null)
@@ -8222,17 +8221,17 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				artifact, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateClassifier_validateSpecializeType(artifact,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateClassifier_validateMapsToGeneralizationSet(
-				artifact, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateClassifier_validateNonFinalParents(artifact,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateClassifier_validateNoCyclesInGeneralization(
 				artifact, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateClassifier_validateSpecializeType(artifact,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateClassifier_validateMapsToGeneralizationSet(
+				artifact, diagnostics, context);
 		return result;
 	}
 
@@ -8274,14 +8273,14 @@
 			result &= validateElement_validateNotOwnSelf(manifestation,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				manifestation, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				manifestation, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				manifestation, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				manifestation, diagnostics, context);
 		return result;
 	}
 
@@ -8322,15 +8321,15 @@
 			result &= validateElement_validateNotOwnSelf(operation,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				operation, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(operation,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				operation, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				operation, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(
 				operation, diagnostics, context);
 		if (result || diagnostics != null)
@@ -8415,15 +8414,15 @@
 			result &= validateElement_validateNotOwnSelf(behavioralFeature,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				behavioralFeature, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				behavioralFeature, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				behavioralFeature, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				behavioralFeature, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(
 				behavioralFeature, diagnostics, context);
 		if (result || diagnostics != null)
@@ -8475,15 +8474,15 @@
 			result &= validateElement_validateNotOwnSelf(behavior, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				behavior, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(behavior,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(behavior,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				behavior, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(
 				behavior, diagnostics, context);
 		if (result || diagnostics != null)
@@ -8496,18 +8495,18 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				behavior, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateClassifier_validateSpecializeType(behavior,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateClassifier_validateMapsToGeneralizationSet(
-				behavior, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateClassifier_validateNonFinalParents(behavior,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateClassifier_validateNoCyclesInGeneralization(
 				behavior, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateClassifier_validateSpecializeType(behavior,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateClassifier_validateMapsToGeneralizationSet(
+				behavior, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateStructuredClassifier_validateMultiplicities(
 				behavior, diagnostics, context);
 		if (result || diagnostics != null)
@@ -8517,17 +8516,17 @@
 			result &= validateClass_validatePassiveClass(behavior, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateBehavior_validateMostOneBehaviour(behavior,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateBehavior_validateMustRealize(behavior,
-				diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateBehavior_validateParametersMatch(behavior,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateBehavior_validateFeatureOfContextClassifier(
 				behavior, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateBehavior_validateMustRealize(behavior,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateBehavior_validateMostOneBehaviour(behavior,
+				diagnostics, context);
 		return result;
 	}
 
@@ -8615,22 +8614,22 @@
 			result &= validateElement_validateNotOwnSelf(parameterSet,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				parameterSet, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				parameterSet, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				parameterSet, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateParameterSet_validateSameParameterizedEntity(
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				parameterSet, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateParameterSet_validateTwoParameterSets(
 				parameterSet, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateParameterSet_validateInput(parameterSet,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateParameterSet_validateTwoParameterSets(
+			result &= validateParameterSet_validateSameParameterizedEntity(
 				parameterSet, diagnostics, context);
 		return result;
 	}
@@ -8709,15 +8708,15 @@
 			result &= validateElement_validateNotOwnSelf(dataType, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				dataType, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(dataType,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(dataType,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				dataType, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(
 				dataType, diagnostics, context);
 		if (result || diagnostics != null)
@@ -8730,17 +8729,17 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				dataType, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateClassifier_validateSpecializeType(dataType,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateClassifier_validateMapsToGeneralizationSet(
-				dataType, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateClassifier_validateNonFinalParents(dataType,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateClassifier_validateNoCyclesInGeneralization(
 				dataType, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateClassifier_validateSpecializeType(dataType,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateClassifier_validateMapsToGeneralizationSet(
+				dataType, diagnostics, context);
 		return result;
 	}
 
@@ -8781,15 +8780,15 @@
 			result &= validateElement_validateNotOwnSelf(interface_,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				interface_, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(interface_,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				interface_, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				interface_, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(
 				interface_, diagnostics, context);
 		if (result || diagnostics != null)
@@ -8802,18 +8801,18 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				interface_, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateClassifier_validateSpecializeType(interface_,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateClassifier_validateMapsToGeneralizationSet(
-				interface_, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateClassifier_validateNonFinalParents(interface_,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateClassifier_validateNoCyclesInGeneralization(
 				interface_, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateClassifier_validateSpecializeType(interface_,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateClassifier_validateMapsToGeneralizationSet(
+				interface_, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateInterface_validateVisibility(interface_,
 				diagnostics, context);
 		return result;
@@ -8867,15 +8866,15 @@
 			result &= validateElement_validateNotOwnSelf(reception,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				reception, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(reception,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				reception, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				reception, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(
 				reception, diagnostics, context);
 		if (result || diagnostics != null)
@@ -8939,15 +8938,15 @@
 			result &= validateElement_validateNotOwnSelf(signal, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				signal, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(signal,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(signal,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				signal, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(signal,
 				diagnostics, context);
 		if (result || diagnostics != null)
@@ -8960,17 +8959,17 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				signal, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateClassifier_validateSpecializeType(signal,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateClassifier_validateMapsToGeneralizationSet(
-				signal, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateClassifier_validateNonFinalParents(signal,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateClassifier_validateNoCyclesInGeneralization(
 				signal, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateClassifier_validateSpecializeType(signal,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateClassifier_validateMapsToGeneralizationSet(
+				signal, diagnostics, context);
 		return result;
 	}
 
@@ -9015,15 +9014,15 @@
 			result &= validateElement_validateNotOwnSelf(protocolStateMachine,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				protocolStateMachine, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				protocolStateMachine, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				protocolStateMachine, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				protocolStateMachine, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(
 				protocolStateMachine, diagnostics, context);
 		if (result || diagnostics != null)
@@ -9036,18 +9035,18 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				protocolStateMachine, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateClassifier_validateSpecializeType(
-				protocolStateMachine, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateClassifier_validateMapsToGeneralizationSet(
-				protocolStateMachine, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateClassifier_validateNonFinalParents(
 				protocolStateMachine, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateClassifier_validateNoCyclesInGeneralization(
 				protocolStateMachine, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateClassifier_validateSpecializeType(
+				protocolStateMachine, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateClassifier_validateMapsToGeneralizationSet(
+				protocolStateMachine, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateStructuredClassifier_validateMultiplicities(
 				protocolStateMachine, diagnostics, context);
 		if (result || diagnostics != null)
@@ -9057,40 +9056,40 @@
 			result &= validateClass_validatePassiveClass(protocolStateMachine,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateBehavior_validateMostOneBehaviour(
-				protocolStateMachine, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateBehavior_validateMustRealize(
-				protocolStateMachine, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateBehavior_validateParametersMatch(
 				protocolStateMachine, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateBehavior_validateFeatureOfContextClassifier(
 				protocolStateMachine, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateStateMachine_validateConnectionPoints(
+			result &= validateBehavior_validateMustRealize(
 				protocolStateMachine, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateProtocolStateMachine_validateClassifierContext(
+			result &= validateBehavior_validateMostOneBehaviour(
 				protocolStateMachine, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateStateMachine_validateMethod(protocolStateMachine,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateProtocolStateMachine_validateClassifierContext(
+				protocolStateMachine, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateStateMachine_validateContextClassifier(
 				protocolStateMachine, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateProtocolStateMachine_validateDeepOrShallowHistory(
+			result &= validateStateMachine_validateConnectionPoints(
 				protocolStateMachine, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateProtocolStateMachine_validateEntryExitDo(
 				protocolStateMachine, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateProtocolStateMachine_validatePortsConnected(
+			result &= validateProtocolStateMachine_validateProtocolTransitions(
 				protocolStateMachine, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateProtocolStateMachine_validateProtocolTransitions(
+			result &= validateProtocolStateMachine_validateDeepOrShallowHistory(
+				protocolStateMachine, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateProtocolStateMachine_validatePortsConnected(
 				protocolStateMachine, diagnostics, context);
 		return result;
 	}
@@ -9197,15 +9196,15 @@
 			result &= validateElement_validateNotOwnSelf(stateMachine,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				stateMachine, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				stateMachine, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				stateMachine, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				stateMachine, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(
 				stateMachine, diagnostics, context);
 		if (result || diagnostics != null)
@@ -9218,18 +9217,18 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				stateMachine, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateClassifier_validateSpecializeType(stateMachine,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateClassifier_validateMapsToGeneralizationSet(
-				stateMachine, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateClassifier_validateNonFinalParents(stateMachine,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateClassifier_validateNoCyclesInGeneralization(
 				stateMachine, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateClassifier_validateSpecializeType(stateMachine,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateClassifier_validateMapsToGeneralizationSet(
+				stateMachine, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateStructuredClassifier_validateMultiplicities(
 				stateMachine, diagnostics, context);
 		if (result || diagnostics != null)
@@ -9239,29 +9238,29 @@
 			result &= validateClass_validatePassiveClass(stateMachine,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateBehavior_validateMostOneBehaviour(stateMachine,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateBehavior_validateMustRealize(stateMachine,
-				diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateBehavior_validateParametersMatch(stateMachine,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateBehavior_validateFeatureOfContextClassifier(
 				stateMachine, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateStateMachine_validateConnectionPoints(
-				stateMachine, diagnostics, context);
+			result &= validateBehavior_validateMustRealize(stateMachine,
+				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateStateMachine_validateClassifierContext(
-				stateMachine, diagnostics, context);
+			result &= validateBehavior_validateMostOneBehaviour(stateMachine,
+				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateStateMachine_validateMethod(stateMachine,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateStateMachine_validateClassifierContext(
+				stateMachine, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateStateMachine_validateContextClassifier(
 				stateMachine, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateStateMachine_validateConnectionPoints(
+				stateMachine, diagnostics, context);
 		return result;
 	}
 
@@ -9348,15 +9347,15 @@
 			result &= validateElement_validateNotOwnSelf(region, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				region, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(region,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(region,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				region, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(region,
 				diagnostics, context);
 		if (result || diagnostics != null)
@@ -9369,16 +9368,16 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				region, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateRegion_validateDeepHistoryVertex(region,
-				diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateRegion_validateShallowHistoryVertex(region,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateRegion_validateOwned(region, diagnostics, context);
+			result &= validateRegion_validateDeepHistoryVertex(region,
+				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateRegion_validateInitialVertex(region, diagnostics,
 				context);
+		if (result || diagnostics != null)
+			result &= validateRegion_validateOwned(region, diagnostics, context);
 		return result;
 	}
 
@@ -9461,14 +9460,14 @@
 			result &= validateElement_validateNotOwnSelf(vertex, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				vertex, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(vertex,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(vertex,
 				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				vertex, diagnostics, context);
 		return result;
 	}
 
@@ -9509,15 +9508,15 @@
 			result &= validateElement_validateNotOwnSelf(transition,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				transition, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(transition,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				transition, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				transition, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(
 				transition, diagnostics, context);
 		if (result || diagnostics != null)
@@ -9530,34 +9529,34 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				transition, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateTransition_validateStateIsExternal(transition,
+			result &= validateTransition_validateStateIsLocal(transition,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateTransition_validateJoinSegmentGuards(transition,
+			result &= validateTransition_validateForkSegmentGuards(transition,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateTransition_validateStateIsInternal(transition,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateTransition_validateOutgoingPseudostates(
-				transition, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateTransition_validateJoinSegmentState(transition,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateTransition_validateForkSegmentState(transition,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateTransition_validateSignaturesCompatible(
-				transition, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateTransition_validateStateIsLocal(transition,
-				diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateTransition_validateInitialTransition(transition,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateTransition_validateForkSegmentGuards(transition,
+			result &= validateTransition_validateOutgoingPseudostates(
+				transition, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateTransition_validateSignaturesCompatible(
+				transition, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateTransition_validateStateIsInternal(transition,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateTransition_validateJoinSegmentGuards(transition,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateTransition_validateForkSegmentState(transition,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateTransition_validateStateIsExternal(transition,
 				diagnostics, context);
 		return result;
 	}
@@ -9718,14 +9717,14 @@
 			result &= validateElement_validateNotOwnSelf(trigger, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				trigger, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(trigger,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(trigger,
 				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				trigger, diagnostics, context);
 		return result;
 	}
 
@@ -9764,14 +9763,14 @@
 			result &= validateElement_validateNotOwnSelf(event, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				event, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(event,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(event,
 				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				event, diagnostics, context);
 		return result;
 	}
 
@@ -9810,15 +9809,15 @@
 			result &= validateElement_validateNotOwnSelf(port, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				port, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(port,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(port,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				port, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				port, diagnostics, context);
 		if (result || diagnostics != null)
@@ -9828,52 +9827,52 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				port, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateMultiplicityElement_validateUpperGeLower(port,
-				diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateMultiplicityElement_validateLowerGe0(port,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateMultiplicityElement_validateValueSpecificationNoSideEffects(
-				port, diagnostics, context);
+			result &= validateMultiplicityElement_validateUpperGeLower(port,
+				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateMultiplicityElement_validateValueSpecificationConstant(
 				port, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateProperty_validateSubsettingContextConforms(port,
-				diagnostics, context);
+			result &= validateMultiplicityElement_validateValueSpecificationNoSideEffects(
+				port, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateProperty_validateDerivedUnionIsReadOnly(port,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateProperty_validateMultiplicityOfComposite(port,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateProperty_validateRedefinedPropertyInherited(port,
+			result &= validateProperty_validateSubsettedPropertyNames(port,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateProperty_validateSubsettingRules(port,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateProperty_validateMultiplicityOfComposite(port,
+				diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateProperty_validateBindingToAttribute(port,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateProperty_validateDerivedUnionIsDerived(port,
+			result &= validateProperty_validateRedefinedPropertyInherited(port,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateProperty_validateSubsettingContextConforms(port,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateProperty_validateDeploymentTarget(port,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateProperty_validateSubsettedPropertyNames(port,
+			result &= validateProperty_validateDerivedUnionIsDerived(port,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validatePort_validatePortDestroyed(port, diagnostics,
+			result &= validateProperty_validateDerivedUnionIsReadOnly(port,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validatePort_validateDefaultValue(port, diagnostics,
 				context);
 		if (result || diagnostics != null)
 			result &= validatePort_validatePortAggregation(port, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validatePort_validateDefaultValue(port, diagnostics,
+			result &= validatePort_validatePortDestroyed(port, diagnostics,
 				context);
 		return result;
 	}
@@ -9946,15 +9945,15 @@
 			result &= validateElement_validateNotOwnSelf(state, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				state, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(state,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(state,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				state, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(state,
 				diagnostics, context);
 		if (result || diagnostics != null)
@@ -9970,9 +9969,6 @@
 			result &= validateState_validateEntryOrExit(state, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateState_validateSubmachineStates(state,
-				diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateState_validateCompositeStates(state, diagnostics,
 				context);
 		if (result || diagnostics != null)
@@ -9981,6 +9977,9 @@
 		if (result || diagnostics != null)
 			result &= validateState_validateSubmachineOrRegions(state,
 				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateState_validateSubmachineStates(state,
+				diagnostics, context);
 		return result;
 	}
 
@@ -10082,20 +10081,20 @@
 			result &= validateElement_validateNotOwnSelf(
 				connectionPointReference, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				connectionPointReference, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				connectionPointReference, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				connectionPointReference, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateConnectionPointReference_validateExitPseudostates(
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
 				connectionPointReference, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateConnectionPointReference_validateEntryPseudostates(
 				connectionPointReference, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateConnectionPointReference_validateExitPseudostates(
+				connectionPointReference, diagnostics, context);
 		return result;
 	}
 
@@ -10162,39 +10161,39 @@
 			result &= validateElement_validateNotOwnSelf(pseudostate,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				pseudostate, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				pseudostate, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				pseudostate, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validatePseudostate_validateTransitionsOutgoing(
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
 				pseudostate, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validatePseudostate_validateChoiceVertex(pseudostate,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validatePseudostate_validateOutgoingFromInitial(
-				pseudostate, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validatePseudostate_validateJoinVertex(pseudostate,
-				diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validatePseudostate_validateJunctionVertex(pseudostate,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validatePseudostate_validateHistoryVertices(pseudostate,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validatePseudostate_validateInitialVertex(pseudostate,
-				diagnostics, context);
+			result &= validatePseudostate_validateTransitionsOutgoing(
+				pseudostate, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validatePseudostate_validateOutgoingFromInitial(
+				pseudostate, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validatePseudostate_validateForkVertex(pseudostate,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validatePseudostate_validateJoinVertex(pseudostate,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validatePseudostate_validateChoiceVertex(pseudostate,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validatePseudostate_validateInitialVertex(pseudostate,
+				diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validatePseudostate_validateTransitionsIncoming(
 				pseudostate, diagnostics, context);
 		return result;
@@ -10437,15 +10436,15 @@
 			result &= validateElement_validateNotOwnSelf(structuralFeature,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				structuralFeature, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				structuralFeature, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				structuralFeature, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				structuralFeature, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				structuralFeature, diagnostics, context);
 		if (result || diagnostics != null)
@@ -10455,17 +10454,17 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				structuralFeature, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateMultiplicityElement_validateUpperGeLower(
-				structuralFeature, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateMultiplicityElement_validateLowerGe0(
 				structuralFeature, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateMultiplicityElement_validateValueSpecificationNoSideEffects(
+			result &= validateMultiplicityElement_validateUpperGeLower(
 				structuralFeature, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateMultiplicityElement_validateValueSpecificationConstant(
 				structuralFeature, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateMultiplicityElement_validateValueSpecificationNoSideEffects(
+				structuralFeature, diagnostics, context);
 		return result;
 	}
 
@@ -10506,15 +10505,15 @@
 			result &= validateElement_validateNotOwnSelf(association,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				association, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				association, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				association, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				association, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(
 				association, diagnostics, context);
 		if (result || diagnostics != null)
@@ -10527,29 +10526,29 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				association, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateClassifier_validateSpecializeType(association,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateClassifier_validateMapsToGeneralizationSet(
-				association, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateClassifier_validateNonFinalParents(association,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateClassifier_validateNoCyclesInGeneralization(
 				association, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateClassifier_validateSpecializeType(association,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateClassifier_validateMapsToGeneralizationSet(
+				association, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateAssociation_validateSpecializedEndNumber(
 				association, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateAssociation_validateSpecializedEndTypes(
-				association, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateAssociation_validateBinaryAssociations(
-				association, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateAssociation_validateAssociationEnds(association,
 				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateAssociation_validateBinaryAssociations(
+				association, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateAssociation_validateSpecializedEndTypes(
+				association, diagnostics, context);
 		return result;
 	}
 
@@ -10686,22 +10685,22 @@
 			result &= validateElement_validateNotOwnSelf(collaborationUse,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				collaborationUse, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				collaborationUse, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				collaborationUse, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateCollaborationUse_validateClientElements(
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				collaborationUse, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateCollaborationUse_validateConnectors(
 				collaborationUse, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateCollaborationUse_validateEveryRole(
 				collaborationUse, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateCollaborationUse_validateConnectors(
+			result &= validateCollaborationUse_validateClientElements(
 				collaborationUse, diagnostics, context);
 		return result;
 	}
@@ -10780,15 +10779,15 @@
 			result &= validateElement_validateNotOwnSelf(collaboration,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				collaboration, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				collaboration, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				collaboration, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				collaboration, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(
 				collaboration, diagnostics, context);
 		if (result || diagnostics != null)
@@ -10801,18 +10800,18 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				collaboration, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateClassifier_validateSpecializeType(collaboration,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateClassifier_validateMapsToGeneralizationSet(
-				collaboration, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateClassifier_validateNonFinalParents(collaboration,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateClassifier_validateNoCyclesInGeneralization(
 				collaboration, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateClassifier_validateSpecializeType(collaboration,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateClassifier_validateMapsToGeneralizationSet(
+				collaboration, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateStructuredClassifier_validateMultiplicities(
 				collaboration, diagnostics, context);
 		if (result || diagnostics != null)
@@ -10862,15 +10861,15 @@
 			result &= validateElement_validateNotOwnSelf(structuredClassifier,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				structuredClassifier, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				structuredClassifier, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				structuredClassifier, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				structuredClassifier, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(
 				structuredClassifier, diagnostics, context);
 		if (result || diagnostics != null)
@@ -10883,18 +10882,18 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				structuredClassifier, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateClassifier_validateSpecializeType(
-				structuredClassifier, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateClassifier_validateMapsToGeneralizationSet(
-				structuredClassifier, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateClassifier_validateNonFinalParents(
 				structuredClassifier, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateClassifier_validateNoCyclesInGeneralization(
 				structuredClassifier, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateClassifier_validateSpecializeType(
+				structuredClassifier, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateClassifier_validateMapsToGeneralizationSet(
+				structuredClassifier, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateStructuredClassifier_validateMultiplicities(
 				structuredClassifier, diagnostics, context);
 		return result;
@@ -10950,15 +10949,15 @@
 			result &= validateElement_validateNotOwnSelf(connector,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				connector, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(connector,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				connector, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				connector, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				connector, diagnostics, context);
 		if (result || diagnostics != null)
@@ -10968,8 +10967,8 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				connector, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateConnector_validateTypes(connector, diagnostics,
-				context);
+			result &= validateConnector_validateCompatible(connector,
+				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateConnector_validateRoles(connector, diagnostics,
 				context);
@@ -10977,8 +10976,8 @@
 			result &= validateConnector_validateBetweenInterfacesPorts(
 				connector, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateConnector_validateCompatible(connector,
-				diagnostics, context);
+			result &= validateConnector_validateTypes(connector, diagnostics,
+				context);
 		return result;
 	}
 
@@ -11068,15 +11067,15 @@
 			result &= validateElement_validateNotOwnSelf(
 				redefinableTemplateSignature, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				redefinableTemplateSignature, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				redefinableTemplateSignature, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				redefinableTemplateSignature, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				redefinableTemplateSignature, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				redefinableTemplateSignature, diagnostics, context);
 		if (result || diagnostics != null)
@@ -11210,14 +11209,14 @@
 			result &= validateElement_validateNotOwnSelf(interfaceRealization,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				interfaceRealization, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				interfaceRealization, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				interfaceRealization, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				interfaceRealization, diagnostics, context);
 		return result;
 	}
 
@@ -11262,15 +11261,15 @@
 			result &= validateElement_validateNotOwnSelf(
 				encapsulatedClassifier, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				encapsulatedClassifier, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				encapsulatedClassifier, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				encapsulatedClassifier, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				encapsulatedClassifier, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(
 				encapsulatedClassifier, diagnostics, context);
 		if (result || diagnostics != null)
@@ -11283,18 +11282,18 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				encapsulatedClassifier, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateClassifier_validateSpecializeType(
-				encapsulatedClassifier, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateClassifier_validateMapsToGeneralizationSet(
-				encapsulatedClassifier, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateClassifier_validateNonFinalParents(
 				encapsulatedClassifier, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateClassifier_validateNoCyclesInGeneralization(
 				encapsulatedClassifier, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateClassifier_validateSpecializeType(
+				encapsulatedClassifier, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateClassifier_validateMapsToGeneralizationSet(
+				encapsulatedClassifier, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateStructuredClassifier_validateMultiplicities(
 				encapsulatedClassifier, diagnostics, context);
 		return result;
@@ -11337,15 +11336,15 @@
 			result &= validateElement_validateNotOwnSelf(extension,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				extension, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(extension,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				extension, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				extension, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(
 				extension, diagnostics, context);
 		if (result || diagnostics != null)
@@ -11358,29 +11357,29 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				extension, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateClassifier_validateSpecializeType(extension,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateClassifier_validateMapsToGeneralizationSet(
-				extension, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateClassifier_validateNonFinalParents(extension,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateClassifier_validateNoCyclesInGeneralization(
 				extension, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateClassifier_validateSpecializeType(extension,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateClassifier_validateMapsToGeneralizationSet(
+				extension, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateAssociation_validateSpecializedEndNumber(
 				extension, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateAssociation_validateSpecializedEndTypes(
-				extension, diagnostics, context);
+			result &= validateAssociation_validateAssociationEnds(extension,
+				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateAssociation_validateBinaryAssociations(extension,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateAssociation_validateAssociationEnds(extension,
-				diagnostics, context);
+			result &= validateAssociation_validateSpecializedEndTypes(
+				extension, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateExtension_validateNonOwnedEnd(extension,
 				diagnostics, context);
@@ -11450,15 +11449,15 @@
 			result &= validateElement_validateNotOwnSelf(extensionEnd,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				extensionEnd, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				extensionEnd, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				extensionEnd, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				extensionEnd, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				extensionEnd, diagnostics, context);
 		if (result || diagnostics != null)
@@ -11468,43 +11467,43 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				extensionEnd, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateMultiplicityElement_validateUpperGeLower(
-				extensionEnd, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateMultiplicityElement_validateLowerGe0(
 				extensionEnd, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateMultiplicityElement_validateValueSpecificationNoSideEffects(
+			result &= validateMultiplicityElement_validateUpperGeLower(
 				extensionEnd, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateMultiplicityElement_validateValueSpecificationConstant(
 				extensionEnd, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateProperty_validateSubsettingContextConforms(
+			result &= validateMultiplicityElement_validateValueSpecificationNoSideEffects(
 				extensionEnd, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateProperty_validateDerivedUnionIsReadOnly(
-				extensionEnd, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateProperty_validateMultiplicityOfComposite(
-				extensionEnd, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateProperty_validateRedefinedPropertyInherited(
+			result &= validateProperty_validateSubsettedPropertyNames(
 				extensionEnd, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateProperty_validateSubsettingRules(extensionEnd,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateProperty_validateMultiplicityOfComposite(
+				extensionEnd, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateProperty_validateBindingToAttribute(extensionEnd,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateProperty_validateDerivedUnionIsDerived(
+			result &= validateProperty_validateRedefinedPropertyInherited(
+				extensionEnd, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateProperty_validateSubsettingContextConforms(
 				extensionEnd, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateProperty_validateDeploymentTarget(extensionEnd,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateProperty_validateSubsettedPropertyNames(
+			result &= validateProperty_validateDerivedUnionIsDerived(
+				extensionEnd, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateProperty_validateDerivedUnionIsReadOnly(
 				extensionEnd, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateExtensionEnd_validateMultiplicity(extensionEnd,
@@ -11615,20 +11614,20 @@
 			result &= validateElement_validateNotOwnSelf(stringExpression,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				stringExpression, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				stringExpression, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				stringExpression, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateStringExpression_validateOperands(
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
 				stringExpression, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateStringExpression_validateSubexpressions(
 				stringExpression, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateStringExpression_validateOperands(
+				stringExpression, diagnostics, context);
 		return result;
 	}
 
@@ -11693,14 +11692,14 @@
 			result &= validateElement_validateNotOwnSelf(expression,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				expression, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(expression,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				expression, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				expression, diagnostics, context);
 		return result;
 	}
 
@@ -11743,14 +11742,14 @@
 			result &= validateElement_validateNotOwnSelf(literalInteger,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				literalInteger, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				literalInteger, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				literalInteger, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				literalInteger, diagnostics, context);
 		return result;
 	}
 
@@ -11792,14 +11791,14 @@
 			result &= validateElement_validateNotOwnSelf(literalString,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				literalString, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				literalString, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				literalString, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				literalString, diagnostics, context);
 		return result;
 	}
 
@@ -11842,14 +11841,14 @@
 			result &= validateElement_validateNotOwnSelf(literalBoolean,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				literalBoolean, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				literalBoolean, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				literalBoolean, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				literalBoolean, diagnostics, context);
 		return result;
 	}
 
@@ -11890,14 +11889,14 @@
 			result &= validateElement_validateNotOwnSelf(literalNull,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				literalNull, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				literalNull, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				literalNull, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				literalNull, diagnostics, context);
 		return result;
 	}
 
@@ -11938,14 +11937,14 @@
 			result &= validateElement_validateNotOwnSelf(literalReal,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				literalReal, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				literalReal, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				literalReal, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				literalReal, diagnostics, context);
 		return result;
 	}
 
@@ -12027,16 +12026,13 @@
 			result &= validateElement_validateNotOwnSelf(instanceSpecification,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				instanceSpecification, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				instanceSpecification, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				instanceSpecification, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateInstanceSpecification_validateDeploymentArtifact(
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
 				instanceSpecification, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateInstanceSpecification_validateStructuralFeature(
@@ -12047,6 +12043,9 @@
 		if (result || diagnostics != null)
 			result &= validateInstanceSpecification_validateDeploymentTarget(
 				instanceSpecification, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateInstanceSpecification_validateDeploymentArtifact(
+				instanceSpecification, diagnostics, context);
 		return result;
 	}
 
@@ -12139,15 +12138,15 @@
 			result &= validateElement_validateNotOwnSelf(enumeration,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				enumeration, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				enumeration, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				enumeration, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				enumeration, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(
 				enumeration, diagnostics, context);
 		if (result || diagnostics != null)
@@ -12160,17 +12159,17 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				enumeration, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateClassifier_validateSpecializeType(enumeration,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateClassifier_validateMapsToGeneralizationSet(
-				enumeration, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateClassifier_validateNonFinalParents(enumeration,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateClassifier_validateNoCyclesInGeneralization(
 				enumeration, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateClassifier_validateSpecializeType(enumeration,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateClassifier_validateMapsToGeneralizationSet(
+				enumeration, diagnostics, context);
 		return result;
 	}
 
@@ -12215,16 +12214,13 @@
 			result &= validateElement_validateNotOwnSelf(enumerationLiteral,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				enumerationLiteral, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				enumerationLiteral, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				enumerationLiteral, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateInstanceSpecification_validateDeploymentArtifact(
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
 				enumerationLiteral, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateInstanceSpecification_validateStructuralFeature(
@@ -12236,6 +12232,9 @@
 			result &= validateInstanceSpecification_validateDeploymentTarget(
 				enumerationLiteral, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateInstanceSpecification_validateDeploymentArtifact(
+				enumerationLiteral, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateEnumerationLiteral_validateClassifierEqualsOwningEnumeration(
 				enumerationLiteral, diagnostics, context);
 		return result;
@@ -12292,15 +12291,15 @@
 			result &= validateElement_validateNotOwnSelf(primitiveType,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				primitiveType, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				primitiveType, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				primitiveType, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				primitiveType, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(
 				primitiveType, diagnostics, context);
 		if (result || diagnostics != null)
@@ -12313,17 +12312,17 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				primitiveType, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateClassifier_validateSpecializeType(primitiveType,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateClassifier_validateMapsToGeneralizationSet(
-				primitiveType, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateClassifier_validateNonFinalParents(primitiveType,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateClassifier_validateNoCyclesInGeneralization(
 				primitiveType, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateClassifier_validateSpecializeType(primitiveType,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateClassifier_validateMapsToGeneralizationSet(
+				primitiveType, diagnostics, context);
 		return result;
 	}
 
@@ -12365,14 +12364,14 @@
 			result &= validateElement_validateNotOwnSelf(instanceValue,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				instanceValue, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				instanceValue, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				instanceValue, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				instanceValue, diagnostics, context);
 		return result;
 	}
 
@@ -12417,14 +12416,14 @@
 			result &= validateElement_validateNotOwnSelf(
 				literalUnlimitedNatural, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				literalUnlimitedNatural, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				literalUnlimitedNatural, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				literalUnlimitedNatural, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				literalUnlimitedNatural, diagnostics, context);
 		return result;
 	}
 
@@ -12467,15 +12466,15 @@
 			result &= validateElement_validateNotOwnSelf(opaqueBehavior,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				opaqueBehavior, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				opaqueBehavior, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				opaqueBehavior, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				opaqueBehavior, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(
 				opaqueBehavior, diagnostics, context);
 		if (result || diagnostics != null)
@@ -12488,18 +12487,18 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				opaqueBehavior, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateClassifier_validateSpecializeType(opaqueBehavior,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateClassifier_validateMapsToGeneralizationSet(
-				opaqueBehavior, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateClassifier_validateNonFinalParents(
 				opaqueBehavior, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateClassifier_validateNoCyclesInGeneralization(
 				opaqueBehavior, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateClassifier_validateSpecializeType(opaqueBehavior,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateClassifier_validateMapsToGeneralizationSet(
+				opaqueBehavior, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateStructuredClassifier_validateMultiplicities(
 				opaqueBehavior, diagnostics, context);
 		if (result || diagnostics != null)
@@ -12509,17 +12508,17 @@
 			result &= validateClass_validatePassiveClass(opaqueBehavior,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateBehavior_validateMostOneBehaviour(opaqueBehavior,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateBehavior_validateMustRealize(opaqueBehavior,
-				diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateBehavior_validateParametersMatch(opaqueBehavior,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateBehavior_validateFeatureOfContextClassifier(
 				opaqueBehavior, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateBehavior_validateMustRealize(opaqueBehavior,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateBehavior_validateMostOneBehaviour(opaqueBehavior,
+				diagnostics, context);
 		return result;
 	}
 
@@ -12562,15 +12561,15 @@
 			result &= validateElement_validateNotOwnSelf(functionBehavior,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				functionBehavior, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				functionBehavior, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				functionBehavior, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				functionBehavior, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(
 				functionBehavior, diagnostics, context);
 		if (result || diagnostics != null)
@@ -12583,18 +12582,18 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				functionBehavior, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateClassifier_validateSpecializeType(
-				functionBehavior, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateClassifier_validateMapsToGeneralizationSet(
-				functionBehavior, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateClassifier_validateNonFinalParents(
 				functionBehavior, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateClassifier_validateNoCyclesInGeneralization(
 				functionBehavior, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateClassifier_validateSpecializeType(
+				functionBehavior, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateClassifier_validateMapsToGeneralizationSet(
+				functionBehavior, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateStructuredClassifier_validateMultiplicities(
 				functionBehavior, diagnostics, context);
 		if (result || diagnostics != null)
@@ -12604,16 +12603,16 @@
 			result &= validateClass_validatePassiveClass(functionBehavior,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateBehavior_validateMostOneBehaviour(
+			result &= validateBehavior_validateParametersMatch(
+				functionBehavior, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateBehavior_validateFeatureOfContextClassifier(
 				functionBehavior, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateBehavior_validateMustRealize(functionBehavior,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateBehavior_validateParametersMatch(
-				functionBehavior, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateBehavior_validateFeatureOfContextClassifier(
+			result &= validateBehavior_validateMostOneBehaviour(
 				functionBehavior, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateFunctionBehavior_validateOneOutputParameter(
@@ -12684,15 +12683,15 @@
 			result &= validateElement_validateNotOwnSelf(actor, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				actor, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(actor,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(actor,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				actor, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(actor,
 				diagnostics, context);
 		if (result || diagnostics != null)
@@ -12705,18 +12704,18 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				actor, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateClassifier_validateSpecializeType(actor,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateClassifier_validateMapsToGeneralizationSet(actor,
-				diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateClassifier_validateNonFinalParents(actor,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateClassifier_validateNoCyclesInGeneralization(
 				actor, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateClassifier_validateSpecializeType(actor,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateClassifier_validateMapsToGeneralizationSet(actor,
+				diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateBehavioredClassifier_validateClassBehavior(actor,
 				diagnostics, context);
 		if (result || diagnostics != null)
@@ -12785,14 +12784,14 @@
 			result &= validateElement_validateNotOwnSelf(usage, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				usage, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(usage,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(usage,
 				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				usage, diagnostics, context);
 		return result;
 	}
 
@@ -12832,35 +12831,35 @@
 			result &= validateElement_validateNotOwnSelf(message, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				message, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(message,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(message,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				message, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateMessage_validateSendingReceivingMessageEvent(
 				message, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateMessage_validateOccurrenceSpecifications(message,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateMessage_validateSignatureIsSignal(message,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateMessage_validateSignatureIsOperation(message,
+				diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateMessage_validateArguments(message, diagnostics,
 				context);
 		if (result || diagnostics != null)
 			result &= validateMessage_validateCannotCrossBoundaries(message,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateMessage_validateSignatureIsSignal(message,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateMessage_validateOccurrenceSpecifications(message,
-				diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateMessage_validateSignatureReferTo(message,
 				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateMessage_validateSignatureIsOperation(message,
-				diagnostics, context);
 		return result;
 	}
 
@@ -12983,14 +12982,14 @@
 			result &= validateElement_validateNotOwnSelf(messageEnd,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				messageEnd, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(messageEnd,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				messageEnd, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				messageEnd, diagnostics, context);
 		return result;
 	}
 
@@ -13031,15 +13030,15 @@
 			result &= validateElement_validateNotOwnSelf(interaction,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				interaction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				interaction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				interaction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				interaction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(
 				interaction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -13052,18 +13051,18 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				interaction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateClassifier_validateSpecializeType(interaction,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateClassifier_validateMapsToGeneralizationSet(
-				interaction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateClassifier_validateNonFinalParents(interaction,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateClassifier_validateNoCyclesInGeneralization(
 				interaction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateClassifier_validateSpecializeType(interaction,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateClassifier_validateMapsToGeneralizationSet(
+				interaction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateStructuredClassifier_validateMultiplicities(
 				interaction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -13073,17 +13072,17 @@
 			result &= validateClass_validatePassiveClass(interaction,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateBehavior_validateMostOneBehaviour(interaction,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateBehavior_validateMustRealize(interaction,
-				diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateBehavior_validateParametersMatch(interaction,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateBehavior_validateFeatureOfContextClassifier(
 				interaction, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateBehavior_validateMustRealize(interaction,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateBehavior_validateMostOneBehaviour(interaction,
+				diagnostics, context);
 		return result;
 	}
 
@@ -13128,14 +13127,14 @@
 			result &= validateElement_validateNotOwnSelf(interactionFragment,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				interactionFragment, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				interactionFragment, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				interactionFragment, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				interactionFragment, diagnostics, context);
 		return result;
 	}
 
@@ -13176,23 +13175,23 @@
 			result &= validateElement_validateNotOwnSelf(lifeline, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				lifeline, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(lifeline,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(lifeline,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateLifeline_validateSelectorSpecified(lifeline,
-				diagnostics, context);
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				lifeline, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateLifeline_validateInteractionUsesShareLifeline(
 				lifeline, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateLifeline_validateSameClassifier(lifeline,
 				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateLifeline_validateSelectorSpecified(lifeline,
+				diagnostics, context);
 		return result;
 	}
 
@@ -13272,19 +13271,16 @@
 			result &= validateElement_validateNotOwnSelf(partDecomposition,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				partDecomposition, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				partDecomposition, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				partDecomposition, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateInteractionUse_validateGatesMatch(
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
 				partDecomposition, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateInteractionUse_validateArgumentsAreConstants(
+			result &= validateInteractionUse_validateAllLifelines(
 				partDecomposition, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateInteractionUse_validateReturnValueRecipientCoverage(
@@ -13293,19 +13289,22 @@
 			result &= validateInteractionUse_validateArgumentsCorrespondToParameters(
 				partDecomposition, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateInteractionUse_validateGatesMatch(
+				partDecomposition, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateInteractionUse_validateArgumentsAreConstants(
+				partDecomposition, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateInteractionUse_validateReturnValueTypeRecipientCorrespondence(
 				partDecomposition, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateInteractionUse_validateAllLifelines(
-				partDecomposition, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validatePartDecomposition_validateCommutativityOfDecomposition(
+			result &= validatePartDecomposition_validatePartsOfInternalStructures(
 				partDecomposition, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validatePartDecomposition_validateAssume(
 				partDecomposition, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validatePartDecomposition_validatePartsOfInternalStructures(
+			result &= validatePartDecomposition_validateCommutativityOfDecomposition(
 				partDecomposition, diagnostics, context);
 		return result;
 	}
@@ -13387,19 +13386,16 @@
 			result &= validateElement_validateNotOwnSelf(interactionUse,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				interactionUse, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				interactionUse, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				interactionUse, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateInteractionUse_validateGatesMatch(interactionUse,
-				diagnostics, context);
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				interactionUse, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateInteractionUse_validateArgumentsAreConstants(
+			result &= validateInteractionUse_validateAllLifelines(
 				interactionUse, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateInteractionUse_validateReturnValueRecipientCoverage(
@@ -13408,10 +13404,13 @@
 			result &= validateInteractionUse_validateArgumentsCorrespondToParameters(
 				interactionUse, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateInteractionUse_validateReturnValueTypeRecipientCorrespondence(
+			result &= validateInteractionUse_validateGatesMatch(interactionUse,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateInteractionUse_validateArgumentsAreConstants(
 				interactionUse, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateInteractionUse_validateAllLifelines(
+			result &= validateInteractionUse_validateReturnValueTypeRecipientCorrespondence(
 				interactionUse, diagnostics, context);
 		return result;
 	}
@@ -13527,15 +13526,15 @@
 			result &= validateElement_validateNotOwnSelf(gate, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				gate, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(gate,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(gate,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				gate, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateGate_validateMessagesCombinedFragment(gate,
 				diagnostics, context);
 		if (result || diagnostics != null)
@@ -13601,15 +13600,15 @@
 			result &= validateElement_validateNotOwnSelf(action, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				action, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(action,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(action,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				action, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				action, diagnostics, context);
 		if (result || diagnostics != null)
@@ -13666,15 +13665,15 @@
 			result &= validateElement_validateNotOwnSelf(executableNode,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				executableNode, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				executableNode, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				executableNode, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				executableNode, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				executableNode, diagnostics, context);
 		if (result || diagnostics != null)
@@ -13730,15 +13729,15 @@
 			result &= validateElement_validateNotOwnSelf(activityNode,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				activityNode, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				activityNode, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				activityNode, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				activityNode, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				activityNode, diagnostics, context);
 		if (result || diagnostics != null)
@@ -13818,15 +13817,15 @@
 			result &= validateElement_validateNotOwnSelf(activityEdge,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				activityEdge, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				activityEdge, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				activityEdge, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				activityEdge, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				activityEdge, diagnostics, context);
 		if (result || diagnostics != null)
@@ -13920,15 +13919,15 @@
 			result &= validateElement_validateNotOwnSelf(activity, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				activity, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(activity,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(activity,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				activity, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(
 				activity, diagnostics, context);
 		if (result || diagnostics != null)
@@ -13941,18 +13940,18 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				activity, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateClassifier_validateSpecializeType(activity,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateClassifier_validateMapsToGeneralizationSet(
-				activity, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateClassifier_validateNonFinalParents(activity,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateClassifier_validateNoCyclesInGeneralization(
 				activity, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateClassifier_validateSpecializeType(activity,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateClassifier_validateMapsToGeneralizationSet(
+				activity, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateStructuredClassifier_validateMultiplicities(
 				activity, diagnostics, context);
 		if (result || diagnostics != null)
@@ -13962,26 +13961,26 @@
 			result &= validateClass_validatePassiveClass(activity, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateBehavior_validateMostOneBehaviour(activity,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateBehavior_validateMustRealize(activity,
-				diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateBehavior_validateParametersMatch(activity,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateBehavior_validateFeatureOfContextClassifier(
 				activity, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateBehavior_validateMustRealize(activity,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateBehavior_validateMostOneBehaviour(activity,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateActivity_validateActivityParameterNode(activity,
+				diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateActivity_validateAutonomous(activity,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateActivity_validateNoSupergroups(activity,
 				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateActivity_validateActivityParameterNode(activity,
-				diagnostics, context);
 		return result;
 	}
 
@@ -14059,16 +14058,13 @@
 			result &= validateElement_validateNotOwnSelf(activityPartition,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				activityPartition, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				activityPartition, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				activityPartition, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateActivityGroup_validateNodesAndEdges(
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
 				activityPartition, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateActivityGroup_validateGroupOwned(
@@ -14077,15 +14073,18 @@
 			result &= validateActivityGroup_validateNotContained(
 				activityPartition, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateActivityGroup_validateNodesAndEdges(
+				activityPartition, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateActivityPartition_validateRepresentsPart(
+				activityPartition, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateActivityPartition_validateRepresentsClassifier(
 				activityPartition, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateActivityPartition_validateRepresentsPartAndIsContained(
 				activityPartition, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateActivityPartition_validateRepresentsPart(
-				activityPartition, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateActivityPartition_validateDimensionNotContained(
 				activityPartition, diagnostics, context);
 		return result;
@@ -14180,16 +14179,13 @@
 			result &= validateElement_validateNotOwnSelf(activityGroup,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				activityGroup, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				activityGroup, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				activityGroup, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateActivityGroup_validateNodesAndEdges(
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
 				activityGroup, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateActivityGroup_validateGroupOwned(activityGroup,
@@ -14197,6 +14193,9 @@
 		if (result || diagnostics != null)
 			result &= validateActivityGroup_validateNotContained(activityGroup,
 				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateActivityGroup_validateNodesAndEdges(
+				activityGroup, diagnostics, context);
 		return result;
 	}
 
@@ -14277,15 +14276,15 @@
 			result &= validateElement_validateNotOwnSelf(
 				structuredActivityNode, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				structuredActivityNode, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				structuredActivityNode, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				structuredActivityNode, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				structuredActivityNode, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				structuredActivityNode, diagnostics, context);
 		if (result || diagnostics != null)
@@ -14304,22 +14303,22 @@
 			result &= validateNamespace_validateMembersDistinguishable(
 				structuredActivityNode, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateActivityGroup_validateNodesAndEdges(
-				structuredActivityNode, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateActivityGroup_validateGroupOwned(
 				structuredActivityNode, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateActivityGroup_validateNotContained(
 				structuredActivityNode, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateStructuredActivityNode_validateOutputPinEdges(
+			result &= validateActivityGroup_validateNodesAndEdges(
+				structuredActivityNode, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateStructuredActivityNode_validateInputPinEdges(
 				structuredActivityNode, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateStructuredActivityNode_validateEdges(
 				structuredActivityNode, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateStructuredActivityNode_validateInputPinEdges(
+			result &= validateStructuredActivityNode_validateOutputPinEdges(
 				structuredActivityNode, diagnostics, context);
 		return result;
 	}
@@ -14399,27 +14398,27 @@
 			result &= validateElement_validateNotOwnSelf(variable, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				variable, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(variable,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(variable,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateMultiplicityElement_validateUpperGeLower(
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
 				variable, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateMultiplicityElement_validateLowerGe0(variable,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateMultiplicityElement_validateValueSpecificationNoSideEffects(
+			result &= validateMultiplicityElement_validateUpperGeLower(
 				variable, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateMultiplicityElement_validateValueSpecificationConstant(
 				variable, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateMultiplicityElement_validateValueSpecificationNoSideEffects(
+				variable, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateVariable_validateOwned(variable, diagnostics,
 				context);
 		return result;
@@ -14477,16 +14476,13 @@
 			result &= validateElement_validateNotOwnSelf(
 				interruptibleActivityRegion, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				interruptibleActivityRegion, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				interruptibleActivityRegion, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				interruptibleActivityRegion, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateActivityGroup_validateNodesAndEdges(
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
 				interruptibleActivityRegion, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateActivityGroup_validateGroupOwned(
@@ -14495,6 +14491,9 @@
 			result &= validateActivityGroup_validateNotContained(
 				interruptibleActivityRegion, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateActivityGroup_validateNodesAndEdges(
+				interruptibleActivityRegion, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateInterruptibleActivityRegion_validateInterruptingEdges(
 				interruptibleActivityRegion, diagnostics, context);
 		return result;
@@ -14552,16 +14551,16 @@
 			result &= validateElement_validateNotOwnSelf(exceptionHandler,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateExceptionHandler_validateExceptionBody(
+			result &= validateExceptionHandler_validateOneInput(
+				exceptionHandler, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateExceptionHandler_validateEdgeSourceTarget(
 				exceptionHandler, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateExceptionHandler_validateResultPins(
 				exceptionHandler, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateExceptionHandler_validateOneInput(
-				exceptionHandler, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateExceptionHandler_validateEdgeSourceTarget(
+			result &= validateExceptionHandler_validateExceptionBody(
 				exceptionHandler, diagnostics, context);
 		return result;
 	}
@@ -14651,15 +14650,15 @@
 			result &= validateElement_validateNotOwnSelf(objectNode,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				objectNode, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(objectNode,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				objectNode, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				objectNode, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				objectNode, diagnostics, context);
 		if (result || diagnostics != null)
@@ -14675,14 +14674,14 @@
 			result &= validateActivityNode_validateOwnedStructuredNode(
 				objectNode, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateObjectNode_validateInputOutputParameter(
-				objectNode, diagnostics, context);
+			result &= validateObjectNode_validateObjectFlowEdges(objectNode,
+				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateObjectNode_validateSelectionBehavior(objectNode,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateObjectNode_validateObjectFlowEdges(objectNode,
-				diagnostics, context);
+			result &= validateObjectNode_validateInputOutputParameter(
+				objectNode, diagnostics, context);
 		return result;
 	}
 
@@ -14759,15 +14758,15 @@
 			result &= validateElement_validateNotOwnSelf(outputPin,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				outputPin, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(outputPin,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				outputPin, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				outputPin, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				outputPin, diagnostics, context);
 		if (result || diagnostics != null)
@@ -14783,27 +14782,27 @@
 			result &= validateActivityNode_validateOwnedStructuredNode(
 				outputPin, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateObjectNode_validateInputOutputParameter(
-				outputPin, diagnostics, context);
+			result &= validateObjectNode_validateObjectFlowEdges(outputPin,
+				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateObjectNode_validateSelectionBehavior(outputPin,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateObjectNode_validateObjectFlowEdges(outputPin,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateMultiplicityElement_validateUpperGeLower(
+			result &= validateObjectNode_validateInputOutputParameter(
 				outputPin, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateMultiplicityElement_validateLowerGe0(outputPin,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateMultiplicityElement_validateValueSpecificationNoSideEffects(
+			result &= validateMultiplicityElement_validateUpperGeLower(
 				outputPin, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateMultiplicityElement_validateValueSpecificationConstant(
 				outputPin, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateMultiplicityElement_validateValueSpecificationNoSideEffects(
+				outputPin, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validatePin_validateControlPins(outputPin, diagnostics,
 				context);
 		if (result || diagnostics != null)
@@ -14859,15 +14858,15 @@
 			result &= validateElement_validateNotOwnSelf(pin, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				pin, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(pin,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(pin,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				pin, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				pin, diagnostics, context);
 		if (result || diagnostics != null)
@@ -14883,27 +14882,27 @@
 			result &= validateActivityNode_validateOwnedStructuredNode(pin,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateObjectNode_validateInputOutputParameter(pin,
+			result &= validateObjectNode_validateObjectFlowEdges(pin,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateObjectNode_validateSelectionBehavior(pin,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateObjectNode_validateObjectFlowEdges(pin,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateMultiplicityElement_validateUpperGeLower(pin,
+			result &= validateObjectNode_validateInputOutputParameter(pin,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateMultiplicityElement_validateLowerGe0(pin,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateMultiplicityElement_validateValueSpecificationNoSideEffects(
-				pin, diagnostics, context);
+			result &= validateMultiplicityElement_validateUpperGeLower(pin,
+				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateMultiplicityElement_validateValueSpecificationConstant(
 				pin, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateMultiplicityElement_validateValueSpecificationNoSideEffects(
+				pin, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validatePin_validateControlPins(pin, diagnostics, context);
 		return result;
 	}
@@ -14956,15 +14955,15 @@
 			result &= validateElement_validateNotOwnSelf(inputPin, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				inputPin, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(inputPin,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(inputPin,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				inputPin, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				inputPin, diagnostics, context);
 		if (result || diagnostics != null)
@@ -14980,25 +14979,25 @@
 			result &= validateActivityNode_validateOwnedStructuredNode(
 				inputPin, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateObjectNode_validateInputOutputParameter(inputPin,
+			result &= validateObjectNode_validateObjectFlowEdges(inputPin,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateObjectNode_validateSelectionBehavior(inputPin,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateObjectNode_validateObjectFlowEdges(inputPin,
+			result &= validateObjectNode_validateInputOutputParameter(inputPin,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateMultiplicityElement_validateLowerGe0(inputPin,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateMultiplicityElement_validateUpperGeLower(
 				inputPin, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateMultiplicityElement_validateLowerGe0(inputPin,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateMultiplicityElement_validateValueSpecificationNoSideEffects(
+			result &= validateMultiplicityElement_validateValueSpecificationConstant(
 				inputPin, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateMultiplicityElement_validateValueSpecificationConstant(
+			result &= validateMultiplicityElement_validateValueSpecificationNoSideEffects(
 				inputPin, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validatePin_validateControlPins(inputPin, diagnostics,
@@ -15061,15 +15060,15 @@
 			result &= validateElement_validateNotOwnSelf(generalOrdering,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				generalOrdering, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				generalOrdering, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				generalOrdering, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				generalOrdering, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateGeneralOrdering_validateIrreflexsiveTransitiveClosure(
 				generalOrdering, diagnostics, context);
 		return result;
@@ -15129,14 +15128,14 @@
 			result &= validateElement_validateNotOwnSelf(
 				occurrenceSpecification, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				occurrenceSpecification, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				occurrenceSpecification, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				occurrenceSpecification, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				occurrenceSpecification, diagnostics, context);
 		return result;
 	}
 
@@ -15181,22 +15180,22 @@
 			result &= validateElement_validateNotOwnSelf(interactionOperand,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				interactionOperand, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				interactionOperand, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				interactionOperand, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				interactionOperand, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(
 				interactionOperand, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateInteractionOperand_validateGuardContainReferences(
+			result &= validateInteractionOperand_validateGuardDirectlyPrior(
 				interactionOperand, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateInteractionOperand_validateGuardDirectlyPrior(
+			result &= validateInteractionOperand_validateGuardContainReferences(
 				interactionOperand, diagnostics, context);
 		return result;
 	}
@@ -15268,44 +15267,44 @@
 			result &= validateElement_validateNotOwnSelf(interactionConstraint,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				interactionConstraint, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				interactionConstraint, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				interactionConstraint, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateConstraint_validateBooleanValue(
-				interactionConstraint, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateConstraint_validateNoSideEffects(
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
 				interactionConstraint, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateConstraint_validateNotApplyToSelf(
 				interactionConstraint, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateConstraint_validateNoSideEffects(
+				interactionConstraint, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateConstraint_validateBooleanValue(
+				interactionConstraint, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateConstraint_validateValueSpecificationBoolean(
 				interactionConstraint, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateInteractionConstraint_validateMaxintPositive(
+				interactionConstraint, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateInteractionConstraint_validateMinintMaxint(
 				interactionConstraint, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateInteractionConstraint_validateMinintNonNegative(
 				interactionConstraint, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateInteractionConstraint_validateMaxintPositive(
-				interactionConstraint, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateInteractionConstraint_validateDynamicVariables(
-				interactionConstraint, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateInteractionConstraint_validateGlobalData(
 				interactionConstraint, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateInteractionConstraint_validateMaxintGreaterEqualMinint(
 				interactionConstraint, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateInteractionConstraint_validateDynamicVariables(
+				interactionConstraint, diagnostics, context);
 		return result;
 	}
 
@@ -15426,15 +15425,15 @@
 			result &= validateElement_validateNotOwnSelf(
 				executionSpecification, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				executionSpecification, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				executionSpecification, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				executionSpecification, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				executionSpecification, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateExecutionSpecification_validateSameLifeline(
 				executionSpecification, diagnostics, context);
 		return result;
@@ -15494,14 +15493,14 @@
 			result &= validateElement_validateNotOwnSelf(
 				executionOccurrenceSpecification, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				executionOccurrenceSpecification, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				executionOccurrenceSpecification, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				executionOccurrenceSpecification, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				executionOccurrenceSpecification, diagnostics, context);
 		return result;
 	}
 
@@ -15544,14 +15543,14 @@
 			result &= validateElement_validateNotOwnSelf(stateInvariant,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				stateInvariant, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				stateInvariant, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				stateInvariant, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				stateInvariant, diagnostics, context);
 		return result;
 	}
 
@@ -15596,15 +15595,15 @@
 			result &= validateElement_validateNotOwnSelf(
 				actionExecutionSpecification, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				actionExecutionSpecification, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				actionExecutionSpecification, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				actionExecutionSpecification, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				actionExecutionSpecification, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateExecutionSpecification_validateSameLifeline(
 				actionExecutionSpecification, diagnostics, context);
 		if (result || diagnostics != null)
@@ -15667,15 +15666,15 @@
 			result &= validateElement_validateNotOwnSelf(
 				behaviorExecutionSpecification, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				behaviorExecutionSpecification, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				behaviorExecutionSpecification, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				behaviorExecutionSpecification, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				behaviorExecutionSpecification, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateExecutionSpecification_validateSameLifeline(
 				behaviorExecutionSpecification, diagnostics, context);
 		return result;
@@ -15719,14 +15718,14 @@
 			result &= validateElement_validateNotOwnSelf(messageEvent,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				messageEvent, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				messageEvent, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				messageEvent, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				messageEvent, diagnostics, context);
 		return result;
 	}
 
@@ -15771,14 +15770,14 @@
 			result &= validateElement_validateNotOwnSelf(
 				messageOccurrenceSpecification, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				messageOccurrenceSpecification, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				messageOccurrenceSpecification, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				messageOccurrenceSpecification, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				messageOccurrenceSpecification, diagnostics, context);
 		return result;
 	}
 
@@ -15821,25 +15820,25 @@
 			result &= validateElement_validateNotOwnSelf(combinedFragment,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				combinedFragment, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				combinedFragment, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				combinedFragment, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateCombinedFragment_validateMinintAndMaxint(
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
 				combinedFragment, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateCombinedFragment_validateBreak(combinedFragment,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateCombinedFragment_validateOptLoopBreakNeg(
+				combinedFragment, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateCombinedFragment_validateConsiderAndIgnore(
 				combinedFragment, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateCombinedFragment_validateOptLoopBreakNeg(
+			result &= validateCombinedFragment_validateMinintAndMaxint(
 				combinedFragment, diagnostics, context);
 		return result;
 	}
@@ -15930,21 +15929,21 @@
 			result &= validateElement_validateNotOwnSelf(continuation,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				continuation, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				continuation, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				continuation, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateContinuation_validateFirstOrLastInteractionFragment(
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
 				continuation, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateContinuation_validateSameName(continuation,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateContinuation_validateFirstOrLastInteractionFragment(
+				continuation, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateContinuation_validateGlobal(continuation,
 				diagnostics, context);
 		return result;
@@ -16028,32 +16027,32 @@
 			result &= validateElement_validateNotOwnSelf(
 				considerIgnoreFragment, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				considerIgnoreFragment, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				considerIgnoreFragment, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				considerIgnoreFragment, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateCombinedFragment_validateMinintAndMaxint(
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
 				considerIgnoreFragment, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateCombinedFragment_validateBreak(
 				considerIgnoreFragment, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateCombinedFragment_validateConsiderAndIgnore(
-				considerIgnoreFragment, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateCombinedFragment_validateOptLoopBreakNeg(
 				considerIgnoreFragment, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateConsiderIgnoreFragment_validateConsiderOrIgnore(
+			result &= validateCombinedFragment_validateConsiderAndIgnore(
+				considerIgnoreFragment, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateCombinedFragment_validateMinintAndMaxint(
 				considerIgnoreFragment, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateConsiderIgnoreFragment_validateType(
 				considerIgnoreFragment, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateConsiderIgnoreFragment_validateConsiderOrIgnore(
+				considerIgnoreFragment, diagnostics, context);
 		return result;
 	}
 
@@ -16119,14 +16118,14 @@
 			result &= validateElement_validateNotOwnSelf(callEvent,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				callEvent, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(callEvent,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				callEvent, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				callEvent, diagnostics, context);
 		return result;
 	}
 
@@ -16167,14 +16166,14 @@
 			result &= validateElement_validateNotOwnSelf(changeEvent,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				changeEvent, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				changeEvent, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				changeEvent, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				changeEvent, diagnostics, context);
 		return result;
 	}
 
@@ -16215,14 +16214,14 @@
 			result &= validateElement_validateNotOwnSelf(signalEvent,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				signalEvent, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				signalEvent, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				signalEvent, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				signalEvent, diagnostics, context);
 		return result;
 	}
 
@@ -16265,14 +16264,14 @@
 			result &= validateElement_validateNotOwnSelf(anyReceiveEvent,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				anyReceiveEvent, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				anyReceiveEvent, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				anyReceiveEvent, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				anyReceiveEvent, diagnostics, context);
 		return result;
 	}
 
@@ -16317,15 +16316,15 @@
 			result &= validateElement_validateNotOwnSelf(createObjectAction,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				createObjectAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				createObjectAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				createObjectAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				createObjectAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				createObjectAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -16341,17 +16340,17 @@
 			result &= validateActivityNode_validateOwnedStructuredNode(
 				createObjectAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateCreateObjectAction_validateClassifierNotAbstract(
-				createObjectAction, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateCreateObjectAction_validateMultiplicity(
-				createObjectAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateCreateObjectAction_validateClassifierNotAssociationClass(
 				createObjectAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateCreateObjectAction_validateClassifierNotAbstract(
+				createObjectAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateCreateObjectAction_validateSameType(
 				createObjectAction, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateCreateObjectAction_validateMultiplicity(
+				createObjectAction, diagnostics, context);
 		return result;
 	}
 
@@ -16446,15 +16445,15 @@
 			result &= validateElement_validateNotOwnSelf(destroyObjectAction,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				destroyObjectAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				destroyObjectAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				destroyObjectAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				destroyObjectAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				destroyObjectAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -16543,15 +16542,15 @@
 			result &= validateElement_validateNotOwnSelf(
 				destructionOccurrenceSpecification, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				destructionOccurrenceSpecification, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				destructionOccurrenceSpecification, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				destructionOccurrenceSpecification, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				destructionOccurrenceSpecification, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateDestructionOccurrenceSpecification_validateNoOccurrenceSpecificationsBelow(
 				destructionOccurrenceSpecification, diagnostics, context);
 		return result;
@@ -16611,15 +16610,15 @@
 			result &= validateElement_validateNotOwnSelf(testIdentityAction,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				testIdentityAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				testIdentityAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				testIdentityAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				testIdentityAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				testIdentityAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -16721,15 +16720,15 @@
 			result &= validateElement_validateNotOwnSelf(readSelfAction,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				readSelfAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				readSelfAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				readSelfAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				readSelfAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				readSelfAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -16748,14 +16747,14 @@
 			result &= validateReadSelfAction_validateContained(readSelfAction,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateReadSelfAction_validateMultiplicity(
-				readSelfAction, diagnostics, context);
+			result &= validateReadSelfAction_validateType(readSelfAction,
+				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateReadSelfAction_validateNotStatic(readSelfAction,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateReadSelfAction_validateType(readSelfAction,
-				diagnostics, context);
+			result &= validateReadSelfAction_validateMultiplicity(
+				readSelfAction, diagnostics, context);
 		return result;
 	}
 
@@ -16848,15 +16847,15 @@
 			result &= validateElement_validateNotOwnSelf(
 				structuralFeatureAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				structuralFeatureAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				structuralFeatureAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				structuralFeatureAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				structuralFeatureAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				structuralFeatureAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -16872,20 +16871,20 @@
 			result &= validateActivityNode_validateOwnedStructuredNode(
 				structuralFeatureAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateStructuralFeatureAction_validateMultiplicity(
-				structuralFeatureAction, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateStructuralFeatureAction_validateSameType(
-				structuralFeatureAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateStructuralFeatureAction_validateVisibility(
 				structuralFeatureAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateStructuralFeatureAction_validateMultiplicity(
+				structuralFeatureAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateStructuralFeatureAction_validateNotStatic(
 				structuralFeatureAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateStructuralFeatureAction_validateOneFeaturingClassifier(
 				structuralFeatureAction, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateStructuralFeatureAction_validateSameType(
+				structuralFeatureAction, diagnostics, context);
 		return result;
 	}
 
@@ -16992,15 +16991,15 @@
 			result &= validateElement_validateNotOwnSelf(
 				readStructuralFeatureAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				readStructuralFeatureAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				readStructuralFeatureAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				readStructuralFeatureAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				readStructuralFeatureAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				readStructuralFeatureAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -17016,21 +17015,21 @@
 			result &= validateActivityNode_validateOwnedStructuredNode(
 				readStructuralFeatureAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateReadStructuralFeatureAction_validateMultiplicity(
-				readStructuralFeatureAction, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateStructuralFeatureAction_validateSameType(
-				readStructuralFeatureAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateStructuralFeatureAction_validateVisibility(
 				readStructuralFeatureAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateReadStructuralFeatureAction_validateMultiplicity(
+				readStructuralFeatureAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateStructuralFeatureAction_validateNotStatic(
 				readStructuralFeatureAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateStructuralFeatureAction_validateOneFeaturingClassifier(
 				readStructuralFeatureAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateStructuralFeatureAction_validateSameType(
+				readStructuralFeatureAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateReadStructuralFeatureAction_validateTypeAndOrdering(
 				readStructuralFeatureAction, diagnostics, context);
 		return result;
@@ -17103,15 +17102,15 @@
 			result &= validateElement_validateNotOwnSelf(
 				writeStructuralFeatureAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				writeStructuralFeatureAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				writeStructuralFeatureAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				writeStructuralFeatureAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				writeStructuralFeatureAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				writeStructuralFeatureAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -17127,22 +17126,19 @@
 			result &= validateActivityNode_validateOwnedStructuredNode(
 				writeStructuralFeatureAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateWriteStructuralFeatureAction_validateMultiplicity(
-				writeStructuralFeatureAction, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateStructuralFeatureAction_validateSameType(
-				writeStructuralFeatureAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateStructuralFeatureAction_validateVisibility(
 				writeStructuralFeatureAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateWriteStructuralFeatureAction_validateMultiplicity(
+				writeStructuralFeatureAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateStructuralFeatureAction_validateNotStatic(
 				writeStructuralFeatureAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateStructuralFeatureAction_validateOneFeaturingClassifier(
 				writeStructuralFeatureAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateWriteStructuralFeatureAction_validateMultiplicityOfResult(
+			result &= validateStructuralFeatureAction_validateSameType(
 				writeStructuralFeatureAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateWriteStructuralFeatureAction_validateInputPin(
@@ -17150,6 +17146,9 @@
 		if (result || diagnostics != null)
 			result &= validateWriteStructuralFeatureAction_validateTypeOfResult(
 				writeStructuralFeatureAction, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateWriteStructuralFeatureAction_validateMultiplicityOfResult(
+				writeStructuralFeatureAction, diagnostics, context);
 		return result;
 	}
 
@@ -17246,15 +17245,15 @@
 			result &= validateElement_validateNotOwnSelf(
 				clearStructuralFeatureAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				clearStructuralFeatureAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				clearStructuralFeatureAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				clearStructuralFeatureAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				clearStructuralFeatureAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				clearStructuralFeatureAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -17270,26 +17269,26 @@
 			result &= validateActivityNode_validateOwnedStructuredNode(
 				clearStructuralFeatureAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateStructuralFeatureAction_validateMultiplicity(
-				clearStructuralFeatureAction, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateStructuralFeatureAction_validateSameType(
-				clearStructuralFeatureAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateStructuralFeatureAction_validateVisibility(
 				clearStructuralFeatureAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateStructuralFeatureAction_validateMultiplicity(
+				clearStructuralFeatureAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateStructuralFeatureAction_validateNotStatic(
 				clearStructuralFeatureAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateStructuralFeatureAction_validateOneFeaturingClassifier(
 				clearStructuralFeatureAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateClearStructuralFeatureAction_validateTypeOfResult(
+			result &= validateStructuralFeatureAction_validateSameType(
 				clearStructuralFeatureAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateClearStructuralFeatureAction_validateMultiplicityOfResult(
 				clearStructuralFeatureAction, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateClearStructuralFeatureAction_validateTypeOfResult(
+				clearStructuralFeatureAction, diagnostics, context);
 		return result;
 	}
 
@@ -17360,15 +17359,15 @@
 			result &= validateElement_validateNotOwnSelf(
 				removeStructuralFeatureValueAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				removeStructuralFeatureValueAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				removeStructuralFeatureValueAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				removeStructuralFeatureValueAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				removeStructuralFeatureValueAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				removeStructuralFeatureValueAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -17384,22 +17383,19 @@
 			result &= validateActivityNode_validateOwnedStructuredNode(
 				removeStructuralFeatureValueAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateWriteStructuralFeatureAction_validateMultiplicity(
-				removeStructuralFeatureValueAction, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateStructuralFeatureAction_validateSameType(
-				removeStructuralFeatureValueAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateStructuralFeatureAction_validateVisibility(
 				removeStructuralFeatureValueAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateWriteStructuralFeatureAction_validateMultiplicity(
+				removeStructuralFeatureValueAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateStructuralFeatureAction_validateNotStatic(
 				removeStructuralFeatureValueAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateStructuralFeatureAction_validateOneFeaturingClassifier(
 				removeStructuralFeatureValueAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateWriteStructuralFeatureAction_validateMultiplicityOfResult(
+			result &= validateStructuralFeatureAction_validateSameType(
 				removeStructuralFeatureValueAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateWriteStructuralFeatureAction_validateInputPin(
@@ -17408,6 +17404,9 @@
 			result &= validateWriteStructuralFeatureAction_validateTypeOfResult(
 				removeStructuralFeatureValueAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateWriteStructuralFeatureAction_validateMultiplicityOfResult(
+				removeStructuralFeatureValueAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRemoveStructuralFeatureValueAction_validateNonUniqueRemoval(
 				removeStructuralFeatureValueAction, diagnostics, context);
 		return result;
@@ -17467,15 +17466,15 @@
 			result &= validateElement_validateNotOwnSelf(
 				addStructuralFeatureValueAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				addStructuralFeatureValueAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				addStructuralFeatureValueAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				addStructuralFeatureValueAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				addStructuralFeatureValueAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				addStructuralFeatureValueAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -17491,22 +17490,19 @@
 			result &= validateActivityNode_validateOwnedStructuredNode(
 				addStructuralFeatureValueAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateWriteStructuralFeatureAction_validateMultiplicity(
-				addStructuralFeatureValueAction, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateStructuralFeatureAction_validateSameType(
-				addStructuralFeatureValueAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateStructuralFeatureAction_validateVisibility(
 				addStructuralFeatureValueAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateWriteStructuralFeatureAction_validateMultiplicity(
+				addStructuralFeatureValueAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateStructuralFeatureAction_validateNotStatic(
 				addStructuralFeatureValueAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateStructuralFeatureAction_validateOneFeaturingClassifier(
 				addStructuralFeatureValueAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateWriteStructuralFeatureAction_validateMultiplicityOfResult(
+			result &= validateStructuralFeatureAction_validateSameType(
 				addStructuralFeatureValueAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateWriteStructuralFeatureAction_validateInputPin(
@@ -17515,11 +17511,14 @@
 			result &= validateWriteStructuralFeatureAction_validateTypeOfResult(
 				addStructuralFeatureValueAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateAddStructuralFeatureValueAction_validateRequiredValue(
+			result &= validateWriteStructuralFeatureAction_validateMultiplicityOfResult(
 				addStructuralFeatureValueAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateAddStructuralFeatureValueAction_validateUnlimitedNaturalAndMultiplicity(
 				addStructuralFeatureValueAction, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateAddStructuralFeatureValueAction_validateRequiredValue(
+				addStructuralFeatureValueAction, diagnostics, context);
 		return result;
 	}
 
@@ -17586,15 +17585,15 @@
 			result &= validateElement_validateNotOwnSelf(linkAction,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				linkAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(linkAction,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				linkAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				linkAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				linkAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -17692,18 +17691,18 @@
 			result &= validateElement_validateNotOwnSelf(linkEndData,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateLinkEndData_validatePropertyIsAssociationEnd(
+				linkEndData, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateLinkEndData_validateEndObjectInputPin(
+				linkEndData, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateLinkEndData_validateSameType(linkEndData,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateLinkEndData_validateMultiplicity(linkEndData,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateLinkEndData_validateEndObjectInputPin(
-				linkEndData, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateLinkEndData_validatePropertyIsAssociationEnd(
-				linkEndData, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateLinkEndData_validateQualifiers(linkEndData,
 				diagnostics, context);
 		return result;
@@ -17809,14 +17808,14 @@
 			result &= validateElement_validateNotOwnSelf(qualifierValue,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateQualifierValue_validateQualifierAttribute(
+				qualifierValue, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateQualifierValue_validateMultiplicityOfQualifier(
 				qualifierValue, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateQualifierValue_validateTypeOfQualifier(
 				qualifierValue, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateQualifierValue_validateQualifierAttribute(
-				qualifierValue, diagnostics, context);
 		return result;
 	}
 
@@ -17896,15 +17895,15 @@
 			result &= validateElement_validateNotOwnSelf(readLinkAction,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				readLinkAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				readLinkAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				readLinkAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				readLinkAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				readLinkAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -17932,17 +17931,17 @@
 			result &= validateReadLinkAction_validateTypeAndOrdering(
 				readLinkAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateReadLinkAction_validateOneOpenEnd(readLinkAction,
+				diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateReadLinkAction_validateCompatibleMultiplicity(
 				readLinkAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateReadLinkAction_validateNavigableOpenEnd(
+				readLinkAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateReadLinkAction_validateVisibility(readLinkAction,
 				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateReadLinkAction_validateOneOpenEnd(readLinkAction,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateReadLinkAction_validateNavigableOpenEnd(
-				readLinkAction, diagnostics, context);
 		return result;
 	}
 
@@ -18048,25 +18047,25 @@
 			result &= validateElement_validateNotOwnSelf(linkEndCreationData,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateLinkEndData_validatePropertyIsAssociationEnd(
+				linkEndCreationData, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateLinkEndData_validateEndObjectInputPin(
+				linkEndCreationData, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateLinkEndData_validateSameType(linkEndCreationData,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateLinkEndData_validateMultiplicity(
 				linkEndCreationData, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateLinkEndData_validateEndObjectInputPin(
-				linkEndCreationData, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateLinkEndData_validatePropertyIsAssociationEnd(
-				linkEndCreationData, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateLinkEndData_validateQualifiers(
 				linkEndCreationData, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateLinkEndCreationData_validateSingleInputPin(
+			result &= validateLinkEndCreationData_validateCreateLinkAction(
 				linkEndCreationData, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateLinkEndCreationData_validateCreateLinkAction(
+			result &= validateLinkEndCreationData_validateSingleInputPin(
 				linkEndCreationData, diagnostics, context);
 		return result;
 	}
@@ -18135,15 +18134,15 @@
 			result &= validateElement_validateNotOwnSelf(createLinkAction,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				createLinkAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				createLinkAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				createLinkAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				createLinkAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				createLinkAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -18228,15 +18227,15 @@
 			result &= validateElement_validateNotOwnSelf(writeLinkAction,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				writeLinkAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				writeLinkAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				writeLinkAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				writeLinkAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				writeLinkAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -18318,15 +18317,15 @@
 			result &= validateElement_validateNotOwnSelf(destroyLinkAction,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				destroyLinkAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				destroyLinkAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				destroyLinkAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				destroyLinkAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				destroyLinkAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -18397,25 +18396,25 @@
 			result &= validateElement_validateNotOwnSelf(
 				linkEndDestructionData, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateLinkEndData_validatePropertyIsAssociationEnd(
+				linkEndDestructionData, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateLinkEndData_validateEndObjectInputPin(
+				linkEndDestructionData, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateLinkEndData_validateSameType(
 				linkEndDestructionData, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateLinkEndData_validateMultiplicity(
 				linkEndDestructionData, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateLinkEndData_validateEndObjectInputPin(
-				linkEndDestructionData, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateLinkEndData_validatePropertyIsAssociationEnd(
-				linkEndDestructionData, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateLinkEndData_validateQualifiers(
 				linkEndDestructionData, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateLinkEndDestructionData_validateUnlimitedNaturalAndMultiplicity(
+			result &= validateLinkEndDestructionData_validateDestroyLinkAction(
 				linkEndDestructionData, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateLinkEndDestructionData_validateDestroyLinkAction(
+			result &= validateLinkEndDestructionData_validateUnlimitedNaturalAndMultiplicity(
 				linkEndDestructionData, diagnostics, context);
 		return result;
 	}
@@ -18487,15 +18486,15 @@
 			result &= validateElement_validateNotOwnSelf(
 				clearAssociationAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				clearAssociationAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				clearAssociationAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				clearAssociationAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				clearAssociationAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				clearAssociationAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -18585,15 +18584,15 @@
 			result &= validateElement_validateNotOwnSelf(broadcastSignalAction,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				broadcastSignalAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				broadcastSignalAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				broadcastSignalAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				broadcastSignalAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				broadcastSignalAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -18612,10 +18611,10 @@
 			result &= validateInvocationAction_validateOnPortReceiver(
 				broadcastSignalAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateBroadcastSignalAction_validateNumberAndOrder(
+			result &= validateBroadcastSignalAction_validateTypeOrderingMultiplicity(
 				broadcastSignalAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateBroadcastSignalAction_validateTypeOrderingMultiplicity(
+			result &= validateBroadcastSignalAction_validateNumberAndOrder(
 				broadcastSignalAction, diagnostics, context);
 		return result;
 	}
@@ -18685,15 +18684,15 @@
 			result &= validateElement_validateNotOwnSelf(invocationAction,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				invocationAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				invocationAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				invocationAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				invocationAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				invocationAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -18765,15 +18764,15 @@
 			result &= validateElement_validateNotOwnSelf(sendObjectAction,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				sendObjectAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				sendObjectAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				sendObjectAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				sendObjectAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				sendObjectAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -18835,15 +18834,15 @@
 			result &= validateElement_validateNotOwnSelf(
 				valueSpecificationAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				valueSpecificationAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				valueSpecificationAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				valueSpecificationAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				valueSpecificationAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				valueSpecificationAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -18932,14 +18931,14 @@
 			result &= validateElement_validateNotOwnSelf(timeExpression,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				timeExpression, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				timeExpression, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				timeExpression, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				timeExpression, diagnostics, context);
 		return result;
 	}
 
@@ -18980,14 +18979,14 @@
 			result &= validateElement_validateNotOwnSelf(observation,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				observation, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				observation, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				observation, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				observation, diagnostics, context);
 		return result;
 	}
 
@@ -19028,14 +19027,14 @@
 			result &= validateElement_validateNotOwnSelf(duration, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				duration, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(duration,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(duration,
 				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				duration, diagnostics, context);
 		return result;
 	}
 
@@ -19076,15 +19075,15 @@
 			result &= validateElement_validateNotOwnSelf(valuePin, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				valuePin, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(valuePin,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(valuePin,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				valuePin, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				valuePin, diagnostics, context);
 		if (result || diagnostics != null)
@@ -19100,25 +19099,25 @@
 			result &= validateActivityNode_validateOwnedStructuredNode(
 				valuePin, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateObjectNode_validateInputOutputParameter(valuePin,
+			result &= validateObjectNode_validateObjectFlowEdges(valuePin,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateObjectNode_validateSelectionBehavior(valuePin,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateObjectNode_validateObjectFlowEdges(valuePin,
+			result &= validateObjectNode_validateInputOutputParameter(valuePin,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateMultiplicityElement_validateLowerGe0(valuePin,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateMultiplicityElement_validateUpperGeLower(
 				valuePin, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateMultiplicityElement_validateLowerGe0(valuePin,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateMultiplicityElement_validateValueSpecificationNoSideEffects(
+			result &= validateMultiplicityElement_validateValueSpecificationConstant(
 				valuePin, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateMultiplicityElement_validateValueSpecificationConstant(
+			result &= validateMultiplicityElement_validateValueSpecificationNoSideEffects(
 				valuePin, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validatePin_validateControlPins(valuePin, diagnostics,
@@ -19127,10 +19126,10 @@
 			result &= validateInputPin_validateOutgoingEdgesStructuredOnly(
 				valuePin, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateValuePin_validateNoIncomingEdges(valuePin,
+			result &= validateValuePin_validateCompatibleType(valuePin,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateValuePin_validateCompatibleType(valuePin,
+			result &= validateValuePin_validateNoIncomingEdges(valuePin,
 				diagnostics, context);
 		return result;
 	}
@@ -19196,14 +19195,14 @@
 			result &= validateElement_validateNotOwnSelf(durationInterval,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				durationInterval, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				durationInterval, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				durationInterval, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				durationInterval, diagnostics, context);
 		return result;
 	}
 
@@ -19244,14 +19243,14 @@
 			result &= validateElement_validateNotOwnSelf(interval, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				interval, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(interval,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(interval,
 				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				interval, diagnostics, context);
 		return result;
 	}
 
@@ -19294,22 +19293,22 @@
 			result &= validateElement_validateNotOwnSelf(timeConstraint,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				timeConstraint, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				timeConstraint, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				timeConstraint, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateConstraint_validateBooleanValue(timeConstraint,
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				timeConstraint, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateConstraint_validateNotApplyToSelf(timeConstraint,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateConstraint_validateNoSideEffects(timeConstraint,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateConstraint_validateNotApplyToSelf(timeConstraint,
+			result &= validateConstraint_validateBooleanValue(timeConstraint,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateConstraint_validateValueSpecificationBoolean(
@@ -19358,22 +19357,22 @@
 			result &= validateElement_validateNotOwnSelf(intervalConstraint,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				intervalConstraint, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				intervalConstraint, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				intervalConstraint, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateConstraint_validateBooleanValue(
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				intervalConstraint, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateConstraint_validateNotApplyToSelf(
 				intervalConstraint, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateConstraint_validateNoSideEffects(
 				intervalConstraint, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateConstraint_validateNotApplyToSelf(
+			result &= validateConstraint_validateBooleanValue(
 				intervalConstraint, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateConstraint_validateValueSpecificationBoolean(
@@ -19419,14 +19418,14 @@
 			result &= validateElement_validateNotOwnSelf(timeInterval,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				timeInterval, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				timeInterval, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				timeInterval, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				timeInterval, diagnostics, context);
 		return result;
 	}
 
@@ -19471,22 +19470,22 @@
 			result &= validateElement_validateNotOwnSelf(durationConstraint,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				durationConstraint, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				durationConstraint, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				durationConstraint, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateConstraint_validateBooleanValue(
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				durationConstraint, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateConstraint_validateNotApplyToSelf(
 				durationConstraint, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateConstraint_validateNoSideEffects(
 				durationConstraint, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateConstraint_validateNotApplyToSelf(
+			result &= validateConstraint_validateBooleanValue(
 				durationConstraint, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateConstraint_validateValueSpecificationBoolean(
@@ -19549,14 +19548,14 @@
 			result &= validateElement_validateNotOwnSelf(timeObservation,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				timeObservation, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				timeObservation, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				timeObservation, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				timeObservation, diagnostics, context);
 		return result;
 	}
 
@@ -19601,15 +19600,15 @@
 			result &= validateElement_validateNotOwnSelf(durationObservation,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				durationObservation, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				durationObservation, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				durationObservation, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				durationObservation, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateDurationObservation_validateFirstEventMultiplicity(
 				durationObservation, diagnostics, context);
 		return result;
@@ -19666,15 +19665,15 @@
 			result &= validateElement_validateNotOwnSelf(opaqueAction,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				opaqueAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				opaqueAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				opaqueAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				opaqueAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				opaqueAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -19729,15 +19728,15 @@
 			result &= validateElement_validateNotOwnSelf(callAction,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				callAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(callAction,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				callAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				callAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				callAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -19756,14 +19755,14 @@
 			result &= validateInvocationAction_validateOnPortReceiver(
 				callAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateCallAction_validateTypeOrderingMultiplicity(
-				callAction, diagnostics, context);
+			result &= validateCallAction_validateSynchronousCall(callAction,
+				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateCallAction_validateNumberAndOrder(callAction,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateCallAction_validateSynchronousCall(callAction,
-				diagnostics, context);
+			result &= validateCallAction_validateTypeOrderingMultiplicity(
+				callAction, diagnostics, context);
 		return result;
 	}
 
@@ -19843,15 +19842,15 @@
 			result &= validateElement_validateNotOwnSelf(sendSignalAction,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				sendSignalAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				sendSignalAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				sendSignalAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				sendSignalAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				sendSignalAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -19944,15 +19943,15 @@
 			result &= validateElement_validateNotOwnSelf(callOperationAction,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				callOperationAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				callOperationAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				callOperationAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				callOperationAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				callOperationAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -19971,16 +19970,13 @@
 			result &= validateInvocationAction_validateOnPortReceiver(
 				callOperationAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateCallOperationAction_validateTypeOrderingMultiplicity(
+			result &= validateCallAction_validateSynchronousCall(
 				callOperationAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateCallAction_validateNumberAndOrder(
 				callOperationAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateCallAction_validateSynchronousCall(
-				callOperationAction, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateCallOperationAction_validateTypeTargetPin(
+			result &= validateCallOperationAction_validateTypeOrderingMultiplicity(
 				callOperationAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateCallOperationAction_validateArgumentPinEqualParameter(
@@ -19988,6 +19984,9 @@
 		if (result || diagnostics != null)
 			result &= validateCallOperationAction_validateResultPinEqualParameter(
 				callOperationAction, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateCallOperationAction_validateTypeTargetPin(
+				callOperationAction, diagnostics, context);
 		return result;
 	}
 
@@ -20083,15 +20082,15 @@
 			result &= validateElement_validateNotOwnSelf(callBehaviorAction,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				callBehaviorAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				callBehaviorAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				callBehaviorAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				callBehaviorAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				callBehaviorAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -20110,13 +20109,13 @@
 			result &= validateInvocationAction_validateOnPortReceiver(
 				callBehaviorAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateCallBehaviorAction_validateTypeOrderingMultiplicity(
+			result &= validateCallAction_validateSynchronousCall(
 				callBehaviorAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateCallAction_validateNumberAndOrder(
 				callBehaviorAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateCallAction_validateSynchronousCall(
+			result &= validateCallBehaviorAction_validateTypeOrderingMultiplicity(
 				callBehaviorAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateCallBehaviorAction_validateResultPinEqualParameter(
@@ -20205,15 +20204,15 @@
 			result &= validateElement_validateNotOwnSelf(informationItem,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				informationItem, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				informationItem, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				informationItem, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				informationItem, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(
 				informationItem, diagnostics, context);
 		if (result || diagnostics != null)
@@ -20226,19 +20225,16 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				informationItem, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateClassifier_validateSpecializeType(
-				informationItem, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateClassifier_validateMapsToGeneralizationSet(
-				informationItem, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateClassifier_validateNonFinalParents(
 				informationItem, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateClassifier_validateNoCyclesInGeneralization(
 				informationItem, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateInformationItem_validateSourcesAndTargets(
+			result &= validateClassifier_validateSpecializeType(
+				informationItem, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateClassifier_validateMapsToGeneralizationSet(
 				informationItem, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateInformationItem_validateHasNo(informationItem,
@@ -20246,6 +20242,9 @@
 		if (result || diagnostics != null)
 			result &= validateInformationItem_validateNotInstantiable(
 				informationItem, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateInformationItem_validateSourcesAndTargets(
+				informationItem, diagnostics, context);
 		return result;
 	}
 
@@ -20324,21 +20323,21 @@
 			result &= validateElement_validateNotOwnSelf(informationFlow,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				informationFlow, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				informationFlow, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				informationFlow, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateInformationFlow_validateMustConform(
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
 				informationFlow, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateInformationFlow_validateSourcesAndTargetsKind(
 				informationFlow, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateInformationFlow_validateMustConform(
+				informationFlow, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateInformationFlow_validateConveyClassifiers(
 				informationFlow, diagnostics, context);
 		return result;
@@ -20416,15 +20415,15 @@
 			result &= validateElement_validateNotOwnSelf(model, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				model, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(model,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(model,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				model, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(model,
 				diagnostics, context);
 		if (result || diagnostics != null)
@@ -20472,15 +20471,15 @@
 			result &= validateElement_validateNotOwnSelf(variableAction,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				variableAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				variableAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				variableAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				variableAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				variableAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -20554,15 +20553,15 @@
 			result &= validateElement_validateNotOwnSelf(readVariableAction,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				readVariableAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				readVariableAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				readVariableAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				readVariableAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				readVariableAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -20655,15 +20654,15 @@
 			result &= validateElement_validateNotOwnSelf(writeVariableAction,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				writeVariableAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				writeVariableAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				writeVariableAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				writeVariableAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				writeVariableAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -20682,10 +20681,10 @@
 			result &= validateVariableAction_validateScopeOfVariable(
 				writeVariableAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateWriteVariableAction_validateSameType(
+			result &= validateWriteVariableAction_validateMultiplicity(
 				writeVariableAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateWriteVariableAction_validateMultiplicity(
+			result &= validateWriteVariableAction_validateSameType(
 				writeVariableAction, diagnostics, context);
 		return result;
 	}
@@ -20755,15 +20754,15 @@
 			result &= validateElement_validateNotOwnSelf(clearVariableAction,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				clearVariableAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				clearVariableAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				clearVariableAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				clearVariableAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				clearVariableAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -20825,15 +20824,15 @@
 			result &= validateElement_validateNotOwnSelf(
 				addVariableValueAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				addVariableValueAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				addVariableValueAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				addVariableValueAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				addVariableValueAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				addVariableValueAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -20852,10 +20851,10 @@
 			result &= validateVariableAction_validateScopeOfVariable(
 				addVariableValueAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateWriteVariableAction_validateSameType(
+			result &= validateWriteVariableAction_validateMultiplicity(
 				addVariableValueAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateWriteVariableAction_validateMultiplicity(
+			result &= validateWriteVariableAction_validateSameType(
 				addVariableValueAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateAddVariableValueAction_validateRequiredValue(
@@ -20933,15 +20932,15 @@
 			result &= validateElement_validateNotOwnSelf(
 				removeVariableValueAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				removeVariableValueAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				removeVariableValueAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				removeVariableValueAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				removeVariableValueAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				removeVariableValueAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -20960,10 +20959,10 @@
 			result &= validateVariableAction_validateScopeOfVariable(
 				removeVariableValueAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateWriteVariableAction_validateSameType(
+			result &= validateWriteVariableAction_validateMultiplicity(
 				removeVariableValueAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateWriteVariableAction_validateMultiplicity(
+			result &= validateWriteVariableAction_validateSameType(
 				removeVariableValueAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateRemoveVariableValueAction_validateUnlimitedNatural(
@@ -21025,15 +21024,15 @@
 			result &= validateElement_validateNotOwnSelf(raiseExceptionAction,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				raiseExceptionAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				raiseExceptionAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				raiseExceptionAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				raiseExceptionAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				raiseExceptionAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -21090,15 +21089,15 @@
 			result &= validateElement_validateNotOwnSelf(actionInputPin,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				actionInputPin, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				actionInputPin, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				actionInputPin, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				actionInputPin, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				actionInputPin, diagnostics, context);
 		if (result || diagnostics != null)
@@ -21114,27 +21113,27 @@
 			result &= validateActivityNode_validateOwnedStructuredNode(
 				actionInputPin, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateObjectNode_validateInputOutputParameter(
+			result &= validateObjectNode_validateObjectFlowEdges(
 				actionInputPin, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateObjectNode_validateSelectionBehavior(
 				actionInputPin, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateObjectNode_validateObjectFlowEdges(
-				actionInputPin, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateMultiplicityElement_validateUpperGeLower(
+			result &= validateObjectNode_validateInputOutputParameter(
 				actionInputPin, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateMultiplicityElement_validateLowerGe0(
 				actionInputPin, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateMultiplicityElement_validateValueSpecificationNoSideEffects(
+			result &= validateMultiplicityElement_validateUpperGeLower(
 				actionInputPin, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateMultiplicityElement_validateValueSpecificationConstant(
 				actionInputPin, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateMultiplicityElement_validateValueSpecificationNoSideEffects(
+				actionInputPin, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validatePin_validateControlPins(actionInputPin,
 				diagnostics, context);
 		if (result || diagnostics != null)
@@ -21144,10 +21143,10 @@
 			result &= validateActionInputPin_validateInputPin(actionInputPin,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateActionInputPin_validateOneOutputPin(
+			result &= validateActionInputPin_validateNoControlOrDataFlow(
 				actionInputPin, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateActionInputPin_validateNoControlOrDataFlow(
+			result &= validateActionInputPin_validateOneOutputPin(
 				actionInputPin, diagnostics, context);
 		return result;
 	}
@@ -21227,15 +21226,15 @@
 			result &= validateElement_validateNotOwnSelf(readExtentAction,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				readExtentAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				readExtentAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				readExtentAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				readExtentAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				readExtentAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -21325,15 +21324,15 @@
 			result &= validateElement_validateNotOwnSelf(
 				reclassifyObjectAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				reclassifyObjectAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				reclassifyObjectAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				reclassifyObjectAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				reclassifyObjectAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				reclassifyObjectAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -21352,10 +21351,10 @@
 			result &= validateReclassifyObjectAction_validateInputPin(
 				reclassifyObjectAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateReclassifyObjectAction_validateClassifierNotAbstract(
+			result &= validateReclassifyObjectAction_validateMultiplicity(
 				reclassifyObjectAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateReclassifyObjectAction_validateMultiplicity(
+			result &= validateReclassifyObjectAction_validateClassifierNotAbstract(
 				reclassifyObjectAction, diagnostics, context);
 		return result;
 	}
@@ -21439,15 +21438,15 @@
 			result &= validateElement_validateNotOwnSelf(
 				readIsClassifiedObjectAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				readIsClassifiedObjectAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				readIsClassifiedObjectAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				readIsClassifiedObjectAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				readIsClassifiedObjectAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				readIsClassifiedObjectAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -21570,15 +21569,15 @@
 			result &= validateElement_validateNotOwnSelf(
 				startClassifierBehaviorAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				startClassifierBehaviorAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				startClassifierBehaviorAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				startClassifierBehaviorAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				startClassifierBehaviorAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				startClassifierBehaviorAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -21594,10 +21593,10 @@
 			result &= validateActivityNode_validateOwnedStructuredNode(
 				startClassifierBehaviorAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateStartClassifierBehaviorAction_validateMultiplicity(
+			result &= validateStartClassifierBehaviorAction_validateTypeHasClassifier(
 				startClassifierBehaviorAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateStartClassifierBehaviorAction_validateTypeHasClassifier(
+			result &= validateStartClassifierBehaviorAction_validateMultiplicity(
 				startClassifierBehaviorAction, diagnostics, context);
 		return result;
 	}
@@ -21669,15 +21668,15 @@
 			result &= validateElement_validateNotOwnSelf(
 				readLinkObjectEndAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				readLinkObjectEndAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				readLinkObjectEndAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				readLinkObjectEndAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				readLinkObjectEndAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				readLinkObjectEndAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -21693,25 +21692,25 @@
 			result &= validateActivityNode_validateOwnedStructuredNode(
 				readLinkObjectEndAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateReadLinkObjectEndAction_validateProperty(
+			result &= validateReadLinkObjectEndAction_validateAssociationOfAssociation(
 				readLinkObjectEndAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateReadLinkObjectEndAction_validateMultiplicityOfObject(
 				readLinkObjectEndAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateReadLinkObjectEndAction_validateEndsOfAssociation(
-				readLinkObjectEndAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateReadLinkObjectEndAction_validateTypeOfResult(
 				readLinkObjectEndAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateReadLinkObjectEndAction_validateMultiplicityOfResult(
-				readLinkObjectEndAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateReadLinkObjectEndAction_validateTypeOfObject(
 				readLinkObjectEndAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateReadLinkObjectEndAction_validateAssociationOfAssociation(
+			result &= validateReadLinkObjectEndAction_validateProperty(
+				readLinkObjectEndAction, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateReadLinkObjectEndAction_validateMultiplicityOfResult(
+				readLinkObjectEndAction, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateReadLinkObjectEndAction_validateEndsOfAssociation(
 				readLinkObjectEndAction, diagnostics, context);
 		return result;
 	}
@@ -21847,15 +21846,15 @@
 			result &= validateElement_validateNotOwnSelf(
 				readLinkObjectEndQualifierAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				readLinkObjectEndQualifierAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				readLinkObjectEndQualifierAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				readLinkObjectEndQualifierAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				readLinkObjectEndQualifierAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				readLinkObjectEndQualifierAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -21871,24 +21870,24 @@
 			result &= validateActivityNode_validateOwnedStructuredNode(
 				readLinkObjectEndQualifierAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateReadLinkObjectEndQualifierAction_validateMultiplicityOfObject(
-				readLinkObjectEndQualifierAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateReadLinkObjectEndQualifierAction_validateTypeOfObject(
 				readLinkObjectEndQualifierAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateReadLinkObjectEndQualifierAction_validateMultiplicityOfQualifier(
-				readLinkObjectEndQualifierAction, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateReadLinkObjectEndQualifierAction_validateEndsOfAssociation(
-				readLinkObjectEndQualifierAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateReadLinkObjectEndQualifierAction_validateMultiplicityOfResult(
 				readLinkObjectEndQualifierAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateReadLinkObjectEndQualifierAction_validateSameType(
 				readLinkObjectEndQualifierAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateReadLinkObjectEndQualifierAction_validateEndsOfAssociation(
+				readLinkObjectEndQualifierAction, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateReadLinkObjectEndQualifierAction_validateMultiplicityOfQualifier(
+				readLinkObjectEndQualifierAction, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateReadLinkObjectEndQualifierAction_validateMultiplicityOfObject(
+				readLinkObjectEndQualifierAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateReadLinkObjectEndQualifierAction_validateAssociationOfAssociation(
 				readLinkObjectEndQualifierAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -22042,15 +22041,15 @@
 			result &= validateElement_validateNotOwnSelf(
 				createLinkObjectAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				createLinkObjectAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				createLinkObjectAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				createLinkObjectAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				createLinkObjectAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				createLinkObjectAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -22081,13 +22080,13 @@
 			result &= validateCreateLinkAction_validateAssociationNotAbstract(
 				createLinkObjectAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateCreateLinkObjectAction_validateMultiplicity(
+			result &= validateCreateLinkObjectAction_validateAssociationClass(
 				createLinkObjectAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateCreateLinkObjectAction_validateTypeOfResult(
 				createLinkObjectAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateCreateLinkObjectAction_validateAssociationClass(
+			result &= validateCreateLinkObjectAction_validateMultiplicity(
 				createLinkObjectAction, diagnostics, context);
 		return result;
 	}
@@ -22171,15 +22170,15 @@
 			result &= validateElement_validateNotOwnSelf(acceptEventAction,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				acceptEventAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				acceptEventAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				acceptEventAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				acceptEventAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				acceptEventAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -22195,17 +22194,17 @@
 			result &= validateActivityNode_validateOwnedStructuredNode(
 				acceptEventAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateAcceptEventAction_validateTriggerEvents(
-				acceptEventAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateAcceptEventAction_validateNoInputPins(
 				acceptEventAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateAcceptEventAction_validateNoOutputPins(
+			result &= validateAcceptEventAction_validateTriggerEvents(
 				acceptEventAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateAcceptEventAction_validateUnmarshallSignalEvents(
 				acceptEventAction, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateAcceptEventAction_validateNoOutputPins(
+				acceptEventAction, diagnostics, context);
 		return result;
 	}
 
@@ -22297,15 +22296,15 @@
 			result &= validateElement_validateNotOwnSelf(acceptCallAction,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				acceptCallAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				acceptCallAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				acceptCallAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				acceptCallAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				acceptCallAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -22321,19 +22320,16 @@
 			result &= validateActivityNode_validateOwnedStructuredNode(
 				acceptCallAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateAcceptEventAction_validateTriggerEvents(
-				acceptCallAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateAcceptEventAction_validateNoInputPins(
 				acceptCallAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateAcceptEventAction_validateNoOutputPins(
+			result &= validateAcceptEventAction_validateTriggerEvents(
 				acceptCallAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateAcceptEventAction_validateUnmarshallSignalEvents(
 				acceptCallAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateAcceptCallAction_validateResultPins(
+			result &= validateAcceptEventAction_validateNoOutputPins(
 				acceptCallAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateAcceptCallAction_validateTriggerCallEvent(
@@ -22341,6 +22337,9 @@
 		if (result || diagnostics != null)
 			result &= validateAcceptCallAction_validateUnmarshall(
 				acceptCallAction, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateAcceptCallAction_validateResultPins(
+				acceptCallAction, diagnostics, context);
 		return result;
 	}
 
@@ -22417,15 +22416,15 @@
 			result &= validateElement_validateNotOwnSelf(replyAction,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				replyAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				replyAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				replyAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				replyAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				replyAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -22441,10 +22440,10 @@
 			result &= validateActivityNode_validateOwnedStructuredNode(
 				replyAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateReplyAction_validatePinsMatchParameter(
+			result &= validateReplyAction_validateEventOnReplyToCallTrigger(
 				replyAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateReplyAction_validateEventOnReplyToCallTrigger(
+			result &= validateReplyAction_validatePinsMatchParameter(
 				replyAction, diagnostics, context);
 		return result;
 	}
@@ -22513,15 +22512,15 @@
 			result &= validateElement_validateNotOwnSelf(unmarshallAction,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				unmarshallAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				unmarshallAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				unmarshallAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				unmarshallAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				unmarshallAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -22537,25 +22536,25 @@
 			result &= validateActivityNode_validateOwnedStructuredNode(
 				unmarshallAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateUnmarshallAction_validateSameType(
+				unmarshallAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateUnmarshallAction_validateStructuralFeature(
 				unmarshallAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateUnmarshallAction_validateNumberOfResult(
-				unmarshallAction, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateUnmarshallAction_validateMultiplicityOfResult(
-				unmarshallAction, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateUnmarshallAction_validateTypeAndOrdering(
-				unmarshallAction, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateUnmarshallAction_validateUnmarshallTypeIsClassifier(
-				unmarshallAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateUnmarshallAction_validateMultiplicityOfObject(
 				unmarshallAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateUnmarshallAction_validateSameType(
+			result &= validateUnmarshallAction_validateTypeAndOrdering(
+				unmarshallAction, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateUnmarshallAction_validateNumberOfResult(
+				unmarshallAction, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateUnmarshallAction_validateUnmarshallTypeIsClassifier(
+				unmarshallAction, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateUnmarshallAction_validateMultiplicityOfResult(
 				unmarshallAction, diagnostics, context);
 		return result;
 	}
@@ -22685,15 +22684,15 @@
 			result &= validateElement_validateNotOwnSelf(reduceAction,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				reduceAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				reduceAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				reduceAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				reduceAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				reduceAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -22709,14 +22708,14 @@
 			result &= validateActivityNode_validateOwnedStructuredNode(
 				reduceAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateReduceAction_validateOutputTypesAreCompatible(
+				reduceAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateReduceAction_validateReducerInputsOutput(
 				reduceAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateReduceAction_validateInputTypeIsCollection(
 				reduceAction, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateReduceAction_validateOutputTypesAreCompatible(
-				reduceAction, diagnostics, context);
 		return result;
 	}
 
@@ -22798,15 +22797,15 @@
 			result &= validateElement_validateNotOwnSelf(
 				startObjectBehaviorAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				startObjectBehaviorAction, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				startObjectBehaviorAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				startObjectBehaviorAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				startObjectBehaviorAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				startObjectBehaviorAction, diagnostics, context);
 		if (result || diagnostics != null)
@@ -22825,29 +22824,29 @@
 			result &= validateInvocationAction_validateOnPortReceiver(
 				startObjectBehaviorAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateCallAction_validateTypeOrderingMultiplicity(
+			result &= validateCallAction_validateSynchronousCall(
 				startObjectBehaviorAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateCallAction_validateNumberAndOrder(
 				startObjectBehaviorAction, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateCallAction_validateSynchronousCall(
-				startObjectBehaviorAction, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateStartObjectBehaviorAction_validateNumberOrderResults(
-				startObjectBehaviorAction, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateStartObjectBehaviorAction_validateMultiplicityOfObject(
-				startObjectBehaviorAction, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateStartObjectBehaviorAction_validateTypeOrderingMultiplicityMatch(
+			result &= validateCallAction_validateTypeOrderingMultiplicity(
 				startObjectBehaviorAction, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateStartObjectBehaviorAction_validateNumberOrderArguments(
 				startObjectBehaviorAction, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateStartObjectBehaviorAction_validateTypeOrderingMultiplicityMatch(
+				startObjectBehaviorAction, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateStartObjectBehaviorAction_validateNumberOrderResults(
+				startObjectBehaviorAction, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateStartObjectBehaviorAction_validateTypeOfObject(
 				startObjectBehaviorAction, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateStartObjectBehaviorAction_validateMultiplicityOfObject(
+				startObjectBehaviorAction, diagnostics, context);
 		return result;
 	}
 
@@ -22953,15 +22952,15 @@
 			result &= validateElement_validateNotOwnSelf(controlNode,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				controlNode, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				controlNode, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				controlNode, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				controlNode, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				controlNode, diagnostics, context);
 		if (result || diagnostics != null)
@@ -23016,15 +23015,15 @@
 			result &= validateElement_validateNotOwnSelf(controlFlow,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				controlFlow, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				controlFlow, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				controlFlow, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				controlFlow, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				controlFlow, diagnostics, context);
 		if (result || diagnostics != null)
@@ -23097,15 +23096,15 @@
 			result &= validateElement_validateNotOwnSelf(initialNode,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				initialNode, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				initialNode, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				initialNode, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				initialNode, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				initialNode, diagnostics, context);
 		if (result || diagnostics != null)
@@ -23194,15 +23193,15 @@
 			result &= validateElement_validateNotOwnSelf(activityParameterNode,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				activityParameterNode, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				activityParameterNode, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				activityParameterNode, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				activityParameterNode, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				activityParameterNode, diagnostics, context);
 		if (result || diagnostics != null)
@@ -23218,35 +23217,35 @@
 			result &= validateActivityNode_validateOwnedStructuredNode(
 				activityParameterNode, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateObjectNode_validateInputOutputParameter(
+			result &= validateObjectNode_validateObjectFlowEdges(
 				activityParameterNode, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateObjectNode_validateSelectionBehavior(
 				activityParameterNode, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateObjectNode_validateObjectFlowEdges(
-				activityParameterNode, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateActivityParameterNode_validateNoOutgoingEdges(
-				activityParameterNode, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateActivityParameterNode_validateMaximumTwoParameterNodes(
-				activityParameterNode, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateActivityParameterNode_validateHasParameters(
-				activityParameterNode, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateActivityParameterNode_validateSameType(
+			result &= validateObjectNode_validateInputOutputParameter(
 				activityParameterNode, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateActivityParameterNode_validateMaximumOneParameterNode(
 				activityParameterNode, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateActivityParameterNode_validateNoIncomingEdges(
+			result &= validateActivityParameterNode_validateMaximumTwoParameterNodes(
 				activityParameterNode, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateActivityParameterNode_validateNoEdges(
 				activityParameterNode, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateActivityParameterNode_validateNoIncomingEdges(
+				activityParameterNode, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateActivityParameterNode_validateNoOutgoingEdges(
+				activityParameterNode, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateActivityParameterNode_validateSameType(
+				activityParameterNode, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateActivityParameterNode_validateHasParameters(
+				activityParameterNode, diagnostics, context);
 		return result;
 	}
 
@@ -23376,15 +23375,15 @@
 			result &= validateElement_validateNotOwnSelf(forkNode, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				forkNode, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(forkNode,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(forkNode,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				forkNode, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				forkNode, diagnostics, context);
 		if (result || diagnostics != null)
@@ -23468,15 +23467,15 @@
 			result &= validateElement_validateNotOwnSelf(flowFinalNode,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				flowFinalNode, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				flowFinalNode, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				flowFinalNode, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				flowFinalNode, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				flowFinalNode, diagnostics, context);
 		if (result || diagnostics != null)
@@ -23534,15 +23533,15 @@
 			result &= validateElement_validateNotOwnSelf(finalNode,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				finalNode, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(finalNode,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				finalNode, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				finalNode, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				finalNode, diagnostics, context);
 		if (result || diagnostics != null)
@@ -23615,15 +23614,15 @@
 			result &= validateElement_validateNotOwnSelf(centralBufferNode,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				centralBufferNode, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				centralBufferNode, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				centralBufferNode, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				centralBufferNode, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				centralBufferNode, diagnostics, context);
 		if (result || diagnostics != null)
@@ -23639,13 +23638,13 @@
 			result &= validateActivityNode_validateOwnedStructuredNode(
 				centralBufferNode, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateObjectNode_validateInputOutputParameter(
+			result &= validateObjectNode_validateObjectFlowEdges(
 				centralBufferNode, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateObjectNode_validateSelectionBehavior(
 				centralBufferNode, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateObjectNode_validateObjectFlowEdges(
+			result &= validateObjectNode_validateInputOutputParameter(
 				centralBufferNode, diagnostics, context);
 		return result;
 	}
@@ -23687,15 +23686,15 @@
 			result &= validateElement_validateNotOwnSelf(mergeNode,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				mergeNode, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(mergeNode,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				mergeNode, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				mergeNode, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				mergeNode, diagnostics, context);
 		if (result || diagnostics != null)
@@ -23780,15 +23779,15 @@
 			result &= validateElement_validateNotOwnSelf(decisionNode,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				decisionNode, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				decisionNode, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				decisionNode, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				decisionNode, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				decisionNode, diagnostics, context);
 		if (result || diagnostics != null)
@@ -23804,16 +23803,10 @@
 			result &= validateActivityNode_validateOwnedStructuredNode(
 				decisionNode, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateDecisionNode_validateZeroInputParameters(
-				decisionNode, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateDecisionNode_validateEdges(decisionNode,
+			result &= validateDecisionNode_validateParameters(decisionNode,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateDecisionNode_validateDecisionInputFlowIncoming(
-				decisionNode, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateDecisionNode_validateTwoInputParameters(
+			result &= validateDecisionNode_validateIncomingObjectOneInputParameter(
 				decisionNode, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateDecisionNode_validateIncomingOutgoingEdges(
@@ -23822,11 +23815,17 @@
 			result &= validateDecisionNode_validateIncomingControlOneInputParameter(
 				decisionNode, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateDecisionNode_validateParameters(decisionNode,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateDecisionNode_validateIncomingObjectOneInputParameter(
+			result &= validateDecisionNode_validateTwoInputParameters(
 				decisionNode, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateDecisionNode_validateDecisionInputFlowIncoming(
+				decisionNode, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateDecisionNode_validateZeroInputParameters(
+				decisionNode, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateDecisionNode_validateEdges(decisionNode,
+				diagnostics, context);
 		return result;
 	}
 
@@ -23969,15 +23968,15 @@
 			result &= validateElement_validateNotOwnSelf(activityFinalNode,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				activityFinalNode, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				activityFinalNode, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				activityFinalNode, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				activityFinalNode, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				activityFinalNode, diagnostics, context);
 		if (result || diagnostics != null)
@@ -24035,15 +24034,15 @@
 			result &= validateElement_validateNotOwnSelf(joinNode, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				joinNode, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(joinNode,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(joinNode,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				joinNode, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				joinNode, diagnostics, context);
 		if (result || diagnostics != null)
@@ -24128,15 +24127,15 @@
 			result &= validateElement_validateNotOwnSelf(dataStoreNode,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				dataStoreNode, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				dataStoreNode, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				dataStoreNode, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				dataStoreNode, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				dataStoreNode, diagnostics, context);
 		if (result || diagnostics != null)
@@ -24152,14 +24151,14 @@
 			result &= validateActivityNode_validateOwnedStructuredNode(
 				dataStoreNode, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateObjectNode_validateInputOutputParameter(
-				dataStoreNode, diagnostics, context);
+			result &= validateObjectNode_validateObjectFlowEdges(dataStoreNode,
+				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateObjectNode_validateSelectionBehavior(
 				dataStoreNode, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateObjectNode_validateObjectFlowEdges(dataStoreNode,
-				diagnostics, context);
+			result &= validateObjectNode_validateInputOutputParameter(
+				dataStoreNode, diagnostics, context);
 		return result;
 	}
 
@@ -24200,15 +24199,15 @@
 			result &= validateElement_validateNotOwnSelf(objectFlow,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				objectFlow, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(objectFlow,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				objectFlow, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				objectFlow, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				objectFlow, diagnostics, context);
 		if (result || diagnostics != null)
@@ -24227,13 +24226,7 @@
 			result &= validateActivityEdge_validateStructuredNode(objectFlow,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateObjectFlow_validateInputAndOutputParameter(
-				objectFlow, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateObjectFlow_validateNoActions(objectFlow,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateObjectFlow_validateTransformationBehaviour(
+			result &= validateObjectFlow_validateIsMulticastOrIsMultireceive(
 				objectFlow, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateObjectFlow_validateSelectionBehaviour(objectFlow,
@@ -24242,14 +24235,20 @@
 			result &= validateObjectFlow_validateCompatibleTypes(objectFlow,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateObjectFlow_validateSameUpperBounds(objectFlow,
+			result &= validateObjectFlow_validateNoActions(objectFlow,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateObjectFlow_validateInputAndOutputParameter(
+				objectFlow, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateObjectFlow_validateTransformationBehaviour(
+				objectFlow, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateObjectFlow_validateTarget(objectFlow,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateObjectFlow_validateIsMulticastOrIsMultireceive(
-				objectFlow, diagnostics, context);
+			result &= validateObjectFlow_validateSameUpperBounds(objectFlow,
+				diagnostics, context);
 		return result;
 	}
 
@@ -24386,15 +24385,15 @@
 			result &= validateElement_validateNotOwnSelf(sequenceNode,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				sequenceNode, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				sequenceNode, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				sequenceNode, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				sequenceNode, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				sequenceNode, diagnostics, context);
 		if (result || diagnostics != null)
@@ -24413,22 +24412,22 @@
 			result &= validateNamespace_validateMembersDistinguishable(
 				sequenceNode, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateActivityGroup_validateNodesAndEdges(sequenceNode,
-				diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateActivityGroup_validateGroupOwned(sequenceNode,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateActivityGroup_validateNotContained(sequenceNode,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateStructuredActivityNode_validateOutputPinEdges(
+			result &= validateActivityGroup_validateNodesAndEdges(sequenceNode,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateStructuredActivityNode_validateInputPinEdges(
 				sequenceNode, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateStructuredActivityNode_validateEdges(
 				sequenceNode, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateStructuredActivityNode_validateInputPinEdges(
+			result &= validateStructuredActivityNode_validateOutputPinEdges(
 				sequenceNode, diagnostics, context);
 		return result;
 	}
@@ -24472,15 +24471,15 @@
 			result &= validateElement_validateNotOwnSelf(conditionalNode,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				conditionalNode, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				conditionalNode, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				conditionalNode, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				conditionalNode, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				conditionalNode, diagnostics, context);
 		if (result || diagnostics != null)
@@ -24499,34 +24498,22 @@
 			result &= validateNamespace_validateMembersDistinguishable(
 				conditionalNode, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateActivityGroup_validateNodesAndEdges(
-				conditionalNode, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateActivityGroup_validateGroupOwned(conditionalNode,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateActivityGroup_validateNotContained(
 				conditionalNode, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateStructuredActivityNode_validateOutputPinEdges(
-				conditionalNode, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateStructuredActivityNode_validateEdges(
+			result &= validateActivityGroup_validateNodesAndEdges(
 				conditionalNode, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateStructuredActivityNode_validateInputPinEdges(
 				conditionalNode, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateConditionalNode_validateResultNoIncoming(
+			result &= validateStructuredActivityNode_validateEdges(
 				conditionalNode, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateConditionalNode_validateNoInputPins(
-				conditionalNode, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateConditionalNode_validateOneClauseWithExecutableNode(
-				conditionalNode, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateConditionalNode_validateMatchingOutputPins(
+			result &= validateStructuredActivityNode_validateOutputPinEdges(
 				conditionalNode, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateConditionalNode_validateExecutableNodes(
@@ -24534,6 +24521,18 @@
 		if (result || diagnostics != null)
 			result &= validateConditionalNode_validateClauseNoPredecessor(
 				conditionalNode, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateConditionalNode_validateMatchingOutputPins(
+				conditionalNode, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateConditionalNode_validateOneClauseWithExecutableNode(
+				conditionalNode, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateConditionalNode_validateResultNoIncoming(
+				conditionalNode, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateConditionalNode_validateNoInputPins(
+				conditionalNode, diagnostics, context);
 		return result;
 	}
 
@@ -24646,14 +24645,14 @@
 			result &= validateElement_validateNotOwnSelf(clause, diagnostics,
 				context);
 		if (result || diagnostics != null)
+			result &= validateClause_validateTestAndBody(clause, diagnostics,
+				context);
+		if (result || diagnostics != null)
 			result &= validateClause_validateBodyOutputPins(clause,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateClause_validateDeciderOutput(clause, diagnostics,
 				context);
-		if (result || diagnostics != null)
-			result &= validateClause_validateTestAndBody(clause, diagnostics,
-				context);
 		return result;
 	}
 
@@ -24727,15 +24726,15 @@
 			result &= validateElement_validateNotOwnSelf(loopNode, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				loopNode, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(loopNode,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(loopNode,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				loopNode, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				loopNode, diagnostics, context);
 		if (result || diagnostics != null)
@@ -24754,35 +24753,35 @@
 			result &= validateNamespace_validateMembersDistinguishable(
 				loopNode, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateActivityGroup_validateNodesAndEdges(loopNode,
-				diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateActivityGroup_validateGroupOwned(loopNode,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateActivityGroup_validateNotContained(loopNode,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateStructuredActivityNode_validateOutputPinEdges(
-				loopNode, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateStructuredActivityNode_validateEdges(loopNode,
+			result &= validateActivityGroup_validateNodesAndEdges(loopNode,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateStructuredActivityNode_validateInputPinEdges(
 				loopNode, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateLoopNode_validateResultNoIncoming(loopNode,
+			result &= validateStructuredActivityNode_validateEdges(loopNode,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateLoopNode_validateInputEdges(loopNode,
-				diagnostics, context);
+			result &= validateStructuredActivityNode_validateOutputPinEdges(
+				loopNode, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateLoopNode_validateExecutableNodes(loopNode,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateLoopNode_validateBodyOutputPins(loopNode,
 				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateLoopNode_validateResultNoIncoming(loopNode,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateLoopNode_validateInputEdges(loopNode,
+				diagnostics, context);
 		return result;
 	}
 
@@ -24868,15 +24867,15 @@
 			result &= validateElement_validateNotOwnSelf(expansionNode,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				expansionNode, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				expansionNode, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				expansionNode, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				expansionNode, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				expansionNode, diagnostics, context);
 		if (result || diagnostics != null)
@@ -24892,14 +24891,14 @@
 			result &= validateActivityNode_validateOwnedStructuredNode(
 				expansionNode, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateObjectNode_validateInputOutputParameter(
-				expansionNode, diagnostics, context);
+			result &= validateObjectNode_validateObjectFlowEdges(expansionNode,
+				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateObjectNode_validateSelectionBehavior(
 				expansionNode, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateObjectNode_validateObjectFlowEdges(expansionNode,
-				diagnostics, context);
+			result &= validateObjectNode_validateInputOutputParameter(
+				expansionNode, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateExpansionNode_validateRegionAsInputOrOutput(
 				expansionNode, diagnostics, context);
@@ -24958,15 +24957,15 @@
 			result &= validateElement_validateNotOwnSelf(expansionRegion,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				expansionRegion, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				expansionRegion, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				expansionRegion, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				expansionRegion, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateRedefinableElement_validateRedefinitionConsistent(
 				expansionRegion, diagnostics, context);
 		if (result || diagnostics != null)
@@ -24985,22 +24984,22 @@
 			result &= validateNamespace_validateMembersDistinguishable(
 				expansionRegion, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateActivityGroup_validateNodesAndEdges(
-				expansionRegion, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateActivityGroup_validateGroupOwned(expansionRegion,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateActivityGroup_validateNotContained(
 				expansionRegion, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateStructuredActivityNode_validateOutputPinEdges(
+			result &= validateActivityGroup_validateNodesAndEdges(
+				expansionRegion, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateStructuredActivityNode_validateInputPinEdges(
 				expansionRegion, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateStructuredActivityNode_validateEdges(
 				expansionRegion, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateStructuredActivityNode_validateInputPinEdges(
+			result &= validateStructuredActivityNode_validateOutputPinEdges(
 				expansionRegion, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateExpansionRegion_validateExpansionNodes(
@@ -25061,14 +25060,14 @@
 			result &= validateElement_validateNotOwnSelf(componentRealization,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				componentRealization, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				componentRealization, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				componentRealization, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				componentRealization, diagnostics, context);
 		return result;
 	}
 
@@ -25109,15 +25108,15 @@
 			result &= validateElement_validateNotOwnSelf(component,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				component, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(component,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				component, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				component, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(
 				component, diagnostics, context);
 		if (result || diagnostics != null)
@@ -25130,18 +25129,18 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				component, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateClassifier_validateSpecializeType(component,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateClassifier_validateMapsToGeneralizationSet(
-				component, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateClassifier_validateNonFinalParents(component,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateClassifier_validateNoCyclesInGeneralization(
 				component, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateClassifier_validateSpecializeType(component,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateClassifier_validateMapsToGeneralizationSet(
+				component, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateStructuredClassifier_validateMultiplicities(
 				component, diagnostics, context);
 		if (result || diagnostics != null)
@@ -25151,10 +25150,10 @@
 			result &= validateClass_validatePassiveClass(component,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateComponent_validateNoNestedClassifiers(component,
+			result &= validateComponent_validateNoPackagedElements(component,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateComponent_validateNoPackagedElements(component,
+			result &= validateComponent_validateNoNestedClassifiers(component,
 				diagnostics, context);
 		return result;
 	}
@@ -25218,15 +25217,15 @@
 			result &= validateElement_validateNotOwnSelf(node, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				node, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(node,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(node,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				node, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(node,
 				diagnostics, context);
 		if (result || diagnostics != null)
@@ -25239,18 +25238,18 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				node, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateClassifier_validateSpecializeType(node,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateClassifier_validateMapsToGeneralizationSet(node,
-				diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateClassifier_validateNonFinalParents(node,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateClassifier_validateNoCyclesInGeneralization(node,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateClassifier_validateSpecializeType(node,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateClassifier_validateMapsToGeneralizationSet(node,
+				diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateStructuredClassifier_validateMultiplicities(node,
 				diagnostics, context);
 		if (result || diagnostics != null)
@@ -25311,15 +25310,15 @@
 			result &= validateElement_validateNotOwnSelf(device, diagnostics,
 				context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				device, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(device,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(device,
 				diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				device, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(device,
 				diagnostics, context);
 		if (result || diagnostics != null)
@@ -25332,18 +25331,18 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				device, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateClassifier_validateSpecializeType(device,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateClassifier_validateMapsToGeneralizationSet(
-				device, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateClassifier_validateNonFinalParents(device,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateClassifier_validateNoCyclesInGeneralization(
 				device, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateClassifier_validateSpecializeType(device,
+				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateClassifier_validateMapsToGeneralizationSet(
+				device, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateStructuredClassifier_validateMultiplicities(
 				device, diagnostics, context);
 		if (result || diagnostics != null)
@@ -25399,15 +25398,15 @@
 			result &= validateElement_validateNotOwnSelf(executionEnvironment,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				executionEnvironment, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				executionEnvironment, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				executionEnvironment, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				executionEnvironment, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(
 				executionEnvironment, diagnostics, context);
 		if (result || diagnostics != null)
@@ -25420,18 +25419,18 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				executionEnvironment, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateClassifier_validateSpecializeType(
-				executionEnvironment, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateClassifier_validateMapsToGeneralizationSet(
-				executionEnvironment, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateClassifier_validateNonFinalParents(
 				executionEnvironment, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateClassifier_validateNoCyclesInGeneralization(
 				executionEnvironment, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateClassifier_validateSpecializeType(
+				executionEnvironment, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateClassifier_validateMapsToGeneralizationSet(
+				executionEnvironment, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateStructuredClassifier_validateMultiplicities(
 				executionEnvironment, diagnostics, context);
 		if (result || diagnostics != null)
@@ -25486,15 +25485,15 @@
 			result &= validateElement_validateNotOwnSelf(communicationPath,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				communicationPath, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				communicationPath, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				communicationPath, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				communicationPath, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(
 				communicationPath, diagnostics, context);
 		if (result || diagnostics != null)
@@ -25507,28 +25506,28 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				communicationPath, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateClassifier_validateSpecializeType(
-				communicationPath, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateClassifier_validateMapsToGeneralizationSet(
-				communicationPath, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateClassifier_validateNonFinalParents(
 				communicationPath, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateClassifier_validateNoCyclesInGeneralization(
 				communicationPath, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateClassifier_validateSpecializeType(
+				communicationPath, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateClassifier_validateMapsToGeneralizationSet(
+				communicationPath, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateAssociation_validateSpecializedEndNumber(
 				communicationPath, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateAssociation_validateSpecializedEndTypes(
+			result &= validateCommunicationPath_validateAssociationEnds(
 				communicationPath, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateAssociation_validateBinaryAssociations(
 				communicationPath, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateCommunicationPath_validateAssociationEnds(
+			result &= validateAssociation_validateSpecializedEndTypes(
 				communicationPath, diagnostics, context);
 		return result;
 	}
@@ -25582,15 +25581,15 @@
 			result &= validateElement_validateNotOwnSelf(finalState,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				finalState, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(finalState,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				finalState, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				finalState, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(
 				finalState, diagnostics, context);
 		if (result || diagnostics != null)
@@ -25606,9 +25605,6 @@
 			result &= validateState_validateEntryOrExit(finalState,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateState_validateSubmachineStates(finalState,
-				diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateState_validateCompositeStates(finalState,
 				diagnostics, context);
 		if (result || diagnostics != null)
@@ -25618,23 +25614,26 @@
 			result &= validateState_validateSubmachineOrRegions(finalState,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateFinalState_validateNoExitBehavior(finalState,
+			result &= validateState_validateSubmachineStates(finalState,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateFinalState_validateNoOutgoingTransitions(
 				finalState, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateFinalState_validateNoRegions(finalState,
-				diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateFinalState_validateCannotReferenceSubmachine(
 				finalState, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateFinalState_validateNoExitBehavior(finalState,
+				diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateFinalState_validateNoEntryBehavior(finalState,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateFinalState_validateNoStateBehavior(finalState,
 				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateFinalState_validateNoRegions(finalState,
+				diagnostics, context);
 		return result;
 	}
 
@@ -25747,20 +25746,20 @@
 			result &= validateElement_validateNotOwnSelf(timeEvent,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				timeEvent, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(timeEvent,
 				diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				timeEvent, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateTimeEvent_validateWhenNonNegative(timeEvent,
-				diagnostics, context);
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				timeEvent, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateTimeEvent_validateStartingTime(timeEvent,
 				diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateTimeEvent_validateWhenNonNegative(timeEvent,
+				diagnostics, context);
 		return result;
 	}
 
@@ -25828,15 +25827,15 @@
 			result &= validateElement_validateNotOwnSelf(protocolTransition,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				protocolTransition, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				protocolTransition, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				protocolTransition, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				protocolTransition, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(
 				protocolTransition, diagnostics, context);
 		if (result || diagnostics != null)
@@ -25849,34 +25848,34 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				protocolTransition, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateTransition_validateStateIsExternal(
+			result &= validateTransition_validateStateIsLocal(
 				protocolTransition, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateTransition_validateJoinSegmentGuards(
-				protocolTransition, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateTransition_validateStateIsInternal(
-				protocolTransition, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateTransition_validateOutgoingPseudostates(
+			result &= validateTransition_validateForkSegmentGuards(
 				protocolTransition, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateTransition_validateJoinSegmentState(
 				protocolTransition, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateTransition_validateForkSegmentState(
+			result &= validateTransition_validateInitialTransition(
+				protocolTransition, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateTransition_validateOutgoingPseudostates(
 				protocolTransition, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateTransition_validateSignaturesCompatible(
 				protocolTransition, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateTransition_validateStateIsLocal(
+			result &= validateTransition_validateStateIsInternal(
 				protocolTransition, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateTransition_validateInitialTransition(
+			result &= validateTransition_validateJoinSegmentGuards(
 				protocolTransition, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateTransition_validateForkSegmentGuards(
+			result &= validateTransition_validateForkSegmentState(
+				protocolTransition, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateTransition_validateStateIsExternal(
 				protocolTransition, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateProtocolTransition_validateRefersToOperation(
@@ -25967,15 +25966,15 @@
 			result &= validateElement_validateNotOwnSelf(associationClass,
 				diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateNamedElement_validateVisibilityNeedsOwnership(
-				associationClass, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasQualifiedName(
 				associationClass, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateNamedElement_validateHasNoQualifiedName(
 				associationClass, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateNamedElement_validateVisibilityNeedsOwnership(
+				associationClass, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateNamespace_validateMembersDistinguishable(
 				associationClass, diagnostics, context);
 		if (result || diagnostics != null)
@@ -25988,18 +25987,18 @@
 			result &= validateRedefinableElement_validateRedefinitionContextValid(
 				associationClass, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateClassifier_validateSpecializeType(
-				associationClass, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateClassifier_validateMapsToGeneralizationSet(
-				associationClass, diagnostics, context);
-		if (result || diagnostics != null)
 			result &= validateClassifier_validateNonFinalParents(
 				associationClass, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateClassifier_validateNoCyclesInGeneralization(
 				associationClass, diagnostics, context);
 		if (result || diagnostics != null)
+			result &= validateClassifier_validateSpecializeType(
+				associationClass, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateClassifier_validateMapsToGeneralizationSet(
+				associationClass, diagnostics, context);
+		if (result || diagnostics != null)
 			result &= validateStructuredClassifier_validateMultiplicities(
 				associationClass, diagnostics, context);
 		if (result || diagnostics != null)
@@ -26012,20 +26011,20 @@
 			result &= validateAssociation_validateSpecializedEndNumber(
 				associationClass, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateAssociation_validateSpecializedEndTypes(
+			result &= validateAssociation_validateAssociationEnds(
 				associationClass, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateAssociation_validateBinaryAssociations(
 				associationClass, diagnostics, context);
 		if (result || diagnostics != null)
-			result &= validateAssociation_validateAssociationEnds(
-				associationClass, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateAssociationClass_validateCannotBeDefined(
+			result &= validateAssociation_validateSpecializedEndTypes(
 				associationClass, diagnostics, context);
 		if (result || diagnostics != null)
 			result &= validateAssociationClass_validateDisjointAttributesEnds(
 				associationClass, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateAssociationClass_validateCannotBeDefined(
+				associationClass, diagnostics, context);
 		return result;
 	}
 
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/AcceptCallActionTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/AcceptCallActionTest.java
index 9a351a5..b79ebb7 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/AcceptCallActionTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/AcceptCallActionTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation, CEA, and others.
  * 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
@@ -7,8 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
+ *   Kenn Hussey (CEA) - 351774
  *
- * $Id: AcceptCallActionTest.java,v 1.6 2007/02/14 20:06:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -24,9 +24,9 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.AcceptCallAction#validateResultPins(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Result Pins</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.AcceptCallAction#validateTriggerCallEvent(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Trigger Call Event</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.AcceptCallAction#validateUnmarshall(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Unmarshall</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.AcceptCallAction#validateResultPins(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Result Pins</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/AcceptEventActionTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/AcceptEventActionTest.java
index 71d7d56..08f2eef 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/AcceptEventActionTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/AcceptEventActionTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: AcceptEventActionTest.java,v 1.6 2007/02/14 20:06:12 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -25,10 +24,10 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.AcceptEventAction#validateTriggerEvents(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Trigger Events</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.AcceptEventAction#validateNoInputPins(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Input Pins</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.AcceptEventAction#validateNoOutputPins(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Output Pins</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.AcceptEventAction#validateTriggerEvents(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Trigger Events</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.AcceptEventAction#validateUnmarshallSignalEvents(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Unmarshall Signal Events</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.AcceptEventAction#validateNoOutputPins(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Output Pins</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ActionInputPinTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ActionInputPinTest.java
index e33adf5..c25c17f 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ActionInputPinTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ActionInputPinTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ActionInputPinTest.java,v 1.6 2007/02/14 20:06:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -26,8 +25,8 @@
  * The following operations are tested:
  * <ul>
  *   <li>{@link org.eclipse.uml2.uml.ActionInputPin#validateInputPin(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Input Pin</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ActionInputPin#validateOneOutputPin(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate One Output Pin</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ActionInputPin#validateNoControlOrDataFlow(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Control Or Data Flow</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ActionInputPin#validateOneOutputPin(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate One Output Pin</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ActivityGroupTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ActivityGroupTest.java
index eab1ecb..be427ff 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ActivityGroupTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ActivityGroupTest.java
@@ -7,24 +7,31 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ActivityGroupTest.java,v 1.5 2007/02/14 20:06:12 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
+import org.eclipse.uml2.uml.Activity;
 import org.eclipse.uml2.uml.ActivityGroup;
+import org.eclipse.uml2.uml.UMLFactory;
 
 /**
  * <!-- begin-user-doc -->
  * A test case for the model object '<em><b>Activity Group</b></em>'.
  * <!-- end-user-doc -->
  * <p>
+ * The following features are tested:
+ * <ul>
+ *   <li>{@link org.eclipse.uml2.uml.ActivityGroup#getInActivity() <em>In Activity</em>}</li>
+ * </ul>
+ * </p>
+ * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.ActivityGroup#validateNodesAndEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Nodes And Edges</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ActivityGroup#validateGroupOwned(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Group Owned</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ActivityGroup#validateNotContained(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Not Contained</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ActivityGroup#validateNodesAndEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Nodes And Edges</em>}</li>
  * </ul>
  * </p>
  * @generated
@@ -54,6 +61,52 @@
 	}
 
 	/**
+	 * Tests the '{@link org.eclipse.uml2.uml.ActivityGroup#getInActivity() <em>In Activity</em>}' feature getter.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.ActivityGroup#getInActivity()
+	 * @generated NOT
+	 */
+	public void testGetInActivity() {
+		Activity activity = UMLFactory.eINSTANCE.createActivity();
+		activity.getOwnedGroups().add(getFixture());
+
+		assertEquals(activity, getFixture().getInActivity());
+
+		activity.getGroups().remove(getFixture());
+
+		assertNull(getFixture().getInActivity());
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.uml2.uml.ActivityGroup#setInActivity(org.eclipse.uml2.uml.Activity) <em>In Activity</em>}' feature setter.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.ActivityGroup#setInActivity(org.eclipse.uml2.uml.Activity)
+	 * @generated NOT
+	 */
+	public void testSetInActivity() {
+		Activity activity1 = UMLFactory.eINSTANCE.createActivity();
+		getFixture().setInActivity(activity1);
+
+		assertTrue(activity1.getOwnedGroups().contains(getFixture()));
+		assertTrue(activity1.getGroups().contains(getFixture()));
+
+		Activity activity2 = UMLFactory.eINSTANCE.createActivity();
+		getFixture().setInActivity(activity2);
+
+		assertFalse(activity1.getOwnedGroups().contains(getFixture()));
+		assertFalse(activity1.getGroups().contains(getFixture()));
+		assertTrue(activity2.getOwnedGroups().contains(getFixture()));
+		assertTrue(activity2.getGroups().contains(getFixture()));
+
+		getFixture().setInActivity(null);
+
+		assertFalse(activity2.getOwnedGroups().contains(getFixture()));
+		assertFalse(activity2.getGroups().contains(getFixture()));
+	}
+
+	/**
 	 * Tests the '{@link org.eclipse.uml2.uml.ActivityGroup#validateNodesAndEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Nodes And Edges</em>}' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ActivityNodeTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ActivityNodeTest.java
index 47bc8c0..5a6c718 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ActivityNodeTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ActivityNodeTest.java
@@ -7,19 +7,26 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ActivityNodeTest.java,v 1.5 2007/02/14 20:06:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
+import org.eclipse.uml2.uml.Activity;
 import org.eclipse.uml2.uml.ActivityNode;
+import org.eclipse.uml2.uml.UMLFactory;
 
 /**
  * <!-- begin-user-doc -->
  * A test case for the model object '<em><b>Activity Node</b></em>'.
  * <!-- end-user-doc -->
  * <p>
+ * The following features are tested:
+ * <ul>
+ *   <li>{@link org.eclipse.uml2.uml.ActivityNode#getActivity() <em>Activity</em>}</li>
+ * </ul>
+ * </p>
+ * <p>
  * The following operations are tested:
  * <ul>
  *   <li>{@link org.eclipse.uml2.uml.ActivityNode#validateOwned(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Owned</em>}</li>
@@ -53,6 +60,52 @@
 	}
 
 	/**
+	 * Tests the '{@link org.eclipse.uml2.uml.ActivityNode#getActivity() <em>Activity</em>}' feature getter.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.ActivityNode#getActivity()
+	 * @generated NOT
+	 */
+	public void testGetActivity() {
+		Activity activity = UMLFactory.eINSTANCE.createActivity();
+		activity.getOwnedNodes().add(getFixture());
+
+		assertEquals(activity, getFixture().getActivity());
+
+		activity.getNodes().remove(getFixture());
+
+		assertNull(getFixture().getActivity());
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.uml2.uml.ActivityNode#setActivity(org.eclipse.uml2.uml.Activity) <em>Activity</em>}' feature setter.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.ActivityNode#setActivity(org.eclipse.uml2.uml.Activity)
+	 * @generated NOT
+	 */
+	public void testSetActivity() {
+		Activity activity1 = UMLFactory.eINSTANCE.createActivity();
+		getFixture().setActivity(activity1);
+
+		assertTrue(activity1.getOwnedNodes().contains(getFixture()));
+		assertTrue(activity1.getNodes().contains(getFixture()));
+
+		Activity activity2 = UMLFactory.eINSTANCE.createActivity();
+		getFixture().setActivity(activity2);
+
+		assertFalse(activity1.getOwnedNodes().contains(getFixture()));
+		assertFalse(activity1.getNodes().contains(getFixture()));
+		assertTrue(activity2.getOwnedNodes().contains(getFixture()));
+		assertTrue(activity2.getNodes().contains(getFixture()));
+
+		getFixture().setActivity(null);
+
+		assertFalse(activity2.getOwnedNodes().contains(getFixture()));
+		assertFalse(activity2.getNodes().contains(getFixture()));
+	}
+
+	/**
 	 * Tests the '{@link org.eclipse.uml2.uml.ActivityNode#validateOwned(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Owned</em>}' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ActivityParameterNodeTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ActivityParameterNodeTest.java
index 6762bfb..431501a 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ActivityParameterNodeTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ActivityParameterNodeTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ActivityParameterNodeTest.java,v 1.4 2008/10/02 21:00:20 jbruck Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -25,13 +24,13 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.ActivityParameterNode#validateNoOutgoingEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Outgoing Edges</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ActivityParameterNode#validateMaximumTwoParameterNodes(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Maximum Two Parameter Nodes</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ActivityParameterNode#validateHasParameters(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Has Parameters</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ActivityParameterNode#validateSameType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Same Type</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ActivityParameterNode#validateMaximumOneParameterNode(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Maximum One Parameter Node</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ActivityParameterNode#validateNoIncomingEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Incoming Edges</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ActivityParameterNode#validateMaximumTwoParameterNodes(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Maximum Two Parameter Nodes</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ActivityParameterNode#validateNoEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Edges</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ActivityParameterNode#validateNoIncomingEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Incoming Edges</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ActivityParameterNode#validateNoOutgoingEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Outgoing Edges</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ActivityParameterNode#validateSameType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Same Type</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ActivityParameterNode#validateHasParameters(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Has Parameters</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ActivityPartitionTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ActivityPartitionTest.java
index 109d7c2..69efa5a 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ActivityPartitionTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ActivityPartitionTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ActivityPartitionTest.java,v 1.6 2007/02/14 20:06:12 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -25,9 +24,9 @@
  * <p>
  * The following operations are tested:
  * <ul>
+ *   <li>{@link org.eclipse.uml2.uml.ActivityPartition#validateRepresentsPart(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Represents Part</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ActivityPartition#validateRepresentsClassifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Represents Classifier</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ActivityPartition#validateRepresentsPartAndIsContained(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Represents Part And Is Contained</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ActivityPartition#validateRepresentsPart(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Represents Part</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ActivityPartition#validateDimensionNotContained(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Dimension Not Contained</em>}</li>
  * </ul>
  * </p>
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ActivityTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ActivityTest.java
index 17371f6..0dcabef 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ActivityTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ActivityTest.java
@@ -7,15 +7,17 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ActivityTest.java,v 1.7 2007/02/14 20:06:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
 import junit.textui.TestRunner;
 
 import org.eclipse.uml2.uml.Activity;
+import org.eclipse.uml2.uml.ActivityGroup;
+import org.eclipse.uml2.uml.ActivityNode;
+import org.eclipse.uml2.uml.ActivityPartition;
 import org.eclipse.uml2.uml.StructuredActivityNode;
 import org.eclipse.uml2.uml.UMLFactory;
 
@@ -26,15 +28,16 @@
  * <p>
  * The following features are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.Activity#getStructuredNodes() <em>Structured Node</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Activity#getGroups() <em>Group</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Activity#getNodes() <em>Node</em>}</li>
  * </ul>
  * </p>
  * <p>
  * The following operations are tested:
  * <ul>
+ *   <li>{@link org.eclipse.uml2.uml.Activity#validateActivityParameterNode(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Activity Parameter Node</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Activity#validateAutonomous(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Autonomous</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Activity#validateNoSupergroups(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Supergroups</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Activity#validateActivityParameterNode(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Activity Parameter Node</em>}</li>
  * </ul>
  * </p>
  * @generated
@@ -97,27 +100,78 @@
 	}
 
 	/**
-	 * Tests the '{@link org.eclipse.uml2.uml.Activity#getStructuredNodes() <em>Structured Node</em>}' feature getter.
+	 * Tests the '{@link org.eclipse.uml2.uml.Activity#getGroups() <em>Group</em>}' feature getter.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see org.eclipse.uml2.uml.Activity#getStructuredNodes()
+	 * @see org.eclipse.uml2.uml.Activity#getGroups()
 	 * @generated NOT
 	 */
-	public void testGetStructuredNodes() {
-		StructuredActivityNode structuredNode1 = UMLFactory.eINSTANCE
-			.createStructuredActivityNode();
-		getFixture().getNodes().add(structuredNode1);
+	public void testGetGroups() {
+		ActivityGroup ownedGroup = UMLFactory.eINSTANCE.createInterruptibleActivityRegion();
+		getFixture().getOwnedGroups().add(ownedGroup);
+		
+		assertTrue(getFixture().getOwnedGroups().contains(ownedGroup));
+		assertTrue(getFixture().getGroups().contains(ownedGroup));
+		
+		getFixture().getGroups().remove(ownedGroup);
 
-		assertSame(getFixture(), structuredNode1.getActivity());
+		assertFalse(getFixture().getOwnedGroups().contains(ownedGroup));
+		assertFalse(getFixture().getGroups().contains(ownedGroup));
 
-		StructuredActivityNode structuredNode2 = UMLFactory.eINSTANCE
-			.createStructuredActivityNode();
-		getFixture().getGroups().add(structuredNode2);
+		ActivityPartition partition = UMLFactory.eINSTANCE.createActivityPartition();
+		getFixture().getPartitions().add(partition);
+		
+		assertTrue(getFixture().getPartitions().contains(partition));
+		assertTrue(getFixture().getOwnedGroups().contains(partition));
+		assertTrue(getFixture().getGroups().contains(partition));
+		
+		getFixture().getGroups().remove(partition);
 
-		assertSame(getFixture(), structuredNode2.getActivity());
+		assertFalse(getFixture().getPartitions().contains(partition));
+		assertFalse(getFixture().getOwnedGroups().contains(partition));
+		assertFalse(getFixture().getGroups().contains(partition));
 
-		assertTrue(getFixture().getStructuredNodes().contains(structuredNode1));
-		assertTrue(getFixture().getStructuredNodes().contains(structuredNode2));
+		StructuredActivityNode structuredNode = UMLFactory.eINSTANCE.createStructuredActivityNode();
+		getFixture().getStructuredNodes().add(structuredNode);
+		
+		assertTrue(getFixture().getStructuredNodes().contains(structuredNode));
+		assertTrue(getFixture().getGroups().contains(structuredNode));
+		
+		getFixture().getGroups().remove(structuredNode);
+		
+		assertFalse(getFixture().getStructuredNodes().contains(structuredNode));
+		assertFalse(getFixture().getGroups().contains(structuredNode));
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.uml2.uml.Activity#getNodes() <em>Node</em>}' feature getter.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.uml2.uml.Activity#getNodes()
+	 * @generated NOT
+	 */
+	public void testGetNodes() {
+		ActivityNode ownedNode = UMLFactory.eINSTANCE.createCentralBufferNode();
+		getFixture().getOwnedNodes().add(ownedNode);
+		
+		assertTrue(getFixture().getOwnedNodes().contains(ownedNode));
+		assertTrue(getFixture().getNodes().contains(ownedNode));
+		
+		getFixture().getNodes().remove(ownedNode);
+
+		assertFalse(getFixture().getOwnedNodes().contains(ownedNode));
+		assertFalse(getFixture().getNodes().contains(ownedNode));
+
+		StructuredActivityNode structuredNode = UMLFactory.eINSTANCE.createStructuredActivityNode();
+		getFixture().getStructuredNodes().add(structuredNode);
+		
+		assertTrue(getFixture().getStructuredNodes().contains(structuredNode));
+		assertTrue(getFixture().getNodes().contains(structuredNode));
+		
+		getFixture().getNodes().remove(structuredNode);
+		
+		assertFalse(getFixture().getStructuredNodes().contains(structuredNode));
+		assertFalse(getFixture().getNodes().contains(structuredNode));
 	}
 
 	/**
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/AddStructuralFeatureValueActionTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/AddStructuralFeatureValueActionTest.java
index 0085a44..dd8ab34 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/AddStructuralFeatureValueActionTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/AddStructuralFeatureValueActionTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: AddStructuralFeatureValueActionTest.java,v 1.6 2007/02/14 20:06:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -25,8 +24,8 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.AddStructuralFeatureValueAction#validateRequiredValue(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Required Value</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.AddStructuralFeatureValueAction#validateUnlimitedNaturalAndMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Unlimited Natural And Multiplicity</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.AddStructuralFeatureValueAction#validateRequiredValue(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Required Value</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/AssociationClassTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/AssociationClassTest.java
index 55926df..d0bbfc2 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/AssociationClassTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/AssociationClassTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: AssociationClassTest.java,v 1.7 2007/02/14 20:06:12 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -32,12 +31,12 @@
  * The following operations are tested:
  * <ul>
  *   <li>{@link org.eclipse.uml2.uml.Association#validateSpecializedEndNumber(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Specialized End Number</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Association#validateSpecializedEndTypes(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Specialized End Types</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Association#validateBinaryAssociations(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Binary Associations</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Association#validateAssociationEnds(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Association Ends</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Association#validateBinaryAssociations(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Binary Associations</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Association#validateSpecializedEndTypes(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Specialized End Types</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Association#isBinary() <em>Is Binary</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.AssociationClass#validateCannotBeDefined(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Cannot Be Defined</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.AssociationClass#validateDisjointAttributesEnds(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Disjoint Attributes Ends</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.AssociationClass#validateCannotBeDefined(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Cannot Be Defined</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/AssociationTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/AssociationTest.java
index 840b700..ed68a81 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/AssociationTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/AssociationTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation, CEA, and others.
  * 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
@@ -7,8 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
+ *   Kenn Hussey (CEA) - 351774
  *
- * $Id: AssociationTest.java,v 1.7 2007/02/14 20:06:12 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -31,9 +31,9 @@
  * The following operations are tested:
  * <ul>
  *   <li>{@link org.eclipse.uml2.uml.Association#validateSpecializedEndNumber(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Specialized End Number</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Association#validateSpecializedEndTypes(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Specialized End Types</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Association#validateBinaryAssociations(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Binary Associations</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Association#validateAssociationEnds(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Association Ends</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Association#validateBinaryAssociations(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Binary Associations</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Association#validateSpecializedEndTypes(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Specialized End Types</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Association#isBinary() <em>Is Binary</em>}</li>
  * </ul>
  * </p>
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/BehaviorTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/BehaviorTest.java
index af7d799..7bb9bbd 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/BehaviorTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/BehaviorTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: BehaviorTest.java,v 1.5 2007/02/14 20:06:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -28,10 +27,10 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.Behavior#validateMostOneBehaviour(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Most One Behaviour</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Behavior#validateMustRealize(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Must Realize</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Behavior#validateParametersMatch(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Parameters Match</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Behavior#validateFeatureOfContextClassifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Feature Of Context Classifier</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Behavior#validateMustRealize(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Must Realize</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Behavior#validateMostOneBehaviour(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Most One Behaviour</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/BroadcastSignalActionTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/BroadcastSignalActionTest.java
index 618620f..0b5a343 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/BroadcastSignalActionTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/BroadcastSignalActionTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation, CEA, and others.
  * 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
@@ -7,8 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
+ *   Kenn Hussey (CEA) - 351774
  *
- * $Id: BroadcastSignalActionTest.java,v 1.3 2007/02/14 20:06:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -24,8 +24,8 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.BroadcastSignalAction#validateNumberAndOrder(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Number And Order</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.BroadcastSignalAction#validateTypeOrderingMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Ordering Multiplicity</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.BroadcastSignalAction#validateNumberAndOrder(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Number And Order</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/CallActionTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/CallActionTest.java
index 87b14a3..b2dbb44 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/CallActionTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/CallActionTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: CallActionTest.java,v 1.5 2007/02/14 20:06:12 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -22,9 +21,9 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.CallAction#validateTypeOrderingMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Ordering Multiplicity</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.CallAction#validateNumberAndOrder(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Number And Order</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.CallAction#validateSynchronousCall(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Synchronous Call</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.CallAction#validateNumberAndOrder(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Number And Order</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.CallAction#validateTypeOrderingMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Ordering Multiplicity</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/CallOperationActionTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/CallOperationActionTest.java
index 4597a4a..df96fb8 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/CallOperationActionTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/CallOperationActionTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: CallOperationActionTest.java,v 1.6 2007/02/14 20:06:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -25,9 +24,9 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.CallOperationAction#validateTypeTargetPin(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Target Pin</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.CallOperationAction#validateArgumentPinEqualParameter(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Argument Pin Equal Parameter</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.CallOperationAction#validateResultPinEqualParameter(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Result Pin Equal Parameter</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.CallOperationAction#validateTypeTargetPin(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Target Pin</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.CallOperationAction#validateTypeOrderingMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Ordering Multiplicity</em>}</li>
  * </ul>
  * </p>
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ClassifierTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ClassifierTest.java
index aac7b6b..6439c32 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ClassifierTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ClassifierTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ClassifierTest.java,v 1.7 2007/02/14 20:06:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -42,10 +41,10 @@
  *   <li>{@link org.eclipse.uml2.uml.Type#getAssociations() <em>Get Associations</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Classifier#isTemplate() <em>Is Template</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.TemplateableElement#parameterableElements() <em>Parameterable Elements</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Classifier#validateSpecializeType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Specialize Type</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Classifier#validateMapsToGeneralizationSet(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Maps To Generalization Set</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Classifier#validateNonFinalParents(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Non Final Parents</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Classifier#validateNoCyclesInGeneralization(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Cycles In Generalization</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Classifier#validateSpecializeType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Specialize Type</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Classifier#validateMapsToGeneralizationSet(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Maps To Generalization Set</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Classifier#getAllAttributes() <em>Get All Attributes</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Classifier#getAllOperations() <em>Get All Operations</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Classifier#getAllUsedInterfaces() <em>Get All Used Interfaces</em>}</li>
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ClauseTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ClauseTest.java
index f2f327b..5efeca4 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ClauseTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ClauseTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ClauseTest.java,v 1.3 2007/02/14 20:06:12 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -25,9 +24,9 @@
  * <p>
  * The following operations are tested:
  * <ul>
+ *   <li>{@link org.eclipse.uml2.uml.Clause#validateTestAndBody(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Test And Body</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Clause#validateBodyOutputPins(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Body Output Pins</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Clause#validateDeciderOutput(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Decider Output</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Clause#validateTestAndBody(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Test And Body</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ClearStructuralFeatureActionTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ClearStructuralFeatureActionTest.java
index 0202cd3..c54357e 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ClearStructuralFeatureActionTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ClearStructuralFeatureActionTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2008 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation, CEA, and others.
  * 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
@@ -7,8 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
+ *   Kenn Hussey (CEA) - 351774
  *
- * $Id: ClearStructuralFeatureActionTest.java,v 1.4 2008/10/02 21:00:20 jbruck Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -24,8 +24,8 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.ClearStructuralFeatureAction#validateTypeOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Of Result</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ClearStructuralFeatureAction#validateMultiplicityOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Result</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ClearStructuralFeatureAction#validateTypeOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Of Result</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/CollaborationUseTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/CollaborationUseTest.java
index 97a0c53..236f298 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/CollaborationUseTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/CollaborationUseTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation, CEA, and others.
  * 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
@@ -7,8 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
+ *   Kenn Hussey (CEA) - 351774
  *
- * $Id: CollaborationUseTest.java,v 1.6 2007/02/14 20:06:12 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -24,9 +24,9 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.CollaborationUse#validateClientElements(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Client Elements</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.CollaborationUse#validateEveryRole(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Every Role</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.CollaborationUse#validateConnectors(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Connectors</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.CollaborationUse#validateEveryRole(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Every Role</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.CollaborationUse#validateClientElements(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Client Elements</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/CombinedFragmentTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/CombinedFragmentTest.java
index 19e0c97..561a0ea 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/CombinedFragmentTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/CombinedFragmentTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: CombinedFragmentTest.java,v 1.6 2007/02/14 20:06:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -25,10 +24,10 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.CombinedFragment#validateMinintAndMaxint(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Minint And Maxint</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.CombinedFragment#validateBreak(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Break</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.CombinedFragment#validateConsiderAndIgnore(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Consider And Ignore</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.CombinedFragment#validateOptLoopBreakNeg(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Opt Loop Break Neg</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.CombinedFragment#validateConsiderAndIgnore(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Consider And Ignore</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.CombinedFragment#validateMinintAndMaxint(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Minint And Maxint</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ComponentTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ComponentTest.java
index a8989ce..6ca1e88 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ComponentTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ComponentTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ComponentTest.java,v 1.7 2007/02/14 20:06:12 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -32,8 +31,8 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.Component#validateNoNestedClassifiers(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Nested Classifiers</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Component#validateNoPackagedElements(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Packaged Elements</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Component#validateNoNestedClassifiers(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Nested Classifiers</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Component#createOwnedClass(java.lang.String, boolean) <em>Create Owned Class</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Component#createOwnedEnumeration(java.lang.String) <em>Create Owned Enumeration</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Component#createOwnedInterface(java.lang.String) <em>Create Owned Interface</em>}</li>
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ConditionalNodeTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ConditionalNodeTest.java
index 7b1c0d9..c8ba419 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ConditionalNodeTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ConditionalNodeTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ConditionalNodeTest.java,v 1.6 2007/02/14 20:06:11 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -25,12 +24,12 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.ConditionalNode#validateResultNoIncoming(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Result No Incoming</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ConditionalNode#validateNoInputPins(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Input Pins</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ConditionalNode#validateOneClauseWithExecutableNode(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate One Clause With Executable Node</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ConditionalNode#validateMatchingOutputPins(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Matching Output Pins</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ConditionalNode#validateExecutableNodes(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Executable Nodes</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ConditionalNode#validateClauseNoPredecessor(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Clause No Predecessor</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ConditionalNode#validateMatchingOutputPins(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Matching Output Pins</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ConditionalNode#validateOneClauseWithExecutableNode(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate One Clause With Executable Node</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ConditionalNode#validateResultNoIncoming(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Result No Incoming</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ConditionalNode#validateNoInputPins(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Input Pins</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ConnectionPointReferenceTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ConnectionPointReferenceTest.java
index b0cf5b7..2efaecc 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ConnectionPointReferenceTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ConnectionPointReferenceTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ConnectionPointReferenceTest.java,v 1.5 2007/02/14 20:06:12 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -25,8 +24,8 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.ConnectionPointReference#validateExitPseudostates(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Exit Pseudostates</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ConnectionPointReference#validateEntryPseudostates(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Entry Pseudostates</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ConnectionPointReference#validateExitPseudostates(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Exit Pseudostates</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ConnectorEndTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ConnectorEndTest.java
index 0786e0d..ca50ac7 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ConnectorEndTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ConnectorEndTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ConnectorEndTest.java,v 1.3 2007/02/14 20:06:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -32,9 +31,9 @@
  * The following operations are tested:
  * <ul>
  *   <li>{@link org.eclipse.uml2.uml.ConnectorEnd#validateRoleAndPartWithPort(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Role And Part With Port</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ConnectorEnd#validatePartWithPortEmpty(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Part With Port Empty</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ConnectorEnd#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ConnectorEnd#validateSelfPartWithPort(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Self Part With Port</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ConnectorEnd#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ConnectorEnd#validatePartWithPortEmpty(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Part With Port Empty</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ConnectorTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ConnectorTest.java
index ab69eb4..25957da 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ConnectorTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ConnectorTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ConnectorTest.java,v 1.6 2007/02/14 20:06:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -31,10 +30,10 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.Connector#validateTypes(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Types</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Connector#validateCompatible(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Compatible</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Connector#validateRoles(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Roles</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Connector#validateBetweenInterfacesPorts(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Between Interfaces Ports</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Connector#validateCompatible(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Compatible</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Connector#validateTypes(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Types</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ConsiderIgnoreFragmentTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ConsiderIgnoreFragmentTest.java
index be8376d..de8799b 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ConsiderIgnoreFragmentTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ConsiderIgnoreFragmentTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation, CEA, and others.
  * 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
@@ -7,8 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
+ *   Kenn Hussey (CEA) - 351774
  *
- * $Id: ConsiderIgnoreFragmentTest.java,v 1.3 2007/02/14 20:06:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -24,8 +24,8 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.ConsiderIgnoreFragment#validateConsiderOrIgnore(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Consider Or Ignore</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ConsiderIgnoreFragment#validateType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ConsiderIgnoreFragment#validateConsiderOrIgnore(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Consider Or Ignore</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ConstraintTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ConstraintTest.java
index 75d0e21..98eec46 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ConstraintTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ConstraintTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ConstraintTest.java,v 1.6 2007/02/14 20:06:12 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -25,9 +24,9 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.Constraint#validateBooleanValue(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Boolean Value</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Constraint#validateNoSideEffects(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Side Effects</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Constraint#validateNotApplyToSelf(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Not Apply To Self</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Constraint#validateNoSideEffects(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Side Effects</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Constraint#validateBooleanValue(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Boolean Value</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Constraint#validateValueSpecificationBoolean(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Value Specification Boolean</em>}</li>
  * </ul>
  * </p>
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ContinuationTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ContinuationTest.java
index d1bd791..d1da6da 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ContinuationTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ContinuationTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ContinuationTest.java,v 1.3 2007/02/14 20:06:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -25,8 +24,8 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.Continuation#validateFirstOrLastInteractionFragment(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate First Or Last Interaction Fragment</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Continuation#validateSameName(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Same Name</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Continuation#validateFirstOrLastInteractionFragment(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate First Or Last Interaction Fragment</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Continuation#validateGlobal(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Global</em>}</li>
  * </ul>
  * </p>
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/CreateLinkObjectActionTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/CreateLinkObjectActionTest.java
index 2b5e204..ba5f28e 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/CreateLinkObjectActionTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/CreateLinkObjectActionTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: CreateLinkObjectActionTest.java,v 1.6 2007/02/14 20:06:12 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -25,9 +24,9 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.CreateLinkObjectAction#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.CreateLinkObjectAction#validateTypeOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Of Result</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.CreateLinkObjectAction#validateAssociationClass(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Association Class</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.CreateLinkObjectAction#validateTypeOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Of Result</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.CreateLinkObjectAction#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/CreateObjectActionTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/CreateObjectActionTest.java
index b00906b..7c4902a 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/CreateObjectActionTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/CreateObjectActionTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: CreateObjectActionTest.java,v 1.6 2007/02/14 20:06:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -25,10 +24,10 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.CreateObjectAction#validateClassifierNotAbstract(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Classifier Not Abstract</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.CreateObjectAction#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.CreateObjectAction#validateClassifierNotAssociationClass(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Classifier Not Association Class</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.CreateObjectAction#validateClassifierNotAbstract(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Classifier Not Abstract</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.CreateObjectAction#validateSameType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Same Type</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.CreateObjectAction#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/DecisionNodeTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/DecisionNodeTest.java
index 4717996..4238cbb 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/DecisionNodeTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/DecisionNodeTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: DecisionNodeTest.java,v 1.4 2008/10/02 21:00:20 jbruck Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -25,14 +24,14 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.DecisionNode#validateZeroInputParameters(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Zero Input Parameters</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.DecisionNode#validateEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Edges</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.DecisionNode#validateDecisionInputFlowIncoming(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Decision Input Flow Incoming</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.DecisionNode#validateTwoInputParameters(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Two Input Parameters</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.DecisionNode#validateIncomingOutgoingEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Incoming Outgoing Edges</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.DecisionNode#validateIncomingControlOneInputParameter(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Incoming Control One Input Parameter</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.DecisionNode#validateParameters(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Parameters</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.DecisionNode#validateIncomingObjectOneInputParameter(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Incoming Object One Input Parameter</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.DecisionNode#validateIncomingOutgoingEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Incoming Outgoing Edges</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.DecisionNode#validateIncomingControlOneInputParameter(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Incoming Control One Input Parameter</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.DecisionNode#validateTwoInputParameters(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Two Input Parameters</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.DecisionNode#validateDecisionInputFlowIncoming(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Decision Input Flow Incoming</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.DecisionNode#validateZeroInputParameters(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Zero Input Parameters</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.DecisionNode#validateEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Edges</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/DeploymentSpecificationTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/DeploymentSpecificationTest.java
index 10ef249..7622ec8 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/DeploymentSpecificationTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/DeploymentSpecificationTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: DeploymentSpecificationTest.java,v 1.3 2007/02/14 20:06:12 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -25,8 +24,8 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.DeploymentSpecification#validateDeploymentTarget(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Deployment Target</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.DeploymentSpecification#validateDeployedElements(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Deployed Elements</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.DeploymentSpecification#validateDeploymentTarget(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Deployment Target</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ElementImportTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ElementImportTest.java
index fc23dd6..471a7bd 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ElementImportTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ElementImportTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ElementImportTest.java,v 1.7 2007/02/14 20:06:12 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -25,8 +24,8 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.ElementImport#validateImportedElementIsPublic(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Imported Element Is Public</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ElementImport#validateVisibilityPublicOrPrivate(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Visibility Public Or Private</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ElementImport#validateImportedElementIsPublic(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Imported Element Is Public</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ElementImport#getName() <em>Get Name</em>}</li>
  * </ul>
  * </p>
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ExceptionHandlerTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ExceptionHandlerTest.java
index 3965950..ec1e33d 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ExceptionHandlerTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ExceptionHandlerTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation, CEA, and others.
  * 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
@@ -7,8 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
+ *   Kenn Hussey (CEA) - 351774
  *
- * $Id: ExceptionHandlerTest.java,v 1.5 2007/02/14 20:06:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -24,10 +24,10 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.ExceptionHandler#validateExceptionBody(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Exception Body</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ExceptionHandler#validateResultPins(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Result Pins</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ExceptionHandler#validateOneInput(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate One Input</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ExceptionHandler#validateEdgeSourceTarget(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Edge Source Target</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ExceptionHandler#validateResultPins(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Result Pins</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ExceptionHandler#validateExceptionBody(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Exception Body</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/FinalStateTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/FinalStateTest.java
index 283e8b1..8a1ec86 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/FinalStateTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/FinalStateTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: FinalStateTest.java,v 1.4 2007/02/14 20:06:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -25,12 +24,12 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.FinalState#validateNoExitBehavior(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Exit Behavior</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.FinalState#validateNoOutgoingTransitions(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Outgoing Transitions</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.FinalState#validateNoRegions(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Regions</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.FinalState#validateCannotReferenceSubmachine(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Cannot Reference Submachine</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.FinalState#validateNoExitBehavior(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Exit Behavior</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.FinalState#validateNoEntryBehavior(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Entry Behavior</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.FinalState#validateNoStateBehavior(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No State Behavior</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.FinalState#validateNoRegions(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Regions</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/GeneralizationSetTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/GeneralizationSetTest.java
index 0310010..3a2d263 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/GeneralizationSetTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/GeneralizationSetTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation, CEA, and others.
  * 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
@@ -7,8 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
+ *   Kenn Hussey (CEA) - 351774
  *
- * $Id: GeneralizationSetTest.java,v 1.3 2007/02/14 20:06:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -24,8 +24,8 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.GeneralizationSet#validateGeneralizationSameClassifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Generalization Same Classifier</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.GeneralizationSet#validateMapsToGeneralizationSet(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Maps To Generalization Set</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.GeneralizationSet#validateGeneralizationSameClassifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Generalization Same Classifier</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/InformationFlowTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/InformationFlowTest.java
index 5d877d6..034545d 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/InformationFlowTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/InformationFlowTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: InformationFlowTest.java,v 1.6 2007/02/14 20:06:12 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -25,8 +24,8 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.InformationFlow#validateMustConform(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Must Conform</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.InformationFlow#validateSourcesAndTargetsKind(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Sources And Targets Kind</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.InformationFlow#validateMustConform(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Must Conform</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.InformationFlow#validateConveyClassifiers(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Convey Classifiers</em>}</li>
  * </ul>
  * </p>
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/InformationItemTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/InformationItemTest.java
index 9020a3c..12b6490 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/InformationItemTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/InformationItemTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation, CEA, and others.
  * 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
@@ -7,8 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
+ *   Kenn Hussey (CEA) - 351774
  *
- * $Id: InformationItemTest.java,v 1.3 2007/02/14 20:06:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -24,9 +24,9 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.InformationItem#validateSourcesAndTargets(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Sources And Targets</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.InformationItem#validateHasNo(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Has No</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.InformationItem#validateNotInstantiable(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Not Instantiable</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.InformationItem#validateSourcesAndTargets(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Sources And Targets</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/InstanceSpecificationTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/InstanceSpecificationTest.java
index 51278c5..637150c 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/InstanceSpecificationTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/InstanceSpecificationTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: InstanceSpecificationTest.java,v 1.6 2007/02/14 20:06:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -27,10 +26,10 @@
  * <ul>
  *   <li>{@link org.eclipse.uml2.uml.ParameterableElement#isCompatibleWith(org.eclipse.uml2.uml.ParameterableElement) <em>Is Compatible With</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ParameterableElement#isTemplateParameter() <em>Is Template Parameter</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.InstanceSpecification#validateDeploymentArtifact(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Deployment Artifact</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.InstanceSpecification#validateStructuralFeature(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Structural Feature</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.InstanceSpecification#validateDefiningFeature(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Defining Feature</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.InstanceSpecification#validateDeploymentTarget(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Deployment Target</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.InstanceSpecification#validateDeploymentArtifact(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Deployment Artifact</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/InteractionConstraintTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/InteractionConstraintTest.java
index 52dd848..d4862c8 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/InteractionConstraintTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/InteractionConstraintTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: InteractionConstraintTest.java,v 1.6 2007/02/14 20:06:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -25,12 +24,12 @@
  * <p>
  * The following operations are tested:
  * <ul>
+ *   <li>{@link org.eclipse.uml2.uml.InteractionConstraint#validateMaxintPositive(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Maxint Positive</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.InteractionConstraint#validateMinintMaxint(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Minint Maxint</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.InteractionConstraint#validateMinintNonNegative(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Minint Non Negative</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.InteractionConstraint#validateMaxintPositive(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Maxint Positive</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.InteractionConstraint#validateDynamicVariables(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Dynamic Variables</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.InteractionConstraint#validateGlobalData(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Global Data</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.InteractionConstraint#validateMaxintGreaterEqualMinint(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Maxint Greater Equal Minint</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.InteractionConstraint#validateDynamicVariables(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Dynamic Variables</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/InteractionOperandTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/InteractionOperandTest.java
index 78eed65..ecde754 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/InteractionOperandTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/InteractionOperandTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: InteractionOperandTest.java,v 1.6 2007/02/14 20:06:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -25,8 +24,8 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.InteractionOperand#validateGuardContainReferences(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Guard Contain References</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.InteractionOperand#validateGuardDirectlyPrior(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Guard Directly Prior</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.InteractionOperand#validateGuardContainReferences(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Guard Contain References</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/InteractionUseTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/InteractionUseTest.java
index 91b752b..438663b 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/InteractionUseTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/InteractionUseTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: InteractionUseTest.java,v 1.6 2007/02/14 20:06:12 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -25,12 +24,12 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.InteractionUse#validateGatesMatch(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Gates Match</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.InteractionUse#validateArgumentsAreConstants(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Arguments Are Constants</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.InteractionUse#validateAllLifelines(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate All Lifelines</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.InteractionUse#validateReturnValueRecipientCoverage(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Return Value Recipient Coverage</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.InteractionUse#validateArgumentsCorrespondToParameters(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Arguments Correspond To Parameters</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.InteractionUse#validateGatesMatch(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Gates Match</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.InteractionUse#validateArgumentsAreConstants(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Arguments Are Constants</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.InteractionUse#validateReturnValueTypeRecipientCorrespondence(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Return Value Type Recipient Correspondence</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.InteractionUse#validateAllLifelines(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate All Lifelines</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/LifelineTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/LifelineTest.java
index 4186ace..76df334 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/LifelineTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/LifelineTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: LifelineTest.java,v 1.6 2007/02/14 20:06:12 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -25,9 +24,9 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.Lifeline#validateSelectorSpecified(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Selector Specified</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Lifeline#validateInteractionUsesShareLifeline(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Interaction Uses Share Lifeline</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Lifeline#validateSameClassifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Same Classifier</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Lifeline#validateSelectorSpecified(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Selector Specified</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/LinkEndCreationDataTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/LinkEndCreationDataTest.java
index 545bb8d..7baa047 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/LinkEndCreationDataTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/LinkEndCreationDataTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: LinkEndCreationDataTest.java,v 1.3 2007/02/14 20:06:12 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -25,8 +24,8 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.LinkEndCreationData#validateSingleInputPin(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Single Input Pin</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.LinkEndCreationData#validateCreateLinkAction(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Create Link Action</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.LinkEndCreationData#validateSingleInputPin(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Single Input Pin</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/LinkEndDataTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/LinkEndDataTest.java
index f5bd027..1826c09 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/LinkEndDataTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/LinkEndDataTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: LinkEndDataTest.java,v 1.3 2007/02/14 20:06:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -25,10 +24,10 @@
  * <p>
  * The following operations are tested:
  * <ul>
+ *   <li>{@link org.eclipse.uml2.uml.LinkEndData#validatePropertyIsAssociationEnd(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Property Is Association End</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.LinkEndData#validateEndObjectInputPin(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate End Object Input Pin</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.LinkEndData#validateSameType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Same Type</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.LinkEndData#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.LinkEndData#validateEndObjectInputPin(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate End Object Input Pin</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.LinkEndData#validatePropertyIsAssociationEnd(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Property Is Association End</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.LinkEndData#validateQualifiers(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Qualifiers</em>}</li>
  * </ul>
  * </p>
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/LinkEndDestructionDataTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/LinkEndDestructionDataTest.java
index cab1b35..208b38a 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/LinkEndDestructionDataTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/LinkEndDestructionDataTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: LinkEndDestructionDataTest.java,v 1.3 2007/02/14 20:06:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -25,8 +24,8 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.LinkEndDestructionData#validateUnlimitedNaturalAndMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Unlimited Natural And Multiplicity</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.LinkEndDestructionData#validateDestroyLinkAction(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Destroy Link Action</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.LinkEndDestructionData#validateUnlimitedNaturalAndMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Unlimited Natural And Multiplicity</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/LoopNodeTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/LoopNodeTest.java
index 2d7fd95..96096a4 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/LoopNodeTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/LoopNodeTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: LoopNodeTest.java,v 1.6 2007/02/14 20:06:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -25,10 +24,10 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.LoopNode#validateResultNoIncoming(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Result No Incoming</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.LoopNode#validateInputEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Input Edges</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.LoopNode#validateExecutableNodes(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Executable Nodes</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.LoopNode#validateBodyOutputPins(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Body Output Pins</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.LoopNode#validateResultNoIncoming(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Result No Incoming</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.LoopNode#validateInputEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Input Edges</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/MessageTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/MessageTest.java
index 3ce4619..a228e4f 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/MessageTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/MessageTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: MessageTest.java,v 1.6 2007/02/14 20:06:12 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -32,12 +31,12 @@
  * The following operations are tested:
  * <ul>
  *   <li>{@link org.eclipse.uml2.uml.Message#validateSendingReceivingMessageEvent(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Sending Receiving Message Event</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Message#validateOccurrenceSpecifications(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Occurrence Specifications</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Message#validateSignatureIsSignal(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Signature Is Signal</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Message#validateSignatureIsOperation(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Signature Is Operation</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Message#validateArguments(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Arguments</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Message#validateCannotCrossBoundaries(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Cannot Cross Boundaries</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Message#validateSignatureIsSignal(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Signature Is Signal</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Message#validateOccurrenceSpecifications(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Occurrence Specifications</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Message#validateSignatureReferTo(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Signature Refer To</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Message#validateSignatureIsOperation(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Signature Is Operation</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/MultiplicityElementTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/MultiplicityElementTest.java
index 3b678fc..7087f27 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/MultiplicityElementTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/MultiplicityElementTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: MultiplicityElementTest.java,v 1.10 2008/10/02 21:00:20 jbruck Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -32,10 +31,10 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#validateUpperGeLower(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Upper Ge Lower</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#validateLowerGe0(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Lower Ge0</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#validateValueSpecificationNoSideEffects(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Value Specification No Side Effects</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#validateUpperGeLower(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Upper Ge Lower</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#validateValueSpecificationConstant(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Value Specification Constant</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#validateValueSpecificationNoSideEffects(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Value Specification No Side Effects</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#compatibleWith(org.eclipse.uml2.uml.MultiplicityElement) <em>Compatible With</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#includesCardinality(int) <em>Includes Cardinality</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#includesMultiplicity(org.eclipse.uml2.uml.MultiplicityElement) <em>Includes Multiplicity</em>}</li>
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/NamedElementTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/NamedElementTest.java
index a33d662..828a907 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/NamedElementTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/NamedElementTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: NamedElementTest.java,v 1.7 2007/03/27 03:40:24 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -28,9 +27,9 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.NamedElement#validateVisibilityNeedsOwnership(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Visibility Needs Ownership</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.NamedElement#validateHasQualifiedName(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Has Qualified Name</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.NamedElement#validateHasNoQualifiedName(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Has No Qualified Name</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.NamedElement#validateVisibilityNeedsOwnership(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Visibility Needs Ownership</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.NamedElement#createDependency(org.eclipse.uml2.uml.NamedElement) <em>Create Dependency</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.NamedElement#createUsage(org.eclipse.uml2.uml.NamedElement) <em>Create Usage</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.NamedElement#getLabel() <em>Get Label</em>}</li>
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ObjectFlowTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ObjectFlowTest.java
index 2c6bc25..c36e5fb 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ObjectFlowTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ObjectFlowTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ObjectFlowTest.java,v 1.3 2007/02/14 20:06:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -25,14 +24,14 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.ObjectFlow#validateInputAndOutputParameter(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Input And Output Parameter</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ObjectFlow#validateNoActions(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Actions</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ObjectFlow#validateTransformationBehaviour(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Transformation Behaviour</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ObjectFlow#validateIsMulticastOrIsMultireceive(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Is Multicast Or Is Multireceive</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ObjectFlow#validateSelectionBehaviour(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Selection Behaviour</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ObjectFlow#validateCompatibleTypes(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Compatible Types</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ObjectFlow#validateSameUpperBounds(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Same Upper Bounds</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ObjectFlow#validateNoActions(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Actions</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ObjectFlow#validateInputAndOutputParameter(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Input And Output Parameter</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ObjectFlow#validateTransformationBehaviour(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Transformation Behaviour</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ObjectFlow#validateTarget(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Target</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ObjectFlow#validateIsMulticastOrIsMultireceive(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Is Multicast Or Is Multireceive</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ObjectFlow#validateSameUpperBounds(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Same Upper Bounds</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ObjectNodeTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ObjectNodeTest.java
index eac6f3d..b9ec293 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ObjectNodeTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ObjectNodeTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ObjectNodeTest.java,v 1.5 2007/02/14 20:06:12 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -22,9 +21,9 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.ObjectNode#validateInputOutputParameter(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Input Output Parameter</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ObjectNode#validateSelectionBehavior(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Selection Behavior</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ObjectNode#validateObjectFlowEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Object Flow Edges</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ObjectNode#validateSelectionBehavior(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Selection Behavior</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ObjectNode#validateInputOutputParameter(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Input Output Parameter</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/OpaqueExpressionTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/OpaqueExpressionTest.java
index 59bbf91..d9e2563 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/OpaqueExpressionTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/OpaqueExpressionTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: OpaqueExpressionTest.java,v 1.3 2007/02/14 20:06:12 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -31,9 +30,9 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.OpaqueExpression#validateLanguageBodySize(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Language Body Size</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.OpaqueExpression#validateOneReturnResultParameter(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate One Return Result Parameter</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.OpaqueExpression#validateOnlyReturnResultParameters(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Only Return Result Parameters</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.OpaqueExpression#validateOneReturnResultParameter(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate One Return Result Parameter</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.OpaqueExpression#validateLanguageBodySize(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Language Body Size</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.OpaqueExpression#isIntegral() <em>Is Integral</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.OpaqueExpression#isNonNegative() <em>Is Non Negative</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.OpaqueExpression#isPositive() <em>Is Positive</em>}</li>
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ParameterSetTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ParameterSetTest.java
index 178429c..90566a4 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ParameterSetTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ParameterSetTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation, CEA, and others.
  * 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
@@ -7,8 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
+ *   Kenn Hussey (CEA) - 351774
  *
- * $Id: ParameterSetTest.java,v 1.6 2007/02/14 20:06:12 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -24,9 +24,9 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.ParameterSet#validateSameParameterizedEntity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Same Parameterized Entity</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ParameterSet#validateInput(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Input</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ParameterSet#validateTwoParameterSets(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Two Parameter Sets</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ParameterSet#validateInput(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Input</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ParameterSet#validateSameParameterizedEntity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Same Parameterized Entity</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ParameterTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ParameterTest.java
index 935cf01..c9df2d8 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ParameterTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ParameterTest.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ParameterTest.java,v 1.13 2010/09/28 20:59:45 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -41,10 +40,10 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#validateUpperGeLower(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Upper Ge Lower</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#validateLowerGe0(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Lower Ge0</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#validateValueSpecificationNoSideEffects(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Value Specification No Side Effects</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#validateUpperGeLower(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Upper Ge Lower</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#validateValueSpecificationConstant(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Value Specification Constant</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#validateValueSpecificationNoSideEffects(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Value Specification No Side Effects</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#compatibleWith(org.eclipse.uml2.uml.MultiplicityElement) <em>Compatible With</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#includesCardinality(int) <em>Includes Cardinality</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#includesMultiplicity(org.eclipse.uml2.uml.MultiplicityElement) <em>Includes Multiplicity</em>}</li>
@@ -52,10 +51,10 @@
  *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#isMultivalued() <em>Is Multivalued</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#lowerBound() <em>Lower Bound</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#upperBound() <em>Upper Bound</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Parameter#validateInAndOut(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate In And Out</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Parameter#validateNotException(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Not Exception</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Parameter#validateConnectorEnd(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Connector End</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Parameter#validateReentrantBehaviors(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Reentrant Behaviors</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Parameter#validateConnectorEnd(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Connector End</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Parameter#validateNotException(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Not Exception</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Parameter#validateInAndOut(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate In And Out</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Parameter#validateStreamAndException(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Stream And Exception</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Parameter#setBooleanDefaultValue(boolean) <em>Set Boolean Default Value</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Parameter#setIntegerDefaultValue(int) <em>Set Integer Default Value</em>}</li>
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/PartDecompositionTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/PartDecompositionTest.java
index 89e9f4b..21e7669 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/PartDecompositionTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/PartDecompositionTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: PartDecompositionTest.java,v 1.3 2007/02/14 20:06:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -25,9 +24,9 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.PartDecomposition#validateCommutativityOfDecomposition(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Commutativity Of Decomposition</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.PartDecomposition#validateAssume(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Assume</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.PartDecomposition#validatePartsOfInternalStructures(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Parts Of Internal Structures</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.PartDecomposition#validateAssume(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Assume</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.PartDecomposition#validateCommutativityOfDecomposition(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Commutativity Of Decomposition</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/PinTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/PinTest.java
index af46b05..d17d30e 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/PinTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/PinTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: PinTest.java,v 1.10 2008/10/02 21:00:20 jbruck Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -29,10 +28,10 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#validateUpperGeLower(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Upper Ge Lower</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#validateLowerGe0(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Lower Ge0</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#validateValueSpecificationNoSideEffects(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Value Specification No Side Effects</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#validateUpperGeLower(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Upper Ge Lower</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#validateValueSpecificationConstant(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Value Specification Constant</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#validateValueSpecificationNoSideEffects(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Value Specification No Side Effects</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#compatibleWith(org.eclipse.uml2.uml.MultiplicityElement) <em>Compatible With</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#includesCardinality(int) <em>Includes Cardinality</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#includesMultiplicity(org.eclipse.uml2.uml.MultiplicityElement) <em>Includes Multiplicity</em>}</li>
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/PortTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/PortTest.java
index ba2ff8a..4edadcc 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/PortTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/PortTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: PortTest.java,v 1.6 2007/02/14 20:06:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -32,9 +31,9 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.Port#validatePortDestroyed(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Port Destroyed</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Port#validatePortAggregation(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Port Aggregation</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Port#validateDefaultValue(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Default Value</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Port#validatePortAggregation(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Port Aggregation</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Port#validatePortDestroyed(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Port Destroyed</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/PropertyTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/PropertyTest.java
index 44e087a..4065ea5 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/PropertyTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/PropertyTest.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 323181
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: PropertyTest.java,v 1.14 2010/09/28 20:59:45 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -50,15 +49,15 @@
  * <ul>
  *   <li>{@link org.eclipse.uml2.uml.Property#isCompatibleWith(org.eclipse.uml2.uml.ParameterableElement) <em>Is Compatible With</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ParameterableElement#isTemplateParameter() <em>Is Template Parameter</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Property#validateSubsettingContextConforms(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Subsetting Context Conforms</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Property#validateDerivedUnionIsReadOnly(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Derived Union Is Read Only</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Property#validateMultiplicityOfComposite(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Composite</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Property#validateRedefinedPropertyInherited(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Redefined Property Inherited</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Property#validateSubsettingRules(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Subsetting Rules</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Property#validateBindingToAttribute(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Binding To Attribute</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Property#validateDerivedUnionIsDerived(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Derived Union Is Derived</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Property#validateDeploymentTarget(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Deployment Target</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Property#validateSubsettedPropertyNames(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Subsetted Property Names</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Property#validateSubsettingRules(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Subsetting Rules</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Property#validateMultiplicityOfComposite(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Composite</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Property#validateBindingToAttribute(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Binding To Attribute</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Property#validateRedefinedPropertyInherited(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Redefined Property Inherited</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Property#validateSubsettingContextConforms(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Subsetting Context Conforms</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Property#validateDeploymentTarget(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Deployment Target</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Property#validateDerivedUnionIsDerived(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Derived Union Is Derived</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Property#validateDerivedUnionIsReadOnly(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Derived Union Is Read Only</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Property#getOtherEnd() <em>Get Other End</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Property#setBooleanDefaultValue(boolean) <em>Set Boolean Default Value</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Property#setIntegerDefaultValue(int) <em>Set Integer Default Value</em>}</li>
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ProtocolStateMachineTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ProtocolStateMachineTest.java
index e50be25..cc50100 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ProtocolStateMachineTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ProtocolStateMachineTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ProtocolStateMachineTest.java,v 1.6 2007/02/14 20:06:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -25,10 +24,10 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.ProtocolStateMachine#validateDeepOrShallowHistory(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Deep Or Shallow History</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ProtocolStateMachine#validateEntryExitDo(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Entry Exit Do</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ProtocolStateMachine#validatePortsConnected(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Ports Connected</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ProtocolStateMachine#validateProtocolTransitions(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Protocol Transitions</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ProtocolStateMachine#validateDeepOrShallowHistory(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Deep Or Shallow History</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ProtocolStateMachine#validatePortsConnected(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Ports Connected</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ProtocolStateMachine#validateClassifierContext(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Classifier Context</em>}</li>
  * </ul>
  * </p>
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/PseudostateTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/PseudostateTest.java
index 3757a01..a3f7e50 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/PseudostateTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/PseudostateTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: PseudostateTest.java,v 1.5 2007/02/14 20:06:12 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -25,14 +24,14 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.Pseudostate#validateTransitionsOutgoing(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Transitions Outgoing</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Pseudostate#validateChoiceVertex(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Choice Vertex</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Pseudostate#validateOutgoingFromInitial(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Outgoing From Initial</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Pseudostate#validateJoinVertex(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Join Vertex</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Pseudostate#validateJunctionVertex(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Junction Vertex</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Pseudostate#validateHistoryVertices(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate History Vertices</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Pseudostate#validateInitialVertex(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Initial Vertex</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Pseudostate#validateTransitionsOutgoing(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Transitions Outgoing</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Pseudostate#validateOutgoingFromInitial(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Outgoing From Initial</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Pseudostate#validateForkVertex(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Fork Vertex</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Pseudostate#validateJoinVertex(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Join Vertex</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Pseudostate#validateChoiceVertex(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Choice Vertex</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Pseudostate#validateInitialVertex(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Initial Vertex</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Pseudostate#validateTransitionsIncoming(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Transitions Incoming</em>}</li>
  * </ul>
  * </p>
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/QualifierValueTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/QualifierValueTest.java
index ec07012..4933c63 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/QualifierValueTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/QualifierValueTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: QualifierValueTest.java,v 1.3 2007/02/14 20:06:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -25,9 +24,9 @@
  * <p>
  * The following operations are tested:
  * <ul>
+ *   <li>{@link org.eclipse.uml2.uml.QualifierValue#validateQualifierAttribute(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Qualifier Attribute</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.QualifierValue#validateMultiplicityOfQualifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Qualifier</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.QualifierValue#validateTypeOfQualifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Of Qualifier</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.QualifierValue#validateQualifierAttribute(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Qualifier Attribute</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ReadLinkActionTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ReadLinkActionTest.java
index 3ec1c28..91b626e 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ReadLinkActionTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ReadLinkActionTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ReadLinkActionTest.java,v 1.6 2007/02/14 20:06:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -26,10 +25,10 @@
  * The following operations are tested:
  * <ul>
  *   <li>{@link org.eclipse.uml2.uml.ReadLinkAction#validateTypeAndOrdering(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type And Ordering</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ReadLinkAction#validateCompatibleMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Compatible Multiplicity</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ReadLinkAction#validateVisibility(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Visibility</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ReadLinkAction#validateOneOpenEnd(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate One Open End</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ReadLinkAction#validateCompatibleMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Compatible Multiplicity</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ReadLinkAction#validateNavigableOpenEnd(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Navigable Open End</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ReadLinkAction#validateVisibility(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Visibility</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ReadLinkObjectEndActionTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ReadLinkObjectEndActionTest.java
index 973c470..469e7dc 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ReadLinkObjectEndActionTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ReadLinkObjectEndActionTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ReadLinkObjectEndActionTest.java,v 1.6 2007/02/14 20:06:12 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -25,13 +24,13 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#validateProperty(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Property</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#validateMultiplicityOfObject(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Object</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#validateEndsOfAssociation(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Ends Of Association</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#validateTypeOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Of Result</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#validateMultiplicityOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Result</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#validateTypeOfObject(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Of Object</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#validateAssociationOfAssociation(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Association Of Association</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#validateMultiplicityOfObject(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Object</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#validateTypeOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Of Result</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#validateTypeOfObject(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Of Object</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#validateProperty(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Property</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#validateMultiplicityOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Result</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#validateEndsOfAssociation(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Ends Of Association</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ReadLinkObjectEndQualifierActionTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ReadLinkObjectEndQualifierActionTest.java
index 6445d89..7e429bf 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ReadLinkObjectEndQualifierActionTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ReadLinkObjectEndQualifierActionTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ReadLinkObjectEndQualifierActionTest.java,v 1.6 2007/02/14 20:06:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -25,12 +24,12 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#validateMultiplicityOfObject(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Object</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#validateTypeOfObject(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Of Object</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#validateMultiplicityOfQualifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Qualifier</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#validateEndsOfAssociation(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Ends Of Association</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#validateMultiplicityOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Result</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#validateSameType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Same Type</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#validateEndsOfAssociation(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Ends Of Association</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#validateMultiplicityOfQualifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Qualifier</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#validateMultiplicityOfObject(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Object</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#validateAssociationOfAssociation(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Association Of Association</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#validateQualifierAttribute(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Qualifier Attribute</em>}</li>
  * </ul>
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ReadSelfActionTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ReadSelfActionTest.java
index 73f6267..e39aa0f 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ReadSelfActionTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ReadSelfActionTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ReadSelfActionTest.java,v 1.6 2007/02/14 20:06:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -26,9 +25,9 @@
  * The following operations are tested:
  * <ul>
  *   <li>{@link org.eclipse.uml2.uml.ReadSelfAction#validateContained(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Contained</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ReadSelfAction#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ReadSelfAction#validateNotStatic(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Not Static</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ReadSelfAction#validateType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ReadSelfAction#validateNotStatic(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Not Static</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ReadSelfAction#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ReclassifyObjectActionTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ReclassifyObjectActionTest.java
index 4e15cc3..f47e43d 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ReclassifyObjectActionTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ReclassifyObjectActionTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ReclassifyObjectActionTest.java,v 1.6 2007/02/14 20:06:12 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -26,8 +25,8 @@
  * The following operations are tested:
  * <ul>
  *   <li>{@link org.eclipse.uml2.uml.ReclassifyObjectAction#validateInputPin(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Input Pin</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ReclassifyObjectAction#validateClassifierNotAbstract(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Classifier Not Abstract</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ReclassifyObjectAction#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ReclassifyObjectAction#validateClassifierNotAbstract(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Classifier Not Abstract</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ReduceActionTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ReduceActionTest.java
index 3dfd748..6cd2f92 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ReduceActionTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ReduceActionTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ReduceActionTest.java,v 1.6 2007/02/14 20:06:12 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -25,9 +24,9 @@
  * <p>
  * The following operations are tested:
  * <ul>
+ *   <li>{@link org.eclipse.uml2.uml.ReduceAction#validateOutputTypesAreCompatible(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Output Types Are Compatible</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ReduceAction#validateReducerInputsOutput(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Reducer Inputs Output</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ReduceAction#validateInputTypeIsCollection(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Input Type Is Collection</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ReduceAction#validateOutputTypesAreCompatible(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Output Types Are Compatible</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/RegionTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/RegionTest.java
index 9948a7d..da54fb2 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/RegionTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/RegionTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: RegionTest.java,v 1.6 2007/02/14 20:06:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -35,10 +34,10 @@
  *   <li>{@link org.eclipse.uml2.uml.RedefinableElement#validateNonLeafRedefinition(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Non Leaf Redefinition</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.RedefinableElement#validateRedefinitionContextValid(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Redefinition Context Valid</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Region#isConsistentWith(org.eclipse.uml2.uml.RedefinableElement) <em>Is Consistent With</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Region#validateDeepHistoryVertex(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Deep History Vertex</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Region#validateShallowHistoryVertex(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Shallow History Vertex</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Region#validateOwned(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Owned</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Region#validateDeepHistoryVertex(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Deep History Vertex</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Region#validateInitialVertex(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Initial Vertex</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Region#validateOwned(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Owned</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Region#belongsToPSM() <em>Belongs To PSM</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Region#containingStateMachine() <em>Containing State Machine</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Region#isRedefinitionContextValid(org.eclipse.uml2.uml.Region) <em>Is Redefinition Context Valid</em>}</li>
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ReplyActionTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ReplyActionTest.java
index 3adbc01..40c0bcc 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ReplyActionTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ReplyActionTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation, CEA, and others.
  * 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
@@ -7,8 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
+ *   Kenn Hussey (CEA) - 351774
  *
- * $Id: ReplyActionTest.java,v 1.6 2007/02/14 20:06:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -24,8 +24,8 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.ReplyAction#validatePinsMatchParameter(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Pins Match Parameter</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ReplyAction#validateEventOnReplyToCallTrigger(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Event On Reply To Call Trigger</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ReplyAction#validatePinsMatchParameter(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Pins Match Parameter</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/StartClassifierBehaviorActionTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/StartClassifierBehaviorActionTest.java
index 79d69f1..1686cd5 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/StartClassifierBehaviorActionTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/StartClassifierBehaviorActionTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation, CEA, and others.
  * 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
@@ -7,8 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
+ *   Kenn Hussey (CEA) - 351774
  *
- * $Id: StartClassifierBehaviorActionTest.java,v 1.6 2007/02/14 20:06:12 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -24,8 +24,8 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.StartClassifierBehaviorAction#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.StartClassifierBehaviorAction#validateTypeHasClassifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Has Classifier</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.StartClassifierBehaviorAction#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/StartObjectBehaviorActionTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/StartObjectBehaviorActionTest.java
index 65f3441..a17a859 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/StartObjectBehaviorActionTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/StartObjectBehaviorActionTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: StartObjectBehaviorActionTest.java,v 1.1 2008/10/02 21:00:20 jbruck Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -25,11 +24,11 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.StartObjectBehaviorAction#validateNumberOrderResults(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Number Order Results</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.StartObjectBehaviorAction#validateMultiplicityOfObject(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Object</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.StartObjectBehaviorAction#validateTypeOrderingMultiplicityMatch(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Ordering Multiplicity Match</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.StartObjectBehaviorAction#validateNumberOrderArguments(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Number Order Arguments</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.StartObjectBehaviorAction#validateTypeOrderingMultiplicityMatch(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Ordering Multiplicity Match</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.StartObjectBehaviorAction#validateNumberOrderResults(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Number Order Results</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.StartObjectBehaviorAction#validateTypeOfObject(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Of Object</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.StartObjectBehaviorAction#validateMultiplicityOfObject(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Object</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/StateMachineTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/StateMachineTest.java
index d353349..e9c857d 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/StateMachineTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/StateMachineTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: StateMachineTest.java,v 1.6 2007/02/14 20:06:12 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -25,10 +24,10 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.StateMachine#validateConnectionPoints(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Connection Points</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.StateMachine#validateClassifierContext(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Classifier Context</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.StateMachine#validateMethod(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Method</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.StateMachine#validateClassifierContext(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Classifier Context</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.StateMachine#validateContextClassifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Context Classifier</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.StateMachine#validateConnectionPoints(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Connection Points</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.StateMachine#LCA(org.eclipse.uml2.uml.State, org.eclipse.uml2.uml.State) <em>LCA</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.StateMachine#ancestor(org.eclipse.uml2.uml.State, org.eclipse.uml2.uml.State) <em>Ancestor</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.StateMachine#isRedefinitionContextValid(org.eclipse.uml2.uml.StateMachine) <em>Is Redefinition Context Valid</em>}</li>
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/StateTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/StateTest.java
index 54fb636..eb36cf5 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/StateTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/StateTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: StateTest.java,v 1.8 2008/10/02 21:00:20 jbruck Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -43,10 +42,10 @@
  *   <li>{@link org.eclipse.uml2.uml.State#isConsistentWith(org.eclipse.uml2.uml.RedefinableElement) <em>Is Consistent With</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.State#containingStateMachine() <em>Containing State Machine</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.State#validateEntryOrExit(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Entry Or Exit</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.State#validateSubmachineStates(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Submachine States</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.State#validateCompositeStates(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Composite States</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.State#validateDestinationsOrSourcesOfTransitions(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Destinations Or Sources Of Transitions</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.State#validateSubmachineOrRegions(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Submachine Or Regions</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.State#validateSubmachineStates(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Submachine States</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.State#isRedefinitionContextValid(org.eclipse.uml2.uml.State) <em>Is Redefinition Context Valid</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.State#redefinitionContext() <em>Redefinition Context</em>}</li>
  * </ul>
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/StereotypeTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/StereotypeTest.java
index 574d265..ddd28ca 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/StereotypeTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/StereotypeTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: StereotypeTest.java,v 1.3 2007/02/14 20:06:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -31,10 +30,10 @@
  * <p>
  * The following operations are tested:
  * <ul>
+ *   <li>{@link org.eclipse.uml2.uml.Stereotype#validateAssociationEndOwnership(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Association End Ownership</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Stereotype#validateNameNotClash(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Name Not Clash</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Stereotype#validateBinaryAssociationsOnly(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Binary Associations Only</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Stereotype#validateGeneralize(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Generalize</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Stereotype#validateNameNotClash(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Name Not Clash</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Stereotype#validateAssociationEndOwnership(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Association End Ownership</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Stereotype#createExtension(org.eclipse.uml2.uml.Class, boolean) <em>Create Extension</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Stereotype#createIcon(java.lang.String) <em>Create Icon</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Stereotype#createIcon(java.lang.String, java.lang.String) <em>Create Icon</em>}</li>
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/StringExpressionTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/StringExpressionTest.java
index ab910c3..d95593e 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/StringExpressionTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/StringExpressionTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: StringExpressionTest.java,v 1.7 2007/02/14 20:06:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -27,8 +26,8 @@
  * <ul>
  *   <li>{@link org.eclipse.uml2.uml.TemplateableElement#isTemplate() <em>Is Template</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.TemplateableElement#parameterableElements() <em>Parameterable Elements</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.StringExpression#validateOperands(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Operands</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.StringExpression#validateSubexpressions(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Subexpressions</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.StringExpression#validateOperands(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Operands</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.StringExpression#stringValue() <em>String Value</em>}</li>
  * </ul>
  * </p>
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/StructuralFeatureActionTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/StructuralFeatureActionTest.java
index 3a81888..da07391 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/StructuralFeatureActionTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/StructuralFeatureActionTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: StructuralFeatureActionTest.java,v 1.5 2007/02/14 20:06:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -22,11 +21,11 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.StructuralFeatureAction#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.StructuralFeatureAction#validateSameType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Same Type</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.StructuralFeatureAction#validateVisibility(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Visibility</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.StructuralFeatureAction#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.StructuralFeatureAction#validateNotStatic(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Not Static</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.StructuralFeatureAction#validateOneFeaturingClassifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate One Featuring Classifier</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.StructuralFeatureAction#validateSameType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Same Type</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/StructuralFeatureTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/StructuralFeatureTest.java
index a20cc08..91cce76 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/StructuralFeatureTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/StructuralFeatureTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: StructuralFeatureTest.java,v 1.9 2008/10/02 21:00:20 jbruck Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -29,10 +28,10 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#validateUpperGeLower(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Upper Ge Lower</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#validateLowerGe0(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Lower Ge0</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#validateValueSpecificationNoSideEffects(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Value Specification No Side Effects</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#validateUpperGeLower(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Upper Ge Lower</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#validateValueSpecificationConstant(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Value Specification Constant</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#validateValueSpecificationNoSideEffects(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Value Specification No Side Effects</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#compatibleWith(org.eclipse.uml2.uml.MultiplicityElement) <em>Compatible With</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#includesCardinality(int) <em>Includes Cardinality</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#includesMultiplicity(org.eclipse.uml2.uml.MultiplicityElement) <em>Includes Multiplicity</em>}</li>
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/StructuredActivityNodeTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/StructuredActivityNodeTest.java
index 58d5b07..276f82e 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/StructuredActivityNodeTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/StructuredActivityNodeTest.java
@@ -7,14 +7,14 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: StructuredActivityNodeTest.java,v 1.6 2007/02/14 20:06:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
 import junit.textui.TestRunner;
 
+import org.eclipse.uml2.uml.Activity;
 import org.eclipse.uml2.uml.StructuredActivityNode;
 import org.eclipse.uml2.uml.UMLFactory;
 
@@ -41,12 +41,12 @@
  *   <li>{@link org.eclipse.uml2.uml.Namespace#getNamesOfMember(org.eclipse.uml2.uml.NamedElement) <em>Get Names Of Member</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Namespace#importMembers(org.eclipse.emf.common.util.EList) <em>Import Members</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Namespace#membersAreDistinguishable() <em>Members Are Distinguishable</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.ActivityGroup#validateNodesAndEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Nodes And Edges</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ActivityGroup#validateGroupOwned(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Group Owned</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ActivityGroup#validateNotContained(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Not Contained</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.StructuredActivityNode#validateOutputPinEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Output Pin Edges</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.StructuredActivityNode#validateEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Edges</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ActivityGroup#validateNodesAndEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Nodes And Edges</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.StructuredActivityNode#validateInputPinEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Input Pin Edges</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.StructuredActivityNode#validateEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Edges</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.StructuredActivityNode#validateOutputPinEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Output Pin Edges</em>}</li>
  * </ul>
  * </p>
  * @generated
@@ -125,11 +125,17 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @see org.eclipse.uml2.uml.StructuredActivityNode#getActivity()
-	 * @generated
+	 * @generated NOT
 	 */
 	public void testGetActivity() {
-		// TODO: implement this feature getter test method
-		// Ensure that you remove @generated or mark it @generated NOT
+		Activity activity = UMLFactory.eINSTANCE.createActivity();
+		activity.getStructuredNodes().add(getFixture());
+
+		assertEquals(activity, getFixture().getActivity());
+
+		activity.getNodes().remove(getFixture());
+
+		assertNull(getFixture().getActivity());
 	}
 
 	/**
@@ -137,11 +143,27 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @see org.eclipse.uml2.uml.StructuredActivityNode#setActivity(org.eclipse.uml2.uml.Activity)
-	 * @generated
+	 * @generated NOT
 	 */
 	public void testSetActivity() {
-		// TODO: implement this feature getter test method
-		// Ensure that you remove @generated or mark it @generated NOT
+		Activity activity1 = UMLFactory.eINSTANCE.createActivity();
+		getFixture().setActivity(activity1);
+
+		assertTrue(activity1.getStructuredNodes().contains(getFixture()));
+		assertTrue(activity1.getNodes().contains(getFixture()));
+
+		Activity activity2 = UMLFactory.eINSTANCE.createActivity();
+		getFixture().setActivity(activity2);
+
+		assertFalse(activity1.getStructuredNodes().contains(getFixture()));
+		assertFalse(activity1.getNodes().contains(getFixture()));
+		assertTrue(activity2.getStructuredNodes().contains(getFixture()));
+		assertTrue(activity2.getNodes().contains(getFixture()));
+
+		getFixture().setActivity(null);
+
+		assertFalse(activity2.getStructuredNodes().contains(getFixture()));
+		assertFalse(activity2.getNodes().contains(getFixture()));
 	}
 
 	/**
@@ -329,11 +351,17 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @see org.eclipse.uml2.uml.ActivityGroup#getInActivity()
-	 * @generated
+	 * @generated NOT
 	 */
 	public void testGetInActivity() {
-		// TODO: implement this redefined feature getter test method
-		// Ensure that you remove @generated or mark it @generated NOT
+		Activity activity = UMLFactory.eINSTANCE.createActivity();
+		activity.getStructuredNodes().add(getFixture());
+
+		assertEquals(activity, getFixture().getInActivity());
+
+		activity.getGroups().remove(getFixture());
+
+		assertNull(getFixture().getInActivity());
 	}
 
 	/**
@@ -341,10 +369,26 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @see org.eclipse.uml2.uml.ActivityGroup#setInActivity(org.eclipse.uml2.uml.Activity)
-	 * @generated
+	 * @generated NOT
 	 */
 	public void testSetInActivity() {
-		// TODO: implement this redefined feature setter test method
-		// Ensure that you remove @generated or mark it @generated NOT
+		Activity activity1 = UMLFactory.eINSTANCE.createActivity();
+		getFixture().setInActivity(activity1);
+
+		assertTrue(activity1.getStructuredNodes().contains(getFixture()));
+		assertTrue(activity1.getGroups().contains(getFixture()));
+
+		Activity activity2 = UMLFactory.eINSTANCE.createActivity();
+		getFixture().setInActivity(activity2);
+
+		assertFalse(activity1.getStructuredNodes().contains(getFixture()));
+		assertFalse(activity1.getGroups().contains(getFixture()));
+		assertTrue(activity2.getStructuredNodes().contains(getFixture()));
+		assertTrue(activity2.getGroups().contains(getFixture()));
+
+		getFixture().setInActivity(null);
+
+		assertFalse(activity2.getStructuredNodes().contains(getFixture()));
+		assertFalse(activity2.getGroups().contains(getFixture()));
 	}
 } //StructuredActivityNodeTest
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/TimeEventTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/TimeEventTest.java
index d7c70e8..9e7f251 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/TimeEventTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/TimeEventTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation, CEA, and others.
  * 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
@@ -7,8 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
+ *   Kenn Hussey (CEA) - 351774
  *
- * $Id: TimeEventTest.java,v 1.6 2007/02/14 20:06:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -24,8 +24,8 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.TimeEvent#validateWhenNonNegative(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate When Non Negative</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.TimeEvent#validateStartingTime(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Starting Time</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.TimeEvent#validateWhenNonNegative(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate When Non Negative</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/TransitionTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/TransitionTest.java
index b3753ad..f33a744 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/TransitionTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/TransitionTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: TransitionTest.java,v 1.6 2007/02/14 20:06:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -36,16 +35,16 @@
  *   <li>{@link org.eclipse.uml2.uml.RedefinableElement#validateRedefinitionContextValid(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Redefinition Context Valid</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Transition#isConsistentWith(org.eclipse.uml2.uml.RedefinableElement) <em>Is Consistent With</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.RedefinableElement#isRedefinitionContextValid(org.eclipse.uml2.uml.RedefinableElement) <em>Is Redefinition Context Valid</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Transition#validateStateIsExternal(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate State Is External</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Transition#validateJoinSegmentGuards(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Join Segment Guards</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Transition#validateStateIsInternal(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate State Is Internal</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Transition#validateOutgoingPseudostates(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Outgoing Pseudostates</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Transition#validateJoinSegmentState(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Join Segment State</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Transition#validateForkSegmentState(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Fork Segment State</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Transition#validateSignaturesCompatible(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Signatures Compatible</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Transition#validateStateIsLocal(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate State Is Local</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.Transition#validateInitialTransition(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Initial Transition</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Transition#validateForkSegmentGuards(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Fork Segment Guards</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Transition#validateJoinSegmentState(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Join Segment State</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Transition#validateInitialTransition(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Initial Transition</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Transition#validateOutgoingPseudostates(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Outgoing Pseudostates</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Transition#validateSignaturesCompatible(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Signatures Compatible</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Transition#validateStateIsInternal(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate State Is Internal</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Transition#validateJoinSegmentGuards(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Join Segment Guards</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Transition#validateForkSegmentState(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Fork Segment State</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.Transition#validateStateIsExternal(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate State Is External</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Transition#containingStateMachine() <em>Containing State Machine</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.Transition#redefinitionContext() <em>Redefinition Context</em>}</li>
  * </ul>
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/UMLTests.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/UMLTests.java
index ccf3004..8835a24 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/UMLTests.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/UMLTests.java
@@ -8,9 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 205188
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: UMLTests.java,v 1.6 2008/10/02 21:00:20 jbruck Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -50,12 +49,12 @@
 		suite.addTestSuite(StereotypeTest.class);
 		suite.addTestSuite(ClassTest.class);
 		suite.addTestSuite(StringExpressionTest.class);
+		suite.addTestSuite(ExpressionTest.class);
+		suite.addTestSuite(PackageTest.class);
 		suite.addTestSuite(TemplateSignatureTest.class);
 		suite.addTestSuite(TemplateParameterTest.class);
 		suite.addTestSuite(TemplateBindingTest.class);
 		suite.addTestSuite(TemplateParameterSubstitutionTest.class);
-		suite.addTestSuite(ExpressionTest.class);
-		suite.addTestSuite(PackageTest.class);
 		suite.addTestSuite(PackageMergeTest.class);
 		suite.addTestSuite(ProfileApplicationTest.class);
 		suite.addTestSuite(ProfileTest.class);
@@ -71,10 +70,8 @@
 		suite.addTestSuite(ArtifactTest.class);
 		suite.addTestSuite(ManifestationTest.class);
 		suite.addTestSuite(OperationTest.class);
-		suite.addTestSuite(ParameterTest.class);
-		suite.addTestSuite(ParameterSetTest.class);
-		suite.addTestSuite(ConstraintTest.class);
-		suite.addTestSuite(DataTypeTest.class);
+		suite.addTestSuite(InterfaceRealizationTest.class);
+		suite.addTestSuite(RealizationTest.class);
 		suite.addTestSuite(InterfaceTest.class);
 		suite.addTestSuite(ReceptionTest.class);
 		suite.addTestSuite(SignalTest.class);
@@ -86,8 +83,12 @@
 		suite.addTestSuite(ConnectionPointReferenceTest.class);
 		suite.addTestSuite(TriggerTest.class);
 		suite.addTestSuite(PortTest.class);
+		suite.addTestSuite(ConstraintTest.class);
 		suite.addTestSuite(TransitionTest.class);
 		suite.addTestSuite(ProtocolConformanceTest.class);
+		suite.addTestSuite(ParameterTest.class);
+		suite.addTestSuite(ParameterSetTest.class);
+		suite.addTestSuite(DataTypeTest.class);
 		suite.addTestSuite(OperationTemplateParameterTest.class);
 		suite.addTestSuite(ExtensionEndTest.class);
 		suite.addTestSuite(ModelTest.class);
@@ -99,7 +100,6 @@
 		suite.addTestSuite(UsageTest.class);
 		suite.addTestSuite(CollaborationUseTest.class);
 		suite.addTestSuite(CollaborationTest.class);
-		suite.addTestSuite(ConnectorTest.class);
 		suite.addTestSuite(GeneralizationTest.class);
 		suite.addTestSuite(GeneralizationSetTest.class);
 		suite.addTestSuite(RedefinableTemplateSignatureTest.class);
@@ -108,9 +108,8 @@
 		suite.addTestSuite(ExtensionPointTest.class);
 		suite.addTestSuite(IncludeTest.class);
 		suite.addTestSuite(SubstitutionTest.class);
-		suite.addTestSuite(RealizationTest.class);
 		suite.addTestSuite(ClassifierTemplateParameterTest.class);
-		suite.addTestSuite(InterfaceRealizationTest.class);
+		suite.addTestSuite(ConnectorTest.class);
 		suite.addTestSuite(ImageTest.class);
 		suite.addTestSuite(OpaqueExpressionTest.class);
 		suite.addTestSuite(AcceptCallActionTest.class);
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/UnmarshallActionTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/UnmarshallActionTest.java
index ab053a2..00f5579 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/UnmarshallActionTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/UnmarshallActionTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: UnmarshallActionTest.java,v 1.6 2007/02/14 20:06:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -25,13 +24,13 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.UnmarshallAction#validateStructuralFeature(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Structural Feature</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.UnmarshallAction#validateNumberOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Number Of Result</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.UnmarshallAction#validateMultiplicityOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Result</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.UnmarshallAction#validateTypeAndOrdering(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type And Ordering</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.UnmarshallAction#validateUnmarshallTypeIsClassifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Unmarshall Type Is Classifier</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.UnmarshallAction#validateMultiplicityOfObject(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Object</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.UnmarshallAction#validateSameType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Same Type</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.UnmarshallAction#validateStructuralFeature(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Structural Feature</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.UnmarshallAction#validateMultiplicityOfObject(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Object</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.UnmarshallAction#validateTypeAndOrdering(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type And Ordering</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.UnmarshallAction#validateNumberOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Number Of Result</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.UnmarshallAction#validateUnmarshallTypeIsClassifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Unmarshall Type Is Classifier</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.UnmarshallAction#validateMultiplicityOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Result</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/UseCaseTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/UseCaseTest.java
index 2f6545a..8545ede 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/UseCaseTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/UseCaseTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: UseCaseTest.java,v 1.6 2007/02/14 20:06:13 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -25,10 +24,10 @@
  * <p>
  * The following operations are tested:
  * <ul>
+ *   <li>{@link org.eclipse.uml2.uml.UseCase#validateMustHaveName(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Must Have Name</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.UseCase#validateCannotIncludeSelf(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Cannot Include Self</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.UseCase#validateBinaryAssociations(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Binary Associations</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.UseCase#validateNoAssociationToUseCase(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Association To Use Case</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.UseCase#validateCannotIncludeSelf(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Cannot Include Self</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.UseCase#validateMustHaveName(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Must Have Name</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.UseCase#allIncludedUseCases() <em>All Included Use Cases</em>}</li>
  * </ul>
  * </p>
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ValuePinTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ValuePinTest.java
index e8b71fb..8fd26d5 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ValuePinTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/ValuePinTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: ValuePinTest.java,v 1.4 2007/02/14 20:06:12 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -25,8 +24,8 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.ValuePin#validateNoIncomingEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Incoming Edges</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.ValuePin#validateCompatibleType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Compatible Type</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.ValuePin#validateNoIncomingEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate No Incoming Edges</em>}</li>
  * </ul>
  * </p>
  * @generated
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/VariableTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/VariableTest.java
index a42a0d7..7b8b527 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/VariableTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/VariableTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: VariableTest.java,v 1.10 2008/10/02 21:00:20 jbruck Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -32,10 +31,10 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#validateUpperGeLower(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Upper Ge Lower</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#validateLowerGe0(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Lower Ge0</em>}</li>
- *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#validateValueSpecificationNoSideEffects(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Value Specification No Side Effects</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#validateUpperGeLower(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Upper Ge Lower</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#validateValueSpecificationConstant(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Value Specification Constant</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#validateValueSpecificationNoSideEffects(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Value Specification No Side Effects</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#compatibleWith(org.eclipse.uml2.uml.MultiplicityElement) <em>Compatible With</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#includesCardinality(int) <em>Includes Cardinality</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.MultiplicityElement#includesMultiplicity(org.eclipse.uml2.uml.MultiplicityElement) <em>Includes Multiplicity</em>}</li>
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/WriteStructuralFeatureActionTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/WriteStructuralFeatureActionTest.java
index 28185d3..d0233b4 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/WriteStructuralFeatureActionTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/WriteStructuralFeatureActionTest.java
@@ -7,9 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
- *   Kenn Hussey (CEA) - 327039
+ *   Kenn Hussey (CEA) - 327039, 351774
  *
- * $Id: WriteStructuralFeatureActionTest.java,v 1.6 2008/10/02 21:00:20 jbruck Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -22,9 +21,9 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.WriteStructuralFeatureAction#validateMultiplicityOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Result</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.WriteStructuralFeatureAction#validateInputPin(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Input Pin</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.WriteStructuralFeatureAction#validateTypeOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Type Of Result</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.WriteStructuralFeatureAction#validateMultiplicityOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity Of Result</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.WriteStructuralFeatureAction#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity</em>}</li>
  * </ul>
  * </p>
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/WriteVariableActionTest.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/WriteVariableActionTest.java
index 3ecfb21..e14618a 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/WriteVariableActionTest.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/WriteVariableActionTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation, CEA, and others.
  * 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
@@ -7,8 +7,8 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
+ *   Kenn Hussey (CEA) - 351774
  *
- * $Id: WriteVariableActionTest.java,v 1.5 2007/02/14 20:06:14 khussey Exp $
  */
 package org.eclipse.uml2.uml.tests;
 
@@ -21,8 +21,8 @@
  * <p>
  * The following operations are tested:
  * <ul>
- *   <li>{@link org.eclipse.uml2.uml.WriteVariableAction#validateSameType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Same Type</em>}</li>
  *   <li>{@link org.eclipse.uml2.uml.WriteVariableAction#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Multiplicity</em>}</li>
+ *   <li>{@link org.eclipse.uml2.uml.WriteVariableAction#validateSameType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Same Type</em>}</li>
  * </ul>
  * </p>
  * @generated
