Kaynağa Gözat

added xtext nature for import by nsUri
remove initializeOnLoad

benjamin.schwertfeger@gmail.com 13 yıl önce
ebeveyn
işleme
6e6337de48

+ 45 - 28
plugins/org.yakindu.sct.model.sgraph/.project

@@ -1,28 +1,45 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.yakindu.sct.model.sgraph</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.yakindu.sct.model.sgraph</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+	</natures>
+	<filteredResources>
+		<filter>
+			<id>1337700753283</id>
+			<name>target/classes</name>
+			<type>10</type>
+			<matcher>
+				<id>org.eclipse.ui.ide.multiFilter</id>
+				<arguments>1.0-name-matches-false-false-*</arguments>
+			</matcher>
+		</filter>
+	</filteredResources>
+</projectDescription>

+ 2 - 3
plugins/org.yakindu.sct.model.sgraph/model/emf/sgraph.genmodel

@@ -1,13 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<genmodel:GenModel xmi:version="2.0"
-    xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
     xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="Copyright (c) 2011 committers of YAKINDU and others.&#xD;&#xA;All rights reserved. This program and the accompanying materials&#xD;&#xA;are made available under the terms of the Eclipse Public License v1.0&#xD;&#xA;which accompanies this distribution, and is available at&#xD;&#xA;http://www.eclipse.org/legal/epl-v10.html&#xD;&#xA;Contributors:&#xD;&#xA;committers of YAKINDU - initial API and implementation&#xD;&#xA;"
     modelDirectory="/org.yakindu.sct.model.sgraph/src" modelPluginID="org.yakindu.sct.model.sgraph"
     modelName="SGraph" importerID="org.eclipse.emf.importer.ecore" complianceLevel="6.0"
     usedGenPackages="../../../org.yakindu.base.types/model/base.genmodel#//base">
   <foreignModel>sgraph.ecore</foreignModel>
   <genPackages prefix="SGraph" basePackage="org.yakindu.sct.model" disposableProviderFactory="true"
-      loadInitialization="true" ecorePackage="sgraph.ecore#/">
+      ecorePackage="sgraph.ecore#/">
     <genEnums typeSafeEnumCompatible="false" ecoreEnum="sgraph.ecore#//EntryKind">
       <genEnumLiterals ecoreEnumLiteral="sgraph.ecore#//EntryKind/initial"/>
       <genEnumLiterals ecoreEnumLiteral="sgraph.ecore#//EntryKind/shallowHistory"/>

+ 353 - 150
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/SGraphPackageImpl.java

@@ -26,8 +26,34 @@ import org.eclipse.emf.ecore.impl.EPackageImpl;
 import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.xmi.impl.EcoreResourceFactoryImpl;
 import org.yakindu.base.base.BasePackage;
+import org.yakindu.sct.model.sgraph.Choice;
+import org.yakindu.sct.model.sgraph.ChoiceKind;
+import org.yakindu.sct.model.sgraph.CompositeElement;
+import org.yakindu.sct.model.sgraph.Declaration;
+import org.yakindu.sct.model.sgraph.Effect;
+import org.yakindu.sct.model.sgraph.Entry;
+import org.yakindu.sct.model.sgraph.EntryKind;
+import org.yakindu.sct.model.sgraph.Event;
+import org.yakindu.sct.model.sgraph.Exit;
+import org.yakindu.sct.model.sgraph.FinalState;
+import org.yakindu.sct.model.sgraph.Pseudostate;
+import org.yakindu.sct.model.sgraph.Reaction;
+import org.yakindu.sct.model.sgraph.ReactiveElement;
+import org.yakindu.sct.model.sgraph.Region;
+import org.yakindu.sct.model.sgraph.RegularState;
 import org.yakindu.sct.model.sgraph.SGraphFactory;
 import org.yakindu.sct.model.sgraph.SGraphPackage;
