coCoMM
FeatureModel
name
root
ctConstraints
isDomain
Feature
id
name
abstract
treeConstraints
featureModel
featureAttributes
mandatory
TreeConstraint
type
children
TreeConstraintType
Alternative
Alternative
Or
Or
And
And
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
solutionConstraints
attributeTypes
project
stakeholders
configScenario
CMConstraintType
not
not
and
and
or
or
implies
implies
CrossModelConstraint
expressions
SolutionConstraint
type
SelectionStateSC
featureModel
feature
state
HardLimitSC
expressions
attrType
SCType
selectionState
selectionState
hardLimit
hardLimit
optimization
optimization
finiteDomain
finiteDomain
SelectionStateSCType
mandatory
mandatory
preferred
preferred
forbidden
forbidden
HardLimitDRExpression
op
value
OptimizationSC
funct
attrType
OptimizationSCFunct
maximize
maximize
minimize
minimize
HardLimitSCOp
leq
leq
lt
lt
geq
geq
gt
gt
eq
eq
Project
solutionConstraints
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
ConfigScenarioType
fmSearch
fmSearch
fmPreferences
fmPreferences
fmConflicts
fmConflicts
fsgSearch
fsgSearch
fsgPreferences
fsgPreferences
fsgConflicts
fsgConflicts
FiniteDomainSC
featureAttributes
feature
values
FiniteDomainSCValue
value
<?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"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="mandatory" lowerBound="1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
  </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="#//TreeConstraintType"/>
    <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="Alternative" value="2"/>
    <eLiterals name="Or" value="3"/>
    <eLiterals name="And" value="2"/>
  </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="solutionConstraints" upperBound="-1"
        eType="#//SolutionConstraint" 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"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="configScenario" eType="#//ConfigScenarioType"/>
  </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="SolutionConstraint">
    <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="#//SCType"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="SelectionStateSC" eSuperTypes="#//SolutionConstraint">
    <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="#//SelectionStateSCType"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="HardLimitSC" eSuperTypes="#//SolutionConstraint">
    <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="SCType">
    <eLiterals name="selectionState"/>
    <eLiterals name="hardLimit" value="1"/>
    <eLiterals name="optimization" value="2"/>
    <eLiterals name="finiteDomain" value="3"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="SelectionStateSCType">
    <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="#//HardLimitSCOp"/>
    <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="OptimizationSC" eSuperTypes="#//SolutionConstraint">
    <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="#//OptimizationSCFunct"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="attrType" lowerBound="1"
        eType="#//AttributeType"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="OptimizationSCFunct">
    <eLiterals name="maximize"/>
    <eLiterals name="minimize" value="1"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="HardLimitSCOp">
    <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="solutionConstraints" upperBound="-1"
        eType="#//SolutionConstraint"/>
    <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="#//ConfigType"/>
    <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="#//DataType"/>
  </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="#//CTConstraintType"/>
    <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="#//CMConstraintType"/>
    <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>
  <eClassifiers xsi:type="ecore:EEnum" name="ConfigScenarioType">
    <eLiterals name="fmSearch"/>
    <eLiterals name="fmPreferences" value="1"/>
    <eLiterals name="fmConflicts" value="2"/>
    <eLiterals name="fsgSearch" value="3"/>
    <eLiterals name="fsgPreferences" value="4"/>
    <eLiterals name="fsgConflicts" value="5"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="FiniteDomainSC" eSuperTypes="#//SolutionConstraint">
    <eStructuralFeatures xsi:type="ecore:EReference" name="featureAttributes" lowerBound="1"
        eType="#//FeatureAttribute"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="feature" lowerBound="1"
        eType="#//Feature"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="values" lowerBound="1"
        upperBound="-1" eType="#//FiniteDomainSCValue"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="FiniteDomainSCValue">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </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":"SolutionConstraint","instanceClass":null,"abstract":false,"id":13,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"SelectionStateSC","instanceClass":null,"abstract":false,"id":14,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"HardLimitSC","instanceClass":null,"abstract":false,"id":15,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"instanceClassName":null,"name":"SCType","instanceClass":null,"id":16,"serializable":true,"eClass":"EEnum"},{"instanceTypeName":null,"instanceClassName":null,"name":"SelectionStateSCType","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":"OptimizationSC","instanceClass":null,"abstract":false,"id":19,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"instanceClassName":null,"name":"OptimizationSCFunct","instanceClass":null,"id":20,"serializable":true,"eClass":"EEnum"},{"instanceTypeName":null,"instanceClassName":null,"name":"HardLimitSCOp","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"},{"instanceTypeName":null,"instanceClassName":null,"name":"ConfigScenarioType","instanceClass":null,"id":30,"serializable":true,"eClass":"EEnum"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"FiniteDomainSC","instanceClass":null,"abstract":false,"id":31,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"FiniteDomainSCValue","instanceClass":null,"abstract":false,"id":32,"interface":false,"eClass":"EClass"},{"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":33,"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":34,"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":35,"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":36,"derived":false},{"id":37,"eClass":"EGenericType"},{"id":38,"eClass":"EGenericType"},{"id":39,"eClass":"EGenericType"},{"id":40,"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":41,"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":42,"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":43,"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":44,"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":45,"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":46,"derived":false},{"ordered":true,"upperBound":1,"defaultValue":false,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"mandatory","changeable":true,"lowerBound":1,"iD":false,"id":47,"derived":false},{"id":48,"eClass":"EGenericType"},{"id":49,"eClass":"EGenericType"},{"id":50,"eClass":"EGenericType"},{"id":51,"eClass":"EGenericType"},{"id":52,"eClass":"EGenericType"},{"id":53,"eClass":"EGenericType"},{"id":54,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"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":55,"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":56,"derived":false},{"id":57,"eClass":"EGenericType"},{"id":58,"eClass":"EGenericType"},{"name":"Alternative","id":59,"value":2,"literal":"Alternative","eClass":"EEnumLiteral"},{"name":"Or","id":60,"value":3,"literal":"Or","eClass":"EEnumLiteral"},{"name":"And","id":61,"value":2,"literal":"And","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":62,"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":63,"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":64,"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":65,"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":66,"derived":false},{"id":67,"eClass":"EGenericType"},{"id":68,"eClass":"EGenericType"},{"id":69,"eClass":"EGenericType"},{"id":70,"eClass":"EGenericType"},{"id":71,"eClass":"EGenericType"},{"name":"string","id":72,"value":0,"literal":"string","eClass":"EEnumLiteral"},{"name":"int","id":73,"value":1,"literal":"int","eClass":"EEnumLiteral"},{"name":"double","id":74,"value":2,"literal":"double","eClass":"EEnumLiteral"},{"name":"boolean","id":75,"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":76,"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":77,"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":78,"derived":false},{"id":79,"eClass":"EGenericType"},{"id":80,"eClass":"EGenericType"},{"id":81,"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":82,"derived":false},{"id":83,"eClass":"EGenericType"},{"name":"not","id":84,"value":0,"literal":"not","eClass":"EEnumLiteral"},{"name":"and","id":85,"value":1,"literal":"and","eClass":"EEnumLiteral"},{"name":"or","id":86,"value":2,"literal":"or","eClass":"EEnumLiteral"},{"name":"implies","id":87,"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":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":"cmConstraints","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":"solutionConstraints","changeable":true,"resolveProxies":true,"lowerBound":0,"id":90,"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":91,"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":92,"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":93,"derived":false},{"ordered":true,"upperBound":1,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"configScenario","changeable":true,"lowerBound":0,"iD":false,"id":94,"derived":false},{"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"},{"name":"not","id":102,"value":0,"literal":"not","eClass":"EEnumLiteral"},{"name":"and","id":103,"value":1,"literal":"and","eClass":"EEnumLiteral"},{"name":"or","id":104,"value":2,"literal":"or","eClass":"EEnumLiteral"},{"name":"implies","id":105,"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":106,"derived":false},{"id":107,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"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":108,"derived":false},{"id":109,"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":110,"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":111,"derived":false},{"ordered":true,"upperBound":1,"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":112,"derived":false},{"id":113,"eClass":"EGenericType"},{"id":114,"eClass":"EGenericType"},{"id":115,"eClass":"EGenericType"},{"id":116,"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":117,"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":118,"derived":false},{"id":119,"eClass":"EGenericType"},{"id":120,"eClass":"EGenericType"},{"id":121,"eClass":"EGenericType"},{"name":"selectionState","id":122,"value":0,"literal":"selectionState","eClass":"EEnumLiteral"},{"name":"hardLimit","id":123,"value":1,"literal":"hardLimit","eClass":"EEnumLiteral"},{"name":"optimization","id":124,"value":2,"literal":"optimization","eClass":"EEnumLiteral"},{"name":"finiteDomain","id":125,"value":3,"literal":"finiteDomain","eClass":"EEnumLiteral"},{"name":"mandatory","id":126,"value":0,"literal":"mandatory","eClass":"EEnumLiteral"},{"name":"preferred","id":127,"value":1,"literal":"preferred","eClass":"EEnumLiteral"},{"name":"forbidden","id":128,"value":2,"literal":"forbidden","eClass":"EEnumLiteral"},{"ordered":true,"upperBound":1,"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":129,"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":130,"derived":false},{"id":131,"eClass":"EGenericType"},{"id":132,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"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":133,"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":134,"derived":false},{"id":135,"eClass":"EGenericType"},{"id":136,"eClass":"EGenericType"},{"id":137,"eClass":"EGenericType"},{"name":"maximize","id":138,"value":0,"literal":"maximize","eClass":"EEnumLiteral"},{"name":"minimize","id":139,"value":1,"literal":"minimize","eClass":"EEnumLiteral"},{"name":"leq","id":140,"value":0,"literal":"leq","eClass":"EEnumLiteral"},{"name":"lt","id":141,"value":1,"literal":"lt","eClass":"EEnumLiteral"},{"name":"geq","id":142,"value":2,"literal":"geq","eClass":"EEnumLiteral"},{"name":"gt","id":143,"value":3,"literal":"gt","eClass":"EEnumLiteral"},{"name":"eq","id":144,"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":"solutionConstraints","changeable":true,"resolveProxies":true,"lowerBound":0,"id":145,"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":146,"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":147,"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":148,"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":149,"derived":false},{"id":150,"eClass":"EGenericType"},{"id":151,"eClass":"EGenericType"},{"id":152,"eClass":"EGenericType"},{"id":153,"eClass":"EGenericType"},{"id":154,"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":155,"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":156,"derived":false},{"ordered":true,"upperBound":1,"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":157,"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":158,"derived":false},{"id":159,"eClass":"EGenericType"},{"id":160,"eClass":"EGenericType"},{"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":"name","changeable":true,"lowerBound":0,"iD":false,"id":163,"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":164,"derived":false},{"id":165,"eClass":"EGenericType"},{"id":166,"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":167,"derived":false},{"ordered":true,"upperBound":1,"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":168,"derived":false},{"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":"value","changeable":true,"lowerBound":0,"iD":false,"id":171,"derived":false},{"id":172,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"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":173,"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":174,"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":175,"derived":false},{"id":176,"eClass":"EGenericType"},{"id":177,"eClass":"EGenericType"},{"id":178,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"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":179,"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":180,"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":181,"derived":false},{"id":182,"eClass":"EGenericType"},{"id":183,"eClass":"EGenericType"},{"id":184,"eClass":"EGenericType"},{"name":"input","id":185,"value":0,"literal":"input","eClass":"EEnumLiteral"},{"name":"output","id":186,"value":1,"literal":"output","eClass":"EEnumLiteral"},{"name":"fmSearch","id":187,"value":0,"literal":"fmSearch","eClass":"EEnumLiteral"},{"name":"fmPreferences","id":188,"value":1,"literal":"fmPreferences","eClass":"EEnumLiteral"},{"name":"fmConflicts","id":189,"value":2,"literal":"fmConflicts","eClass":"EEnumLiteral"},{"name":"fsgSearch","id":190,"value":3,"literal":"fsgSearch","eClass":"EEnumLiteral"},{"name":"fsgPreferences","id":191,"value":4,"literal":"fsgPreferences","eClass":"EEnumLiteral"},{"name":"fsgConflicts","id":192,"value":5,"literal":"fsgConflicts","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":"featureAttributes","changeable":true,"resolveProxies":true,"lowerBound":1,"id":193,"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":"feature","changeable":true,"resolveProxies":true,"lowerBound":1,"id":194,"derived":false},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"values","changeable":true,"resolveProxies":true,"lowerBound":1,"id":195,"derived":false},{"id":196,"eClass":"EGenericType"},{"id":197,"eClass":"EGenericType"},{"id":198,"eClass":"EGenericType"},{"id":199,"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":200,"derived":false},{"id":201,"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":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":0,"target":30},{"source":0,"target":31},{"source":0,"target":32},{"source":1,"target":0},{"source":1,"target":33},{"source":1,"target":34},{"source":1,"target":35},{"source":1,"target":36},{"source":33,"target":37},{"source":33,"target":1},{"source":34,"target":2},{"source":34,"target":38},{"source":34,"target":1},{"source":38,"target":2},{"source":35,"target":8},{"source":35,"target":39},{"source":35,"target":1},{"source":39,"target":8},{"source":36,"target":40},{"source":36,"target":1},{"source":2,"target":0},{"source":2,"target":41},{"source":2,"target":42},{"source":2,"target":43},{"source":2,"target":44},{"source":2,"target":45},{"source":2,"target":46},{"source":2,"target":47},{"source":41,"target":48},{"source":41,"target":2},{"source":42,"target":49},{"source":42,"target":2},{"source":43,"target":50},{"source":43,"target":2},{"source":44,"target":3},{"source":44,"target":51},{"source":44,"target":2},{"source":51,"target":3},{"source":45,"target":1},{"source":45,"target":52},{"source":45,"target":2},{"source":52,"target":1},{"source":46,"target":7},{"source":46,"target":53},{"source":46,"target":2},{"source":53,"target":7},{"source":47,"target":54},{"source":47,"target":2},{"source":3,"target":0},{"source":3,"target":55},{"source":3,"target":56},{"source":55,"target":4},{"source":55,"target":57},{"source":55,"target":3},{"source":57,"target":4},{"source":56,"target":2},{"source":56,"target":58},{"source":56,"target":3},{"source":58,"target":2},{"source":4,"target":0},{"source":4,"target":59},{"source":4,"target":60},{"source":4,"target":61},{"source":59,"target":4},{"source":60,"target":4},{"source":61,"target":4},{"source":5,"target":0},{"source":5,"target":62},{"source":5,"target":63},{"source":5,"target":64},{"source":5,"target":65},{"source":5,"target":66},{"source":62,"target":67},{"source":62,"target":5},{"source":63,"target":68},{"source":63,"target":5},{"source":64,"target":5},{"source":64,"target":69},{"source":64,"target":5},{"source":69,"target":5},{"source":65,"target":25},{"source":65,"target":70},{"source":65,"target":5},{"source":70,"target":25},{"source":66,"target":7},{"source":66,"target":71},{"source":66,"target":5},{"source":71,"target":7},{"source":6,"target":0},{"source":6,"target":72},{"source":6,"target":73},{"source":6,"target":74},{"source":6,"target":75},{"source":72,"target":6},{"source":73,"target":6},{"source":74,"target":6},{"source":75,"target":6},{"source":7,"target":0},{"source":7,"target":76},{"source":7,"target":77},{"source":7,"target":78},{"source":76,"target":5},{"source":76,"target":79},{"source":76,"target":7},{"source":79,"target":5},{"source":77,"target":80},{"source":77,"target":7},{"source":78,"target":26},{"source":78,"target":81},{"source":78,"target":7},{"source":81,"target":26},{"source":8,"target":0},{"source":8,"target":82},{"source":82,"target":27},{"source":82,"target":83},{"source":82,"target":8},{"source":83,"target":27},{"source":9,"target":0},{"source":9,"target":84},{"source":9,"target":85},{"source":9,"target":86},{"source":9,"target":87},{"source":84,"target":9},{"source":85,"target":9},{"source":86,"target":9},{"source":87,"target":9},{"source":10,"target":0},{"source":10,"target":88},{"source":10,"target":89},{"source":10,"target":90},{"source":10,"target":91},{"source":10,"target":92},{"source":10,"target":93},{"source":10,"target":94},{"source":88,"target":1},{"source":88,"target":95},{"source":88,"target":10},{"source":95,"target":1},{"source":89,"target":12},{"source":89,"target":96},{"source":89,"target":10},{"source":96,"target":12},{"source":90,"target":13},{"source":90,"target":97},{"source":90,"target":10},{"source":97,"target":13},{"source":91,"target":5},{"source":91,"target":98},{"source":91,"target":10},{"source":98,"target":5},{"source":92,"target":22},{"source":92,"target":99},{"source":92,"target":10},{"source":99,"target":22},{"source":93,"target":24},{"source":93,"target":100},{"source":93,"target":10},{"source":100,"target":24},{"source":94,"target":30},{"source":94,"target":101},{"source":94,"target":10},{"source":101,"target":30},{"source":11,"target":0},{"source":11,"target":102},{"source":11,"target":103},{"source":11,"target":104},{"source":11,"target":105},{"source":102,"target":11},{"source":103,"target":11},{"source":104,"target":11},{"source":105,"target":11},{"source":12,"target":0},{"source":12,"target":106},{"source":106,"target":28},{"source":106,"target":107},{"source":106,"target":12},{"source":107,"target":28},{"source":13,"target":0},{"source":13,"target":108},{"source":108,"target":16},{"source":108,"target":109},{"source":108,"target":13},{"source":109,"target":16},{"source":14,"target":0},{"source":14,"target":13},{"source":14,"target":110},{"source":14,"target":111},{"source":14,"target":112},{"source":14,"target":113},{"source":110,"target":1},{"source":110,"target":114},{"source":110,"target":14},{"source":114,"target":1},{"source":111,"target":2},{"source":111,"target":115},{"source":111,"target":14},{"source":115,"target":2},{"source":112,"target":17},{"source":112,"target":116},{"source":112,"target":14},{"source":116,"target":17},{"source":113,"target":13},{"source":15,"target":0},{"source":15,"target":13},{"source":15,"target":117},{"source":15,"target":118},{"source":15,"target":119},{"source":117,"target":18},{"source":117,"target":120},{"source":117,"target":15},{"source":120,"target":18},{"source":118,"target":5},{"source":118,"target":121},{"source":118,"target":15},{"source":121,"target":5},{"source":119,"target":13},{"source":16,"target":0},{"source":16,"target":122},{"source":16,"target":123},{"source":16,"target":124},{"source":16,"target":125},{"source":122,"target":16},{"source":123,"target":16},{"source":124,"target":16},{"source":125,"target":16},{"source":17,"target":0},{"source":17,"target":126},{"source":17,"target":127},{"source":17,"target":128},{"source":126,"target":17},{"source":127,"target":17},{"source":128,"target":17},{"source":18,"target":0},{"source":18,"target":129},{"source":18,"target":130},{"source":129,"target":21},{"source":129,"target":131},{"source":129,"target":18},{"source":131,"target":21},{"source":130,"target":132},{"source":130,"target":18},{"source":19,"target":0},{"source":19,"target":13},{"source":19,"target":133},{"source":19,"target":134},{"source":19,"target":135},{"source":133,"target":20},{"source":133,"target":136},{"source":133,"target":19},{"source":136,"target":20},{"source":134,"target":5},{"source":134,"target":137},{"source":134,"target":19},{"source":137,"target":5},{"source":135,"target":13},{"source":20,"target":0},{"source":20,"target":138},{"source":20,"target":139},{"source":138,"target":20},{"source":139,"target":20},{"source":21,"target":0},{"source":21,"target":140},{"source":21,"target":141},{"source":21,"target":142},{"source":21,"target":143},{"source":21,"target":144},{"source":140,"target":21},{"source":141,"target":21},{"source":142,"target":21},{"source":143,"target":21},{"source":144,"target":21},{"source":22,"target":0},{"source":22,"target":145},{"source":22,"target":146},{"source":22,"target":147},{"source":22,"target":148},{"source":22,"target":149},{"source":145,"target":13},{"source":145,"target":150},{"source":145,"target":22},{"source":150,"target":13},{"source":146,"target":23},{"source":146,"target":151},{"source":146,"target":22},{"source":151,"target":23},{"source":147,"target":152},{"source":147,"target":22},{"source":148,"target":153},{"source":148,"target":22},{"source":149,"target":154},{"source":149,"target":22},{"source":23,"target":0},{"source":23,"target":155},{"source":23,"target":156},{"source":23,"target":157},{"source":23,"target":158},{"source":155,"target":24},{"source":155,"target":159},{"source":155,"target":23},{"source":159,"target":24},{"source":156,"target":160},{"source":156,"target":23},{"source":157,"target":29},{"source":157,"target":161},{"source":157,"target":23},{"source":161,"target":29},{"source":158,"target":2},{"source":158,"target":162},{"source":158,"target":23},{"source":162,"target":2},{"source":24,"target":0},{"source":24,"target":163},{"source":24,"target":164},{"source":163,"target":165},{"source":163,"target":24},{"source":164,"target":166},{"source":164,"target":24},{"source":25,"target":0},{"source":25,"target":167},{"source":25,"target":168},{"source":167,"target":169},{"source":167,"target":25},{"source":168,"target":6},{"source":168,"target":170},{"source":168,"target":25},{"source":170,"target":6},{"source":26,"target":0},{"source":26,"target":171},{"source":171,"target":172},{"source":171,"target":26},{"source":27,"target":0},{"source":27,"target":173},{"source":27,"target":174},{"source":27,"target":175},{"source":173,"target":9},{"source":173,"target":176},{"source":173,"target":27},{"source":176,"target":9},{"source":174,"target":2},{"source":174,"target":177},{"source":174,"target":27},{"source":177,"target":2},{"source":175,"target":27},{"source":175,"target":178},{"source":175,"target":27},{"source":178,"target":27},{"source":28,"target":0},{"source":28,"target":179},{"source":28,"target":180},{"source":28,"target":181},{"source":179,"target":11},{"source":179,"target":182},{"source":179,"target":28},{"source":182,"target":11},{"source":180,"target":2},{"source":180,"target":183},{"source":180,"target":28},{"source":183,"target":2},{"source":181,"target":28},{"source":181,"target":184},{"source":181,"target":28},{"source":184,"target":28},{"source":29,"target":0},{"source":29,"target":185},{"source":29,"target":186},{"source":185,"target":29},{"source":186,"target":29},{"source":30,"target":0},{"source":30,"target":187},{"source":30,"target":188},{"source":30,"target":189},{"source":30,"target":190},{"source":30,"target":191},{"source":30,"target":192},{"source":187,"target":30},{"source":188,"target":30},{"source":189,"target":30},{"source":190,"target":30},{"source":191,"target":30},{"source":192,"target":30},{"source":31,"target":0},{"source":31,"target":13},{"source":31,"target":193},{"source":31,"target":194},{"source":31,"target":195},{"source":31,"target":196},{"source":193,"target":7},{"source":193,"target":197},{"source":193,"target":31},{"source":197,"target":7},{"source":194,"target":2},{"source":194,"target":198},{"source":194,"target":31},{"source":198,"target":2},{"source":195,"target":32},{"source":195,"target":199},{"source":195,"target":31},{"source":199,"target":32},{"source":196,"target":13},{"source":32,"target":0},{"source":32,"target":200},{"source":200,"target":201},{"source":200,"target":32}],"multigraph":true}