synccharts
Action
effects
trigger
delay
1
isImmediate
label
Assignment
variable
expression
Effect
Emission
signal
newValue
Region
states
parentState
Substitution
parentScope
formal
actual
State
type
regions
parentRegion
isInitial
isFinal
outgoingTransitions
incomingTransitions
StateType
NORMAL
NORMAL
CONDITIONAL
CONDITIONAL
REFERENCE
REFERENCE
TEXTUAL
TEXTUAL
Transition
priority
type
targetState
isHistory
sourceState
TransitionType
WEAKABORT
WEAKABORT
STRONGABORT
STRONGABORT
NORMALTERMINATION
NORMALTERMINATION
Scope
id
label
signals
variables
suspensionTrigger
exitActions
innerActions
entryActions
bodyReference
bodyContents
bodyText
renamings
interfaceDeclaration
Parsable
java.lang.String
java.lang.String
TextEffect
<?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="synccharts"
    nsURI="http://kieler.cs.cau.de/synccharts/0.2.4" nsPrefix="synccharts">
  <eClassifiers xsi:type="ecore:EClass" name="Action" eSuperTypes="../../de.cau.cs.kieler.core.annotations/model/annotations.ecore#//Annotatable">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="An Action represents some effect that is executed under some&#xA;certain condition. The condition or sometimes called guard is&#xA;the trigger which simply is any boolean {@link Expression} over&#xA;{@link Signal}s or {@link Variable}s. Note that Actions may also be used&#xA;in contexts, where no trigger or resp. effects are allowed. E.g.&#xA;a suspensionTrigger has no effect.&#xA;&lt;p>&#xA;The effects of an Action are either {@link Assignment}, {@link Emission} or escaping&#xA;to an {@link TextEffect}.&#xA;&lt;p>&#xA;An Action has a String label that represents the trigger and the effects&#xA;list in a textual representation. The user of the &#xA;model is required to synchronize the label with the actual&#xA;trigger and effects objects. For the SyncCharts graphical editor&#xA;this is done by using an Xtext grammar/parser."/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="effects" upperBound="-1"
        eType="#//Effect" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="trigger" eType="ecore:EClass ../../de.cau.cs.kieler.core.kexpressions/model/kexpressions.ecore#//Expression"
        containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="delay" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
        defaultValueLiteral="1"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isImmediate" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="label" ordered="false"
        unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Assignment" eSuperTypes="#//Effect">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="An Assignment assigns a new value to a {@link Variable}.&#xA;It carries a reference to a Variable and an {@link Expression} &#xA;that represents the new value for that Variable."/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="variable" lowerBound="1"
        eType="ecore:EClass ../../de.cau.cs.kieler.core.kexpressions/model/kexpressions.ecore#//Variable"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="expression" lowerBound="1"
        eType="ecore:EClass ../../de.cau.cs.kieler.core.kexpressions/model/kexpressions.ecore#//Expression"
        containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Effect" abstract="true">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="An Effect is something executed by an {@link Action}.&#xA;"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Emission" eSuperTypes="#//Effect">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="An Emission represents setting an {@link Signal}&#xA;from &quot;absent&quot; to &quot;present&quot; in a tick.&#xA;An Emission has a reference to the Signal&#xA;that it emits.&#xA;For valued Signals, an Emission may carry an&#xA;{@link Expression} that represents the new&#xA;value for that signal."/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="signal" lowerBound="1"
        eType="ecore:EClass ../../de.cau.cs.kieler.core.kexpressions/model/kexpressions.ecore#//Signal"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="newValue" eType="ecore:EClass ../../de.cau.cs.kieler.core.kexpressions/model/kexpressions.ecore#//Expression"
        containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Region" eSuperTypes="#//Scope">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="Regions represent a parallelism in SyncCharts. A {@link State} may contain&#xA;multiple Regions and each Region may contain multiple States. The Regions&#xA;are then logically executed in parallel. A SyncChart gets represented by one root Region &#xA;that contains exactly one root State.&#xA;&lt;p>&#xA;A Region is a {@link Scope} and therefore gets identified by label and id&#xA;and carries an interface declaration. Hence a Region may declare&#xA;local signals or variables."/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="states" upperBound="-1"
        eType="#//State" containment="true" eOpposite="#//State/parentRegion"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="parentState" eType="#//State"
        eOpposite="#//State/regions"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Substitution">
    <eStructuralFeatures xsi:type="ecore:EReference" name="parentScope" lowerBound="1"
        eType="#//Scope" eOpposite="#//Scope/renamings"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="formal" lowerBound="1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="actual" lowerBound="1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="State" eSuperTypes="#//Scope">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="A State is the main entity in a SyncChart. States are located in a {@link Region}.&#xA;A SyncChart itself is represented by a top-level root Region that contains&#xA;exactly one root State. Every State may contain multiple parallel Regions&#xA;whereas a Region contains multiple States. This allows nested State&#xA;machines with parallelism.&#xA;&lt;p>&#xA;A State may be initial or final or both. An initial State is the entry State of a Region.&#xA;SyncCharts may only have one initial State per Region. A final State indcates that&#xA;its parent Region has terminated and nothing needs to be done in that Region&#xA;and its parent State may be left via a normal termination transition.&#xA;&lt;p>&#xA;A State is also a Scope and hence may carry an interface declaration and is&#xA;identified by id and label.&#xA;&lt;p>&#xA;States have a type to indicate different properties of States. See {@link StateType}."/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" lowerBound="1" eType="#//StateType"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="regions" upperBound="-1"
        eType="#//Region" containment="true" eOpposite="#//Region/parentState"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="parentRegion" lowerBound="1"
        eType="#//Region" eOpposite="#//Region/states"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isInitial" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isFinal" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="outgoingTransitions" upperBound="-1"
        eType="#//Transition" containment="true" eOpposite="#//Transition/sourceState"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="incomingTransitions" upperBound="-1"
        eType="#//Transition" eOpposite="#//Transition/targetState"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="StateType">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="A type for a State to specify some special properties.&#xA;&#xA;  "/>
    </eAnnotations>
    <eLiterals name="NORMAL">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Simple or&#xA;macro States are of type NORMAL."/>
      </eAnnotations>
    </eLiterals>
    <eLiterals name="CONDITIONAL" value="1">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="A CONDITIONAL State is only a&#xA;pseudostate in a sense that it will be left immediately within&#xA;one tick. Its outgoing transitions have to be immediate."/>
      </eAnnotations>
    </eLiterals>
    <eLiterals name="REFERENCE">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="A REFERENCE&#xA;state carries a bodyReference to an arbitrary EObject. If this object is another&#xA;State, e.g. from another file, this reference can be used to modularize&#xA;SyncCharts. In such case all original interface of the referenced state&#xA;needs to be redefined by {@link Substitution} objects."/>
      </eAnnotations>
    </eLiterals>
    <eLiterals name="TEXTUAL">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="A TEXTUAL&#xA;state will be defined not by child Regions but by bodyText that represents&#xA;its behavior, e.g. in the language Esterel or something similar. "/>
      </eAnnotations>
    </eLiterals>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Transition" eSuperTypes="#//Action">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="A Transition represents a connection between two {@link State}s and the&#xA;shift from the source to the target State. In SyncCharts Transitions may&#xA;only be specified between States on the same Regions. Inter-level&#xA;Transitions are not allowed.&#xA;&lt;p>&#xA;A Transition is an {@link Action} and therefore may contain a trigger condition&#xA;which guards the Transition and effects that get executed when the transition&#xA;is taken.&#xA;&lt;p>&#xA;Transitions have an integer priority. If there are multiple outgoing &#xA;transitions of a States and multiple triggers are evaluated to true, then&#xA;the transition with lowest priority is taken.&#xA;&lt;p>&#xA;A history transition will enter its source state in its containing Regions at the states that&#xA;it has left them before. So it does not start at the initial states in all circumstances but&#xA;in the states that the source state was left in some earlier tick. Only when a State is entered&#xA;for the first time (i.e. there is no history) then it is always entered in its initial States.&#xA;&lt;p>&#xA;A transition has a type {@link TransitionType}."/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="priority" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" lowerBound="1" eType="#//TransitionType"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="targetState" lowerBound="1"
        eType="#//State" eOpposite="#//State/incomingTransitions"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isHistory" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="sourceState" lowerBound="1"
        eType="#//State" eOpposite="#//State/outgoingTransitions"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="TransitionType">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="A Transition has a type specifying some special property.&#xA;"/>
    </eAnnotations>
    <eLiterals name="WEAKABORT" literal="WEAKABORT">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="A WEAKABORT transition allows the&#xA;exited State to execute its contents in that tick."/>
      </eAnnotations>
    </eLiterals>
    <eLiterals name="STRONGABORT" value="1">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="A STRONGABORT will immediately&#xA;leave the state and not allow any actions in&#xA;the source State in that tick. "/>
      </eAnnotations>
    </eLiterals>
    <eLiterals name="NORMALTERMINATION" value="2" literal="NORMALTERMINATION">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="A NORMALTERMINATION will leave a State whenever all contained&#xA;Regions are in final States. A normal termination may not define a guard trigger."/>
      </eAnnotations>
    </eLiterals>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Scope" abstract="true" eSuperTypes="../../de.cau.cs.kieler.core.annotations/model/annotations.ecore#//Annotatable">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="A Scope is the abstract superclass for State and Region. &#xA;&lt;p>&#xA;The fields label and id are there to identify such object, where the label&#xA;may be an arbitrary String and the id may be used as identifier in programming languages. Therefore the&#xA;id should be unique within its containing scope, should start with a word character (letter, underscore) and should not&#xA;contain whitespace.&#xA;&lt;p>&#xA;The interfaceDeclaration is a String text field containing the interface declaration in a textual representation. &#xA;The user of a model instance needs to take care that this textual representation gets parsed correctly and &#xA;translated into proper Interface objects (e.g. Signals and Variables). For example the SyncCharts editor uses&#xA;an Xtext grammar/parser to do this.&#xA;&lt;p>&#xA;A Scope may carry lists of entry-, inner- or exit {@link Action}s that are executed on either Scope entry, staying a tick&#xA;in the Scope or exiting the Scope. A suspensionTrigger Action guards the suspension of a Scope. When this trigger&#xA;is evaluated to true, then the contents of the Scope is no longer evaluated until the guard gets false again."/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="label" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="signals" upperBound="-1"
        eType="ecore:EClass ../../de.cau.cs.kieler.core.kexpressions/model/kexpressions.ecore#//Signal"
        containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="variables" upperBound="-1"
        eType="ecore:EClass ../../de.cau.cs.kieler.core.kexpressions/model/kexpressions.ecore#//Variable"
        containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="suspensionTrigger" eType="#//Action"
        containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="exitActions" upperBound="-1"
        eType="#//Action" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="innerActions" upperBound="-1"
        eType="#//Action" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="entryActions" upperBound="-1"
        eType="#//Action" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="bodyReference" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="bodyContents" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"
        containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="bodyText" upperBound="-1"
        eType="ecore:EClass ../../de.cau.cs.kieler.core.kexpressions/model/kexpressions.ecore#//TextualCode"
        containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="renamings" upperBound="-1"
        eType="#//Substitution" containment="true" eOpposite="#//Substitution/parentScope"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="interfaceDeclaration" eType="#//Parsable"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EDataType" name="Parsable" instanceClassName="java.lang.String">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="A Parsable is a String that represents model information&#xA;that can be parsed by some external parser. It is used to&#xA;technically distinguish simple Strings from information&#xA;that will be post processed by a parser and hence does not&#xA;carry semantical information in its own.&#xA;"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="TextEffect" eSuperTypes="../../de.cau.cs.kieler.core.kexpressions/model/kexpressions.ecore#//TextualCode #//Effect">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="An TextEffect is a {@link TextualCode} that allows to&#xA;escape to some textual host code in an effect. This&#xA;can be any arbitrary String."/>
    </eAnnotations>
  </eClassifiers>
