Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [henshin-dev] Fwd: Re: Bank Account Example update

Hi rok,


I took a look at your example and I have a number of suggestions for you.

First of all, (currently) Henshin does not support multi-parameters, i.e., you cannot use a parameter "sons" to return a List/Array/Collection.. of Persons.
Secondly, the part of your rule that matches sons was defined incorrectly. From the graphical editor point of view you just have set the asterisk * at the wrong location. In order to define multi rules, set the asterisk to the stereotype (see the correct rule attached). Please note the significant change of the rule in the tree-based editor!

I propose the following solutions:

1) Execute the transformation. Calling emfGraph.getRootObjects(), you will receive all objects not contained in a tree. Choose those being an instance of Person.
2) Introduce a new root element in your Persons model, e.g., PersonRegister and modify the rule such that all persons end up being contained in a PersonRegister object. Then, you could just return that instance and persist it without additional coding overhead.
3) Use our trace model, i.e., add the henshin trace model (http:/www.eclipse.org/emf/2011/Henshin/Trace) to your transformation system and use a Trace object as sort of anchor. In detail, create a Trace object and let this object refer to all newly created Persons. Then return this trace object to your code and collect all referred persons.

I would definitely prefer option (2) while all solutions work!!

If you need further help, please drop a message.

Regards,
Stefan

PS: By the way, is "rok" your actual name?
PPS: If you have a minute or two, short statements for what reasons and in what environment you (plan to) use Henshin are highly appreciated...as well as any suggestions for improvement or feature requests....even criticism is welcome in order to improve Henshin.




Am 24.02.2012 19:28, schrieb rok:
Hi,

Great example Stefan, thanks! It helps a lot to get started with exogenous transformation.

I'm now trying to apply an exogenous transformation to the ATL example Families 2 Persons (http://www.eclipse.org/m2m/atl/atlTransformations/Families2Persons/Families2Persons.zip).
So far, I can match the mother and the father from a Family and create the transformed Persons. But I'm having a hard time to manage the sons/daughters, since many of them can be specified in the source files, and each of them shall be transformed into a person. My transformation file (see enclosed file) only matches the last specified son from the source file.

How could I do to match each of the sons/daughter please?

Thanks


On Tue, Feb 21, 2012 at 9:41 PM, Stefan Jurack <henshin.stj@xxxxxxxxx> wrote:
Project "Pimp my exogenous transformation example" finished.

I added a Car Rental scenario in terms of an ecore model to be transformed by the oo2rdb transformation.

Regards,
Stefan


Am 21.02.2012 17:33, schrieb Stefan Jurack:
Hi all,

I added an OO2RDB example to our examples plugin. It makes extensive use of multi rules which turned out to work very well.
The transformation translates ecore models into instances of an rdb.ecore model.

However, the scenario is quite boring and I will pimp that up in short terms.


greetx, Stefan


-------- Original-Nachricht --------
Betreff: Re: [henshin-dev] Bank Account Example update
Datum: Mon, 20 Feb 2012 09:37:53 +0100
Von: Stefan Jurack <henshin.stj@xxxxxxxxx>
Organisation: EMF Henshin Team
An: Henshin developers mailing list <henshin-dev@xxxxxxxxxxx>


Hi all,

I already though of adding the common OO-->RDB scenario as (simple) exogenous transformation example. Therefore, I would create a simple RDB ecore model and let arbitrary Ecore files being transformed into instances of the RDB ecore model.

I will come up with a first version at the end of this week.

@Rok: You may also want to have a look at the ecore2genmodel transformation which actually *is* an exogenous transformation; its rather complex though.

Regards,
Stefan

Am 20.02.2012 07:45, schrieb Christian Krause:
Hi,

we are aware of the issue and it will be fixed in the new version. The new version will be released in March. Thank you for your feed back anyway. We will also add an example of an exogenous transformation soon.

Best regards,
Christian

On 02/19/2012 08:35 PM, rok wrote:
Hello,

I have the following issues when running the Bank Account Example using Henshin SDK 0.8.0 with Eclipse Indigo 3.7.1 on windows 7:
  • Preview is not working
  • Rule deleteAllAccounts is not working

I've updated to Henshin SDK 0.8.1 SNAPSHOT but the Bank Account Example files cannot be opened anymore (NPE).

Enclosed are the files for the Bank Account Example that works under SDK 0.8.1. I hope it helps someone.

Note:

  • I couldn't rename the model file. I think making the Eclipse "refactor" functionality work would be great.
  • Also, a simple working example of an exogenous transformation would be very much appreciated.
Regards,



_______________________________________________
henshin-dev mailing list
henshin-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/henshin-dev



_______________________________________________
henshin-dev mailing list
henshin-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/henshin-dev




_______________________________________________
henshin-dev mailing list
henshin-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/henshin-dev




_______________________________________________
henshin-dev mailing list
henshin-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/henshin-dev