+import org.yakindu.sct.model.sgraph.Scope;
+import org.yakindu.sct.model.sgraph.ScopedElement;
+import org.yakindu.sct.model.sgraph.SpecificationElement;
+import org.yakindu.sct.model.sgraph.State;
+import org.yakindu.sct.model.sgraph.Statechart;
+import org.yakindu.sct.model.sgraph.Statement;
+import org.yakindu.sct.model.sgraph.Synchronization;
+import org.yakindu.sct.model.sgraph.Transition;
+import org.yakindu.sct.model.sgraph.Trigger;
+import org.yakindu.sct.model.sgraph.Variable;
+import org.yakindu.sct.model.sgraph.Vertex;
 import org.yakindu.sct.model.sgraph.util.SGraphValidator;
 
 /**
@@ -44,13 +70,6 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 */
 	public static final String copyright = "Copyright (c) 2011 committers of YAKINDU and others.\r\nAll rights reserved. This program and the accompanying materials\r\nare made available under the terms of the Eclipse Public License v1.0\r\nwhich accompanies this distribution, and is available at\r\nhttp://www.eclipse.org/legal/epl-v10.html\r\nContributors:\r\ncommitters of YAKINDU - initial API and implementation\r\n";
 
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected String packageFilename = "sgraph.ecore";
-
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -267,6 +286,8 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
 	 * @generated
 	 */
 	public static SGraphPackage init() {
@@ -280,11 +301,11 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 		// Initialize simple dependencies
 		BasePackage.eINSTANCE.eClass();
 
-		// Load packages
-		theSGraphPackage.loadPackage();
+		// Create package meta-data objects
+		theSGraphPackage.createPackageContents();
 
-		// Fix loaded packages
-		theSGraphPackage.fixPackageContents();
+		// Initialize created meta-data
+		theSGraphPackage.initializePackageContents();
 
 		// Register package validator
 		EValidator.Registry.INSTANCE.put
@@ -310,9 +331,6 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EClass getPseudostate() {
-		if (pseudostateEClass == null) {
-			pseudostateEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(SGraphPackage.eNS_URI).getEClassifiers().get(0);
-		}
 		return pseudostateEClass;
 	}
 
@@ -322,9 +340,6 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EClass getVertex() {
-		if (vertexEClass == null) {
-			vertexEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(SGraphPackage.eNS_URI).getEClassifiers().get(1);
-		}
 		return vertexEClass;
 	}
 
@@ -334,7 +349,7 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EReference getVertex_ParentRegion() {
-        return (EReference)getVertex().getEStructuralFeatures().get(0);
+		return (EReference)vertexEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -343,7 +358,7 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EReference getVertex_IncomingTransitions() {
-        return (EReference)getVertex().getEStructuralFeatures().get(1);
+		return (EReference)vertexEClass.getEStructuralFeatures().get(1);
 	}
 
 	/**
@@ -352,7 +367,7 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EReference getVertex_OutgoingTransitions() {
-        return (EReference)getVertex().getEStructuralFeatures().get(2);
+		return (EReference)vertexEClass.getEStructuralFeatures().get(2);
 	}
 
 	/**
@@ -361,9 +376,6 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EClass getRegion() {
-		if (regionEClass == null) {
-			regionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(SGraphPackage.eNS_URI).getEClassifiers().get(2);
-		}
 		return regionEClass;
 	}
 
@@ -373,7 +385,7 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EReference getRegion_Vertices() {
-        return (EReference)getRegion().getEStructuralFeatures().get(0);
+		return (EReference)regionEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -382,7 +394,7 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EAttribute getRegion_Priority() {
-        return (EAttribute)getRegion().getEStructuralFeatures().get(1);
+		return (EAttribute)regionEClass.getEStructuralFeatures().get(1);
 	}
 
 	/**
@@ -391,7 +403,7 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EReference getRegion_Composite() {
-        return (EReference)getRegion().getEStructuralFeatures().get(2);
+		return (EReference)regionEClass.getEStructuralFeatures().get(2);
 	}
 
 	/**
@@ -400,9 +412,6 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EClass getTransition() {
-		if (transitionEClass == null) {
-			transitionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(SGraphPackage.eNS_URI).getEClassifiers().get(3);
-		}
 		return transitionEClass;
 	}
 
@@ -412,7 +421,7 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EReference getTransition_Target() {
-        return (EReference)getTransition().getEStructuralFeatures().get(0);
+		return (EReference)transitionEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -421,7 +430,7 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EReference getTransition_Source() {
-        return (EReference)getTransition().getEStructuralFeatures().get(1);
+		return (EReference)transitionEClass.getEStructuralFeatures().get(1);
 	}
 
 	/**
@@ -430,7 +439,7 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EAttribute getTransition_Priority() {
-        return (EAttribute)getTransition().getEStructuralFeatures().get(2);
+		return (EAttribute)transitionEClass.getEStructuralFeatures().get(2);
 	}
 
 	/**
@@ -439,9 +448,6 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EClass getFinalState() {
-		if (finalStateEClass == null) {
-			finalStateEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(SGraphPackage.eNS_URI).getEClassifiers().get(4);
-		}
 		return finalStateEClass;
 	}
 
@@ -451,9 +457,6 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EClass getState() {
-		if (stateEClass == null) {
-			stateEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(SGraphPackage.eNS_URI).getEClassifiers().get(21);
-		}
 		return stateEClass;
 	}
 
@@ -463,7 +466,7 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EAttribute getState_Orthogonal() {
-        return (EAttribute)getState().getEStructuralFeatures().get(0);
+		return (EAttribute)stateEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -472,7 +475,7 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EReference getState_Substatechart() {
-        return (EReference)getState().getEStructuralFeatures().get(1);
+		return (EReference)stateEClass.getEStructuralFeatures().get(1);
 	}
 
 	/**
@@ -481,7 +484,7 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EAttribute getState_SubstatechartId() {
-        return (EAttribute)getState().getEStructuralFeatures().get(2);
+		return (EAttribute)stateEClass.getEStructuralFeatures().get(2);
 	}
 
 	/**
@@ -490,7 +493,7 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EAttribute getState_Subchart() {
-        return (EAttribute)getState().getEStructuralFeatures().get(3);
+		return (EAttribute)stateEClass.getEStructuralFeatures().get(3);
 	}
 
 	/**
@@ -499,7 +502,7 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EAttribute getState_Simple() {
-        return (EAttribute)getState().getEStructuralFeatures().get(4);
+		return (EAttribute)stateEClass.getEStructuralFeatures().get(4);
 	}
 
 	/**
@@ -508,7 +511,7 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EAttribute getState_Composite() {
-        return (EAttribute)getState().getEStructuralFeatures().get(5);
+		return (EAttribute)stateEClass.getEStructuralFeatures().get(5);
 	}
 
 	/**
@@ -517,7 +520,7 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EAttribute getState_Leaf() {
-        return (EAttribute)getState().getEStructuralFeatures().get(6);
+		return (EAttribute)stateEClass.getEStructuralFeatures().get(6);
 	}
 
 	/**
@@ -526,9 +529,6 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EClass getStatement() {
-		if (statementEClass == null) {
-			statementEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(SGraphPackage.eNS_URI).getEClassifiers().get(22);
-		}
 		return statementEClass;
 	}
 
@@ -538,9 +538,6 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EClass getRegularState() {
-		if (regularStateEClass == null) {
-			regularStateEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(SGraphPackage.eNS_URI).getEClassifiers().get(23);
-		}
 		return regularStateEClass;
 	}
 
@@ -550,9 +547,6 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EClass getCompositeElement() {
-		if (compositeElementEClass == null) {
-			compositeElementEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(SGraphPackage.eNS_URI).getEClassifiers().get(25);
-		}
 		return compositeElementEClass;
 	}
 
@@ -562,7 +556,7 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EReference getCompositeElement_Regions() {
-        return (EReference)getCompositeElement().getEStructuralFeatures().get(0);
+		return (EReference)compositeElementEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -571,9 +565,6 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EClass getVariable() {
-		if (variableEClass == null) {
-			variableEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(SGraphPackage.eNS_URI).getEClassifiers().get(5);
-		}
 		return variableEClass;
 	}
 
@@ -583,9 +574,6 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EClass getEvent() {
-		if (eventEClass == null) {
-			eventEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(SGraphPackage.eNS_URI).getEClassifiers().get(6);
-		}
 		return eventEClass;
 	}
 
@@ -595,9 +583,6 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EClass getChoice() {
-		if (choiceEClass == null) {
-			choiceEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(SGraphPackage.eNS_URI).getEClassifiers().get(7);
-		}
 		return choiceEClass;
 	}
 
@@ -607,7 +592,7 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EAttribute getChoice_Kind() {
-        return (EAttribute)getChoice().getEStructuralFeatures().get(0);
+		return (EAttribute)choiceEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -616,9 +601,6 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EClass getStatechart() {
-		if (statechartEClass == null) {
-			statechartEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(SGraphPackage.eNS_URI).getEClassifiers().get(8);
-		}
 		return statechartEClass;
 	}
 
@@ -628,9 +610,6 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EClass getEntry() {
-		if (entryEClass == null) {
-			entryEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(SGraphPackage.eNS_URI).getEClassifiers().get(9);
-		}
 		return entryEClass;
 	}
 
@@ -640,7 +619,7 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EAttribute getEntry_Kind() {
-        return (EAttribute)getEntry().getEStructuralFeatures().get(0);
+		return (EAttribute)entryEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -649,9 +628,6 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EClass getTrigger() {
-		if (triggerEClass == null) {
-			triggerEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(SGraphPackage.eNS_URI).getEClassifiers().get(10);
-		}
 		return triggerEClass;
 	}
 
@@ -661,9 +637,6 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EClass getEffect() {
-		if (effectEClass == null) {
-			effectEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(SGraphPackage.eNS_URI).getEClassifiers().get(11);
-		}
 		return effectEClass;
 	}
 
@@ -673,9 +646,6 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EClass getSpecificationElement() {
-		if (specificationElementEClass == null) {
-			specificationElementEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(SGraphPackage.eNS_URI).getEClassifiers().get(12);
-		}
 		return specificationElementEClass;
 	}
 
@@ -685,7 +655,7 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EAttribute getSpecificationElement_Specification() {
-        return (EAttribute)getSpecificationElement().getEStructuralFeatures().get(0);
+		return (EAttribute)specificationElementEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -694,9 +664,6 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EClass getDeclaration() {
-		if (declarationEClass == null) {
-			declarationEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(SGraphPackage.eNS_URI).getEClassifiers().get(13);
-		}
 		return declarationEClass;
 	}
 
@@ -706,9 +673,6 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EClass getReaction() {
-		if (reactionEClass == null) {
-			reactionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(SGraphPackage.eNS_URI).getEClassifiers().get(14);
-		}
 		return reactionEClass;
 	}
 
@@ -718,7 +682,7 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EReference getReaction_Trigger() {
-        return (EReference)getReaction().getEStructuralFeatures().get(0);
+		return (EReference)reactionEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -727,7 +691,7 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EReference getReaction_Effect() {
-        return (EReference)getReaction().getEStructuralFeatures().get(1);
+		return (EReference)reactionEClass.getEStructuralFeatures().get(1);
 	}
 
 	/**
@@ -736,9 +700,6 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EClass getReactiveElement() {
-		if (reactiveElementEClass == null) {
-			reactiveElementEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(SGraphPackage.eNS_URI).getEClassifiers().get(16);
-		}
 		return reactiveElementEClass;
 	}
 
@@ -748,7 +709,7 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EReference getReactiveElement_Reactions() {
-        return (EReference)getReactiveElement().getEStructuralFeatures().get(0);
+		return (EReference)reactiveElementEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -757,7 +718,7 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EReference getReactiveElement_LocalReactions() {
-        return (EReference)getReactiveElement().getEStructuralFeatures().get(1);
+		return (EReference)reactiveElementEClass.getEStructuralFeatures().get(1);
 	}
 
 	/**
@@ -766,9 +727,6 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EClass getExit() {
-		if (exitEClass == null) {
-			exitEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(SGraphPackage.eNS_URI).getEClassifiers().get(17);
-		}
 		return exitEClass;
 	}
 
@@ -778,9 +736,6 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EClass getScope() {
-		if (scopeEClass == null) {
-			scopeEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(SGraphPackage.eNS_URI).getEClassifiers().get(18);
-		}
 		return scopeEClass;
 	}
 
@@ -790,7 +745,7 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EReference getScope_Declarations() {
-        return (EReference)getScope().getEStructuralFeatures().get(0);
+		return (EReference)scopeEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -799,7 +754,7 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EReference getScope_Events() {
-        return (EReference)getScope().getEStructuralFeatures().get(1);
+		return (EReference)scopeEClass.getEStructuralFeatures().get(1);
 	}
 
 	/**
@@ -808,7 +763,7 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EReference getScope_Variables() {
-        return (EReference)getScope().getEStructuralFeatures().get(2);
+		return (EReference)scopeEClass.getEStructuralFeatures().get(2);
 	}
 
 	/**
@@ -817,9 +772,6 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EClass getScopedElement() {
-		if (scopedElementEClass == null) {
-			scopedElementEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(SGraphPackage.eNS_URI).getEClassifiers().get(19);
-		}
 		return scopedElementEClass;
 	}
 
@@ -829,7 +781,7 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EReference getScopedElement_Scopes() {
-        return (EReference)getScopedElement().getEStructuralFeatures().get(0);
+		return (EReference)scopedElementEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -838,7 +790,7 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EAttribute getScopedElement_Namespace() {
-        return (EAttribute)getScopedElement().getEStructuralFeatures().get(1);
+		return (EAttribute)scopedElementEClass.getEStructuralFeatures().get(1);
 	}
 
 	/**
@@ -847,9 +799,6 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EClass getSynchronization() {
-		if (synchronizationEClass == null) {
-			synchronizationEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(SGraphPackage.eNS_URI).getEClassifiers().get(20);
-		}
 		return synchronizationEClass;
 	}
 
@@ -859,9 +808,6 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EEnum getEntryKind() {
-		if (entryKindEEnum == null) {
-			entryKindEEnum = (EEnum)EPackage.Registry.INSTANCE.getEPackage(SGraphPackage.eNS_URI).getEClassifiers().get(15);
-		}
 		return entryKindEEnum;
 	}
 
@@ -871,9 +817,6 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EEnum getChoiceKind() {
-		if (choiceKindEEnum == null) {
-			choiceKindEEnum = (EEnum)EPackage.Registry.INSTANCE.getEPackage(SGraphPackage.eNS_URI).getEClassifiers().get(24);
-		}
 		return choiceKindEEnum;
 	}
 
@@ -891,32 +834,100 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private boolean isLoaded = false;
+	private boolean isCreated = false;
 
 	/**
-	 * Laods the package and any sub-packages from their serialized form.
+	 * Creates the meta-model objects for the package.  This method is
+	 * guarded to have no affect on any invocation but its first.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void loadPackage() {
-		if (isLoaded) return;
-		isLoaded = true;
+	public void createPackageContents() {
+		if (isCreated) return;
+		isCreated = true;
 
-		URL url = getClass().getResource(packageFilename);
-		if (url == null) {
-			throw new RuntimeException("Missing serialized package: " + packageFilename);
-		}
-		URI uri = URI.createURI(url.toString());
-		Resource resource = new EcoreResourceFactoryImpl().createResource(uri);
-		try {
-			resource.load(null);
-		}
-		catch (IOException exception) {
-			throw new WrappedException(exception);
-		}
-		initializeFromLoadedEPackage(this, (EPackage)resource.getContents().get(0));
-		createResource(eNS_URI);
+		// Create classes and their features
+		pseudostateEClass = createEClass(PSEUDOSTATE);
+
+		vertexEClass = createEClass(VERTEX);
+		createEReference(vertexEClass, VERTEX__PARENT_REGION);
+		createEReference(vertexEClass, VERTEX__INCOMING_TRANSITIONS);
+		createEReference(vertexEClass, VERTEX__OUTGOING_TRANSITIONS);
+
+		regionEClass = createEClass(REGION);
+		createEReference(regionEClass, REGION__VERTICES);
+		createEAttribute(regionEClass, REGION__PRIORITY);
+		createEReference(regionEClass, REGION__COMPOSITE);
+
+		transitionEClass = createEClass(TRANSITION);
+		createEReference(transitionEClass, TRANSITION__TARGET);
+		createEReference(transitionEClass, TRANSITION__SOURCE);
+		createEAttribute(transitionEClass, TRANSITION__PRIORITY);
+
+		finalStateEClass = createEClass(FINAL_STATE);
+
+		variableEClass = createEClass(VARIABLE);
+
+		eventEClass = createEClass(EVENT);
+
+		choiceEClass = createEClass(CHOICE);
+		createEAttribute(choiceEClass, CHOICE__KIND);
+
+		statechartEClass = createEClass(STATECHART);
+
+		entryEClass = createEClass(ENTRY);
+		createEAttribute(entryEClass, ENTRY__KIND);
+
+		triggerEClass = createEClass(TRIGGER);
+
+		effectEClass = createEClass(EFFECT);
+
+		specificationElementEClass = createEClass(SPECIFICATION_ELEMENT);
+		createEAttribute(specificationElementEClass, SPECIFICATION_ELEMENT__SPECIFICATION);
+
+		declarationEClass = createEClass(DECLARATION);
+
+		reactionEClass = createEClass(REACTION);
+		createEReference(reactionEClass, REACTION__TRIGGER);
+		createEReference(reactionEClass, REACTION__EFFECT);
+
+		reactiveElementEClass = createEClass(REACTIVE_ELEMENT);
+		createEReference(reactiveElementEClass, REACTIVE_ELEMENT__REACTIONS);
+		createEReference(reactiveElementEClass, REACTIVE_ELEMENT__LOCAL_REACTIONS);
+
+		exitEClass = createEClass(EXIT);
+
+		scopeEClass = createEClass(SCOPE);
+		createEReference(scopeEClass, SCOPE__DECLARATIONS);
+		createEReference(scopeEClass, SCOPE__EVENTS);
+		createEReference(scopeEClass, SCOPE__VARIABLES);
+
+		scopedElementEClass = createEClass(SCOPED_ELEMENT);
+		createEReference(scopedElementEClass, SCOPED_ELEMENT__SCOPES);
+		createEAttribute(scopedElementEClass, SCOPED_ELEMENT__NAMESPACE);
+
+		synchronizationEClass = createEClass(SYNCHRONIZATION);
+
+		stateEClass = createEClass(STATE);
+		createEAttribute(stateEClass, STATE__ORTHOGONAL);
+		createEReference(stateEClass, STATE__SUBSTATECHART);
+		createEAttribute(stateEClass, STATE__SUBSTATECHART_ID);
+		createEAttribute(stateEClass, STATE__SUBCHART);
+		createEAttribute(stateEClass, STATE__SIMPLE);
+		createEAttribute(stateEClass, STATE__COMPOSITE);
+		createEAttribute(stateEClass, STATE__LEAF);
+
+		statementEClass = createEClass(STATEMENT);
+
+		regularStateEClass = createEClass(REGULAR_STATE);
+
+		compositeElementEClass = createEClass(COMPOSITE_ELEMENT);
+		createEReference(compositeElementEClass, COMPOSITE_ELEMENT__REGIONS);
+
+		// Create enums
+		entryKindEEnum = createEEnum(ENTRY_KIND);
+		choiceKindEEnum = createEEnum(CHOICE_KIND);
 	}
 
 	/**
@@ -924,32 +935,224 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private boolean isFixed = false;
+	private boolean isInitialized = false;
 
 	/**
-	 * Fixes up the loaded package, to make it appear as if it had been programmatically built.
+	 * Complete the initialization of the package and its meta-model.  This
+	 * method is guarded to have no affect on any invocation but its first.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void fixPackageContents() {
-		if (isFixed) return;
-		isFixed = true;
-		fixEClassifiers();
+	public void initializePackageContents() {
+		if (isInitialized) return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		BasePackage theBasePackage = (BasePackage)EPackage.Registry.INSTANCE.getEPackage(BasePackage.eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+		pseudostateEClass.getESuperTypes().add(this.getVertex());
+		vertexEClass.getESuperTypes().add(theBasePackage.getNamedElement());
+		regionEClass.getESuperTypes().add(theBasePackage.getNamedElement());
+		transitionEClass.getESuperTypes().add(this.getSpecificationElement());
+		transitionEClass.getESuperTypes().add(this.getReaction());
+		finalStateEClass.getESuperTypes().add(this.getRegularState());
+		variableEClass.getESuperTypes().add(this.getDeclaration());
+		eventEClass.getESuperTypes().add(this.getDeclaration());
+		choiceEClass.getESuperTypes().add(this.getPseudostate());
+		statechartEClass.getESuperTypes().add(this.getSpecificationElement());
+		statechartEClass.getESuperTypes().add(this.getReactiveElement());
+		statechartEClass.getESuperTypes().add(this.getScopedElement());
+		statechartEClass.getESuperTypes().add(this.getCompositeElement());
+		statechartEClass.getESuperTypes().add(theBasePackage.getNamedElement());
+		entryEClass.getESuperTypes().add(this.getPseudostate());
+		declarationEClass.getESuperTypes().add(theBasePackage.getNamedElement());
+		exitEClass.getESuperTypes().add(this.getPseudostate());
+		synchronizationEClass.getESuperTypes().add(this.getPseudostate());
+		stateEClass.getESuperTypes().add(this.getSpecificationElement());
+		stateEClass.getESuperTypes().add(this.getReactiveElement());
+		stateEClass.getESuperTypes().add(this.getScopedElement());
+		stateEClass.getESuperTypes().add(this.getRegularState());
+		stateEClass.getESuperTypes().add(this.getCompositeElement());
+		regularStateEClass.getESuperTypes().add(this.getVertex());
+
+		// Initialize classes and features; add operations and parameters
+		initEClass(pseudostateEClass, Pseudostate.class, "Pseudostate", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(vertexEClass, Vertex.class, "Vertex", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getVertex_ParentRegion(), this.getRegion(), this.getRegion_Vertices(), "parentRegion", null, 1, 1, Vertex.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getVertex_IncomingTransitions(), this.getTransition(), this.getTransition_Target(), "incomingTransitions", null, 0, -1, Vertex.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getVertex_OutgoingTransitions(), this.getTransition(), this.getTransition_Source(), "outgoingTransitions", null, 0, -1, Vertex.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(regionEClass, Region.class, "Region", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getRegion_Vertices(), this.getVertex(), this.getVertex_ParentRegion(), "vertices", null, 0, -1, Region.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getRegion_Priority(), ecorePackage.getEInt(), "priority", null, 0, 1, Region.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getRegion_Composite(), this.getCompositeElement(), this.getCompositeElement_Regions(), "composite", null, 1, 1, Region.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(transitionEClass, Transition.class, "Transition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getTransition_Target(), this.getVertex(), this.getVertex_IncomingTransitions(), "target", null, 1, 1, Transition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getTransition_Source(), this.getVertex(), this.getVertex_OutgoingTransitions(), "source", null, 1, 1, Transition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getTransition_Priority(), ecorePackage.getEInt(), "priority", null, 0, 1, Transition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(finalStateEClass, FinalState.class, "FinalState", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(variableEClass, Variable.class, "Variable", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(eventEClass, Event.class, "Event", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(choiceEClass, Choice.class, "Choice", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getChoice_Kind(), this.getChoiceKind(), "kind", null, 0, 1, Choice.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(statechartEClass, Statechart.class, "Statechart", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(entryEClass, Entry.class, "Entry", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getEntry_Kind(), this.getEntryKind(), "kind", null, 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(triggerEClass, Trigger.class, "Trigger", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(effectEClass, Effect.class, "Effect", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(specificationElementEClass, SpecificationElement.class, "SpecificationElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getSpecificationElement_Specification(), ecorePackage.getEString(), "specification", null, 0, 1, SpecificationElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(declarationEClass, Declaration.class, "Declaration", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(reactionEClass, Reaction.class, "Reaction", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getReaction_Trigger(), this.getTrigger(), null, "trigger", null, 0, 1, Reaction.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getReaction_Effect(), this.getEffect(), null, "effect", null, 0, 1, Reaction.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(reactiveElementEClass, ReactiveElement.class, "ReactiveElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getReactiveElement_Reactions(), this.getReaction(), null, "reactions", null, 0, -1, ReactiveElement.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+		initEReference(getReactiveElement_LocalReactions(), this.getReaction(), null, "localReactions", null, 0, -1, ReactiveElement.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+
+		initEClass(exitEClass, Exit.class, "Exit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(scopeEClass, Scope.class, "Scope", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getScope_Declarations(), this.getDeclaration(), null, "declarations", null, 0, -1, Scope.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getScope_Events(), this.getEvent(), null, "events", null, 0, -1, Scope.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+		initEReference(getScope_Variables(), this.getVariable(), null, "variables", null, 0, -1, Scope.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+
+		initEClass(scopedElementEClass, ScopedElement.class, "ScopedElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getScopedElement_Scopes(), this.getScope(), null, "scopes", null, 0, -1, ScopedElement.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getScopedElement_Namespace(), ecorePackage.getEString(), "namespace", null, 0, 1, ScopedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(synchronizationEClass, Synchronization.class, "Synchronization", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(stateEClass, State.class, "State", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getState_Orthogonal(), ecorePackage.getEBoolean(), "orthogonal", null, 0, 1, State.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+		initEReference(getState_Substatechart(), this.getStatechart(), null, "substatechart", null, 0, 1, State.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getState_SubstatechartId(), ecorePackage.getEString(), "substatechartId", null, 0, 1, State.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getState_Subchart(), ecorePackage.getEBoolean(), "subchart", null, 0, 1, State.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+		initEAttribute(getState_Simple(), ecorePackage.getEBoolean(), "simple", null, 0, 1, State.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+		initEAttribute(getState_Composite(), ecorePackage.getEBoolean(), "composite", null, 0, 1, State.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+		initEAttribute(getState_Leaf(), ecorePackage.getEBoolean(), "leaf", null, 0, 1, State.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+
+		initEClass(statementEClass, Statement.class, "Statement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(regularStateEClass, RegularState.class, "RegularState", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(compositeElementEClass, CompositeElement.class, "CompositeElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getCompositeElement_Regions(), this.getRegion(), this.getRegion_Composite(), "regions", null, 0, -1, CompositeElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		// Initialize enums and add enum literals
+		initEEnum(entryKindEEnum, EntryKind.class, "EntryKind");
+		addEEnumLiteral(entryKindEEnum, EntryKind.INITIAL);
+		addEEnumLiteral(entryKindEEnum, EntryKind.SHALLOW_HISTORY);
+		addEEnumLiteral(entryKindEEnum, EntryKind.DEEP_HISTORY);
+
+		initEEnum(choiceKindEEnum, ChoiceKind.class, "ChoiceKind");
+		addEEnumLiteral(choiceKindEEnum, ChoiceKind.DYNAMIC);
+		addEEnumLiteral(choiceKindEEnum, ChoiceKind.STATIC);
+
+		// Create resource
+		createResource(eNS_URI);
+
+		// Create annotations
+		// http://www.eclipse.org/emf/2002/Ecore
+		createEcoreAnnotations();
+		// InjectMembers
+		createInjectMembersAnnotations();
+	}
+
+	/**
+	 * Initializes the annotations for <b>http://www.eclipse.org/emf/2002/Ecore</b>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void createEcoreAnnotations() {
+		String source = "http://www.eclipse.org/emf/2002/Ecore";			
+		addAnnotation
+		  (vertexEClass, 
+		   source, 
+		   new String[] {
+			 "constraints", "IncomingTransitionCount"
+		   });		
+		addAnnotation
+		  (regionEClass, 
+		   source, 
+		   new String[] {
+			 "constraints", "ExactlyOneInitialState"
+		   });			
+		addAnnotation
+		  (finalStateEClass, 
+		   source, 
+		   new String[] {
+			 "constraints", "OutgoingTransitionCount"
+		   });		
+		addAnnotation
+		  (choiceEClass, 
+		   source, 
+		   new String[] {
+			 "constraints", "OutgoingTransitionCount"
+		   });			
+		addAnnotation
+		  (entryEClass, 
+		   source, 
+		   new String[] {
+			 "constraints", "DisallowTrigger OutgoingTransitionCount"
+		   });			
+		addAnnotation
+		  (stateEClass, 
+		   source, 
+		   new String[] {
+			 "constraints", "NameIsNotEmpty"
+		   });
 	}
 
 	/**
-	 * Sets the instance class on the given classifier.
+	 * Initializes the annotations for <b>InjectMembers</b>.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	@Override
-	protected void fixInstanceClass(EClassifier eClassifier) {
-		if (eClassifier.getInstanceClassName() == null) {
-			eClassifier.setInstanceClassName("org.yakindu.sct.model.sgraph." + eClassifier.getName());
-			setGeneratedClassName(eClassifier);
-		}
+	protected void createInjectMembersAnnotations() {
+		String source = "InjectMembers";					
+		addAnnotation
+		  (transitionEClass, 
+		   source, 
+		   new String[] {
+		   });				
+		addAnnotation
+		  (statechartEClass, 
+		   source, 
+		   new String[] {
+		   });			
+		addAnnotation
+		  (stateEClass, 
+		   source, 
+		   new String[] {
+		   });	
 	}
 
 } //SGraphPackageImpl

+ 0 - 126
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/sgraph.ecore

@@ -1,126 +0,0 @@
-<?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="sgraph"
-    nsURI="http://www.yakindu.org/sct/sgraph/2.0.0" nsPrefix="sgraph">
-  <eClassifiers xsi:type="ecore:EClass" name="Pseudostate" abstract="true" eSuperTypes="#//Vertex"/>
-  <eClassifiers xsi:type="ecore:EClass" name="Vertex" abstract="true" eSuperTypes="http://www.yakindu.org/base/base/2.0.0#//NamedElement">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
-      <details key="constraints" value="IncomingTransitionCount"/>
-    </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="parentRegion" ordered="false"
-        lowerBound="1" eType="#//Region" eOpposite="#//Region/vertices"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="incomingTransitions" ordered="false"
-        upperBound="-1" eType="#//Transition" eOpposite="#//Transition/target"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="outgoingTransitions" ordered="false"
-        upperBound="-1" eType="#//Transition" containment="true" eOpposite="#//Transition/source"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Region" eSuperTypes="http://www.yakindu.org/base/base/2.0.0#//NamedElement">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
-      <details key="constraints" value="ExactlyOneInitialState"/>
-    </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="vertices" ordered="false"
-        upperBound="-1" eType="#//Vertex" containment="true" eOpposite="#//Vertex/parentRegion"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="priority" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="composite" lowerBound="1"
-        eType="#//CompositeElement" eOpposite="#//CompositeElement/regions"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Transition" eSuperTypes="#//SpecificationElement #//Reaction">
-    <eAnnotations source="InjectMembers"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="target" ordered="false"
-        lowerBound="1" eType="#//Vertex" eOpposite="#//Vertex/incomingTransitions"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="source" ordered="false"
-        lowerBound="1" eType="#//Vertex" eOpposite="#//Vertex/outgoingTransitions"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="priority" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="FinalState" eSuperTypes="#//RegularState">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
-      <details key="constraints" value="OutgoingTransitionCount"/>
-    </eAnnotations>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Variable" abstract="true" eSuperTypes="#//Declaration"/>
-  <eClassifiers xsi:type="ecore:EClass" name="Event" abstract="true" eSuperTypes="#//Declaration"/>
-  <eClassifiers xsi:type="ecore:EClass" name="Choice" eSuperTypes="#//Pseudostate">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
-      <details key="constraints" value="OutgoingTransitionCount"/>
-    </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" eType="#//ChoiceKind"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Statechart" eSuperTypes="#//SpecificationElement #//ReactiveElement #//ScopedElement #//CompositeElement http://www.yakindu.org/base/base/2.0.0#//NamedElement">
-    <eAnnotations source="InjectMembers"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Entry" eSuperTypes="#//Pseudostate">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
-      <details key="constraints" value="DisallowTrigger OutgoingTransitionCount"/>
-    </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" eType="#//EntryKind"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Trigger" abstract="true"/>
-  <eClassifiers xsi:type="ecore:EClass" name="Effect" abstract="true"/>
-  <eClassifiers xsi:type="ecore:EClass" name="SpecificationElement" abstract="true">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="specification" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Declaration" abstract="true" eSuperTypes="http://www.yakindu.org/base/base/2.0.0#//NamedElement"/>
-  <eClassifiers xsi:type="ecore:EClass" name="Reaction" abstract="true">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="trigger" eType="#//Trigger"
-        transient="true" containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="effect" eType="#//Effect"
-        transient="true" containment="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EEnum" name="EntryKind">
-    <eLiterals name="initial" literal="INITIAL"/>
-    <eLiterals name="shallowHistory" value="1" literal="SHALLOW_HISTORY"/>
-    <eLiterals name="deepHistory" value="2" literal="DEEP_HISTORY"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ReactiveElement" abstract="true">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="reactions" upperBound="-1"
-        eType="#//Reaction" changeable="false" volatile="true" transient="true" derived="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="localReactions" upperBound="-1"
-        eType="#//Reaction" changeable="false" volatile="true" transient="true" derived="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Exit" eSuperTypes="#//Pseudostate"/>
-  <eClassifiers xsi:type="ecore:EClass" name="Scope">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="declarations" upperBound="-1"
-        eType="#//Declaration" containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="events" upperBound="-1"
-        eType="#//Event" changeable="false" volatile="true" transient="true" derived="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="variables" unique="false"
-        upperBound="-1" eType="#//Variable" changeable="false" volatile="true" transient="true"
-        derived="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ScopedElement" abstract="true">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="scopes" upperBound="-1"
-        eType="#//Scope" transient="true" containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="namespace" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Synchronization" eSuperTypes="#//Pseudostate"/>
-  <eClassifiers xsi:type="ecore:EClass" name="State" eSuperTypes="#//SpecificationElement #//ReactiveElement #//ScopedElement #//RegularState #//CompositeElement">
-    <eAnnotations source="InjectMembers"/>
-    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
-      <details key="constraints" value="NameIsNotEmpty"/>
-    </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="orthogonal" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
-        changeable="false" volatile="true" transient="true" derived="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="substatechart" eType="#//Statechart"
-        transient="true"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="substatechartId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="subchart" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
-        changeable="false" volatile="true" transient="true" derived="true"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="simple" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
-        changeable="false" volatile="true" transient="true" derived="true"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="composite" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
-        changeable="false" volatile="true" transient="true" derived="true"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="leaf" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
-        changeable="false" volatile="true" transient="true" derived="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Statement"/>
-  <eClassifiers xsi:type="ecore:EClass" name="RegularState" eSuperTypes="#//Vertex"/>
-  <eClassifiers xsi:type="ecore:EEnum" name="ChoiceKind">
-    <eLiterals name="dynamic"/>
-    <eLiterals name="static" value="1"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="CompositeElement" abstract="true">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="regions" upperBound="-1"
-        eType="#//Region" containment="true" eOpposite="#//Region/composite"/>
-  </eClassifiers>
-</ecore:EPackage>

+ 183 - 389
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/util/SGraphValidator.java

@@ -21,6 +21,7 @@ import org.eclipse.emf.common.util.TreeIterator;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.util.EObjectValidator;
+import org.yakindu.sct.model.sgraph.*;
 import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.yakindu.sct.model.sgraph.Choice;
 import org.yakindu.sct.model.sgraph.ChoiceKind;
@@ -72,24 +73,20 @@ public class SGraphValidator extends EObjectValidator {
 	public static final String ISSUE_CHOICE_WITHOUT_OUTGOING_TRANSITION = "A choice must have at least one outgoing transition.";
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	public static final String copyright = "Copyright (c) 2011 committers of YAKINDU and others.\r\nAll rights reserved. This program and the accompanying materials\r\nare made available under the terms of the Eclipse Public License v1.0\r\nwhich accompanies this distribution, and is available at\r\nhttp://www.eclipse.org/legal/epl-v10.html\r\nContributors:\r\ncommitters of YAKINDU - initial API and implementation\r\n";
 
 	/**
-	 * The cached model package <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 * The cached model package
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * @generated
 	 */
 	public static final SGraphValidator INSTANCE = new SGraphValidator();
 
 	/**
-	 * A constant for the
-	 * {@link org.eclipse.emf.common.util.Diagnostic#getSource() source} of
-	 * diagnostic {@link org.eclipse.emf.common.util.Diagnostic#getCode() codes}
-	 * from this package. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 * A constant for the {@link org.eclipse.emf.common.util.Diagnostic#getSource() source} of diagnostic {@link org.eclipse.emf.common.util.Diagnostic#getCode() codes} from this package.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * @see org.eclipse.emf.common.util.Diagnostic#getSource()
 	 * @see org.eclipse.emf.common.util.Diagnostic#getCode()
 	 * @generated
@@ -97,27 +94,25 @@ public class SGraphValidator extends EObjectValidator {
 	public static final String DIAGNOSTIC_SOURCE = "org.yakindu.sct.model.sgraph";
 
 	/**
-	 * A constant with a fixed name that can be used as the base value for
-	 * additional hand written constants. <!-- begin-user-doc --> <!--
+	 * A constant with a fixed name that can be used as the base value for additional hand written constants.
+	 * <!-- begin-user-doc --> <!--
 	 * end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	private static final int GENERATED_DIAGNOSTIC_CODE_COUNT = 0;
 
 	/**
-	 * A constant with a fixed name that can be used as the base value for
-	 * additional hand written constants in a derived class. <!-- begin-user-doc
+	 * A constant with a fixed name that can be used as the base value for additional hand written constants in a derived class.
+	 * <!-- begin-user-doc
 	 * --> <!-- end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	protected static final int DIAGNOSTIC_CODE_COUNT = GENERATED_DIAGNOSTIC_CODE_COUNT;
 
 	/**
-	 * Creates an instance of the switch. <!-- begin-user-doc --> <!--
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc --> <!--
 	 * end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	public SGraphValidator() {
@@ -125,158 +120,117 @@ public class SGraphValidator extends EObjectValidator {
 	}
 
 	/**
-	 * Returns the package of this validator switch. <!-- begin-user-doc -->
+	 * Returns the package of this validator switch.
+	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	@Override
 	protected EPackage getEPackage() {
-		return SGraphPackage.eINSTANCE;
+	  return SGraphPackage.eINSTANCE;
 	}
 
 	/**
-	 * Calls <code>validateXXX</code> for the corresponding classifier of the
-	 * model. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 * Calls <code>validateXXX</code> for the corresponding classifier of the model.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * @generated
 	 */
 	@Override
 	protected boolean validate(int classifierID, Object value,
 			DiagnosticChain diagnostics, Map<Object, Object> context) {
 		switch (classifierID) {
-		case SGraphPackage.PSEUDOSTATE:
-			return validatePseudostate((Pseudostate) value, diagnostics,
-					context);
-		case SGraphPackage.VERTEX:
-			return validateVertex((Vertex) value, diagnostics, context);
-		case SGraphPackage.REGION:
-			return validateRegion((Region) value, diagnostics, context);
-		case SGraphPackage.TRANSITION:
-			return validateTransition((Transition) value, diagnostics, context);
-		case SGraphPackage.FINAL_STATE:
-			return validateFinalState((FinalState) value, diagnostics, context);
-		case SGraphPackage.VARIABLE:
-			return validateVariable((Variable) value, diagnostics, context);
-		case SGraphPackage.EVENT:
-			return validateEvent((Event) value, diagnostics, context);
-		case SGraphPackage.CHOICE:
-			return validateChoice((Choice) value, diagnostics, context);
-		case SGraphPackage.STATECHART:
-			return validateStatechart((Statechart) value, diagnostics, context);
-		case SGraphPackage.ENTRY:
-			return validateEntry((Entry) value, diagnostics, context);
-		case SGraphPackage.TRIGGER:
-			return validateTrigger((Trigger) value, diagnostics, context);
-		case SGraphPackage.EFFECT:
-			return validateEffect((Effect) value, diagnostics, context);
-		case SGraphPackage.SPECIFICATION_ELEMENT:
-			return validateSpecificationElement((SpecificationElement) value,
-					diagnostics, context);
-		case SGraphPackage.DECLARATION:
-			return validateDeclaration((Declaration) value, diagnostics,
-					context);
-		case SGraphPackage.REACTION:
-			return validateReaction((Reaction) value, diagnostics, context);
-		case SGraphPackage.REACTIVE_ELEMENT:
-			return validateReactiveElement((ReactiveElement) value,
-					diagnostics, context);
-		case SGraphPackage.EXIT:
-			return validateExit((Exit) value, diagnostics, context);
-		case SGraphPackage.SCOPE:
-			return validateScope((Scope) value, diagnostics, context);
-		case SGraphPackage.SCOPED_ELEMENT:
-			return validateScopedElement((ScopedElement) value, diagnostics,
-					context);
-		case SGraphPackage.SYNCHRONIZATION:
-			return validateSynchronization((Synchronization) value,
-					diagnostics, context);
-		case SGraphPackage.STATE:
-			return validateState((State) value, diagnostics, context);
-		case SGraphPackage.STATEMENT:
-			return validateStatement((Statement) value, diagnostics, context);
-		case SGraphPackage.REGULAR_STATE:
-			return validateRegularState((RegularState) value, diagnostics,
-					context);
-		case SGraphPackage.COMPOSITE_ELEMENT:
-			return validateCompositeElement((CompositeElement) value,
-					diagnostics, context);
-		case SGraphPackage.ENTRY_KIND:
-			return validateEntryKind((EntryKind) value, diagnostics, context);
-		case SGraphPackage.CHOICE_KIND:
-			return validateChoiceKind((ChoiceKind) value, diagnostics, context);
-		default:
-			return true;
+			case SGraphPackage.PSEUDOSTATE:
+				return validatePseudostate((Pseudostate)value, diagnostics, context);
+			case SGraphPackage.VERTEX:
+				return validateVertex((Vertex)value, diagnostics, context);
+			case SGraphPackage.REGION:
+				return validateRegion((Region)value, diagnostics, context);
+			case SGraphPackage.TRANSITION:
+				return validateTransition((Transition)value, diagnostics, context);
+			case SGraphPackage.FINAL_STATE:
+				return validateFinalState((FinalState)value, diagnostics, context);
+			case SGraphPackage.VARIABLE:
+				return validateVariable((Variable)value, diagnostics, context);
+			case SGraphPackage.EVENT:
+				return validateEvent((Event)value, diagnostics, context);
+			case SGraphPackage.CHOICE:
+				return validateChoice((Choice)value, diagnostics, context);
+			case SGraphPackage.STATECHART:
+				return validateStatechart((Statechart)value, diagnostics, context);
+			case SGraphPackage.ENTRY:
+				return validateEntry((Entry)value, diagnostics, context);
+			case SGraphPackage.TRIGGER:
+				return validateTrigger((Trigger)value, diagnostics, context);
+			case SGraphPackage.EFFECT:
+				return validateEffect((Effect)value, diagnostics, context);
+			case SGraphPackage.SPECIFICATION_ELEMENT:
+				return validateSpecificationElement((SpecificationElement)value, diagnostics, context);
+			case SGraphPackage.DECLARATION:
+				return validateDeclaration((Declaration)value, diagnostics, context);
+			case SGraphPackage.REACTION:
+				return validateReaction((Reaction)value, diagnostics, context);
+			case SGraphPackage.REACTIVE_ELEMENT:
+				return validateReactiveElement((ReactiveElement)value, diagnostics, context);
+			case SGraphPackage.EXIT:
+				return validateExit((Exit)value, diagnostics, context);
+			case SGraphPackage.SCOPE:
+				return validateScope((Scope)value, diagnostics, context);
+			case SGraphPackage.SCOPED_ELEMENT:
+				return validateScopedElement((ScopedElement)value, diagnostics, context);
+			case SGraphPackage.SYNCHRONIZATION:
+				return validateSynchronization((Synchronization)value, diagnostics, context);
+			case SGraphPackage.STATE:
+				return validateState((State)value, diagnostics, context);
+			case SGraphPackage.STATEMENT:
+				return validateStatement((Statement)value, diagnostics, context);
+			case SGraphPackage.REGULAR_STATE:
+				return validateRegularState((RegularState)value, diagnostics, context);
+			case SGraphPackage.COMPOSITE_ELEMENT:
+				return validateCompositeElement((CompositeElement)value, diagnostics, context);
+			case SGraphPackage.ENTRY_KIND:
+				return validateEntryKind((EntryKind)value, diagnostics, context);
+			case SGraphPackage.CHOICE_KIND:
+				return validateChoiceKind((ChoiceKind)value, diagnostics, context);
+			default:
+				return true;
 		}
 	}
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	public boolean validatePseudostate(Pseudostate pseudostate,
 			DiagnosticChain diagnostics, Map<Object, Object> context) {
-		if (!validate_NoCircularContainment(pseudostate, diagnostics, context))
-			return false;
-		boolean result = validate_EveryMultiplicityConforms(pseudostate,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryDataValueConforms(pseudostate, diagnostics,
-					context);
-		if (result || diagnostics != null)
-			result &= validate_EveryReferenceIsContained(pseudostate,
-					diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryBidirectionalReferenceIsPaired(pseudostate,
-					diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryProxyResolves(pseudostate, diagnostics,
-					context);
-		if (result || diagnostics != null)
-			result &= validate_UniqueID(pseudostate, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryKeyUnique(pseudostate, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryMapEntryUnique(pseudostate, diagnostics,
-					context);
-		if (result || diagnostics != null)
-			result &= validateVertex_IncomingTransitionCount(pseudostate,
-					diagnostics, context);
+		if (!validate_NoCircularContainment(pseudostate, diagnostics, context)) return false;
+		boolean result = validate_EveryMultiplicityConforms(pseudostate, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(pseudostate, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(pseudostate, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(pseudostate, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryProxyResolves(pseudostate, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_UniqueID(pseudostate, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryKeyUnique(pseudostate, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(pseudostate, diagnostics, context);
+		if (result || diagnostics != null) result &= validateVertex_IncomingTransitionCount(pseudostate, diagnostics, context);
 		return result;
 	}
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	public boolean validateVertex(Vertex vertex, DiagnosticChain diagnostics,
 			Map<Object, Object> context) {
-		if (!validate_NoCircularContainment(vertex, diagnostics, context))
-			return false;
-		boolean result = validate_EveryMultiplicityConforms(vertex,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryDataValueConforms(vertex, diagnostics,
-					context);
-		if (result || diagnostics != null)
-			result &= validate_EveryReferenceIsContained(vertex, diagnostics,
-					context);
-		if (result || diagnostics != null)
-			result &= validate_EveryBidirectionalReferenceIsPaired(vertex,
-					diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryProxyResolves(vertex, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_UniqueID(vertex, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryKeyUnique(vertex, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryMapEntryUnique(vertex, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateVertex_IncomingTransitionCount(vertex,
-					diagnostics, context);
+		if (!validate_NoCircularContainment(vertex, diagnostics, context)) return false;
+		boolean result = validate_EveryMultiplicityConforms(vertex, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(vertex, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(vertex, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(vertex, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryProxyResolves(vertex, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_UniqueID(vertex, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryKeyUnique(vertex, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(vertex, diagnostics, context);
+		if (result || diagnostics != null) result &= validateVertex_IncomingTransitionCount(vertex, diagnostics, context);
 		return result;
 	}
 
@@ -323,35 +277,20 @@ public class SGraphValidator extends EObjectValidator {
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	public boolean validateRegion(Region region, DiagnosticChain diagnostics,
 			Map<Object, Object> context) {
-		if (!validate_NoCircularContainment(region, diagnostics, context))
-			return false;
-		boolean result = validate_EveryMultiplicityConforms(region,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryDataValueConforms(region, diagnostics,
-					context);
-		if (result || diagnostics != null)
-			result &= validate_EveryReferenceIsContained(region, diagnostics,
-					context);
-		if (result || diagnostics != null)
-			result &= validate_EveryBidirectionalReferenceIsPaired(region,
-					diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryProxyResolves(region, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_UniqueID(region, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryKeyUnique(region, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryMapEntryUnique(region, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateRegion_ExactlyOneInitialState(region,
-					diagnostics, context);
+		if (!validate_NoCircularContainment(region, diagnostics, context)) return false;
+		boolean result = validate_EveryMultiplicityConforms(region, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(region, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(region, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(region, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryProxyResolves(region, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_UniqueID(region, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryKeyUnique(region, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(region, diagnostics, context);
+		if (result || diagnostics != null) result &= validateRegion_ExactlyOneInitialState(region, diagnostics, context);
 		return result;
 	}
 
@@ -368,7 +307,6 @@ public class SGraphValidator extends EObjectValidator {
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	public boolean validateTransition(Transition transition,
@@ -378,40 +316,21 @@ public class SGraphValidator extends EObjectValidator {
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	public boolean validateFinalState(FinalState finalState,
 			DiagnosticChain diagnostics, Map<Object, Object> context) {
-		if (!validate_NoCircularContainment(finalState, diagnostics, context))
-			return false;
-		boolean result = validate_EveryMultiplicityConforms(finalState,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryDataValueConforms(finalState, diagnostics,
-					context);
-		if (result || diagnostics != null)
-			result &= validate_EveryReferenceIsContained(finalState,
-					diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryBidirectionalReferenceIsPaired(finalState,
-					diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryProxyResolves(finalState, diagnostics,
-					context);
-		if (result || diagnostics != null)
-			result &= validate_UniqueID(finalState, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryKeyUnique(finalState, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryMapEntryUnique(finalState, diagnostics,
-					context);
-		if (result || diagnostics != null)
-			result &= validateVertex_IncomingTransitionCount(finalState,
-					diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateFinalState_OutgoingTransitionCount(finalState,
-					diagnostics, context);
+		if (!validate_NoCircularContainment(finalState, diagnostics, context)) return false;
+		boolean result = validate_EveryMultiplicityConforms(finalState, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(finalState, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(finalState, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(finalState, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryProxyResolves(finalState, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_UniqueID(finalState, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryKeyUnique(finalState, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(finalState, diagnostics, context);
+		if (result || diagnostics != null) result &= validateVertex_IncomingTransitionCount(finalState, diagnostics, context);
+		if (result || diagnostics != null) result &= validateFinalState_OutgoingTransitionCount(finalState, diagnostics, context);
 		return result;
 	}
 
@@ -433,37 +352,21 @@ public class SGraphValidator extends EObjectValidator {
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	public boolean validateState(State state, DiagnosticChain diagnostics,
 			Map<Object, Object> context) {
-		if (!validate_NoCircularContainment(state, diagnostics, context))
-			return false;
-		boolean result = validate_EveryMultiplicityConforms(state, diagnostics,
-				context);
-		if (result || diagnostics != null)
-			result &= validate_EveryDataValueConforms(state, diagnostics,
-					context);
-		if (result || diagnostics != null)
-			result &= validate_EveryReferenceIsContained(state, diagnostics,
-					context);
-		if (result || diagnostics != null)
-			result &= validate_EveryBidirectionalReferenceIsPaired(state,
-					diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryProxyResolves(state, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_UniqueID(state, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryKeyUnique(state, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryMapEntryUnique(state, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateVertex_IncomingTransitionCount(state,
-					diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateState_NameIsNotEmpty(state, diagnostics, context);
+		if (!validate_NoCircularContainment(state, diagnostics, context)) return false;
+		boolean result = validate_EveryMultiplicityConforms(state, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(state, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(state, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(state, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryProxyResolves(state, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_UniqueID(state, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryKeyUnique(state, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(state, diagnostics, context);
+		if (result || diagnostics != null) result &= validateVertex_IncomingTransitionCount(state, diagnostics, context);
+		if (result || diagnostics != null) result &= validateState_NameIsNotEmpty(state, diagnostics, context);
 		return result;
 	}
 
@@ -484,7 +387,6 @@ public class SGraphValidator extends EObjectValidator {
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	public boolean validateStatement(Statement statement,
@@ -494,55 +396,34 @@ public class SGraphValidator extends EObjectValidator {
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	public boolean validateRegularState(RegularState regularState,
 			DiagnosticChain diagnostics, Map<Object, Object> context) {
-		if (!validate_NoCircularContainment(regularState, diagnostics, context))
-			return false;
-		boolean result = validate_EveryMultiplicityConforms(regularState,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryDataValueConforms(regularState,
-					diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryReferenceIsContained(regularState,
-					diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryBidirectionalReferenceIsPaired(
-					regularState, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryProxyResolves(regularState, diagnostics,
-					context);
-		if (result || diagnostics != null)
-			result &= validate_UniqueID(regularState, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryKeyUnique(regularState, diagnostics,
-					context);
-		if (result || diagnostics != null)
-			result &= validate_EveryMapEntryUnique(regularState, diagnostics,
-					context);
-		if (result || diagnostics != null)
-			result &= validateVertex_IncomingTransitionCount(regularState,
-					diagnostics, context);
+		if (!validate_NoCircularContainment(regularState, diagnostics, context)) return false;
+		boolean result = validate_EveryMultiplicityConforms(regularState, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(regularState, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(regularState, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(regularState, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryProxyResolves(regularState, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_UniqueID(regularState, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryKeyUnique(regularState, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(regularState, diagnostics, context);
+		if (result || diagnostics != null) result &= validateVertex_IncomingTransitionCount(regularState, diagnostics, context);
 		return result;
 	}
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	public boolean validateCompositeElement(CompositeElement compositeElement,
 			DiagnosticChain diagnostics, Map<Object, Object> context) {
-		return validate_EveryDefaultConstraint(compositeElement, diagnostics,
-				context);
+		return validate_EveryDefaultConstraint(compositeElement, diagnostics, context);
 	}
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	public boolean validateVariable(Variable variable,
@@ -552,7 +433,6 @@ public class SGraphValidator extends EObjectValidator {
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	public boolean validateEvent(Event event, DiagnosticChain diagnostics,
@@ -562,38 +442,21 @@ public class SGraphValidator extends EObjectValidator {
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	public boolean validateChoice(Choice choice, DiagnosticChain diagnostics,
 			Map<Object, Object> context) {
-		if (!validate_NoCircularContainment(choice, diagnostics, context))
-			return false;
-		boolean result = validate_EveryMultiplicityConforms(choice,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryDataValueConforms(choice, diagnostics,
-					context);
-		if (result || diagnostics != null)
-			result &= validate_EveryReferenceIsContained(choice, diagnostics,
-					context);
-		if (result || diagnostics != null)
-			result &= validate_EveryBidirectionalReferenceIsPaired(choice,
-					diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryProxyResolves(choice, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_UniqueID(choice, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryKeyUnique(choice, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryMapEntryUnique(choice, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateVertex_IncomingTransitionCount(choice,
-					diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateChoice_OutgoingTransitionCount(choice,
-					diagnostics, context);
+		if (!validate_NoCircularContainment(choice, diagnostics, context)) return false;
+		boolean result = validate_EveryMultiplicityConforms(choice, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(choice, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(choice, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(choice, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryProxyResolves(choice, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_UniqueID(choice, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryKeyUnique(choice, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(choice, diagnostics, context);
+		if (result || diagnostics != null) result &= validateVertex_IncomingTransitionCount(choice, diagnostics, context);
+		if (result || diagnostics != null) result &= validateChoice_OutgoingTransitionCount(choice, diagnostics, context);
 		return result;
 	}
 
@@ -614,7 +477,6 @@ public class SGraphValidator extends EObjectValidator {
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	public boolean validateStatechart(Statechart statechart,
@@ -624,40 +486,22 @@ public class SGraphValidator extends EObjectValidator {
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	public boolean validateEntry(Entry entry, DiagnosticChain diagnostics,
 			Map<Object, Object> context) {
-		if (!validate_NoCircularContainment(entry, diagnostics, context))
-			return false;
-		boolean result = validate_EveryMultiplicityConforms(entry, diagnostics,
-				context);
-		if (result || diagnostics != null)
-			result &= validate_EveryDataValueConforms(entry, diagnostics,
-					context);
-		if (result || diagnostics != null)
-			result &= validate_EveryReferenceIsContained(entry, diagnostics,
-					context);
-		if (result || diagnostics != null)
-			result &= validate_EveryBidirectionalReferenceIsPaired(entry,
-					diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryProxyResolves(entry, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_UniqueID(entry, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryKeyUnique(entry, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryMapEntryUnique(entry, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateVertex_IncomingTransitionCount(entry,
-					diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateEntry_DisallowTrigger(entry, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateEntry_OutgoingTransitionCount(entry, diagnostics,
-					context);
+		if (!validate_NoCircularContainment(entry, diagnostics, context)) return false;
+		boolean result = validate_EveryMultiplicityConforms(entry, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(entry, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(entry, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(entry, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryProxyResolves(entry, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_UniqueID(entry, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryKeyUnique(entry, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(entry, diagnostics, context);
+		if (result || diagnostics != null) result &= validateVertex_IncomingTransitionCount(entry, diagnostics, context);
+		if (result || diagnostics != null) result &= validateEntry_DisallowTrigger(entry, diagnostics, context);
+		if (result || diagnostics != null) result &= validateEntry_OutgoingTransitionCount(entry, diagnostics, context);
 		return result;
 	}
 
@@ -705,7 +549,6 @@ public class SGraphValidator extends EObjectValidator {
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	public boolean validateTrigger(Trigger trigger,
@@ -715,7 +558,6 @@ public class SGraphValidator extends EObjectValidator {
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	public boolean validateEffect(Effect effect, DiagnosticChain diagnostics,
@@ -725,30 +567,25 @@ public class SGraphValidator extends EObjectValidator {
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	public boolean validateSpecificationElement(
 			SpecificationElement specificationElement,
 			DiagnosticChain diagnostics, Map<Object, Object> context) {
-		return validate_EveryDefaultConstraint(specificationElement,
-				diagnostics, context);
+		return validate_EveryDefaultConstraint(specificationElement, diagnostics, context);
 	}
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	public boolean validateDeclaration(Declaration declaration,
 			DiagnosticChain diagnostics, Map<Object, Object> context) {
-		return validate_EveryDefaultConstraint(declaration, diagnostics,
-				context);
+		return validate_EveryDefaultConstraint(declaration, diagnostics, context);
 	}
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	public boolean validateReaction(Reaction reaction,
@@ -758,52 +595,34 @@ public class SGraphValidator extends EObjectValidator {
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	public boolean validateReactiveElement(ReactiveElement reactiveElement,
 			DiagnosticChain diagnostics, Map<Object, Object> context) {
-		return validate_EveryDefaultConstraint(reactiveElement, diagnostics,
-				context);
+		return validate_EveryDefaultConstraint(reactiveElement, diagnostics, context);
 	}
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	public boolean validateExit(Exit exit, DiagnosticChain diagnostics,
 			Map<Object, Object> context) {
-		if (!validate_NoCircularContainment(exit, diagnostics, context))
-			return false;
-		boolean result = validate_EveryMultiplicityConforms(exit, diagnostics,
-				context);
-		if (result || diagnostics != null)
-			result &= validate_EveryDataValueConforms(exit, diagnostics,
-					context);
-		if (result || diagnostics != null)
-			result &= validate_EveryReferenceIsContained(exit, diagnostics,
-					context);
-		if (result || diagnostics != null)
-			result &= validate_EveryBidirectionalReferenceIsPaired(exit,
-					diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryProxyResolves(exit, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_UniqueID(exit, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryKeyUnique(exit, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryMapEntryUnique(exit, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateVertex_IncomingTransitionCount(exit, diagnostics,
-					context);
+		if (!validate_NoCircularContainment(exit, diagnostics, context)) return false;
+		boolean result = validate_EveryMultiplicityConforms(exit, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(exit, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(exit, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(exit, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryProxyResolves(exit, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_UniqueID(exit, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryKeyUnique(exit, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(exit, diagnostics, context);
+		if (result || diagnostics != null) result &= validateVertex_IncomingTransitionCount(exit, diagnostics, context);
 		return result;
 	}
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	public boolean validateScope(Scope scope, DiagnosticChain diagnostics,
@@ -813,50 +632,29 @@ public class SGraphValidator extends EObjectValidator {
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	public boolean validateScopedElement(ScopedElement scopedElement,
 			DiagnosticChain diagnostics, Map<Object, Object> context) {
-		return validate_EveryDefaultConstraint(scopedElement, diagnostics,
-				context);
+		return validate_EveryDefaultConstraint(scopedElement, diagnostics, context);
 	}
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	public boolean validateSynchronization(Synchronization synchronization,
 			DiagnosticChain diagnostics, Map<Object, Object> context) {
-		if (!validate_NoCircularContainment(synchronization, diagnostics,
-				context))
-			return false;
-		boolean result = validate_EveryMultiplicityConforms(synchronization,
-				diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryDataValueConforms(synchronization,
-					diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryReferenceIsContained(synchronization,
-					diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryBidirectionalReferenceIsPaired(
-					synchronization, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryProxyResolves(synchronization, diagnostics,
-					context);
-		if (result || diagnostics != null)
-			result &= validate_UniqueID(synchronization, diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validate_EveryKeyUnique(synchronization, diagnostics,
-					context);
-		if (result || diagnostics != null)
-			result &= validate_EveryMapEntryUnique(synchronization,
-					diagnostics, context);
-		if (result || diagnostics != null)
-			result &= validateVertex_IncomingTransitionCount(synchronization,
-					diagnostics, context);
+		if (!validate_NoCircularContainment(synchronization, diagnostics, context)) return false;
+		boolean result = validate_EveryMultiplicityConforms(synchronization, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(synchronization, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(synchronization, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(synchronization, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryProxyResolves(synchronization, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_UniqueID(synchronization, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryKeyUnique(synchronization, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(synchronization, diagnostics, context);
+		if (result || diagnostics != null) result &= validateVertex_IncomingTransitionCount(synchronization, diagnostics, context);
 		return result;
 	}
 
@@ -880,7 +678,6 @@ public class SGraphValidator extends EObjectValidator {
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	public boolean validateEntryKind(EntryKind entryKind,
@@ -890,7 +687,6 @@ public class SGraphValidator extends EObjectValidator {
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	public boolean validateChoiceKind(ChoiceKind choiceKind,
@@ -899,16 +695,14 @@ public class SGraphValidator extends EObjectValidator {
 	}
 
 	/**
-	 * Returns the resource locator that will be used to fetch messages for this
-	 * validator's diagnostics. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 * Returns the resource locator that will be used to fetch messages for this validator's diagnostics.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * @generated
 	 */
 	@Override
 	public ResourceLocator getResourceLocator() {
 		// TODO
-		// Specialize this to return a resource locator for messages specific to
-		// this validator.
+		// Specialize this to return a resource locator for messages specific to this validator.
 		// Ensure that you remove @generated or mark it @generated NOT
 		return super.getResourceLocator();
 	}