coCoMM
FeatureModel
name
root
ctConstraints
isDomain
Feature
id
name
abstract
treeConstraints
featureModel
featureAttributes
TreeConstraint
type
children
TreeConstraintType
Mandatory
Mandatory
Optional
Optional
Alternative
Alternative
Or
Or
AttributeType
id
name
independentAttrType
elements
featureAttributes
DataType
String
String
int
int
double
double
boolean
boolean
FeatureAttribute
attrType
name
elements
CrossTreeConstraint
expressions
CTConstraintType
not
not
and
and
or
or
implies
implies
CoCo
featureModels
cmConstraints
decisionRules
attributeTypes
project
stakeholders
CMConstraintType
not
not
and
and
or
or
implies
implies
CrossModelConstraint
expressions
DecisionRule
type
SelectionStateDR
featureModel
feature
state
HardLimitDR
expressions
attrType
DRType
selectionState
selectionState
hardLimit
hardLimit
DRSelectionStateType
mandatory
mandatory
preferred
preferred
forbidden
forbidden
HardLimitDRExpression
op
value
OptimizationDR
funct
attrType
DROptimizationOp
maximize
maximize
minimize
minimize
DRHardLimitOp
leq
leq
lt
lt
geq
geq
gt
gt
eq
eq
Project
decisionRules
configs
name
date
target
Config
stakeholder
selected
type
features
Stakeholder
name
job
AttributeTypeElement
name
dataType
FeatureAttributeElement
value
CTConstraintExpression
op
features
expressions
CMConstraintExpression
op
features
expressions
ConfigType
input
input
output
output
<?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="coCoMM" nsURI="http://www.example.org/coCoMM" nsPrefix="coCoMM">
  <eAnnotations source="http://www.eclipse.org/OCL/Import">
    <details key="ecore" value="http://www.eclipse.org/emf/2002/Ecore"/>
  </eAnnotations>
  <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
    <details key="invocationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
    <details key="settingDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
    <details key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
  </eAnnotations>
  <eClassifiers xsi:type="ecore:EClass" name="FeatureModel">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="oneDomainFM"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="oneDomainFM" value="FeatureModel.allInstances() -> exists(x|x.isDomain = true)"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="root" lowerBound="1" eType="#//Feature"
        containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="ctConstraints" upperBound="-1"
        eType="#//CrossTreeConstraint" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isDomain" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Feature">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
        iD="true"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstract" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="treeConstraints" upperBound="-1"
        eType="#//TreeConstraint" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="featureModel" lowerBound="1"
        eType="#//FeatureModel"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="featureAttributes" upperBound="-1"
        eType="#//FeatureAttribute"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="TreeConstraint">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="setTCTypes"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="setTCTypes" value="(self.type = 'mandatory') or (self.type = 'optional') or &#xA;&#x9;&#x9;(self.type = 'alternative') or (self.type = 'or')"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="children" lowerBound="1"
        upperBound="-1" eType="#//Feature" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="TreeConstraintType">
    <eLiterals name="Mandatory"/>
    <eLiterals name="Optional" value="1"/>
    <eLiterals name="Alternative" value="2"/>
    <eLiterals name="Or" value="3"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="AttributeType">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
        iD="true"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="independentAttrType" eType="#//AttributeType"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="elements" lowerBound="1"
        upperBound="-1" eType="#//AttributeTypeElement" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="featureAttributes" upperBound="-1"
        eType="#//FeatureAttribute" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="DataType">
    <eLiterals name="String"/>
    <eLiterals name="int" value="1"/>
    <eLiterals name="double" value="2"/>
    <eLiterals name="boolean" value="3"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="FeatureAttribute">
    <eStructuralFeatures xsi:type="ecore:EReference" name="attrType" lowerBound="1"
        eType="#//AttributeType"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="elements" upperBound="-1"
        eType="#//FeatureAttributeElement" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="CrossTreeConstraint">
    <eStructuralFeatures xsi:type="ecore:EReference" name="expressions" lowerBound="1"
        upperBound="-1" eType="#//CTConstraintExpression" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="CTConstraintType">
    <eLiterals name="not"/>
    <eLiterals name="and" value="1"/>
    <eLiterals name="or" value="2"/>
    <eLiterals name="implies" value="3"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="CoCo">
    <eStructuralFeatures xsi:type="ecore:EReference" name="featureModels" upperBound="-1"
        eType="#//FeatureModel" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="cmConstraints" upperBound="-1"
        eType="#//CrossModelConstraint" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="decisionRules" upperBound="-1"
        eType="#//DecisionRule" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="attributeTypes" upperBound="-1"
        eType="#//AttributeType" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="project" upperBound="-1"
        eType="#//Project" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="stakeholders" upperBound="-1"
        eType="#//Stakeholder" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="CMConstraintType">
    <eLiterals name="not"/>
    <eLiterals name="and" value="1"/>
    <eLiterals name="or" value="2"/>
    <eLiterals name="implies" value="3"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="CrossModelConstraint">
    <eStructuralFeatures xsi:type="ecore:EReference" name="expressions" lowerBound="1"
        upperBound="-1" eType="#//CMConstraintExpression" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="DecisionRule">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="setDRTypes"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="setDRTypes" value="(self.type = 'optimization') or (self.type = 'hardLimit') or &#xA;&#x9;&#x9;(self.type = 'selectionState')"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="SelectionStateDR" eSuperTypes="#//DecisionRule">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="setSelectionStateDRstates"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="setSelectionStateDRstates" value="(self.state = 'mandatory') or (self.state = 'preferred') or &#xA;&#x9;&#x9;(self.state = 'forbidden')"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="featureModel" eType="#//FeatureModel"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="feature" eType="#//Feature"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="state" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="HardLimitDR" eSuperTypes="#//DecisionRule">
    <eStructuralFeatures xsi:type="ecore:EReference" name="expressions" lowerBound="1"
        upperBound="2" eType="#//HardLimitDRExpression" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="attrType" lowerBound="1"
        eType="#//AttributeType"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="DRType">
    <eLiterals name="selectionState"/>
    <eLiterals name="hardLimit" value="1"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="DRSelectionStateType">
    <eLiterals name="mandatory"/>
    <eLiterals name="preferred" value="1"/>
    <eLiterals name="forbidden" value="2"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="HardLimitDRExpression">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="setHardLimitDRop"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="setHardLimitDRop" value="(self.op = 'geq') or (self.op = 'gt') or (self.op = 'leq')&#xA;&#x9;&#x9;or (self.op = 'lt') or (self.op = 'eq')"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="OptimizationDR" eSuperTypes="#//DecisionRule">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="setSOptimizationDRfuncts"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="setSOptimizationDRfuncts" value="(self.funct = 'maximize') or (self.funct = 'minimize')"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="funct" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="attrType" lowerBound="1"
        eType="#//AttributeType"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="DROptimizationOp">
    <eLiterals name="maximize"/>
    <eLiterals name="minimize" value="1"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="DRHardLimitOp">
    <eLiterals name="leq"/>
    <eLiterals name="lt" value="1"/>
    <eLiterals name="geq" value="2"/>
    <eLiterals name="gt" value="3"/>
    <eLiterals name="eq" value="4"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Project">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="oneTargetProject"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="oneTargetProject" value="Project.allInstances() -> exists(x|x.target = true)"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="decisionRules" upperBound="-1"
        eType="#//DecisionRule"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="configs" upperBound="-1"
        eType="#//Config" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="date" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="target" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Config">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="setConfigTypes"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="setConfigTypes" value="(self.type = 'input') or (self.type = 'output')"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="stakeholder" eType="#//Stakeholder"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="selected" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="features" upperBound="-1"
        eType="#//Feature"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Stakeholder">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="job" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="AttributeTypeElement">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="setATdataTypes"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="setATdataTypes" value="(self.dataType = 'String') or (self.dataType = 'int') &#xA;&#x9;&#x9;or (self.dataType = 'double') or (self.dataType = 'boolean')"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="dataType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="FeatureAttributeElement">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="CTConstraintExpression">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="setCTops"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="setCTops" value="(self.op = 'not') or (self.op = 'or') or (self.op = 'and')&#xA;&#x9;&#x9;or (self.op = 'implies')"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="features" upperBound="-1"
        eType="#//Feature"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="expressions" upperBound="-1"
        eType="#//CTConstraintExpression" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="CMConstraintExpression">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="setCMops"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="setCMops" value="(self.op = 'not') or (self.op = 'or') or (self.op = 'and')&#xA;&#x9;&#x9;or (self.op = 'implies')"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="features" upperBound="-1"
        eType="#//Feature"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="expressions" upperBound="-1"
        eType="#//CMConstraintExpression" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="ConfigType">
    <eLiterals name="input"/>
    <eLiterals name="output" value="1"/>
  </eClassifiers>
