<?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="fiacreinstance" nsURI="http://fiacreinstance/1.0" nsPrefix="fiacreinstance">
  <eClassifiers xsi:type="ecore:EClass" name="InstanceModel">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="model" lowerBound="1" eType="ecore:EClass ../../fr.irit.fiacre.xtext/model/generated/Fiacre.ecore#//Model"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="instance" lowerBound="1"
        upperBound="-1" eType="#//DeclarationInstance" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="statementBlocks" upperBound="-1"
        eType="#//StatementBlock" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="StatementBlock" abstract="true">
    <eStructuralFeatures xsi:type="ecore:EReference" name="instanceStatementBlocks"
        lowerBound="1" upperBound="-1" eType="#//InstanceStatementBlock"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ExecutedStatementBlock" eSuperTypes="#//StatementBlock"/>
  <eClassifiers xsi:type="ecore:EClass" name="ExecutableStatementBlock" eSuperTypes="#//StatementBlock">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="date" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="FireableStatementBlock" eSuperTypes="#//ExecutableStatementBlock"/>
  <eClassifiers xsi:type="ecore:EClass" name="EnabledStatementBlock" eSuperTypes="#//ExecutableStatementBlock"/>
  <eClassifiers xsi:type="ecore:EClass" name="BlockInstance" abstract="true">
    <eStructuralFeatures xsi:type="ecore:EReference" name="blockInstances" upperBound="-1"
        eType="#//BlockInstance" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="CompositionInstance" eSuperTypes="#//BlockInstance">
    <eStructuralFeatures xsi:type="ecore:EReference" name="composition" eType="ecore:EClass ../../fr.irit.fiacre.xtext/model/generated/Fiacre.ecore#//Composition"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="DeclarationInstance" abstract="true"
      eSuperTypes="#//BlockInstance">
    <eStructuralFeatures xsi:type="ecore:EReference" name="variableDeclarationInstances"
        upperBound="-1" eType="#//VariableDeclarationInstance" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="instance" eType="ecore:EClass ../../fr.irit.fiacre.xtext/model/generated/Fiacre.ecore#//ComponentInstance"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="flatname" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ComponentDeclarationInstance" eSuperTypes="#//DeclarationInstance">
    <eStructuralFeatures xsi:type="ecore:EReference" name="component" lowerBound="1"
        eType="ecore:EClass ../../fr.irit.fiacre.xtext/model/generated/Fiacre.ecore#//ComponentDeclaration"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ProcessDeclarationInstance" eSuperTypes="#//DeclarationInstance">
    <eStructuralFeatures xsi:type="ecore:EReference" name="currentState" eType="ecore:EClass ../../fr.irit.fiacre.xtext/model/generated/Fiacre.ecore#//StateDeclaration"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="process" lowerBound="1"
        eType="ecore:EClass ../../fr.irit.fiacre.xtext/model/generated/Fiacre.ecore#//ProcessDeclaration"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="instanceStatementBlocks"
        upperBound="-1" eType="#//InstanceStatementBlock" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="InstanceStatementBlock" abstract="true">
    <eStructuralFeatures xsi:type="ecore:EReference" name="transitionSource" lowerBound="1"
        eType="ecore:EClass ../../fr.irit.fiacre.xtext/model/generated/Fiacre.ecore#//TransitionSource"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="statements" upperBound="-1"
        eType="ecore:EClass ../../fr.irit.fiacre.xtext/model/generated/Fiacre.ecore#//Statement"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="InstanceExecutedStatementBlock" eSuperTypes="#//InstanceStatementBlock"/>
  <eClassifiers xsi:type="ecore:EClass" name="InstanceExecutableStatementBlock" abstract="true"
      eSuperTypes="#//InstanceStatementBlock"/>
  <eClassifiers xsi:type="ecore:EClass" name="InstanceFireableStatementBlock" eSuperTypes="#//InstanceExecutableStatementBlock"/>
  <eClassifiers xsi:type="ecore:EClass" name="InstanceEnabledStatementBlock" eSuperTypes="#//InstanceExecutableStatementBlock"/>
  <eClassifiers xsi:type="ecore:EClass" name="VariableDeclarationInstance">
    <eStructuralFeatures xsi:type="ecore:EReference" name="variableDeclaration" lowerBound="1"
        eType="ecore:EClass ../../fr.irit.fiacre.xtext/model/generated/Fiacre.ecore#//VariableDeclaration"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="currentValue" eType="ecore:EClass ../../fr.irit.fiacre.xtext/model/generated/Fiacre.ecore#//ValueExpression"
        containment="true"/>
  </eClassifiers>
</ecore:EPackage>
