<?xml version="1.0" encoding="UTF-8"?>
<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
    xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/HintConfiguration/src-gen" modelPluginID="HintConfiguration"
    runtimeJar="true" modelName="HintConfiguration" updateClasspath="false" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
    testsDirectory="" booleanFlagsField="eFlags" booleanFlagsReservedBits="8" importerID="org.eclipse.emf.ecore.xcore.importer"
    containmentProxies="true" complianceLevel="8.0" language="en" usedGenPackages="../../org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore"
    operationReflection="true" importOrganizing="true" decoration="Live" oSGiCompatible="true"
    eclipsePlatformVersion="Juno" autoResizeProperties="true" autoExpandProperties="10"
    findAction="true" expandAllAction="true" collapseAllAction="true" revertAction="true">
  <genAnnotations source="http://www.eclipse.org/emf/2002/GenModel/exporter/org.eclipse.xsd.ecore.exporter">
    <genAnnotations source="selectedPackages">
      <details key="http://www.eclipse.org/emf/2002/Ecore" value="Ecore.xsd"/>
    </genAnnotations>
    <details key="directoryURI" value="."/>
  </genAnnotations>
  <genAnnotations source="http://www.eclipse.org/emf/2002/GenModel/exporter/org.eclipse.xsd.ecore.exporter.xmi">
    <genAnnotations source="selectedPackages">
      <details key="http://www.eclipse.org/emf/2002/Ecore" value="EcoreXMI.xsd"/>
    </genAnnotations>
    <details key="directoryURI" value="."/>
  </genAnnotations>
  <foreignModel>HintConfiguration.xcore</foreignModel>
  <modelPluginVariables>org.eclipse.xtext.xbase.lib</modelPluginVariables>
  <modelPluginVariables>org.eclipse.emf.ecore.xcore.lib</modelPluginVariables>
  <genPackages prefix="Hintco" basePackage="ua.ansymo" disposableProviderFactory="true"
      ecorePackage="hintco.ecore#/">
    <genDataTypes ecoreDataType="hintco.ecore#//Int"/>
    <genClasses image="false" ecoreClass="hintco.ecore#//IDed">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hintco.ecore#//IDed/identifier"/>
    </genClasses>
    <genClasses ecoreClass="hintco.ecore#//HintConfiguration">
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hintco.ecore#//HintConfiguration/candidates"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hintco.ecore#//HintConfiguration/csuDeclarations"/>
      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hintco.ecore#//HintConfiguration/root"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hintco.ecore#//HintConfiguration/nodes"/>
    </genClasses>
    <genClasses ecoreClass="hintco.ecore#//VariantDiagram">
      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hintco.ecore#//VariantDiagram/children"/>
      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hintco.ecore#//VariantDiagram/alternative"/>
      <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute hintco.ecore#//VariantDiagram/name"
          get="&lt;%java.lang.String%> _xblockexpression = null;&#xA;{&#xA;&#x9;&lt;%java.lang.String%> _identifier = this.getIdentifier();&#xA;&#x9;final &lt;%java.lang.String%> prefix = (_identifier + &quot;_&quot;);&#xA;&#x9;&lt;%java.lang.String%> _xifexpression = null;&#xA;&#x9;&lt;%ua.ansymo.hintco.Alternative%> _alternative = this.getAlternative();&#xA;&#x9;boolean _tripleNotEquals = (_alternative != null);&#xA;&#x9;if (_tripleNotEquals)&#xA;&#x9;{&#xA;&#x9;&#x9;&lt;%java.lang.String%> _xifexpression_1 = null;&#xA;&#x9;&#x9;&lt;%ua.ansymo.hintco.Alternative%> _alternative_1 = this.getAlternative();&#xA;&#x9;&#x9;if ((_alternative_1 instanceof &lt;%ua.ansymo.hintco.RootCandidateScenario%>))&#xA;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;&lt;%ua.ansymo.hintco.Alternative%> _alternative_2 = this.getAlternative();&#xA;&#x9;&#x9;&#x9;&lt;%java.lang.String%> _name = ((&lt;%ua.ansymo.hintco.RootCandidateScenario%>) _alternative_2).getName();&#xA;&#x9;&#x9;&#x9;_xifexpression_1 = ((prefix + &quot;sce &quot;) + _name);&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;else&#xA;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;&lt;%java.lang.String%> _xifexpression_2 = null;&#xA;&#x9;&#x9;&#x9;&lt;%ua.ansymo.hintco.Alternative%> _alternative_3 = this.getAlternative();&#xA;&#x9;&#x9;&#x9;if ((_alternative_3 instanceof &lt;%ua.ansymo.hintco.XorPortAdaptation%>))&#xA;&#x9;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;&#x9;&lt;%ua.ansymo.hintco.Alternative%> _alternative_4 = this.getAlternative();&#xA;&#x9;&#x9;&#x9;&#x9;&lt;%java.lang.String%> _name_1 = ((&lt;%ua.ansymo.hintco.XorPortAdaptation%>) _alternative_4).getName();&#xA;&#x9;&#x9;&#x9;&#x9;_xifexpression_2 = ((prefix + &quot;xor &quot;) + _name_1);&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;&#x9;&lt;%java.lang.String%> _xifexpression_3 = null;&#xA;&#x9;&#x9;&#x9;&#x9;&lt;%ua.ansymo.hintco.Alternative%> _alternative_5 = this.getAlternative();&#xA;&#x9;&#x9;&#x9;&#x9;if ((_alternative_5 instanceof &lt;%ua.ansymo.hintco.XorUnitAdaptation%>))&#xA;&#x9;&#x9;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;%ua.ansymo.hintco.Alternative%> _alternative_6 = this.getAlternative();&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;%java.lang.String%> _name_2 = ((&lt;%ua.ansymo.hintco.XorUnitAdaptation%>) _alternative_6).getName();&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;_xifexpression_3 = ((prefix + &quot;xor &quot;) + _name_2);&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;%java.lang.String%> _xifexpression_4 = null;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;%ua.ansymo.hintco.Alternative%> _alternative_7 = this.getAlternative();&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;if ((_alternative_7 instanceof &lt;%ua.ansymo.hintco.ExtrapolationAdaptation%>))&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;%ua.ansymo.hintco.Alternative%> _alternative_8 = this.getAlternative();&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;%java.lang.String%> _name_3 = ((&lt;%ua.ansymo.hintco.ExtrapolationAdaptation%>) _alternative_8).getName();&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;_xifexpression_4 = ((prefix + &quot;extra &quot;) + _name_3);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;%java.lang.String%> _xifexpression_5 = null;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;%ua.ansymo.hintco.Alternative%> _alternative_9 = this.getAlternative();&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if ((_alternative_9 instanceof &lt;%ua.ansymo.hintco.InterpolationAdaptation%>))&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;%ua.ansymo.hintco.Alternative%> _alternative_10 = this.getAlternative();&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;%java.lang.String%> _name_4 = ((&lt;%ua.ansymo.hintco.InterpolationAdaptation%>) _alternative_10).getName();&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;_xifexpression_5 = ((prefix + &quot;intra &quot;) + _name_4);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;_xifexpression_5 = (prefix + &quot;implement&quot;);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;_xifexpression_4 = _xifexpression_5;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;_xifexpression_3 = _xifexpression_4;&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;_xifexpression_2 = _xifexpression_3;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;_xifexpression_1 = _xifexpression_2;&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;_xifexpression = _xifexpression_1;&#xA;&#x9;}&#xA;&#x9;else&#xA;&#x9;{&#xA;&#x9;&#x9;_xifexpression = (prefix + &quot;root&quot;);&#xA;&#x9;}&#xA;&#x9;_xblockexpression = _xifexpression;&#xA;}&#xA;return _xblockexpression;"/>
    </genClasses>
    <genClasses image="false" ecoreClass="hintco.ecore#//PrecedenceNode">
      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hintco.ecore#//PrecedenceNode/precedes"/>
      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hintco.ecore#//PrecedenceNode/succeeds"/>
      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hintco.ecore#//PrecedenceNode/before"/>
      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hintco.ecore#//PrecedenceNode/after"/>
    </genClasses>
    <genClasses ecoreClass="hintco.ecore#//RootCandidateScenario">
      <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute hintco.ecore#//RootCandidateScenario/name"
          get="&lt;%java.lang.String%> _identifier = this.getIdentifier();&#xA;&lt;%java.lang.String%> _plus = (_identifier + &quot;(w=&quot;);&#xA;int _weight = this.getWeight();&#xA;&lt;%java.lang.String%> _plus_1 = (_plus + &lt;%java.lang.Integer%>.valueOf(_weight));&#xA;return (_plus_1 + &quot;)&quot;);"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hintco.ecore#//RootCandidateScenario/stopTime"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hintco.ecore#//RootCandidateScenario/stepSize"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hintco.ecore#//RootCandidateScenario/outputStepSize"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hintco.ecore#//RootCandidateScenario/maxInitIterations"/>
    </genClasses>
    <genClasses image="false" ecoreClass="hintco.ecore#//Scenario">
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hintco.ecore#//Scenario/cosimunits"/>
    </genClasses>
    <genClasses ecoreClass="hintco.ecore#//HierarchicalCosimUnit">
      <genOperations ecoreOperation="hintco.ecore#//HierarchicalCosimUnit/valid" body="final &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%ua.ansymo.hintco.PortInstance%>, &lt;%java.lang.Boolean%>> _function = new &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%ua.ansymo.hintco.PortInstance%>, &lt;%java.lang.Boolean%>>()&#xA;{&#xA;&#x9;public &lt;%java.lang.Boolean%> apply(final &lt;%ua.ansymo.hintco.PortInstance%> p)&#xA;&#x9;{&#xA;&#x9;&#x9;return &lt;%java.lang.Boolean%>.valueOf((p instanceof &lt;%ua.ansymo.hintco.HierarchicalUnitPort%>));&#xA;&#x9;}&#xA;};&#xA;return &lt;%org.eclipse.xtext.xbase.lib.IterableExtensions%>.&lt;&lt;%ua.ansymo.hintco.PortInstance%>>forall(this.getPorts(), _function);"/>
    </genClasses>
    <genClasses ecoreClass="hintco.ecore#//CosimUnitDeclaration">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hintco.ecore#//CosimUnitDeclaration/path"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hintco.ecore#//CosimUnitDeclaration/guid"/>
    </genClasses>
    <genClasses image="false" ecoreClass="hintco.ecore#//UnitInstance">
      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hintco.ecore#//UnitInstance/scenario"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hintco.ecore#//UnitInstance/adaptation"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hintco.ecore#//UnitInstance/ports"/>
      <genOperations ecoreOperation="hintco.ecore#//UnitInstance/selectedAdaptations"
          body="&lt;%ua.ansymo.hintco.UnitAdaptation%> _adaptation = this.getAdaptation();&#xA;boolean _tripleEquals = (_adaptation == null);&#xA;if (_tripleEquals)&#xA;{&#xA;&#x9;return new &lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%ua.ansymo.hintco.UnitAdaptation%>>(java.util.Collections.&lt;&lt;%ua.ansymo.hintco.UnitAdaptation%>>unmodifiableList(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%ua.ansymo.hintco.UnitAdaptation%>>newArrayList()));&#xA;}&#xA;boolean _isSelected = this.getAdaptation().isSelected();&#xA;if (_isSelected)&#xA;{&#xA;&#x9;&lt;%ua.ansymo.hintco.UnitAdaptation%> _adaptation_1 = this.getAdaptation();&#xA;&#x9;if ((_adaptation_1 instanceof &lt;%ua.ansymo.hintco.DecompositionUnitAdaptation%>))&#xA;&#x9;{&#xA;&#x9;&#x9;&lt;%ua.ansymo.hintco.UnitAdaptation%> _adaptation_2 = this.getAdaptation();&#xA;&#x9;&#x9;return ((&lt;%ua.ansymo.hintco.DecompositionUnitAdaptation%>) _adaptation_2).selectedAdaptations();&#xA;&#x9;}&#xA;&#x9;&lt;%ua.ansymo.hintco.UnitAdaptation%> _adaptation_3 = this.getAdaptation();&#xA;&#x9;return new &lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%ua.ansymo.hintco.UnitAdaptation%>>(java.util.Collections.&lt;&lt;%ua.ansymo.hintco.UnitAdaptation%>>unmodifiableList(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%ua.ansymo.hintco.UnitAdaptation%>>newArrayList(_adaptation_3)));&#xA;}&#xA;return new &lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%ua.ansymo.hintco.UnitAdaptation%>>(java.util.Collections.&lt;&lt;%ua.ansymo.hintco.UnitAdaptation%>>unmodifiableList(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%ua.ansymo.hintco.UnitAdaptation%>>newArrayList()));"/>
      <genOperations ecoreOperation="hintco.ecore#//UnitInstance/getOutputPorts" body="final &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%ua.ansymo.hintco.OutputPortInstance%>, &lt;%java.lang.Boolean%>> _function = new &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%ua.ansymo.hintco.OutputPortInstance%>, &lt;%java.lang.Boolean%>>()&#xA;{&#xA;&#x9;public &lt;%java.lang.Boolean%> apply(final &lt;%ua.ansymo.hintco.OutputPortInstance%> it)&#xA;&#x9;{&#xA;&#x9;&#x9;boolean _isInput = it.isInput();&#xA;&#x9;&#x9;return &lt;%java.lang.Boolean%>.valueOf((!_isInput));&#xA;&#x9;}&#xA;};&#xA;return &lt;%org.eclipse.emf.common.util.ECollections%>.&lt;&lt;%ua.ansymo.hintco.OutputPortInstance%>>toEList(&lt;%org.eclipse.xtext.xbase.lib.IterableExtensions%>.&lt;&lt;%ua.ansymo.hintco.OutputPortInstance%>>filter(&lt;%com.google.common.collect.Iterables%>.&lt;&lt;%ua.ansymo.hintco.OutputPortInstance%>>filter(this.getPorts(), &lt;%ua.ansymo.hintco.OutputPortInstance%>.class), _function));"/>
      <genOperations ecoreOperation="hintco.ecore#//UnitInstance/getInputPorts" body="final &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%ua.ansymo.hintco.InputPortInstance%>, &lt;%java.lang.Boolean%>> _function = new &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%ua.ansymo.hintco.InputPortInstance%>, &lt;%java.lang.Boolean%>>()&#xA;{&#xA;&#x9;public &lt;%java.lang.Boolean%> apply(final &lt;%ua.ansymo.hintco.InputPortInstance%> it)&#xA;&#x9;{&#xA;&#x9;&#x9;return &lt;%java.lang.Boolean%>.valueOf(it.isInput());&#xA;&#x9;}&#xA;};&#xA;return &lt;%org.eclipse.emf.common.util.ECollections%>.&lt;&lt;%ua.ansymo.hintco.InputPortInstance%>>toEList(&lt;%org.eclipse.xtext.xbase.lib.IterableExtensions%>.&lt;&lt;%ua.ansymo.hintco.InputPortInstance%>>filter(&lt;%com.google.common.collect.Iterables%>.&lt;&lt;%ua.ansymo.hintco.InputPortInstance%>>filter(this.getPorts(), &lt;%ua.ansymo.hintco.InputPortInstance%>.class), _function));"/>
      <genOperations ecoreOperation="hintco.ecore#//UnitInstance/toString" body="return this.getIdentifier();"/>
    </genClasses>
    <genClasses ecoreClass="hintco.ecore#//CosimUnitInstance">
      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hintco.ecore#//CosimUnitInstance/declaration"/>
    </genClasses>
    <genClasses image="false" ecoreClass="hintco.ecore#//PortInstance">
      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hintco.ecore#//PortInstance/unit"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hintco.ecore#//PortInstance/adaptation"/>
      <genOperations ecoreOperation="hintco.ecore#//PortInstance/selectedAdaptations"
          body="&lt;%ua.ansymo.hintco.PortAdaptation%> _adaptation = this.getAdaptation();&#xA;boolean _tripleEquals = (_adaptation == null);&#xA;if (_tripleEquals)&#xA;{&#xA;&#x9;return new &lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%ua.ansymo.hintco.PortAdaptation%>>(java.util.Collections.&lt;&lt;%ua.ansymo.hintco.PortAdaptation%>>unmodifiableList(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%ua.ansymo.hintco.PortAdaptation%>>newArrayList()));&#xA;}&#xA;boolean _isSelected = this.getAdaptation().isSelected();&#xA;if (_isSelected)&#xA;{&#xA;&#x9;&lt;%ua.ansymo.hintco.PortAdaptation%> _adaptation_1 = this.getAdaptation();&#xA;&#x9;if ((_adaptation_1 instanceof &lt;%ua.ansymo.hintco.DecompositionPortAdaptation%>))&#xA;&#x9;{&#xA;&#x9;&#x9;&lt;%ua.ansymo.hintco.PortAdaptation%> _adaptation_2 = this.getAdaptation();&#xA;&#x9;&#x9;return ((&lt;%ua.ansymo.hintco.DecompositionPortAdaptation%>) _adaptation_2).selectedAdaptations();&#xA;&#x9;}&#xA;&#x9;&lt;%ua.ansymo.hintco.PortAdaptation%> _adaptation_3 = this.getAdaptation();&#xA;&#x9;return new &lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%ua.ansymo.hintco.PortAdaptation%>>(java.util.Collections.&lt;&lt;%ua.ansymo.hintco.PortAdaptation%>>unmodifiableList(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%ua.ansymo.hintco.PortAdaptation%>>newArrayList(_adaptation_3)));&#xA;}&#xA;return new &lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%ua.ansymo.hintco.PortAdaptation%>>(java.util.Collections.&lt;&lt;%ua.ansymo.hintco.PortAdaptation%>>unmodifiableList(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%ua.ansymo.hintco.PortAdaptation%>>newArrayList()));"/>
      <genOperations ecoreOperation="hintco.ecore#//PortInstance/isInput" body="return false;"/>
      <genOperations ecoreOperation="hintco.ecore#//PortInstance/getsValueFrom" body="return false;">
        <genParameters ecoreParameter="hintco.ecore#//PortInstance/getsValueFrom/p"/>
      </genOperations>
      <genOperations ecoreOperation="hintco.ecore#//PortInstance/toString" body="&lt;%java.lang.String%> _string = this.getUnit().toString();&#xA;&lt;%java.lang.String%> _plus = (_string + &quot;.&quot;);&#xA;&lt;%java.lang.String%> _identifier = this.getIdentifier();&#xA;return (_plus + _identifier);"/>
    </genClasses>
    <genClasses ecoreClass="hintco.ecore#//HierarchicalUnitPort">
      <genOperations ecoreOperation="hintco.ecore#//HierarchicalUnitPort/isInput"
          body="boolean _xblockexpression = false;&#xA;{&#xA;&#x9;final &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%ua.ansymo.hintco.OutputPortInstance%>, &lt;%java.lang.Boolean%>> _function = new &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%ua.ansymo.hintco.OutputPortInstance%>, &lt;%java.lang.Boolean%>>()&#xA;&#x9;{&#xA;&#x9;&#x9;public &lt;%java.lang.Boolean%> apply(final &lt;%ua.ansymo.hintco.OutputPortInstance%> p)&#xA;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;&lt;%ua.ansymo.hintco.OutputPortInstance%> _valueFrom = &lt;%this%>.getValueFrom();&#xA;&#x9;&#x9;&#x9;return &lt;%java.lang.Boolean%>.valueOf(&lt;%com.google.common.base.Objects%>.equal(p, _valueFrom));&#xA;&#x9;&#x9;}&#xA;&#x9;};&#xA;&#x9;boolean _exists = &lt;%org.eclipse.xtext.xbase.lib.IteratorExtensions%>.&lt;&lt;%ua.ansymo.hintco.OutputPortInstance%>>exists(&lt;%com.google.common.collect.Iterators%>.&lt;&lt;%ua.ansymo.hintco.OutputPortInstance%>>filter(this.getUnit().eAllContents(), &lt;%ua.ansymo.hintco.OutputPortInstance%>.class), _function);&#xA;&#x9;final boolean auxIsInput = (!_exists);&#xA;&#x9;final boolean auxAltIsInput = this.altIsInput();&#xA;&#x9;if (((auxIsInput &amp;&amp; (!auxAltIsInput)) || ((!auxIsInput) &amp;&amp; auxAltIsInput)))&#xA;&#x9;{&#xA;&#x9;&#x9;throw new &lt;%java.lang.RuntimeException%>(&quot;Something wrong with the implementation of isInput&quot;);&#xA;&#x9;}&#xA;&#x9;_xblockexpression = auxIsInput;&#xA;}&#xA;return _xblockexpression;"/>
      <genOperations ecoreOperation="hintco.ecore#//HierarchicalUnitPort/altIsInput"
          body="boolean _xifexpression = false;&#xA;boolean _isEmpty = this.getValueTo().isEmpty();&#xA;if (_isEmpty)&#xA;{&#xA;&#x9;_xifexpression = false;&#xA;}&#xA;else&#xA;{&#xA;&#x9;final &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%ua.ansymo.hintco.InputPortInstance%>, &lt;%java.lang.Boolean%>> _function = new &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%ua.ansymo.hintco.InputPortInstance%>, &lt;%java.lang.Boolean%>>()&#xA;&#x9;{&#xA;&#x9;&#x9;public &lt;%java.lang.Boolean%> apply(final &lt;%ua.ansymo.hintco.InputPortInstance%> trgP)&#xA;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;boolean _xifexpression = false;&#xA;&#x9;&#x9;&#x9;&lt;%ua.ansymo.hintco.UnitInstance%> _unit = trgP.getUnit();&#xA;&#x9;&#x9;&#x9;&lt;%ua.ansymo.hintco.UnitInstance%> _unit_1 = &lt;%this%>.getUnit();&#xA;&#x9;&#x9;&#x9;boolean _tripleEquals = (_unit == _unit_1);&#xA;&#x9;&#x9;&#x9;if (_tripleEquals)&#xA;&#x9;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;&#x9;_xifexpression = false;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;&#x9;boolean _xblockexpression = false;&#xA;&#x9;&#x9;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;final &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%ua.ansymo.hintco.InputPortInstance%>, &lt;%java.lang.Boolean%>> _function = new &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%ua.ansymo.hintco.InputPortInstance%>, &lt;%java.lang.Boolean%>>()&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;public &lt;%java.lang.Boolean%> apply(final &lt;%ua.ansymo.hintco.InputPortInstance%> ip)&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;return &lt;%java.lang.Boolean%>.valueOf((ip == trgP));&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;};&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;final boolean internal = &lt;%org.eclipse.xtext.xbase.lib.IteratorExtensions%>.&lt;&lt;%ua.ansymo.hintco.InputPortInstance%>>exists(&lt;%com.google.common.collect.Iterators%>.&lt;&lt;%ua.ansymo.hintco.InputPortInstance%>>filter(&lt;%this%>.getUnit().eAllContents(), &lt;%ua.ansymo.hintco.InputPortInstance%>.class), _function);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;boolean _xifexpression_1 = false;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;if ((!internal))&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;_xifexpression_1 = false;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;boolean _xifexpression_2 = false;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if ((trgP instanceof &lt;%ua.ansymo.hintco.HierarchicalUnitPort%>))&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;_xifexpression_2 = ((&lt;%ua.ansymo.hintco.HierarchicalUnitPort%>)trgP).altIsInput();&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;_xifexpression_2 = true;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;_xifexpression_1 = _xifexpression_2;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;_xblockexpression = _xifexpression_1;&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;_xifexpression = _xblockexpression;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;return &lt;%java.lang.Boolean%>.valueOf(_xifexpression);&#xA;&#x9;&#x9;}&#xA;&#x9;};&#xA;&#x9;_xifexpression = &lt;%org.eclipse.xtext.xbase.lib.IterableExtensions%>.&lt;&lt;%ua.ansymo.hintco.InputPortInstance%>>forall(this.getValueTo(), _function);&#xA;}&#xA;return _xifexpression;"/>
    </genClasses>
    <genClasses ecoreClass="hintco.ecore#//InputPortInstance">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hintco.ecore#//InputPortInstance/extrapolationCost"/>
      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hintco.ecore#//InputPortInstance/internalValueTo"/>
      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hintco.ecore#//InputPortInstance/valueFrom"/>
      <genOperations ecoreOperation="hintco.ecore#//InputPortInstance/getRealValueFrom"
          body="&lt;%ua.ansymo.hintco.OutputPortInstance%> _xifexpression = null;&#xA;&lt;%ua.ansymo.hintco.OutputPortInstance%> _valueFrom = this.getValueFrom();&#xA;if ((_valueFrom instanceof &lt;%ua.ansymo.hintco.HierarchicalUnitPort%>))&#xA;{&#xA;&#x9;&lt;%ua.ansymo.hintco.OutputPortInstance%> _valueFrom_1 = this.getValueFrom();&#xA;&#x9;_xifexpression = ((&lt;%ua.ansymo.hintco.HierarchicalUnitPort%>) _valueFrom_1).getRealValueFrom();&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = this.getValueFrom();&#xA;}&#xA;return _xifexpression;"/>
      <genOperations ecoreOperation="hintco.ecore#//InputPortInstance/getsValueFrom"
          body="&lt;%ua.ansymo.hintco.OutputPortInstance%> _valueFrom = this.getValueFrom();&#xA;boolean _tripleEquals = (_valueFrom == p);&#xA;if (_tripleEquals)&#xA;{&#xA;&#x9;return true;&#xA;}&#xA;else&#xA;{&#xA;&#x9;&lt;%ua.ansymo.hintco.OutputPortInstance%> _valueFrom_1 = this.getValueFrom();&#xA;&#x9;if ((_valueFrom_1 instanceof &lt;%ua.ansymo.hintco.InputPortInstance%>))&#xA;&#x9;{&#xA;&#x9;&#x9;&lt;%ua.ansymo.hintco.OutputPortInstance%> _valueFrom_2 = this.getValueFrom();&#xA;&#x9;&#x9;return ((&lt;%ua.ansymo.hintco.InputPortInstance%>) _valueFrom_2).getsValueFrom(p);&#xA;&#x9;}&#xA;&#x9;else&#xA;&#x9;{&#xA;&#x9;&#x9;return false;&#xA;&#x9;}&#xA;}">
        <genParameters ecoreParameter="hintco.ecore#//InputPortInstance/getsValueFrom/p"/>
      </genOperations>
      <genOperations ecoreOperation="hintco.ecore#//InputPortInstance/isInput" body="return true;"/>
    </genClasses>
    <genClasses ecoreClass="hintco.ecore#//OutputPortInstance">
      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hintco.ecore#//OutputPortInstance/valueTo"/>
      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hintco.ecore#//OutputPortInstance/internalValueFrom"/>
      <genOperations ecoreOperation="hintco.ecore#//OutputPortInstance/isInput" body="return false;"/>
    </genClasses>
    <genClasses image="false" ecoreClass="hintco.ecore#//Alternative">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hintco.ecore#//Alternative/weight"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hintco.ecore#//Alternative/selected"/>
      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hintco.ecore#//Alternative/implies"/>
    </genClasses>
    <genClasses image="false" ecoreClass="hintco.ecore#//Adaptation"/>
    <genClasses image="false" ecoreClass="hintco.ecore#//PortAdaptation">
      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hintco.ecore#//PortAdaptation/port"/>
      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hintco.ecore#//PortAdaptation/parent"/>
      <genOperations ecoreOperation="hintco.ecore#//PortAdaptation/adapted" body="&lt;%ua.ansymo.hintco.PortInstance%> _port = this.getPort();&#xA;boolean _tripleNotEquals = (_port != null);&#xA;if (_tripleNotEquals)&#xA;{&#xA;&#x9;return this.getPort();&#xA;}&#xA;&lt;%ua.ansymo.hintco.DecompositionPortAdaptation%> _parent = this.getParent();&#xA;boolean _tripleEquals = (_parent == null);&#xA;if (_tripleEquals)&#xA;{&#xA;&#x9;return null;&#xA;}&#xA;return this.getParent().adapted();"/>
    </genClasses>
    <genClasses image="false" ecoreClass="hintco.ecore#//DecompositionPortAdaptation">
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hintco.ecore#//DecompositionPortAdaptation/children"/>
      <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute hintco.ecore#//DecompositionPortAdaptation/name"
          get="int _weight = this.getWeight();&#xA;&lt;%java.lang.String%> _plus = (&quot;(w=&quot; + &lt;%java.lang.Integer%>.valueOf(_weight));&#xA;return (_plus + &quot;)&quot;);"/>
      <genOperations ecoreOperation="hintco.ecore#//DecompositionPortAdaptation/selectedAdaptations"
          body="int _size = this.getChildren().size();&#xA;final &lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%ua.ansymo.hintco.PortAdaptation%>> res = new &lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%ua.ansymo.hintco.PortAdaptation%>>(_size);&#xA;final &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%ua.ansymo.hintco.PortAdaptation%>, &lt;%java.lang.Boolean%>> _function = new &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%ua.ansymo.hintco.PortAdaptation%>, &lt;%java.lang.Boolean%>>()&#xA;{&#xA;&#x9;public &lt;%java.lang.Boolean%> apply(final &lt;%ua.ansymo.hintco.PortAdaptation%> a)&#xA;&#x9;{&#xA;&#x9;&#x9;return &lt;%java.lang.Boolean%>.valueOf(a.isSelected());&#xA;&#x9;}&#xA;};&#xA;&lt;%java.lang.Iterable%>&lt;&lt;%ua.ansymo.hintco.PortAdaptation%>> _filter = &lt;%org.eclipse.xtext.xbase.lib.IterableExtensions%>.&lt;&lt;%ua.ansymo.hintco.PortAdaptation%>>filter(this.getChildren(), _function);&#xA;for (final &lt;%ua.ansymo.hintco.PortAdaptation%> c : _filter)&#xA;{&#xA;&#x9;if ((c instanceof &lt;%ua.ansymo.hintco.DecompositionPortAdaptation%>))&#xA;&#x9;{&#xA;&#x9;&#x9;res.addAll(((&lt;%ua.ansymo.hintco.DecompositionPortAdaptation%>)c).selectedAdaptations());&#xA;&#x9;}&#xA;&#x9;else&#xA;&#x9;{&#xA;&#x9;&#x9;res.add(c);&#xA;&#x9;}&#xA;}&#xA;return res;"/>
    </genClasses>
    <genClasses image="false" ecoreClass="hintco.ecore#//UnitAdaptation">
      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hintco.ecore#//UnitAdaptation/unit"/>
      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hintco.ecore#//UnitAdaptation/parent"/>
      <genOperations ecoreOperation="hintco.ecore#//UnitAdaptation/adapted" body="&lt;%ua.ansymo.hintco.UnitInstance%> _unit = this.getUnit();&#xA;boolean _tripleNotEquals = (_unit != null);&#xA;if (_tripleNotEquals)&#xA;{&#xA;&#x9;return this.getUnit();&#xA;}&#xA;&lt;%ua.ansymo.hintco.DecompositionUnitAdaptation%> _parent = this.getParent();&#xA;boolean _tripleEquals = (_parent == null);&#xA;if (_tripleEquals)&#xA;{&#xA;&#x9;return null;&#xA;}&#xA;return this.getParent().adapted();"/>
    </genClasses>
    <genClasses image="false" ecoreClass="hintco.ecore#//DecompositionUnitAdaptation">
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hintco.ecore#//DecompositionUnitAdaptation/children"/>
      <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute hintco.ecore#//DecompositionUnitAdaptation/name"
          get="int _weight = this.getWeight();&#xA;&lt;%java.lang.String%> _plus = (&quot;(w=&quot; + &lt;%java.lang.Integer%>.valueOf(_weight));&#xA;return (_plus + &quot;)&quot;);"/>
      <genOperations ecoreOperation="hintco.ecore#//DecompositionUnitAdaptation/selectedAdaptations"
          body="int _size = this.getChildren().size();&#xA;final &lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%ua.ansymo.hintco.UnitAdaptation%>> res = new &lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%ua.ansymo.hintco.UnitAdaptation%>>(_size);&#xA;final &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%ua.ansymo.hintco.UnitAdaptation%>, &lt;%java.lang.Boolean%>> _function = new &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%ua.ansymo.hintco.UnitAdaptation%>, &lt;%java.lang.Boolean%>>()&#xA;{&#xA;&#x9;public &lt;%java.lang.Boolean%> apply(final &lt;%ua.ansymo.hintco.UnitAdaptation%> a)&#xA;&#x9;{&#xA;&#x9;&#x9;return &lt;%java.lang.Boolean%>.valueOf(a.isSelected());&#xA;&#x9;}&#xA;};&#xA;&lt;%java.lang.Iterable%>&lt;&lt;%ua.ansymo.hintco.UnitAdaptation%>> _filter = &lt;%org.eclipse.xtext.xbase.lib.IterableExtensions%>.&lt;&lt;%ua.ansymo.hintco.UnitAdaptation%>>filter(this.getChildren(), _function);&#xA;for (final &lt;%ua.ansymo.hintco.UnitAdaptation%> c : _filter)&#xA;{&#xA;&#x9;if ((c instanceof &lt;%ua.ansymo.hintco.DecompositionUnitAdaptation%>))&#xA;&#x9;{&#xA;&#x9;&#x9;res.addAll(((&lt;%ua.ansymo.hintco.DecompositionUnitAdaptation%>)c).selectedAdaptations());&#xA;&#x9;}&#xA;&#x9;else&#xA;&#x9;{&#xA;&#x9;&#x9;res.add(c);&#xA;&#x9;}&#xA;}&#xA;return res;"/>
    </genClasses>
    <genClasses ecoreClass="hintco.ecore#//XorUnitAdaptation"/>
    <genClasses ecoreClass="hintco.ecore#//XorPortAdaptation"/>
    <genClasses image="false" ecoreClass="hintco.ecore#//ApproximationAdaptation">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hintco.ecore#//ApproximationAdaptation/order"/>
    </genClasses>
    <genClasses ecoreClass="hintco.ecore#//MultiRateAdaptation">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hintco.ecore#//MultiRateAdaptation/rate"/>
      <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute hintco.ecore#//MultiRateAdaptation/name"
          get="int _rate = this.getRate();&#xA;&lt;%java.lang.String%> _plus = (&lt;%java.lang.Integer%>.valueOf(_rate) + &quot;(w=&quot;);&#xA;int _weight = this.getWeight();&#xA;&lt;%java.lang.String%> _plus_1 = (_plus + &lt;%java.lang.Integer%>.valueOf(_weight));&#xA;return (_plus_1 + &quot;)&quot;);"/>
    </genClasses>
    <genClasses ecoreClass="hintco.ecore#//PowerBondAdaptation">
      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hintco.ecore#//PowerBondAdaptation/effort"/>
      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hintco.ecore#//PowerBondAdaptation/flow"/>
      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hintco.ecore#//PowerBondAdaptation/pOut"/>
      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hintco.ecore#//PowerBondAdaptation/pIn"/>
      <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute hintco.ecore#//PowerBondAdaptation/name"
          get="&lt;%java.lang.String%> _xifexpression = null;&#xA;if (((this.getEffort() != null) &amp;&amp; (this.getFlow() != null)))&#xA;{&#xA;&#x9;&lt;%java.lang.String%> _identifier = this.getEffort().getIdentifier();&#xA;&#x9;&lt;%java.lang.String%> _plus = (&quot;PBond_&quot; + _identifier);&#xA;&#x9;&lt;%java.lang.String%> _plus_1 = (_plus + &quot;_&quot;);&#xA;&#x9;&lt;%java.lang.String%> _identifier_1 = this.getFlow().getIdentifier();&#xA;&#x9;&lt;%java.lang.String%> _plus_2 = (_plus_1 + _identifier_1);&#xA;&#x9;&lt;%java.lang.String%> _plus_3 = (_plus_2 + &quot;(w=&quot;);&#xA;&#x9;int _weight = this.getWeight();&#xA;&#x9;&lt;%java.lang.String%> _plus_4 = (_plus_3 + &lt;%java.lang.Integer%>.valueOf(_weight));&#xA;&#x9;_xifexpression = (_plus_4 + &quot;)&quot;);&#xA;}&#xA;else&#xA;{&#xA;&#x9;int _weight_1 = this.getWeight();&#xA;&#x9;&lt;%java.lang.String%> _plus_5 = (&quot;PBond(w=&quot; + &lt;%java.lang.Integer%>.valueOf(_weight_1));&#xA;&#x9;_xifexpression = (_plus_5 + &quot;)&quot;);&#xA;}&#xA;return _xifexpression;"/>
      <genOperations ecoreOperation="hintco.ecore#//PowerBondAdaptation/getDual" body="&lt;%ua.ansymo.hintco.PowerBondAdaptation%> _xblockexpression = null;&#xA;{&#xA;&#x9;&lt;%ua.ansymo.hintco.PowerBondAdaptation%> res = null;&#xA;&#x9;if (((this.getEffort() instanceof &lt;%ua.ansymo.hintco.InputPortInstance%>) &amp;&amp; (this.getFlow() instanceof &lt;%ua.ansymo.hintco.OutputPortInstance%>)))&#xA;&#x9;{&#xA;&#x9;&#x9;final &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%ua.ansymo.hintco.UnitInstance%>, &lt;%java.lang.Iterable%>&lt;&lt;%ua.ansymo.hintco.PowerBondAdaptation%>>> _function = new &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%ua.ansymo.hintco.UnitInstance%>, &lt;%java.lang.Iterable%>&lt;&lt;%ua.ansymo.hintco.PowerBondAdaptation%>>>()&#xA;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;public &lt;%java.lang.Iterable%>&lt;&lt;%ua.ansymo.hintco.PowerBondAdaptation%>> apply(final &lt;%ua.ansymo.hintco.UnitInstance%> u)&#xA;&#x9;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;&#x9;return &lt;%org.eclipse.xtext.xbase.lib.IteratorExtensions%>.&lt;&lt;%ua.ansymo.hintco.PowerBondAdaptation%>>toIterable(&lt;%com.google.common.collect.Iterators%>.&lt;&lt;%ua.ansymo.hintco.PowerBondAdaptation%>>filter(u.eAllContents(), &lt;%ua.ansymo.hintco.PowerBondAdaptation%>.class));&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;};&#xA;&#x9;&#x9;final &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%ua.ansymo.hintco.PowerBondAdaptation%>, &lt;%java.lang.Boolean%>> _function_1 = new &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%ua.ansymo.hintco.PowerBondAdaptation%>, &lt;%java.lang.Boolean%>>()&#xA;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;public &lt;%java.lang.Boolean%> apply(final &lt;%ua.ansymo.hintco.PowerBondAdaptation%> a)&#xA;&#x9;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;&#x9;return &lt;%java.lang.Boolean%>.valueOf(((a.getEffort() instanceof &lt;%ua.ansymo.hintco.OutputPortInstance%>) &amp;&amp; (a.getFlow() instanceof &lt;%ua.ansymo.hintco.InputPortInstance%>)));&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;};&#xA;&#x9;&#x9;final &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%ua.ansymo.hintco.PowerBondAdaptation%>, &lt;%java.lang.Boolean%>> _function_2 = new &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%ua.ansymo.hintco.PowerBondAdaptation%>, &lt;%java.lang.Boolean%>>()&#xA;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;public &lt;%java.lang.Boolean%> apply(final &lt;%ua.ansymo.hintco.PowerBondAdaptation%> a)&#xA;&#x9;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;&#x9;return &lt;%java.lang.Boolean%>.valueOf((((&lt;%ua.ansymo.hintco.OutputPortInstance%>) a.getEffort()).getValueTo().contains(&lt;%this%>.getEffort()) &amp;&amp; (((&lt;%ua.ansymo.hintco.InputPortInstance%>) a.getFlow()).getValueFrom() == &lt;%this%>.getFlow())));&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;};&#xA;&#x9;&#x9;res = &lt;%org.eclipse.xtext.xbase.lib.IterableExtensions%>.&lt;&lt;%ua.ansymo.hintco.PowerBondAdaptation%>>findFirst(&lt;%org.eclipse.xtext.xbase.lib.IterableExtensions%>.&lt;&lt;%ua.ansymo.hintco.PowerBondAdaptation%>>filter(&lt;%org.eclipse.xtext.xbase.lib.IterableExtensions%>.&lt;&lt;%ua.ansymo.hintco.UnitInstance%>, &lt;%ua.ansymo.hintco.PowerBondAdaptation%>>flatMap(this.getUnit().getScenario().getCosimunits(), _function), _function_1), _function_2);&#xA;&#x9;}&#xA;&#x9;else&#xA;&#x9;{&#xA;&#x9;&#x9;if (((this.getEffort() instanceof &lt;%ua.ansymo.hintco.OutputPortInstance%>) &amp;&amp; (this.getFlow() instanceof &lt;%ua.ansymo.hintco.InputPortInstance%>)))&#xA;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;final &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%ua.ansymo.hintco.UnitInstance%>, &lt;%java.lang.Iterable%>&lt;&lt;%ua.ansymo.hintco.PowerBondAdaptation%>>> _function_3 = new &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%ua.ansymo.hintco.UnitInstance%>, &lt;%java.lang.Iterable%>&lt;&lt;%ua.ansymo.hintco.PowerBondAdaptation%>>>()&#xA;&#x9;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;&#x9;public &lt;%java.lang.Iterable%>&lt;&lt;%ua.ansymo.hintco.PowerBondAdaptation%>> apply(final &lt;%ua.ansymo.hintco.UnitInstance%> u)&#xA;&#x9;&#x9;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;return &lt;%org.eclipse.xtext.xbase.lib.IteratorExtensions%>.&lt;&lt;%ua.ansymo.hintco.PowerBondAdaptation%>>toIterable(&lt;%com.google.common.collect.Iterators%>.&lt;&lt;%ua.ansymo.hintco.PowerBondAdaptation%>>filter(u.eAllContents(), &lt;%ua.ansymo.hintco.PowerBondAdaptation%>.class));&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;};&#xA;&#x9;&#x9;&#x9;final &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%ua.ansymo.hintco.PowerBondAdaptation%>, &lt;%java.lang.Boolean%>> _function_4 = new &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%ua.ansymo.hintco.PowerBondAdaptation%>, &lt;%java.lang.Boolean%>>()&#xA;&#x9;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;&#x9;public &lt;%java.lang.Boolean%> apply(final &lt;%ua.ansymo.hintco.PowerBondAdaptation%> a)&#xA;&#x9;&#x9;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;return &lt;%java.lang.Boolean%>.valueOf(((a.getEffort() instanceof &lt;%ua.ansymo.hintco.InputPortInstance%>) &amp;&amp; (a.getFlow() instanceof &lt;%ua.ansymo.hintco.OutputPortInstance%>)));&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;};&#xA;&#x9;&#x9;&#x9;final &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%ua.ansymo.hintco.PowerBondAdaptation%>, &lt;%java.lang.Boolean%>> _function_5 = new &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%ua.ansymo.hintco.PowerBondAdaptation%>, &lt;%java.lang.Boolean%>>()&#xA;&#x9;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;&#x9;public &lt;%java.lang.Boolean%> apply(final &lt;%ua.ansymo.hintco.PowerBondAdaptation%> a)&#xA;&#x9;&#x9;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;return &lt;%java.lang.Boolean%>.valueOf(((((&lt;%ua.ansymo.hintco.InputPortInstance%>) a.getEffort()).getValueFrom() == &lt;%this%>.getEffort()) &amp;&amp; ((&lt;%ua.ansymo.hintco.OutputPortInstance%>) a.getFlow()).getValueTo().contains(&lt;%this%>.getFlow())));&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;};&#xA;&#x9;&#x9;&#x9;res = &lt;%org.eclipse.xtext.xbase.lib.IterableExtensions%>.&lt;&lt;%ua.ansymo.hintco.PowerBondAdaptation%>>findFirst(&lt;%org.eclipse.xtext.xbase.lib.IterableExtensions%>.&lt;&lt;%ua.ansymo.hintco.PowerBondAdaptation%>>filter(&lt;%org.eclipse.xtext.xbase.lib.IterableExtensions%>.&lt;&lt;%ua.ansymo.hintco.UnitInstance%>, &lt;%ua.ansymo.hintco.PowerBondAdaptation%>>flatMap(this.getUnit().getScenario().getCosimunits(), _function_3), _function_4), _function_5);&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;else&#xA;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;throw new &lt;%java.lang.RuntimeException%>(&quot;Invalid effort and flow in power bond adaptation&quot;);&#xA;&#x9;&#x9;}&#xA;&#x9;}&#xA;&#x9;if ((res == null))&#xA;&#x9;{&#xA;&#x9;&#x9;throw new &lt;%java.lang.RuntimeException%>(&quot;Power bond adaptation has no dual&quot;);&#xA;&#x9;}&#xA;&#x9;_xblockexpression = res;&#xA;}&#xA;return _xblockexpression;"/>
    </genClasses>
    <genClasses ecoreClass="hintco.ecore#//ExtrapolationAdaptation">
      <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute hintco.ecore#//ExtrapolationAdaptation/name"
          get="int _order = this.getOrder();&#xA;&lt;%java.lang.String%> _plus = (&lt;%java.lang.Integer%>.valueOf(_order) + &quot;(w=&quot;);&#xA;int _weight = this.getWeight();&#xA;&lt;%java.lang.String%> _plus_1 = (_plus + &lt;%java.lang.Integer%>.valueOf(_weight));&#xA;return (_plus_1 + &quot;)&quot;);"/>
    </genClasses>
    <genClasses ecoreClass="hintco.ecore#//RollbackInterpolationAdaptation"/>
    <genClasses ecoreClass="hintco.ecore#//InterpolationAdaptation">
      <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute hintco.ecore#//InterpolationAdaptation/name"
          get="int _order = this.getOrder();&#xA;&lt;%java.lang.String%> _plus = (&lt;%java.lang.Integer%>.valueOf(_order) + &quot;(w=&quot;);&#xA;int _weight = this.getWeight();&#xA;&lt;%java.lang.String%> _plus_1 = (_plus + &lt;%java.lang.Integer%>.valueOf(_weight));&#xA;return (_plus_1 + &quot;)&quot;);"/>
    </genClasses>
  </genPackages>
</genmodel:GenModel>