</ecore:EPackage>

{"directed":true,"nodes":[{"nsPrefix":"coCoMM","nsURI":"http://www.example.org/coCoMM","name":"coCoMM","id":0,"eClass":"EPackage"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"FeatureModel","instanceClass":null,"abstract":false,"id":1,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Feature","instanceClass":null,"abstract":false,"id":2,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TreeConstraint","instanceClass":null,"abstract":false,"id":3,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"instanceClassName":null,"name":"TreeConstraintType","instanceClass":null,"id":4,"serializable":true,"eClass":"EEnum"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AttributeType","instanceClass":null,"abstract":false,"id":5,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"instanceClassName":null,"name":"DataType","instanceClass":null,"id":6,"serializable":true,"eClass":"EEnum"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"FeatureAttribute","instanceClass":null,"abstract":false,"id":7,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"CrossTreeConstraint","instanceClass":null,"abstract":false,"id":8,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"instanceClassName":null,"name":"CTConstraintType","instanceClass":null,"id":9,"serializable":true,"eClass":"EEnum"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"CoCo","instanceClass":null,"abstract":false,"id":10,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"instanceClassName":null,"name":"CMConstraintType","instanceClass":null,"id":11,"serializable":true,"eClass":"EEnum"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"CrossModelConstraint","instanceClass":null,"abstract":false,"id":12,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"DecisionRule","instanceClass":null,"abstract":false,"id":13,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"SelectionStateDR","instanceClass":null,"abstract":false,"id":14,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"HardLimitDR","instanceClass":null,"abstract":false,"id":15,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"instanceClassName":null,"name":"DRType","instanceClass":null,"id":16,"serializable":true,"eClass":"EEnum"},{"instanceTypeName":null,"instanceClassName":null,"name":"DRSelectionStateType","instanceClass":null,"id":17,"serializable":true,"eClass":"EEnum"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"HardLimitDRExpression","instanceClass":null,"abstract":false,"id":18,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"OptimizationDR","instanceClass":null,"abstract":false,"id":19,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"instanceClassName":null,"name":"DROptimizationOp","instanceClass":null,"id":20,"serializable":true,"eClass":"EEnum"},{"instanceTypeName":null,"instanceClassName":null,"name":"DRHardLimitOp","instanceClass":null,"id":21,"serializable":true,"eClass":"EEnum"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Project","instanceClass":null,"abstract":false,"id":22,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Config","instanceClass":null,"abstract":false,"id":23,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Stakeholder","instanceClass":null,"abstract":false,"id":24,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AttributeTypeElement","instanceClass":null,"abstract":false,"id":25,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"FeatureAttributeElement","instanceClass":null,"abstract":false,"id":26,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"CTConstraintExpression","instanceClass":null,"abstract":false,"id":27,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"CMConstraintExpression","instanceClass":null,"abstract":false,"id":28,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"instanceClassName":null,"name":"ConfigType","instanceClass":null,"id":29,"serializable":true,"eClass":"EEnum"},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"name","changeable":true,"lowerBound":0,"iD":false,"id":30,"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":"root","changeable":true,"resolveProxies":true,"lowerBound":1,"id":31,"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":"ctConstraints","changeable":true,"resolveProxies":true,"lowerBound":0,"id":32,"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":"isDomain","changeable":true,"lowerBound":0,"iD":false,"id":33,"derived":false},{"id":34,"eClass":"EGenericType"},{"id":35,"eClass":"EGenericType"},{"id":36,"eClass":"EGenericType"},{"id":37,"eClass":"EGenericType"},{"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":true,"id":38,"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":"name","changeable":true,"lowerBound":0,"iD":false,"id":39,"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":"abstract","changeable":true,"lowerBound":0,"iD":false,"id":40,"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":"treeConstraints","changeable":true,"resolveProxies":true,"lowerBound":0,"id":41,"derived":false},{"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":"featureModel","changeable":true,"resolveProxies":true,"lowerBound":1,"id":42,"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":"featureAttributes","changeable":true,"resolveProxies":true,"lowerBound":0,"id":43,"derived":false},{"id":44,"eClass":"EGenericType"},{"id":45,"eClass":"EGenericType"},{"id":46,"eClass":"EGenericType"},{"id":47,"eClass":"EGenericType"},{"id":48,"eClass":"EGenericType"},{"id":49,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"type","changeable":true,"lowerBound":0,"iD":false,"id":50,"derived":false},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"children","changeable":true,"resolveProxies":true,"lowerBound":1,"id":51,"derived":false},{"id":52,"eClass":"EGenericType"},{"id":53,"eClass":"EGenericType"},{"name":"Mandatory","id":54,"value":0,"literal":"Mandatory","eClass":"EEnumLiteral"},{"name":"Optional","id":55,"value":1,"literal":"Optional","eClass":"EEnumLiteral"},{"name":"Alternative","id":56,"value":2,"literal":"Alternative","eClass":"EEnumLiteral"},{"name":"Or","id":57,"value":3,"literal":"Or","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":true,"id":58,"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":"name","changeable":true,"lowerBound":0,"iD":false,"id":59,"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":"independentAttrType","changeable":true,"resolveProxies":true,"lowerBound":0,"id":60,"derived":false},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"elements","changeable":true,"resolveProxies":true,"lowerBound":1,"id":61,"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":"featureAttributes","changeable":true,"resolveProxies":true,"lowerBound":0,"id":62,"derived":false},{"id":63,"eClass":"EGenericType"},{"id":64,"eClass":"EGenericType"},{"id":65,"eClass":"EGenericType"},{"id":66,"eClass":"EGenericType"},{"id":67,"eClass":"EGenericType"},{"name":"String","id":68,"value":0,"literal":"String","eClass":"EEnumLiteral"},{"name":"int","id":69,"value":1,"literal":"int","eClass":"EEnumLiteral"},{"name":"double","id":70,"value":2,"literal":"double","eClass":"EEnumLiteral"},{"name":"boolean","id":71,"value":3,"literal":"boolean","eClass":"EEnumLiteral"},{"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":"attrType","changeable":true,"resolveProxies":true,"lowerBound":1,"id":72,"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":"name","changeable":true,"lowerBound":0,"iD":false,"id":73,"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":"elements","changeable":true,"resolveProxies":true,"lowerBound":0,"id":74,"derived":false},{"id":75,"eClass":"EGenericType"},{"id":76,"eClass":"EGenericType"},{"id":77,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"expressions","changeable":true,"resolveProxies":true,"lowerBound":1,"id":78,"derived":false},{"id":79,"eClass":"EGenericType"},{"name":"not","id":80,"value":0,"literal":"not","eClass":"EEnumLiteral"},{"name":"and","id":81,"value":1,"literal":"and","eClass":"EEnumLiteral"},{"name":"or","id":82,"value":2,"literal":"or","eClass":"EEnumLiteral"},{"name":"implies","id":83,"value":3,"literal":"implies","eClass":"EEnumLiteral"},{"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":"featureModels","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":"cmConstraints","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":"decisionRules","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":"attributeTypes","changeable":true,"resolveProxies":true,"lowerBound":0,"id":87,"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":"project","changeable":true,"resolveProxies":true,"lowerBound":0,"id":88,"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":"stakeholders","changeable":true,"resolveProxies":true,"lowerBound":0,"id":89,"derived":false},{"id":90,"eClass":"EGenericType"},{"id":91,"eClass":"EGenericType"},{"id":92,"eClass":"EGenericType"},{"id":93,"eClass":"EGenericType"},{"id":94,"eClass":"EGenericType"},{"id":95,"eClass":"EGenericType"},{"name":"not","id":96,"value":0,"literal":"not","eClass":"EEnumLiteral"},{"name":"and","id":97,"value":1,"literal":"and","eClass":"EEnumLiteral"},{"name":"or","id":98,"value":2,"literal":"or","eClass":"EEnumLiteral"},{"name":"implies","id":99,"value":3,"literal":"implies","eClass":"EEnumLiteral"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"expressions","changeable":true,"resolveProxies":true,"lowerBound":1,"id":100,"derived":false},{"id":101,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"type","changeable":true,"lowerBound":0,"iD":false,"id":102,"derived":false},{"id":103,"eClass":"EGenericType"},{"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":"featureModel","changeable":true,"resolveProxies":true,"lowerBound":0,"id":104,"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":"feature","changeable":true,"resolveProxies":true,"lowerBound":0,"id":105,"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":"state","changeable":true,"lowerBound":0,"iD":false,"id":106,"derived":false},{"id":107,"eClass":"EGenericType"},{"id":108,"eClass":"EGenericType"},{"id":109,"eClass":"EGenericType"},{"id":110,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":2,"defaultValue":null,"volatile":false,"many":true,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"expressions","changeable":true,"resolveProxies":true,"lowerBound":1,"id":111,"derived":false},{"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":"attrType","changeable":true,"resolveProxies":true,"lowerBound":1,"id":112,"derived":false},{"id":113,"eClass":"EGenericType"},{"id":114,"eClass":"EGenericType"},{"id":115,"eClass":"EGenericType"},{"name":"selectionState","id":116,"value":0,"literal":"selectionState","eClass":"EEnumLiteral"},{"name":"hardLimit","id":117,"value":1,"literal":"hardLimit","eClass":"EEnumLiteral"},{"name":"mandatory","id":118,"value":0,"literal":"mandatory","eClass":"EEnumLiteral"},{"name":"preferred","id":119,"value":1,"literal":"preferred","eClass":"EEnumLiteral"},{"name":"forbidden","id":120,"value":2,"literal":"forbidden","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":"op","changeable":true,"lowerBound":0,"iD":false,"id":121,"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":"value","changeable":true,"lowerBound":0,"iD":false,"id":122,"derived":false},{"id":123,"eClass":"EGenericType"},{"id":124,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"funct","changeable":true,"lowerBound":0,"iD":false,"id":125,"derived":false},{"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":"attrType","changeable":true,"resolveProxies":true,"lowerBound":1,"id":126,"derived":false},{"id":127,"eClass":"EGenericType"},{"id":128,"eClass":"EGenericType"},{"id":129,"eClass":"EGenericType"},{"name":"maximize","id":130,"value":0,"literal":"maximize","eClass":"EEnumLiteral"},{"name":"minimize","id":131,"value":1,"literal":"minimize","eClass":"EEnumLiteral"},{"name":"leq","id":132,"value":0,"literal":"leq","eClass":"EEnumLiteral"},{"name":"lt","id":133,"value":1,"literal":"lt","eClass":"EEnumLiteral"},{"name":"geq","id":134,"value":2,"literal":"geq","eClass":"EEnumLiteral"},{"name":"gt","id":135,"value":3,"literal":"gt","eClass":"EEnumLiteral"},{"name":"eq","id":136,"value":4,"literal":"eq","eClass":"EEnumLiteral"},{"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":"decisionRules","changeable":true,"resolveProxies":true,"lowerBound":0,"id":137,"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":"configs","changeable":true,"resolveProxies":true,"lowerBound":0,"id":138,"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":"name","changeable":true,"lowerBound":0,"iD":false,"id":139,"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":"date","changeable":true,"lowerBound":0,"iD":false,"id":140,"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":"target","changeable":true,"lowerBound":0,"iD":false,"id":141,"derived":false},{"id":142,"eClass":"EGenericType"},{"id":143,"eClass":"EGenericType"},{"id":144,"eClass":"EGenericType"},{"id":145,"eClass":"EGenericType"},{"id":146,"eClass":"EGenericType"},{"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":"stakeholder","changeable":true,"resolveProxies":true,"lowerBound":0,"id":147,"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":"selected","changeable":true,"lowerBound":0,"iD":false,"id":148,"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":"type","changeable":true,"lowerBound":0,"iD":false,"id":149,"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":"features","changeable":true,"resolveProxies":true,"lowerBound":0,"id":150,"derived":false},{"id":151,"eClass":"EGenericType"},{"id":152,"eClass":"EGenericType"},{"id":153,"eClass":"EGenericType"},{"id":154,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"name","changeable":true,"lowerBound":0,"iD":false,"id":155,"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":"job","changeable":true,"lowerBound":0,"iD":false,"id":156,"derived":false},{"id":157,"eClass":"EGenericType"},{"id":158,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"name","changeable":true,"lowerBound":0,"iD":false,"id":159,"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":"dataType","changeable":true,"lowerBound":0,"iD":false,"id":160,"derived":false},{"id":161,"eClass":"EGenericType"},{"id":162,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"value","changeable":true,"lowerBound":0,"iD":false,"id":163,"derived":false},{"id":164,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"op","changeable":true,"lowerBound":0,"iD":false,"id":165,"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":"features","changeable":true,"resolveProxies":true,"lowerBound":0,"id":166,"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":"expressions","changeable":true,"resolveProxies":true,"lowerBound":0,"id":167,"derived":false},{"id":168,"eClass":"EGenericType"},{"id":169,"eClass":"EGenericType"},{"id":170,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"op","changeable":true,"lowerBound":0,"iD":false,"id":171,"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":"features","changeable":true,"resolveProxies":true,"lowerBound":0,"id":172,"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":"expressions","changeable":true,"resolveProxies":true,"lowerBound":0,"id":173,"derived":false},{"id":174,"eClass":"EGenericType"},{"id":175,"eClass":"EGenericType"},{"id":176,"eClass":"EGenericType"},{"name":"input","id":177,"value":0,"literal":"input","eClass":"EEnumLiteral"},{"name":"output","id":178,"value":1,"literal":"output","eClass":"EEnumLiteral"}],"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":0,"target":14},{"source":0,"target":15},{"source":0,"target":16},{"source":0,"target":17},{"source":0,"target":18},{"source":0,"target":19},{"source":0,"target":20},{"source":0,"target":21},{"source":0,"target":22},{"source":0,"target":23},{"source":0,"target":24},{"source":0,"target":25},{"source":0,"target":26},{"source":0,"target":27},{"source":0,"target":28},{"source":0,"target":29},{"source":1,"target":0},{"source":1,"target":30},{"source":1,"target":31},{"source":1,"target":32},{"source":1,"target":33},{"source":30,"target":34},{"source":30,"target":1},{"source":31,"target":2},{"source":31,"target":35},{"source":31,"target":1},{"source":35,"target":2},{"source":32,"target":8},{"source":32,"target":36},{"source":32,"target":1},{"source":36,"target":8},{"source":33,"target":37},{"source":33,"target":1},{"source":2,"target":0},{"source":2,"target":38},{"source":2,"target":39},{"source":2,"target":40},{"source":2,"target":41},{"source":2,"target":42},{"source":2,"target":43},{"source":38,"target":44},{"source":38,"target":2},{"source":39,"target":45},{"source":39,"target":2},{"source":40,"target":46},{"source":40,"target":2},{"source":41,"target":3},{"source":41,"target":47},{"source":41,"target":2},{"source":47,"target":3},{"source":42,"target":1},{"source":42,"target":48},{"source":42,"target":2},{"source":48,"target":1},{"source":43,"target":7},{"source":43,"target":49},{"source":43,"target":2},{"source":49,"target":7},{"source":3,"target":0},{"source":3,"target":50},{"source":3,"target":51},{"source":50,"target":52},{"source":50,"target":3},{"source":51,"target":2},{"source":51,"target":53},{"source":51,"target":3},{"source":53,"target":2},{"source":4,"target":0},{"source":4,"target":54},{"source":4,"target":55},{"source":4,"target":56},{"source":4,"target":57},{"source":54,"target":4},{"source":55,"target":4},{"source":56,"target":4},{"source":57,"target":4},{"source":5,"target":0},{"source":5,"target":58},{"source":5,"target":59},{"source":5,"target":60},{"source":5,"target":61},{"source":5,"target":62},{"source":58,"target":63},{"source":58,"target":5},{"source":59,"target":64},{"source":59,"target":5},{"source":60,"target":5},{"source":60,"target":65},{"source":60,"target":5},{"source":65,"target":5},{"source":61,"target":25},{"source":61,"target":66},{"source":61,"target":5},{"source":66,"target":25},{"source":62,"target":7},{"source":62,"target":67},{"source":62,"target":5},{"source":67,"target":7},{"source":6,"target":0},{"source":6,"target":68},{"source":6,"target":69},{"source":6,"target":70},{"source":6,"target":71},{"source":68,"target":6},{"source":69,"target":6},{"source":70,"target":6},{"source":71,"target":6},{"source":7,"target":0},{"source":7,"target":72},{"source":7,"target":73},{"source":7,"target":74},{"source":72,"target":5},{"source":72,"target":75},{"source":72,"target":7},{"source":75,"target":5},{"source":73,"target":76},{"source":73,"target":7},{"source":74,"target":26},{"source":74,"target":77},{"source":74,"target":7},{"source":77,"target":26},{"source":8,"target":0},{"source":8,"target":78},{"source":78,"target":27},{"source":78,"target":79},{"source":78,"target":8},{"source":79,"target":27},{"source":9,"target":0},{"source":9,"target":80},{"source":9,"target":81},{"source":9,"target":82},{"source":9,"target":83},{"source":80,"target":9},{"source":81,"target":9},{"source":82,"target":9},{"source":83,"target":9},{"source":10,"target":0},{"source":10,"target":84},{"source":10,"target":85},{"source":10,"target":86},{"source":10,"target":87},{"source":10,"target":88},{"source":10,"target":89},{"source":84,"target":1},{"source":84,"target":90},{"source":84,"target":10},{"source":90,"target":1},{"source":85,"target":12},{"source":85,"target":91},{"source":85,"target":10},{"source":91,"target":12},{"source":86,"target":13},{"source":86,"target":92},{"source":86,"target":10},{"source":92,"target":13},{"source":87,"target":5},{"source":87,"target":93},{"source":87,"target":10},{"source":93,"target":5},{"source":88,"target":22},{"source":88,"target":94},{"source":88,"target":10},{"source":94,"target":22},{"source":89,"target":24},{"source":89,"target":95},{"source":89,"target":10},{"source":95,"target":24},{"source":11,"target":0},{"source":11,"target":96},{"source":11,"target":97},{"source":11,"target":98},{"source":11,"target":99},{"source":96,"target":11},{"source":97,"target":11},{"source":98,"target":11},{"source":99,"target":11},{"source":12,"target":0},{"source":12,"target":100},{"source":100,"target":28},{"source":100,"target":101},{"source":100,"target":12},{"source":101,"target":28},{"source":13,"target":0},{"source":13,"target":102},{"source":102,"target":103},{"source":102,"target":13},{"source":14,"target":0},{"source":14,"target":13},{"source":14,"target":104},{"source":14,"target":105},{"source":14,"target":106},{"source":14,"target":107},{"source":104,"target":1},{"source":104,"target":108},{"source":104,"target":14},{"source":108,"target":1},{"source":105,"target":2},{"source":105,"target":109},{"source":105,"target":14},{"source":109,"target":2},{"source":106,"target":110},{"source":106,"target":14},{"source":107,"target":13},{"source":15,"target":0},{"source":15,"target":13},{"source":15,"target":111},{"source":15,"target":112},{"source":15,"target":113},{"source":111,"target":18},{"source":111,"target":114},{"source":111,"target":15},{"source":114,"target":18},{"source":112,"target":5},{"source":112,"target":115},{"source":112,"target":15},{"source":115,"target":5},{"source":113,"target":13},{"source":16,"target":0},{"source":16,"target":116},{"source":16,"target":117},{"source":116,"target":16},{"source":117,"target":16},{"source":17,"target":0},{"source":17,"target":118},{"source":17,"target":119},{"source":17,"target":120},{"source":118,"target":17},{"source":119,"target":17},{"source":120,"target":17},{"source":18,"target":0},{"source":18,"target":121},{"source":18,"target":122},{"source":121,"target":123},{"source":121,"target":18},{"source":122,"target":124},{"source":122,"target":18},{"source":19,"target":0},{"source":19,"target":13},{"source":19,"target":125},{"source":19,"target":126},{"source":19,"target":127},{"source":125,"target":128},{"source":125,"target":19},{"source":126,"target":5},{"source":126,"target":129},{"source":126,"target":19},{"source":129,"target":5},{"source":127,"target":13},{"source":20,"target":0},{"source":20,"target":130},{"source":20,"target":131},{"source":130,"target":20},{"source":131,"target":20},{"source":21,"target":0},{"source":21,"target":132},{"source":21,"target":133},{"source":21,"target":134},{"source":21,"target":135},{"source":21,"target":136},{"source":132,"target":21},{"source":133,"target":21},{"source":134,"target":21},{"source":135,"target":21},{"source":136,"target":21},{"source":22,"target":0},{"source":22,"target":137},{"source":22,"target":138},{"source":22,"target":139},{"source":22,"target":140},{"source":22,"target":141},{"source":137,"target":13},{"source":137,"target":142},{"source":137,"target":22},{"source":142,"target":13},{"source":138,"target":23},{"source":138,"target":143},{"source":138,"target":22},{"source":143,"target":23},{"source":139,"target":144},{"source":139,"target":22},{"source":140,"target":145},{"source":140,"target":22},{"source":141,"target":146},{"source":141,"target":22},{"source":23,"target":0},{"source":23,"target":147},{"source":23,"target":148},{"source":23,"target":149},{"source":23,"target":150},{"source":147,"target":24},{"source":147,"target":151},{"source":147,"target":23},{"source":151,"target":24},{"source":148,"target":152},{"source":148,"target":23},{"source":149,"target":153},{"source":149,"target":23},{"source":150,"target":2},{"source":150,"target":154},{"source":150,"target":23},{"source":154,"target":2},{"source":24,"target":0},{"source":24,"target":155},{"source":24,"target":156},{"source":155,"target":157},{"source":155,"target":24},{"source":156,"target":158},{"source":156,"target":24},{"source":25,"target":0},{"source":25,"target":159},{"source":25,"target":160},{"source":159,"target":161},{"source":159,"target":25},{"source":160,"target":162},{"source":160,"target":25},{"source":26,"target":0},{"source":26,"target":163},{"source":163,"target":164},{"source":163,"target":26},{"source":27,"target":0},{"source":27,"target":165},{"source":27,"target":166},{"source":27,"target":167},{"source":165,"target":168},{"source":165,"target":27},{"source":166,"target":2},{"source":166,"target":169},{"source":166,"target":27},{"source":169,"target":2},{"source":167,"target":27},{"source":167,"target":170},{"source":167,"target":27},{"source":170,"target":27},{"source":28,"target":0},{"source":28,"target":171},{"source":28,"target":172},{"source":28,"target":173},{"source":171,"target":174},{"source":171,"target":28},{"source":172,"target":2},{"source":172,"target":175},{"source":172,"target":28},{"source":175,"target":2},{"source":173,"target":28},{"source":173,"target":176},{"source":173,"target":28},{"source":176,"target":28},{"source":29,"target":0},{"source":29,"target":177},{"source":29,"target":178},{"source":177,"target":29},{"source":178,"target":29}],"multigraph":true}