</ecore:EPackage>

{"directed":true,"nodes":[{"nsPrefix":"synccharts","nsURI":"http://kieler.cs.cau.de/synccharts/0.2.4","name":"synccharts","id":0,"eClass":"EPackage"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Action","instanceClass":null,"abstract":false,"id":1,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Assignment","instanceClass":null,"abstract":false,"id":2,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Effect","instanceClass":null,"abstract":true,"id":3,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Emission","instanceClass":null,"abstract":false,"id":4,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Region","instanceClass":null,"abstract":false,"id":5,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Substitution","instanceClass":null,"abstract":false,"id":6,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"State","instanceClass":null,"abstract":false,"id":7,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"instanceClassName":null,"name":"StateType","instanceClass":null,"id":8,"serializable":true,"eClass":"EEnum"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Transition","instanceClass":null,"abstract":false,"id":9,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"instanceClassName":null,"name":"TransitionType","instanceClass":null,"id":10,"serializable":true,"eClass":"EEnum"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Scope","instanceClass":null,"abstract":true,"id":11,"interface":false,"eClass":"EClass"},{"instanceTypeName":"java.lang.String","defaultValue":null,"instanceClassName":"java.lang.String","name":"Parsable","instanceClass":"java.lang.String","id":12,"serializable":true,"eClass":"EDataType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TextEffect","instanceClass":null,"abstract":false,"id":13,"interface":false,"eClass":"EClass"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"effects","changeable":true,"resolveProxies":true,"lowerBound":0,"id":14,"derived":false},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"trigger","changeable":true,"resolveProxies":true,"lowerBound":0,"id":15,"derived":false},{"ordered":true,"upperBound":1,"defaultValue":1,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":"1","unsettable":false,"transient":false,"unique":true,"name":"delay","changeable":true,"lowerBound":0,"iD":false,"id":16,"derived":false},{"ordered":true,"upperBound":1,"defaultValue":false,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"isImmediate","changeable":true,"lowerBound":0,"iD":false,"id":17,"derived":false},{"ordered":false,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":false,"name":"label","changeable":true,"lowerBound":0,"iD":false,"id":18,"derived":false},{"id":19,"eClass":"EGenericType"},{"id":20,"eClass":"EGenericType"},{"id":21,"eClass":"EGenericType"},{"id":22,"eClass":"EGenericType"},{"id":23,"eClass":"EGenericType"},{"id":24,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"variable","changeable":true,"resolveProxies":true,"lowerBound":1,"id":25,"derived":false},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"expression","changeable":true,"resolveProxies":true,"lowerBound":1,"id":26,"derived":false},{"id":27,"eClass":"EGenericType"},{"id":28,"eClass":"EGenericType"},{"id":29,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"signal","changeable":true,"resolveProxies":true,"lowerBound":1,"id":30,"derived":false},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"newValue","changeable":true,"resolveProxies":true,"lowerBound":0,"id":31,"derived":false},{"id":32,"eClass":"EGenericType"},{"id":33,"eClass":"EGenericType"},{"id":34,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"states","changeable":true,"resolveProxies":true,"lowerBound":0,"id":35,"derived":false},{"container":true,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"parentState","changeable":true,"resolveProxies":true,"lowerBound":0,"id":36,"derived":false},{"id":37,"eClass":"EGenericType"},{"id":38,"eClass":"EGenericType"},{"container":true,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"parentRegion","changeable":true,"resolveProxies":true,"lowerBound":1,"id":39,"derived":false},{"id":40,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"regions","changeable":true,"resolveProxies":true,"lowerBound":0,"id":41,"derived":false},{"container":true,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"parentScope","changeable":true,"resolveProxies":true,"lowerBound":1,"id":42,"derived":false},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"formal","changeable":true,"lowerBound":1,"iD":false,"id":43,"derived":false},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"actual","changeable":true,"lowerBound":1,"iD":false,"id":44,"derived":false},{"id":45,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"renamings","changeable":true,"resolveProxies":true,"lowerBound":0,"id":46,"derived":false},{"id":47,"eClass":"EGenericType"},{"id":48,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"type","changeable":true,"lowerBound":1,"iD":false,"id":49,"derived":false},{"ordered":true,"upperBound":1,"defaultValue":false,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"isInitial","changeable":true,"lowerBound":0,"iD":false,"id":50,"derived":false},{"ordered":true,"upperBound":1,"defaultValue":false,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"isFinal","changeable":true,"lowerBound":0,"iD":false,"id":51,"derived":false},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"outgoingTransitions","changeable":true,"resolveProxies":true,"lowerBound":0,"id":52,"derived":false},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"incomingTransitions","changeable":true,"resolveProxies":true,"lowerBound":0,"id":53,"derived":false},{"id":54,"eClass":"EGenericType"},{"id":55,"eClass":"EGenericType"},{"id":56,"eClass":"EGenericType"},{"id":57,"eClass":"EGenericType"},{"id":58,"eClass":"EGenericType"},{"id":59,"eClass":"EGenericType"},{"id":60,"eClass":"EGenericType"},{"container":true,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"sourceState","changeable":true,"resolveProxies":true,"lowerBound":1,"id":61,"derived":false},{"id":62,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"targetState","changeable":true,"resolveProxies":true,"lowerBound":1,"id":63,"derived":false},{"name":"NORMAL","id":64,"value":0,"literal":"NORMAL","eClass":"EEnumLiteral"},{"name":"CONDITIONAL","id":65,"value":1,"literal":"CONDITIONAL","eClass":"EEnumLiteral"},{"name":"REFERENCE","id":66,"value":0,"literal":"REFERENCE","eClass":"EEnumLiteral"},{"name":"TEXTUAL","id":67,"value":0,"literal":"TEXTUAL","eClass":"EEnumLiteral"},{"ordered":true,"upperBound":1,"defaultValue":0,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"priority","changeable":true,"lowerBound":0,"iD":false,"id":68,"derived":false},{"ordered":true,"upperBound":1,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"type","changeable":true,"lowerBound":1,"iD":false,"id":69,"derived":false},{"ordered":true,"upperBound":1,"defaultValue":false,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"isHistory","changeable":true,"lowerBound":0,"iD":false,"id":70,"derived":false},{"id":71,"eClass":"EGenericType"},{"id":72,"eClass":"EGenericType"},{"id":73,"eClass":"EGenericType"},{"id":74,"eClass":"EGenericType"},{"id":75,"eClass":"EGenericType"},{"id":76,"eClass":"EGenericType"},{"name":"WEAKABORT","id":77,"value":0,"literal":"WEAKABORT","eClass":"EEnumLiteral"},{"name":"STRONGABORT","id":78,"value":1,"literal":"STRONGABORT","eClass":"EEnumLiteral"},{"name":"NORMALTERMINATION","id":79,"value":2,"literal":"NORMALTERMINATION","eClass":"EEnumLiteral"},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"id","changeable":true,"lowerBound":0,"iD":false,"id":80,"derived":false},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"label","changeable":true,"lowerBound":0,"iD":false,"id":81,"derived":false},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"signals","changeable":true,"resolveProxies":true,"lowerBound":0,"id":82,"derived":false},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"variables","changeable":true,"resolveProxies":true,"lowerBound":0,"id":83,"derived":false},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"suspensionTrigger","changeable":true,"resolveProxies":true,"lowerBound":0,"id":84,"derived":false},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"exitActions","changeable":true,"resolveProxies":true,"lowerBound":0,"id":85,"derived":false},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"innerActions","changeable":true,"resolveProxies":true,"lowerBound":0,"id":86,"derived":false},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"entryActions","changeable":true,"resolveProxies":true,"lowerBound":0,"id":87,"derived":false},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"bodyReference","changeable":true,"resolveProxies":true,"lowerBound":0,"id":88,"derived":false},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"bodyContents","changeable":true,"resolveProxies":true,"lowerBound":0,"id":89,"derived":false},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"bodyText","changeable":true,"resolveProxies":true,"lowerBound":0,"id":90,"derived":false},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"interfaceDeclaration","changeable":true,"lowerBound":0,"iD":false,"id":91,"derived":false},{"id":92,"eClass":"EGenericType"},{"id":93,"eClass":"EGenericType"},{"id":94,"eClass":"EGenericType"},{"id":95,"eClass":"EGenericType"},{"id":96,"eClass":"EGenericType"},{"id":97,"eClass":"EGenericType"},{"id":98,"eClass":"EGenericType"},{"id":99,"eClass":"EGenericType"},{"id":100,"eClass":"EGenericType"},{"id":101,"eClass":"EGenericType"},{"id":102,"eClass":"EGenericType"},{"id":103,"eClass":"EGenericType"},{"id":104,"eClass":"EGenericType"},{"id":105,"eClass":"EGenericType"},{"id":106,"eClass":"EGenericType"},{"id":107,"eClass":"EGenericType"}],"links":[{"source":0,"target":1},{"source":0,"target":2},{"source":0,"target":3},{"source":0,"target":4},{"source":0,"target":5},{"source":0,"target":6},{"source":0,"target":7},{"source":0,"target":8},{"source":0,"target":9},{"source":0,"target":10},{"source":0,"target":11},{"source":0,"target":12},{"source":0,"target":13},{"source":1,"target":0},{"source":1,"target":14},{"source":1,"target":15},{"source":1,"target":16},{"source":1,"target":17},{"source":1,"target":18},{"source":1,"target":19},{"source":14,"target":3},{"source":14,"target":20},{"source":14,"target":1},{"source":20,"target":3},{"source":15,"target":21},{"source":15,"target":1},{"source":16,"target":22},{"source":16,"target":1},{"source":17,"target":23},{"source":17,"target":1},{"source":18,"target":24},{"source":18,"target":1},{"source":2,"target":0},{"source":2,"target":3},{"source":2,"target":25},{"source":2,"target":26},{"source":2,"target":27},{"source":25,"target":28},{"source":25,"target":2},{"source":26,"target":29},{"source":26,"target":2},{"source":27,"target":3},{"source":3,"target":0},{"source":4,"target":0},{"source":4,"target":3},{"source":4,"target":30},{"source":4,"target":31},{"source":4,"target":32},{"source":30,"target":33},{"source":30,"target":4},{"source":31,"target":34},{"source":31,"target":4},{"source":32,"target":3},{"source":5,"target":0},{"source":5,"target":11},{"source":5,"target":35},{"source":5,"target":36},{"source":5,"target":37},{"source":35,"target":7},{"source":35,"target":38},{"source":35,"target":5},{"source":35,"target":39},{"source":38,"target":7},{"source":36,"target":7},{"source":36,"target":40},{"source":36,"target":5},{"source":36,"target":41},{"source":40,"target":7},{"source":37,"target":11},{"source":6,"target":0},{"source":6,"target":42},{"source":6,"target":43},{"source":6,"target":44},{"source":42,"target":11},{"source":42,"target":45},{"source":42,"target":6},{"source":42,"target":46},{"source":45,"target":11},{"source":43,"target":47},{"source":43,"target":6},{"source":44,"target":48},{"source":44,"target":6},{"source":7,"target":0},{"source":7,"target":11},{"source":7,"target":49},{"source":7,"target":41},{"source":7,"target":39},{"source":7,"target":50},{"source":7,"target":51},{"source":7,"target":52},{"source":7,"target":53},{"source":7,"target":54},{"source":49,"target":8},{"source":49,"target":55},{"source":49,"target":7},{"source":55,"target":8},{"source":41,"target":5},{"source":41,"target":56},{"source":41,"target":7},{"source":41,"target":36},{"source":56,"target":5},{"source":39,"target":5},{"source":39,"target":57},{"source":39,"target":7},{"source":39,"target":35},{"source":57,"target":5},{"source":50,"target":58},{"source":50,"target":7},{"source":51,"target":59},{"source":51,"target":7},{"source":52,"target":9},{"source":52,"target":60},{"source":52,"target":7},{"source":52,"target":61},{"source":60,"target":9},{"source":53,"target":9},{"source":53,"target":62},{"source":53,"target":7},{"source":53,"target":63},{"source":62,"target":9},{"source":54,"target":11},{"source":8,"target":0},{"source":8,"target":64},{"source":8,"target":65},{"source":8,"target":66},{"source":8,"target":67},{"source":64,"target":8},{"source":65,"target":8},{"source":66,"target":8},{"source":67,"target":8},{"source":9,"target":0},{"source":9,"target":1},{"source":9,"target":68},{"source":9,"target":69},{"source":9,"target":63},{"source":9,"target":70},{"source":9,"target":61},{"source":9,"target":71},{"source":68,"target":72},{"source":68,"target":9},{"source":69,"target":10},{"source":69,"target":73},{"source":69,"target":9},{"source":73,"target":10},{"source":63,"target":7},{"source":63,"target":74},{"source":63,"target":9},{"source":63,"target":53},{"source":74,"target":7},{"source":70,"target":75},{"source":70,"target":9},{"source":61,"target":7},{"source":61,"target":76},{"source":61,"target":9},{"source":61,"target":52},{"source":76,"target":7},{"source":71,"target":1},{"source":10,"target":0},{"source":10,"target":77},{"source":10,"target":78},{"source":10,"target":79},{"source":77,"target":10},{"source":78,"target":10},{"source":79,"target":10},{"source":11,"target":0},{"source":11,"target":80},{"source":11,"target":81},{"source":11,"target":82},{"source":11,"target":83},{"source":11,"target":84},{"source":11,"target":85},{"source":11,"target":86},{"source":11,"target":87},{"source":11,"target":88},{"source":11,"target":89},{"source":11,"target":90},{"source":11,"target":46},{"source":11,"target":91},{"source":11,"target":92},{"source":80,"target":93},{"source":80,"target":11},{"source":81,"target":94},{"source":81,"target":11},{"source":82,"target":95},{"source":82,"target":11},{"source":83,"target":96},{"source":83,"target":11},{"source":84,"target":1},{"source":84,"target":97},{"source":84,"target":11},{"source":97,"target":1},{"source":85,"target":1},{"source":85,"target":98},{"source":85,"target":11},{"source":98,"target":1},{"source":86,"target":1},{"source":86,"target":99},{"source":86,"target":11},{"source":99,"target":1},{"source":87,"target":1},{"source":87,"target":100},{"source":87,"target":11},{"source":100,"target":1},{"source":88,"target":101},{"source":88,"target":11},{"source":89,"target":102},{"source":89,"target":11},{"source":90,"target":103},{"source":90,"target":11},{"source":46,"target":6},{"source":46,"target":104},{"source":46,"target":11},{"source":46,"target":42},{"source":104,"target":6},{"source":91,"target":12},{"source":91,"target":105},{"source":91,"target":11},{"source":105,"target":12},{"source":12,"target":0},{"source":13,"target":0},{"source":13,"target":3},{"source":13,"target":106},{"source":13,"target":107},{"source":107,"target":3}],"multigraph":true}