<?xml version="1.0" encoding="UTF-8"?>
<henshin:TransformationSystem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"; xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin"; xmi:id="_nFkSIF7_EeGJQO_W-td3ew" name="transformation system">
  <rules xmi:id="_nFkSIV7_EeGJQO_W-td3ew" name="createFamilyMember">
    <parameters xmi:id="_nFkSJF7_EeGJQO_W-td3ew" name="lastN"/>
    <parameters xmi:id="_nFkSJV7_EeGJQO_W-td3ew" name="firstN"/>
    <lhs xmi:id="_nFkSJl7_EeGJQO_W-td3ew" name="LHS">
      <nodes xmi:id="_nFkSJ17_EeGJQO_W-td3ew">
        <type href="Families.ecore#//Family"/>
        <attributes xmi:id="_nFkSKF7_EeGJQO_W-td3ew" value="lastN">
          <type href="Families.ecore#//Family/lastName"/>
        </attributes>
      </nodes>
    </lhs>
    <rhs xmi:id="_nFkSKV7_EeGJQO_W-td3ew" name="RHS">
      <nodes xmi:id="_nFkSKl7_EeGJQO_W-td3ew" outgoing="_nFkSLl7_EeGJQO_W-td3ew">
        <type href="Families.ecore#//Family"/>
        <attributes xmi:id="_nFkSK17_EeGJQO_W-td3ew" value="lastN">
          <type href="Families.ecore#//Family/lastName"/>
        </attributes>
        <incoming href="#_qtrTEFujEeGOl9O5RdRSdQ"/>
      </nodes>
      <nodes xmi:id="_nFkSLF7_EeGJQO_W-td3ew" name="sons" incoming="_nFkSLl7_EeGJQO_W-td3ew">
        <type href="Families.ecore#//Member"/>
        <attributes xmi:id="_nFkSLV7_EeGJQO_W-td3ew" value="firstN">
          <type href="Families.ecore#//Member/firstName"/>
        </attributes>
      </nodes>
      <edges xmi:id="_nFkSLl7_EeGJQO_W-td3ew" source="_nFkSKl7_EeGJQO_W-td3ew" target="_nFkSLF7_EeGJQO_W-td3ew">
        <type href="Families.ecore#//Family/sons"/>
      </edges>
    </rhs>
    <mappings xmi:id="_nFk5MF7_EeGJQO_W-td3ew" origin="_nFkSJ17_EeGJQO_W-td3ew" image="_nFkSKl7_EeGJQO_W-td3ew"/>
  </rules>
  <rules xmi:id="_nFk5MV7_EeGJQO_W-td3ew" name="createPerson">
    <parameters xmi:id="_nFk5NF7_EeGJQO_W-td3ew" name="lastN"/>
    <parameters xmi:id="_nFk5NV7_EeGJQO_W-td3ew" name="fatherFirstN"/>
    <parameters xmi:id="_nFk5Nl7_EeGJQO_W-td3ew" description="" name="fatherP"/>
    <parameters xmi:id="_q2yHsF8EEeGJQO_W-td3ew" name="motherP"/>
    <parameters xmi:id="_9cQ_oF8FEeGJQO_W-td3ew" name="motherFirstN"/>
    <parameters xmi:id="_Axgq4F8LEeGJQO_W-td3ew" description="" name="sonsFirstN"/>
    <parameters xmi:id="_dVPKEF8LEeGJQO_W-td3ew" name="sonsP"/>
    <lhs xmi:id="_nFk5N17_EeGJQO_W-td3ew" name="LHS">
      <nodes xmi:id="_nFk5OF7_EeGJQO_W-td3ew" name="father" incoming="_nFk5PF7_EeGJQO_W-td3ew">
        <type href="Families.ecore#//Member"/>
        <attributes xmi:id="_nFk5OV7_EeGJQO_W-td3ew" value="fatherFirstN">
          <type href="Families.ecore#//Member/firstName"/>
        </attributes>
      </nodes>
      <nodes xmi:id="_nFk5Ol7_EeGJQO_W-td3ew" name="" outgoing="_nFk5PF7_EeGJQO_W-td3ew _whdLgF8EEeGJQO_W-td3ew">
        <type href="Families.ecore#//Family"/>
        <attributes xmi:id="_nFk5O17_EeGJQO_W-td3ew" value="lastN">
          <type href="Families.ecore#//Family/lastName"/>
        </attributes>
      </nodes>
      <nodes xmi:id="_Lu5NMF8FEeGJQO_W-td3ew" name="mother" incoming="_whdLgF8EEeGJQO_W-td3ew">
        <type href="Families.ecore#//Member"/>
        <attributes xmi:id="_Lu5NMV8FEeGJQO_W-td3ew" value="motherFirstN">
          <type href="Families.ecore#//Member/firstName"/>
        </attributes>
      </nodes>
      <edges xmi:id="_nFk5PF7_EeGJQO_W-td3ew" source="_nFk5Ol7_EeGJQO_W-td3ew" target="_nFk5OF7_EeGJQO_W-td3ew">
        <type href="Families.ecore#//Family/father"/>
      </edges>
      <edges xmi:id="_whdLgF8EEeGJQO_W-td3ew" source="_nFk5Ol7_EeGJQO_W-td3ew" target="_Lu5NMF8FEeGJQO_W-td3ew">
        <type href="Families.ecore#//Family/mother"/>
      </edges>
    </lhs>
    <rhs xmi:id="_nFk5PV7_EeGJQO_W-td3ew" name="RHS">
      <nodes xmi:id="_nFk5Pl7_EeGJQO_W-td3ew" name="fatherP">
        <type href="Persons.ecore#//Male"/>
        <attributes xmi:id="_nFk5P17_EeGJQO_W-td3ew" value="fatherFirstN + &quot; &quot; + lastN">
          <type href="Persons.ecore#//Person/fullName"/>
        </attributes>
      </nodes>
      <nodes xmi:id="_nFk5QV7_EeGJQO_W-td3ew" name="" outgoing="_TiYXoV8FEeGJQO_W-td3ew _TiYXoF8FEeGJQO_W-td3ew">
        <type href="Families.ecore#//Family"/>
        <attributes xmi:id="_nFk5Ql7_EeGJQO_W-td3ew" value="lastN">
          <type href="Families.ecore#//Family/lastName"/>
        </attributes>
      </nodes>
      <nodes xmi:id="_2VK2kF8EEeGJQO_W-td3ew" name="motherP">
        <type href="Persons.ecore#//Female"/>
        <attributes xmi:id="_2VK2kV8EEeGJQO_W-td3ew" value="motherFirstN + &quot; &quot; + lastN">
          <type href="Persons.ecore#//Person/fullName"/>
        </attributes>
      </nodes>
      <nodes xmi:id="_Npf4sF8FEeGJQO_W-td3ew" name="father" incoming="_TiYXoF8FEeGJQO_W-td3ew">
        <type href="Families.ecore#//Member"/>
        <attributes xmi:id="_Npf4sV8FEeGJQO_W-td3ew" value="fatherFirstN">
          <type href="Families.ecore#//Member/firstName"/>
        </attributes>
      </nodes>
      <nodes xmi:id="_Npf4sl8FEeGJQO_W-td3ew" name="mother" incoming="_TiYXoV8FEeGJQO_W-td3ew">
        <type href="Families.ecore#//Member"/>
        <attributes xmi:id="_Npf4s18FEeGJQO_W-td3ew" value="motherFirstN">
          <type href="Families.ecore#//Member/firstName"/>
        </attributes>
      </nodes>
      <edges xmi:id="_TiYXoF8FEeGJQO_W-td3ew" source="_nFk5QV7_EeGJQO_W-td3ew" target="_Npf4sF8FEeGJQO_W-td3ew">
        <type href="Families.ecore#//Family/father"/>
      </edges>
      <edges xmi:id="_TiYXoV8FEeGJQO_W-td3ew" source="_nFk5QV7_EeGJQO_W-td3ew" target="_Npf4sl8FEeGJQO_W-td3ew">
        <type href="Families.ecore#//Family/mother"/>
      </edges>
    </rhs>
    <mappings xmi:id="_nFk5RV7_EeGJQO_W-td3ew" origin="_nFk5Ol7_EeGJQO_W-td3ew" image="_nFk5QV7_EeGJQO_W-td3ew"/>
    <mappings xmi:id="_QJzSQF8FEeGJQO_W-td3ew" origin="_nFk5OF7_EeGJQO_W-td3ew" image="_Npf4sF8FEeGJQO_W-td3ew"/>
    <mappings xmi:id="_RjXtQF8FEeGJQO_W-td3ew" origin="_Lu5NMF8FEeGJQO_W-td3ew" image="_Npf4sl8FEeGJQO_W-td3ew"/>
    <multiRules xmi:id="_9La9UGEgEeGygLNevHOyIA">
      <lhs xmi:id="_9La9UWEgEeGygLNevHOyIA" name="LHS">
        <nodes xmi:id="_9LkHQGEgEeGygLNevHOyIA" name="father" incoming="_9LlVYGEgEeGygLNevHOyIA">
          <type href="Families.ecore#//Member"/>
          <attributes xmi:id="_9LkHQWEgEeGygLNevHOyIA" value="fatherFirstN">
            <type href="Families.ecore#//Member/firstName"/>
          </attributes>
        </nodes>
        <nodes xmi:id="_9LkuUGEgEeGygLNevHOyIA" name="" outgoing="_9LlVYGEgEeGygLNevHOyIA _9LnxoGEgEeGygLNevHOyIA _0g-tYF8KEeGJQO_W-td3ew">
          <type href="Families.ecore#//Family"/>
          <attributes xmi:id="_9LkuUWEgEeGygLNevHOyIA" value="lastN">
            <type href="Families.ecore#//Family/lastName"/>
          </attributes>
        </nodes>
        <nodes xmi:id="_9LnKkWEgEeGygLNevHOyIA" name="mother" incoming="_9LnxoGEgEeGygLNevHOyIA">
          <type href="Families.ecore#//Member"/>
          <attributes xmi:id="_9LnKkmEgEeGygLNevHOyIA" value="motherFirstN">
            <type href="Families.ecore#//Member/firstName"/>
          </attributes>
        </nodes>
        <nodes xmi:id="_sOxmoF8KEeGJQO_W-td3ew" name="sons" incoming="_0g-tYF8KEeGJQO_W-td3ew">
          <type href="Families.ecore#//Member"/>
          <attributes xmi:id="_ww1ckF8KEeGJQO_W-td3ew" value="sonsFirstN">
            <type href="Families.ecore#//Member/firstName"/>
          </attributes>
        </nodes>
        <edges xmi:id="_9LlVYGEgEeGygLNevHOyIA" source="_9LkuUGEgEeGygLNevHOyIA" target="_9LkHQGEgEeGygLNevHOyIA">
          <type href="Families.ecore#//Family/father"/>
        </edges>
        <edges xmi:id="_9LnxoGEgEeGygLNevHOyIA" source="_9LkuUGEgEeGygLNevHOyIA" target="_9LnKkWEgEeGygLNevHOyIA">
          <type href="Families.ecore#//Family/mother"/>
        </edges>
        <edges xmi:id="_0g-tYF8KEeGJQO_W-td3ew" source="_9LkuUGEgEeGygLNevHOyIA" target="_sOxmoF8KEeGJQO_W-td3ew">
          <type href="Families.ecore#//Family/sons"/>
        </edges>
      </lhs>
      <rhs xmi:id="_9La9UmEgEeGygLNevHOyIA" name="RHS">
        <nodes xmi:id="_9LiSEGEgEeGygLNevHOyIA" name="father" incoming="_9LjgMGEgEeGygLNevHOyIA">
          <type href="Families.ecore#//Member"/>
          <attributes xmi:id="_9LiSEWEgEeGygLNevHOyIA" value="fatherFirstN">
            <type href="Families.ecore#//Member/firstName"/>
          </attributes>
        </nodes>
        <nodes xmi:id="_9Li5IGEgEeGygLNevHOyIA" name="" outgoing="_9LjgMGEgEeGygLNevHOyIA _9LmjgGEgEeGygLNevHOyIA _2jbtUF8KEeGJQO_W-td3ew">
          <type href="Families.ecore#//Family"/>
          <attributes xmi:id="_9Li5IWEgEeGygLNevHOyIA" value="lastN">
            <type href="Families.ecore#//Family/lastName"/>
          </attributes>
        </nodes>
        <nodes xmi:id="_9Ll8cGEgEeGygLNevHOyIA" name="mother" incoming="_9LmjgGEgEeGygLNevHOyIA">
          <type href="Families.ecore#//Member"/>
          <attributes xmi:id="_9Ll8cWEgEeGygLNevHOyIA" value="motherFirstN">
            <type href="Families.ecore#//Member/firstName"/>
          </attributes>
        </nodes>
        <nodes xmi:id="_yFaC0F8KEeGJQO_W-td3ew" name="sons" incoming="_2jbtUF8KEeGJQO_W-td3ew">
          <type href="Families.ecore#//Member"/>
          <attributes xmi:id="_yFaC0V8KEeGJQO_W-td3ew" value="sonsFirstN">
            <type href="Families.ecore#//Member/firstName"/>
          </attributes>
        </nodes>
        <nodes xmi:id="_LV4BgF8LEeGJQO_W-td3ew" name="sonsP">
          <type href="Persons.ecore#//Male"/>
          <attributes xmi:id="_Notm0F8LEeGJQO_W-td3ew" value="sonsFirstN + &quot; &quot; + lastN">
            <type href="Persons.ecore#//Person/fullName"/>
          </attributes>
        </nodes>
        <edges xmi:id="_9LjgMGEgEeGygLNevHOyIA" source="_9Li5IGEgEeGygLNevHOyIA" target="_9LiSEGEgEeGygLNevHOyIA">
          <type href="Families.ecore#//Family/father"/>
        </edges>
        <edges xmi:id="_9LmjgGEgEeGygLNevHOyIA" source="_9Li5IGEgEeGygLNevHOyIA" target="_9Ll8cGEgEeGygLNevHOyIA">
          <type href="Families.ecore#//Family/mother"/>
        </edges>
        <edges xmi:id="_2jbtUF8KEeGJQO_W-td3ew" source="_9Li5IGEgEeGygLNevHOyIA" target="_yFaC0F8KEeGJQO_W-td3ew">
          <type href="Families.ecore#//Family/sons"/>
        </edges>
      </rhs>
      <mappings xmi:id="_9LlVYWEgEeGygLNevHOyIA" origin="_9LkHQGEgEeGygLNevHOyIA" image="_9LiSEGEgEeGygLNevHOyIA"/>
      <mappings xmi:id="_9Lo_wWEgEeGygLNevHOyIA" origin="_9LkuUGEgEeGygLNevHOyIA" image="_9Li5IGEgEeGygLNevHOyIA"/>
      <mappings xmi:id="_9Lpm0GEgEeGygLNevHOyIA" origin="_9LnKkWEgEeGygLNevHOyIA" image="_9Ll8cGEgEeGygLNevHOyIA"/>
      <mappings xmi:id="_4bGZkF8KEeGJQO_W-td3ew" origin="_sOxmoF8KEeGJQO_W-td3ew" image="_yFaC0F8KEeGJQO_W-td3ew"/>
      <multiMappings xmi:id="_9LiSEmEgEeGygLNevHOyIA" origin="_Npf4sF8FEeGJQO_W-td3ew" image="_9LiSEGEgEeGygLNevHOyIA"/>
      <multiMappings xmi:id="_9Li5ImEgEeGygLNevHOyIA" origin="_nFk5QV7_EeGJQO_W-td3ew" image="_9Li5IGEgEeGygLNevHOyIA"/>
      <multiMappings xmi:id="_9LkHQmEgEeGygLNevHOyIA" origin="_nFk5OF7_EeGJQO_W-td3ew" image="_9LkHQGEgEeGygLNevHOyIA"/>
      <multiMappings xmi:id="_9LkuUmEgEeGygLNevHOyIA" origin="_nFk5Ol7_EeGJQO_W-td3ew" image="_9LkuUGEgEeGygLNevHOyIA"/>
      <multiMappings xmi:id="_9Ll8cmEgEeGygLNevHOyIA" origin="_Npf4sl8FEeGJQO_W-td3ew" image="_9Ll8cGEgEeGygLNevHOyIA"/>
      <multiMappings xmi:id="_9LnKk2EgEeGygLNevHOyIA" origin="_Lu5NMF8FEeGJQO_W-td3ew" image="_9LnKkWEgEeGygLNevHOyIA"/>
    </multiRules>
  </rules>
  <imports href="Persons.ecore#/"/>
  <imports href="Families.ecore#/"/>
</henshin:TransformationSystem>
<?xml version="1.0" encoding="UTF-8"?>
<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"; xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin"; xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation"; xmi:id="_RLQlUGEgEeGygLNevHOyIA" type="Henshin" measurementUnit="Pixel">
  <children xmi:type="notation:Shape" xmi:id="_RWFVQGEgEeGygLNevHOyIA" type="2001" fontName="Segoe UI" italic="true" fillColor="16114135" lineColor="0">
    <children xmi:type="notation:DecorationNode" xmi:id="_RWHxgGEgEeGygLNevHOyIA" type="5001"/>
    <children xmi:type="notation:DecorationNode" xmi:id="_RWHxgWEgEeGygLNevHOyIA" type="7001">
      <children xmi:type="notation:Shape" xmi:id="_RZAGYGEgEeGygLNevHOyIA" type="3001" fontName="Segoe UI" lineColor="0">
        <children xmi:type="notation:DecorationNode" xmi:id="_RZAGYmEgEeGygLNevHOyIA" type="5002"/>
        <children xmi:type="notation:DecorationNode" xmi:id="_RZAGY2EgEeGygLNevHOyIA" type="5003"/>
        <children xmi:type="notation:DecorationNode" xmi:id="_RZAGZGEgEeGygLNevHOyIA" type="7002">
          <styles xmi:type="notation:SortingStyle" xmi:id="_RZAGZWEgEeGygLNevHOyIA"/>
          <styles xmi:type="notation:FilteringStyle" xmi:id="_RZAGZmEgEeGygLNevHOyIA"/>
        </children>
        <element xmi:type="henshin:Node" href="default.henshin#_nFkSJ17_EeGJQO_W-td3ew"/>
        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RZAGYWEgEeGygLNevHOyIA" x="32" y="130"/>
      </children>
      <children xmi:type="notation:Shape" xmi:id="_RZAtcGEgEeGygLNevHOyIA" type="3001" fontName="Segoe UI" lineColor="0">
        <children xmi:type="notation:DecorationNode" xmi:id="_RZAtcmEgEeGygLNevHOyIA" type="5002"/>
        <children xmi:type="notation:DecorationNode" xmi:id="_RZAtc2EgEeGygLNevHOyIA" type="5003"/>
        <children xmi:type="notation:DecorationNode" xmi:id="_RZAtdGEgEeGygLNevHOyIA" type="7002">
          <styles xmi:type="notation:SortingStyle" xmi:id="_RZAtdWEgEeGygLNevHOyIA"/>
          <styles xmi:type="notation:FilteringStyle" xmi:id="_RZAtdmEgEeGygLNevHOyIA"/>
        </children>
        <element xmi:type="henshin:Node" href="default.henshin#_nFkSLF7_EeGJQO_W-td3ew"/>
        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RZAtcWEgEeGygLNevHOyIA" x="30" y="30"/>
      </children>
    </children>
    <element xmi:type="henshin:Rule" href="default.henshin#_nFkSIV7_EeGJQO_W-td3ew"/>
    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RWFVQWEgEeGygLNevHOyIA" x="30" y="30" width="241" height="220"/>
  </children>
  <children xmi:type="notation:Shape" xmi:id="_RWIYkGEgEeGygLNevHOyIA" type="2001" fontName="Segoe UI" italic="true" fillColor="16114135" lineColor="0">
    <children xmi:type="notation:DecorationNode" xmi:id="_RWIYkmEgEeGygLNevHOyIA" type="5001"/>
    <children xmi:type="notation:DecorationNode" xmi:id="_RWIYk2EgEeGygLNevHOyIA" type="7001">
      <children xmi:type="notation:Shape" xmi:id="_RcffQGEgEeGygLNevHOyIA" type="3001" fontName="Segoe UI" lineColor="0">
        <children xmi:type="notation:DecorationNode" xmi:id="_RcgGUGEgEeGygLNevHOyIA" type="5002"/>
        <children xmi:type="notation:DecorationNode" xmi:id="_RcgGUWEgEeGygLNevHOyIA" type="5003"/>
        <children xmi:type="notation:DecorationNode" xmi:id="_RcgGUmEgEeGygLNevHOyIA" type="7002">
          <styles xmi:type="notation:SortingStyle" xmi:id="_RcgGU2EgEeGygLNevHOyIA"/>
          <styles xmi:type="notation:FilteringStyle" xmi:id="_RcgGVGEgEeGygLNevHOyIA"/>
        </children>
        <element xmi:type="henshin:Node" href="default.henshin#_nFk5OF7_EeGJQO_W-td3ew"/>
        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RcffQWEgEeGygLNevHOyIA" x="30" y="30"/>
      </children>
      <children xmi:type="notation:Shape" xmi:id="_RcgGVWEgEeGygLNevHOyIA" type="3001" fontName="Segoe UI" lineColor="0">
        <children xmi:type="notation:DecorationNode" xmi:id="_RcgGV2EgEeGygLNevHOyIA" type="5002"/>
        <children xmi:type="notation:DecorationNode" xmi:id="_RcgGWGEgEeGygLNevHOyIA" type="5003"/>
        <children xmi:type="notation:DecorationNode" xmi:id="_RcgGWWEgEeGygLNevHOyIA" type="7002">
          <styles xmi:type="notation:SortingStyle" xmi:id="_RcgGWmEgEeGygLNevHOyIA"/>
          <styles xmi:type="notation:FilteringStyle" xmi:id="_RcgGW2EgEeGygLNevHOyIA"/>
        </children>
        <element xmi:type="henshin:Node" href="default.henshin#_nFk5Ol7_EeGJQO_W-td3ew"/>
        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RcgGVmEgEeGygLNevHOyIA" x="263" y="139"/>
      </children>
      <children xmi:type="notation:Shape" xmi:id="_RcgGXGEgEeGygLNevHOyIA" type="3001" fontName="Segoe UI" lineColor="0">
        <children xmi:type="notation:DecorationNode" xmi:id="_RcgtYGEgEeGygLNevHOyIA" type="5002"/>
        <children xmi:type="notation:DecorationNode" xmi:id="_RcgtYWEgEeGygLNevHOyIA" type="5003"/>
        <children xmi:type="notation:DecorationNode" xmi:id="_RcgtYmEgEeGygLNevHOyIA" type="7002">
          <styles xmi:type="notation:SortingStyle" xmi:id="_RcgtY2EgEeGygLNevHOyIA"/>
          <styles xmi:type="notation:FilteringStyle" xmi:id="_RcgtZGEgEeGygLNevHOyIA"/>
        </children>
        <element xmi:type="henshin:Node" href="default.henshin#_Lu5NMF8FEeGJQO_W-td3ew"/>
        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RcgGXWEgEeGygLNevHOyIA" x="241" y="30"/>
      </children>
      <children xmi:type="notation:Shape" xmi:id="_RcgtZWEgEeGygLNevHOyIA" type="3001" fontName="Segoe UI" lineColor="0">
        <children xmi:type="notation:DecorationNode" xmi:id="_RcgtZ2EgEeGygLNevHOyIA" type="5002"/>
        <children xmi:type="notation:DecorationNode" xmi:id="_RcgtaGEgEeGygLNevHOyIA" type="5003"/>
        <children xmi:type="notation:DecorationNode" xmi:id="_RcgtaWEgEeGygLNevHOyIA" type="7002">
          <styles xmi:type="notation:SortingStyle" xmi:id="_RcgtamEgEeGygLNevHOyIA"/>
          <styles xmi:type="notation:FilteringStyle" xmi:id="_Rcgta2EgEeGygLNevHOyIA"/>
        </children>
        <element xmi:type="henshin:Node" href="default.henshin#_sOxmoF8KEeGJQO_W-td3ew"/>
        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RcgtZmEgEeGygLNevHOyIA" x="537" y="28"/>
      </children>
      <children xmi:type="notation:Shape" xmi:id="_RcgtbGEgEeGygLNevHOyIA" type="3001" fontName="Segoe UI" lineColor="0">
        <children xmi:type="notation:DecorationNode" xmi:id="_RchUcGEgEeGygLNevHOyIA" type="5002"/>
        <children xmi:type="notation:DecorationNode" xmi:id="_RchUcWEgEeGygLNevHOyIA" type="5003"/>
        <children xmi:type="notation:DecorationNode" xmi:id="_RchUcmEgEeGygLNevHOyIA" type="7002">
          <styles xmi:type="notation:SortingStyle" xmi:id="_RchUc2EgEeGygLNevHOyIA"/>
          <styles xmi:type="notation:FilteringStyle" xmi:id="_RchUdGEgEeGygLNevHOyIA"/>
        </children>
        <element xmi:type="henshin:Node" href="default.henshin#_nFk5Pl7_EeGJQO_W-td3ew"/>
        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RcgtbWEgEeGygLNevHOyIA" x="18" y="139"/>
      </children>
      <children xmi:type="notation:Shape" xmi:id="_RchUdWEgEeGygLNevHOyIA" type="3001" fontName="Segoe UI" lineColor="0">
        <children xmi:type="notation:DecorationNode" xmi:id="_RchUd2EgEeGygLNevHOyIA" type="5002"/>
        <children xmi:type="notation:DecorationNode" xmi:id="_RchUeGEgEeGygLNevHOyIA" type="5003"/>
        <children xmi:type="notation:DecorationNode" xmi:id="_RchUeWEgEeGygLNevHOyIA" type="7002">
          <styles xmi:type="notation:SortingStyle" xmi:id="_RchUemEgEeGygLNevHOyIA"/>
          <styles xmi:type="notation:FilteringStyle" xmi:id="_RchUe2EgEeGygLNevHOyIA"/>
        </children>
        <element xmi:type="henshin:Node" href="default.henshin#_2VK2kF8EEeGJQO_W-td3ew"/>
        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RchUdmEgEeGygLNevHOyIA" x="18" y="202"/>
      </children>
      <children xmi:type="notation:Shape" xmi:id="_RchUfGEgEeGygLNevHOyIA" type="3001" fontName="Segoe UI" lineColor="0">
        <children xmi:type="notation:DecorationNode" xmi:id="_Rch7gGEgEeGygLNevHOyIA" type="5002"/>
        <children xmi:type="notation:DecorationNode" xmi:id="_Rch7gWEgEeGygLNevHOyIA" type="5003"/>
        <children xmi:type="notation:DecorationNode" xmi:id="_Rch7gmEgEeGygLNevHOyIA" type="7002">
          <styles xmi:type="notation:SortingStyle" xmi:id="_Rch7g2EgEeGygLNevHOyIA"/>
          <styles xmi:type="notation:FilteringStyle" xmi:id="_Rch7hGEgEeGygLNevHOyIA"/>
        </children>
        <element xmi:type="henshin:Node" href="default.henshin#_LV4BgF8LEeGJQO_W-td3ew"/>
        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RchUfWEgEeGygLNevHOyIA" x="472" y="92"/>
      </children>
    </children>
    <element xmi:type="henshin:Rule" href="default.henshin#_nFk5MV7_EeGJQO_W-td3ew"/>
    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RWIYkWEgEeGygLNevHOyIA" x="30" y="262" height="295"/>
  </children>
  <styles xmi:type="notation:DiagramStyle" xmi:id="_RLQlUWEgEeGygLNevHOyIA"/>
  <element xmi:type="henshin:TransformationSystem" href="default.henshin#_nFkSIF7_EeGJQO_W-td3ew"/>
  <edges xmi:type="notation:Connector" xmi:id="_RdXB8GEgEeGygLNevHOyIA" type="4001" source="_RZAGYGEgEeGygLNevHOyIA" target="_RZAtcGEgEeGygLNevHOyIA" lineColor="0">
    <children xmi:type="notation:DecorationNode" xmi:id="_RdXB82EgEeGygLNevHOyIA" type="6001">
      <layoutConstraint xmi:type="notation:Location" xmi:id="_RdXB9GEgEeGygLNevHOyIA" x="-2" y="19"/>
    </children>
    <children xmi:type="notation:DecorationNode" xmi:id="_RdXpAGEgEeGygLNevHOyIA" type="6002">
      <layoutConstraint xmi:type="notation:Location" xmi:id="_RdXpAWEgEeGygLNevHOyIA" x="14" y="25"/>
    </children>
    <styles xmi:type="notation:FontStyle" xmi:id="_RdXB8WEgEeGygLNevHOyIA" fontName="Segoe UI"/>
    <element xmi:type="henshin:Edge" href="default.henshin#_nFkSLl7_EeGJQO_W-td3ew"/>
    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RdXB8mEgEeGygLNevHOyIA" points="[0, 0, 0, 60]$[0, -60, 0, 0]"/>
    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SqHwAGEgEeGygLNevHOyIA" id="(0.5,0.0)"/>
    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SqIXEGEgEeGygLNevHOyIA" id="(0.5,1.0)"/>
  </edges>
  <edges xmi:type="notation:Connector" xmi:id="_RdvccGEgEeGygLNevHOyIA" type="4001" source="_RcgGVWEgEeGygLNevHOyIA" target="_RcffQGEgEeGygLNevHOyIA" lineColor="0">
    <children xmi:type="notation:DecorationNode" xmi:id="_Rdvcc2EgEeGygLNevHOyIA" type="6001">
      <layoutConstraint xmi:type="notation:Location" xmi:id="_RdvcdGEgEeGygLNevHOyIA" x="55" y="-13"/>
    </children>
    <children xmi:type="notation:DecorationNode" xmi:id="_RdvcdWEgEeGygLNevHOyIA" type="6002">
      <layoutConstraint xmi:type="notation:Location" xmi:id="_RdvcdmEgEeGygLNevHOyIA" x="21" y="13"/>
    </children>
    <styles xmi:type="notation:FontStyle" xmi:id="_RdvccWEgEeGygLNevHOyIA" fontName="Segoe UI"/>
    <element xmi:type="henshin:Edge" href="default.henshin#_nFk5PF7_EeGJQO_W-td3ew"/>
    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RdvccmEgEeGygLNevHOyIA" points="[0, 0, 186, 60]$[-186, -60, 0, 0]"/>
    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TKzbMWEgEeGygLNevHOyIA" id="(0.24561403508771928,0.0)"/>
    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TKzbMmEgEeGygLNevHOyIA" id="(0.4966887417218543,1.0)"/>
  </edges>
  <edges xmi:type="notation:Connector" xmi:id="_RdwqkGEgEeGygLNevHOyIA" type="4001" source="_RcgGVWEgEeGygLNevHOyIA" target="_RcgGXGEgEeGygLNevHOyIA" lineColor="0">
    <children xmi:type="notation:DecorationNode" xmi:id="_RdxRoGEgEeGygLNevHOyIA" type="6001">
      <layoutConstraint xmi:type="notation:Location" xmi:id="_RdxRoWEgEeGygLNevHOyIA" x="-9" y="25"/>
    </children>
    <children xmi:type="notation:DecorationNode" xmi:id="_RdxRomEgEeGygLNevHOyIA" type="6002">
      <layoutConstraint xmi:type="notation:Location" xmi:id="_RdxRo2EgEeGygLNevHOyIA" x="3" y="33"/>
    </children>
    <styles xmi:type="notation:FontStyle" xmi:id="_RdwqkWEgEeGygLNevHOyIA" fontName="Segoe UI"/>
    <element xmi:type="henshin:Edge" href="default.henshin#_whdLgF8EEeGJQO_W-td3ew"/>
    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RdwqkmEgEeGygLNevHOyIA" points="[0, 0, 0, 60]$[0, -60, 0, 0]"/>
    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TKy0IWEgEeGygLNevHOyIA" id="(0.5,0.0)"/>
    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TKzbMGEgEeGygLNevHOyIA" id="(0.4968553459119497,1.0)"/>
  </edges>
  <edges xmi:type="notation:Connector" xmi:id="_RdyfwGEgEeGygLNevHOyIA" type="4001" source="_RcgGVWEgEeGygLNevHOyIA" target="_RcgtZWEgEeGygLNevHOyIA" routing="Rectilinear" lineColor="0">
    <children xmi:type="notation:DecorationNode" xmi:id="_Rdyfw2EgEeGygLNevHOyIA" type="6001">
      <layoutConstraint xmi:type="notation:Location" xmi:id="_RdyfxGEgEeGygLNevHOyIA" x="37" y="57"/>
    </children>
    <children xmi:type="notation:DecorationNode" xmi:id="_RdyfxWEgEeGygLNevHOyIA" type="6002">
      <layoutConstraint xmi:type="notation:Location" xmi:id="_RdyfxmEgEeGygLNevHOyIA" x="53" y="57"/>
    </children>
    <styles xmi:type="notation:FontStyle" xmi:id="_RdyfwWEgEeGygLNevHOyIA" fontName="Segoe UI"/>
    <element xmi:type="henshin:Edge" href="default.henshin#_0g-tYF8KEeGJQO_W-td3ew"/>
    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RdyfwmEgEeGygLNevHOyIA" points="[29, 24, -234, 81]$[89, 24, -174, 81]$[89, -70, -174, -13]$[189, -70, -74, -13]"/>
    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TKyNEGEgEeGygLNevHOyIA" id="(0.7456140350877193,0.0)"/>
    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TKy0IGEgEeGygLNevHOyIA" id="(0.5,1.0)"/>
  </edges>
</notation:Diagram>

Attachment: signature.asc
Description: OpenPGP digital signature


Back to the top