blob: ad7e684c4dcb2f004562768856cd314030d8c625 [file] [log] [blame]
<?xml version="1.0" encoding="ASCII"?>
<henshin:Module 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" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmi:id="_9M7z0FaZEeqibuOO8eming" name="module">
<imports href="bank.ecore#/"/>
<units xsi:type="henshin:Rule" xmi:id="_9M9B8FaZEeqibuOO8eming" name="createAccount">
<parameters xmi:id="_9M9B8VaZEeqibuOO8eming" name="client" kind="IN">
<type xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</parameters>
<parameters xmi:id="_9M9B8laZEeqibuOO8eming" name="accountId" kind="IN">
<type xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
</parameters>
<lhs xmi:id="_9M9B81aZEeqibuOO8eming" name="Lhs">
<nodes xmi:id="_9M9B9FaZEeqibuOO8eming" outgoing="_9M9B-FaZEeqibuOO8eming _9M9B-VaZEeqibuOO8eming">
<type href="bank.ecore#//Bank"/>
</nodes>
<nodes xmi:id="_9M9B9VaZEeqibuOO8eming" incoming="_9M9B-FaZEeqibuOO8eming" outgoing="_9M9B-laZEeqibuOO8eming">
<type href="bank.ecore#//Manager"/>
</nodes>
<nodes xmi:id="_9M9B9laZEeqibuOO8eming" incoming="_9M9B-VaZEeqibuOO8eming _9M9B-laZEeqibuOO8eming">
<type href="bank.ecore#//Client"/>
<attributes xmi:id="_9M9B91aZEeqibuOO8eming" value="client">
<type href="bank.ecore#//Person/name"/>
</attributes>
</nodes>
<edges xmi:id="_9M9B-FaZEeqibuOO8eming" source="_9M9B9FaZEeqibuOO8eming" target="_9M9B9VaZEeqibuOO8eming">
<type href="bank.ecore#//Bank/managers"/>
</edges>
<edges xmi:id="_9M9B-VaZEeqibuOO8eming" source="_9M9B9FaZEeqibuOO8eming" target="_9M9B9laZEeqibuOO8eming">
<type href="bank.ecore#//Bank/clients"/>
</edges>
<edges xmi:id="_9M9B-laZEeqibuOO8eming" source="_9M9B9VaZEeqibuOO8eming" target="_9M9B9laZEeqibuOO8eming">
<type href="bank.ecore#//Manager/clients"/>
</edges>
<formula xsi:type="henshin:Not" xmi:id="_9M9B-1aZEeqibuOO8eming">
<child xsi:type="henshin:NestedCondition" xmi:id="_9M9B_FaZEeqibuOO8eming">
<conclusion xmi:id="_9M9B_VaZEeqibuOO8eming">
<nodes xmi:id="_9M9B_laZEeqibuOO8eming" outgoing="_9M9CAVaZEeqibuOO8eming">
<type href="bank.ecore#//Bank"/>
</nodes>
<nodes xmi:id="_9M9B_1aZEeqibuOO8eming" incoming="_9M9CAVaZEeqibuOO8eming">
<type href="bank.ecore#//Account"/>
<attributes xmi:id="_9M9CAFaZEeqibuOO8eming" value="accountId">
<type href="bank.ecore#//Account/id"/>
</attributes>
</nodes>
<edges xmi:id="_9M9CAVaZEeqibuOO8eming" source="_9M9B_laZEeqibuOO8eming" target="_9M9B_1aZEeqibuOO8eming">
<type href="bank.ecore#//Bank/accounts"/>
</edges>
</conclusion>
<mappings xmi:id="_9M9CAlaZEeqibuOO8eming" origin="_9M9B9FaZEeqibuOO8eming" image="_9M9B_laZEeqibuOO8eming"/>
</child>
</formula>
</lhs>
<rhs xmi:id="_9M9CA1aZEeqibuOO8eming" name="Rhs">
<nodes xmi:id="_9M9CBFaZEeqibuOO8eming" outgoing="_9M9CClaZEeqibuOO8eming _9M9CC1aZEeqibuOO8eming _9M9CDFaZEeqibuOO8eming">
<type href="bank.ecore#//Bank"/>
</nodes>
<nodes xmi:id="_9M9CBVaZEeqibuOO8eming" incoming="_9M9CClaZEeqibuOO8eming" outgoing="_9M9CDVaZEeqibuOO8eming">
<type href="bank.ecore#//Manager"/>
</nodes>
<nodes xmi:id="_9M9CBlaZEeqibuOO8eming" incoming="_9M9CC1aZEeqibuOO8eming _9M9CDVaZEeqibuOO8eming" outgoing="_9M9CDlaZEeqibuOO8eming">
<type href="bank.ecore#//Client"/>
<attributes xmi:id="_9M9CB1aZEeqibuOO8eming" value="client">
<type href="bank.ecore#//Person/name"/>
</attributes>
</nodes>
<nodes xmi:id="_9M9CCFaZEeqibuOO8eming" incoming="_9M9CDFaZEeqibuOO8eming _9M9CDlaZEeqibuOO8eming">
<type href="bank.ecore#//Account"/>
<attributes xmi:id="_9M9CCVaZEeqibuOO8eming" value="accountId">
<type href="bank.ecore#//Account/id"/>
</attributes>
</nodes>
<edges xmi:id="_9M9CClaZEeqibuOO8eming" source="_9M9CBFaZEeqibuOO8eming" target="_9M9CBVaZEeqibuOO8eming">
<type href="bank.ecore#//Bank/managers"/>
</edges>
<edges xmi:id="_9M9CC1aZEeqibuOO8eming" source="_9M9CBFaZEeqibuOO8eming" target="_9M9CBlaZEeqibuOO8eming">
<type href="bank.ecore#//Bank/clients"/>
</edges>
<edges xmi:id="_9M9CDFaZEeqibuOO8eming" source="_9M9CBFaZEeqibuOO8eming" target="_9M9CCFaZEeqibuOO8eming">
<type href="bank.ecore#//Bank/accounts"/>
</edges>
<edges xmi:id="_9M9CDVaZEeqibuOO8eming" source="_9M9CBVaZEeqibuOO8eming" target="_9M9CBlaZEeqibuOO8eming">
<type href="bank.ecore#//Manager/clients"/>
</edges>
<edges xmi:id="_9M9CDlaZEeqibuOO8eming" source="_9M9CBlaZEeqibuOO8eming" target="_9M9CCFaZEeqibuOO8eming">
<type href="bank.ecore#//Client/accounts"/>
</edges>
</rhs>
<mappings xmi:id="_9M9CD1aZEeqibuOO8eming" origin="_9M9B9FaZEeqibuOO8eming" image="_9M9CBFaZEeqibuOO8eming"/>
<mappings xmi:id="_9M9CEFaZEeqibuOO8eming" origin="_9M9B9VaZEeqibuOO8eming" image="_9M9CBVaZEeqibuOO8eming"/>
<mappings xmi:id="_9M9CEVaZEeqibuOO8eming" origin="_9M9B9laZEeqibuOO8eming" image="_9M9CBlaZEeqibuOO8eming"/>
</units>
<units xsi:type="henshin:Rule" xmi:id="_9M9CElaZEeqibuOO8eming" name="transferMoney">
<parameters xmi:id="_9M9CE1aZEeqibuOO8eming" name="client" kind="IN">
<type xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</parameters>
<parameters xmi:id="_9M9CFFaZEeqibuOO8eming" name="fromId" kind="IN">
<type xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
</parameters>
<parameters xmi:id="_9M9CFVaZEeqibuOO8eming" name="toId" kind="IN">
<type xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
</parameters>
<parameters xmi:id="_9M9CFlaZEeqibuOO8eming" name="amount" kind="IN">
<type xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
</parameters>
<parameters xmi:id="_9M9CF1aZEeqibuOO8eming" name="x" kind="VAR">
<type xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
</parameters>
<parameters xmi:id="_9M9CGFaZEeqibuOO8eming" name="y" kind="VAR">
<type xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
</parameters>
<lhs xmi:id="_9M9CGVaZEeqibuOO8eming" name="Lhs">
<nodes xmi:id="_9M9CGlaZEeqibuOO8eming" outgoing="_9M9CIlaZEeqibuOO8eming">
<type href="bank.ecore#//Client"/>
<attributes xmi:id="_9M9CG1aZEeqibuOO8eming" value="client">
<type href="bank.ecore#//Person/name"/>
</attributes>
</nodes>
<nodes xmi:id="_9M9CHFaZEeqibuOO8eming" incoming="_9M9CIlaZEeqibuOO8eming">
<type href="bank.ecore#//Account"/>
<attributes xmi:id="_9M9CHVaZEeqibuOO8eming" value="x">
<type href="bank.ecore#//Account/credit"/>
</attributes>
<attributes xmi:id="_9M9CHlaZEeqibuOO8eming" value="fromId">
<type href="bank.ecore#//Account/id"/>
</attributes>
</nodes>
<nodes xmi:id="_9M9CH1aZEeqibuOO8eming">
<type href="bank.ecore#//Account"/>
<attributes xmi:id="_9M9CIFaZEeqibuOO8eming" value="y">
<type href="bank.ecore#//Account/credit"/>
</attributes>
<attributes xmi:id="_9M9CIVaZEeqibuOO8eming" value="toId">
<type href="bank.ecore#//Account/id"/>
</attributes>
</nodes>
<edges xmi:id="_9M9CIlaZEeqibuOO8eming" source="_9M9CGlaZEeqibuOO8eming" target="_9M9CHFaZEeqibuOO8eming">
<type href="bank.ecore#//Client/accounts"/>
</edges>
</lhs>
<rhs xmi:id="_9M9CI1aZEeqibuOO8eming" name="Rhs">
<nodes xmi:id="_9M9CJFaZEeqibuOO8eming" outgoing="_9M9CLFaZEeqibuOO8eming">
<type href="bank.ecore#//Client"/>
<attributes xmi:id="_9M9CJVaZEeqibuOO8eming" value="client">
<type href="bank.ecore#//Person/name"/>
</attributes>
</nodes>
<nodes xmi:id="_9M9CJlaZEeqibuOO8eming" incoming="_9M9CLFaZEeqibuOO8eming">
<type href="bank.ecore#//Account"/>
<attributes xmi:id="_9M9CJ1aZEeqibuOO8eming" value="x-amount">
<type href="bank.ecore#//Account/credit"/>
</attributes>
<attributes xmi:id="_9M9CKFaZEeqibuOO8eming" value="fromId">
<type href="bank.ecore#//Account/id"/>
</attributes>
</nodes>
<nodes xmi:id="_9M9CKVaZEeqibuOO8eming">
<type href="bank.ecore#//Account"/>
<attributes xmi:id="_9M9CKlaZEeqibuOO8eming" value="y+amount">
<type href="bank.ecore#//Account/credit"/>
</attributes>
<attributes xmi:id="_9M9CK1aZEeqibuOO8eming" value="toId">
<type href="bank.ecore#//Account/id"/>
</attributes>
</nodes>
<edges xmi:id="_9M9CLFaZEeqibuOO8eming" source="_9M9CJFaZEeqibuOO8eming" target="_9M9CJlaZEeqibuOO8eming">
<type href="bank.ecore#//Client/accounts"/>
</edges>
</rhs>
<attributeConditions xmi:id="_9M9CLVaZEeqibuOO8eming" name="financial covering" conditionText="x>amount"/>
<attributeConditions xmi:id="_9M9CLlaZEeqibuOO8eming" name="positive transfer only" conditionText="amount>0"/>
<mappings xmi:id="_9M9CL1aZEeqibuOO8eming" origin="_9M9CGlaZEeqibuOO8eming" image="_9M9CJFaZEeqibuOO8eming"/>
<mappings xmi:id="_9M9CMFaZEeqibuOO8eming" origin="_9M9CHFaZEeqibuOO8eming" image="_9M9CJlaZEeqibuOO8eming"/>
<mappings xmi:id="_9M9pAFaZEeqibuOO8eming" origin="_9M9CH1aZEeqibuOO8eming" image="_9M9CKVaZEeqibuOO8eming"/>
</units>
<units xsi:type="henshin:Rule" xmi:id="_9M9pAVaZEeqibuOO8eming" name="deleteAllAccounts">
<parameters xmi:id="_9M9pAlaZEeqibuOO8eming" name="client" kind="IN">
<type xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</parameters>
<lhs xmi:id="_9M9pA1aZEeqibuOO8eming" name="Lhs">
<nodes xmi:id="_9M9pBFaZEeqibuOO8eming" outgoing="_9M9pCFaZEeqibuOO8eming _9M9pCVaZEeqibuOO8eming">
<type href="bank.ecore#//Bank"/>
</nodes>
<nodes xmi:id="_9M9pBVaZEeqibuOO8eming" incoming="_9M9pCVaZEeqibuOO8eming" outgoing="_9M9pClaZEeqibuOO8eming">
<type href="bank.ecore#//Manager"/>
</nodes>
<nodes xmi:id="_9M9pBlaZEeqibuOO8eming" incoming="_9M9pCFaZEeqibuOO8eming _9M9pClaZEeqibuOO8eming">
<type href="bank.ecore#//Client"/>
<attributes xmi:id="_9M9pB1aZEeqibuOO8eming" value="client">
<type href="bank.ecore#//Person/name"/>
</attributes>
</nodes>
<edges xmi:id="_9M9pCFaZEeqibuOO8eming" source="_9M9pBFaZEeqibuOO8eming" target="_9M9pBlaZEeqibuOO8eming">
<type href="bank.ecore#//Bank/clients"/>
</edges>
<edges xmi:id="_9M9pCVaZEeqibuOO8eming" source="_9M9pBFaZEeqibuOO8eming" target="_9M9pBVaZEeqibuOO8eming">
<type href="bank.ecore#//Bank/managers"/>
</edges>
<edges xmi:id="_9M9pClaZEeqibuOO8eming" source="_9M9pBVaZEeqibuOO8eming" target="_9M9pBlaZEeqibuOO8eming">
<type href="bank.ecore#//Manager/clients"/>
</edges>
</lhs>
<rhs xmi:id="_9M9pC1aZEeqibuOO8eming" name="Rhs">
<nodes xmi:id="_9M9pDFaZEeqibuOO8eming" outgoing="_9M9pEFaZEeqibuOO8eming _9M9pEVaZEeqibuOO8eming">
<type href="bank.ecore#//Bank"/>
</nodes>
<nodes xmi:id="_9M9pDVaZEeqibuOO8eming" incoming="_9M9pEVaZEeqibuOO8eming" outgoing="_9M9pElaZEeqibuOO8eming">
<type href="bank.ecore#//Manager"/>
</nodes>
<nodes xmi:id="_9M9pDlaZEeqibuOO8eming" incoming="_9M9pEFaZEeqibuOO8eming _9M9pElaZEeqibuOO8eming">
<type href="bank.ecore#//Client"/>
<attributes xmi:id="_9M9pD1aZEeqibuOO8eming" value="client">
<type href="bank.ecore#//Person/name"/>
</attributes>
</nodes>
<edges xmi:id="_9M9pEFaZEeqibuOO8eming" source="_9M9pDFaZEeqibuOO8eming" target="_9M9pDlaZEeqibuOO8eming">
<type href="bank.ecore#//Bank/clients"/>
</edges>
<edges xmi:id="_9M9pEVaZEeqibuOO8eming" source="_9M9pDFaZEeqibuOO8eming" target="_9M9pDVaZEeqibuOO8eming">
<type href="bank.ecore#//Bank/managers"/>
</edges>
<edges xmi:id="_9M9pElaZEeqibuOO8eming" source="_9M9pDVaZEeqibuOO8eming" target="_9M9pDlaZEeqibuOO8eming">
<type href="bank.ecore#//Manager/clients"/>
</edges>
</rhs>
<mappings xmi:id="_9M9pE1aZEeqibuOO8eming" origin="_9M9pBFaZEeqibuOO8eming" image="_9M9pDFaZEeqibuOO8eming"/>
<mappings xmi:id="_9M9pFFaZEeqibuOO8eming" origin="_9M9pBVaZEeqibuOO8eming" image="_9M9pDVaZEeqibuOO8eming"/>
<mappings xmi:id="_9M9pFVaZEeqibuOO8eming" origin="_9M9pBlaZEeqibuOO8eming" image="_9M9pDlaZEeqibuOO8eming"/>
<multiRules xmi:id="_9M9pFlaZEeqibuOO8eming">
<parameters xmi:id="_9M9pF1aZEeqibuOO8eming" name="client" kind="IN">
<type xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</parameters>
<lhs xmi:id="_9M9pGFaZEeqibuOO8eming" name="Lhs">
<nodes xmi:id="_9M9pGVaZEeqibuOO8eming" outgoing="_9M9pHlaZEeqibuOO8eming">
<type href="bank.ecore#//Bank"/>
</nodes>
<nodes xmi:id="_9M9pGlaZEeqibuOO8eming">
<type href="bank.ecore#//Manager"/>
</nodes>
<nodes xmi:id="_9M9pG1aZEeqibuOO8eming" incoming="_9M9pH1aZEeqibuOO8eming">
<type href="bank.ecore#//Client"/>
<attributes xmi:id="_9M9pHFaZEeqibuOO8eming" value="client">
<type href="bank.ecore#//Person/name"/>
</attributes>
</nodes>
<nodes xmi:id="_9M9pHVaZEeqibuOO8eming" incoming="_9M9pHlaZEeqibuOO8eming" outgoing="_9M9pH1aZEeqibuOO8eming">
<type href="bank.ecore#//Account"/>
</nodes>
<edges xmi:id="_9M9pHlaZEeqibuOO8eming" source="_9M9pGVaZEeqibuOO8eming" target="_9M9pHVaZEeqibuOO8eming">
<type href="bank.ecore#//Bank/accounts"/>
</edges>
<edges xmi:id="_9M9pH1aZEeqibuOO8eming" source="_9M9pHVaZEeqibuOO8eming" target="_9M9pG1aZEeqibuOO8eming">
<type href="bank.ecore#//Account/owner"/>
</edges>
</lhs>
<rhs xmi:id="_9M9pIFaZEeqibuOO8eming" name="Rhs">
<nodes xmi:id="_9M9pIVaZEeqibuOO8eming">
<type href="bank.ecore#//Bank"/>
</nodes>
<nodes xmi:id="_9M9pIlaZEeqibuOO8eming">
<type href="bank.ecore#//Manager"/>
</nodes>
<nodes xmi:id="_9M9pI1aZEeqibuOO8eming">
<type href="bank.ecore#//Client"/>
<attributes xmi:id="_9M9pJFaZEeqibuOO8eming" value="client">
<type href="bank.ecore#//Person/name"/>
</attributes>
</nodes>
</rhs>
<mappings xmi:id="_9M9pJVaZEeqibuOO8eming" origin="_9M9pGVaZEeqibuOO8eming" image="_9M9pIVaZEeqibuOO8eming"/>
<mappings xmi:id="_9M9pJlaZEeqibuOO8eming" origin="_9M9pGlaZEeqibuOO8eming" image="_9M9pIlaZEeqibuOO8eming"/>
<mappings xmi:id="_9M9pJ1aZEeqibuOO8eming" origin="_9M9pG1aZEeqibuOO8eming" image="_9M9pI1aZEeqibuOO8eming"/>
<multiMappings xmi:id="_9M9pKFaZEeqibuOO8eming" origin="_9M9pDFaZEeqibuOO8eming" image="_9M9pIVaZEeqibuOO8eming"/>
<multiMappings xmi:id="_9M9pKVaZEeqibuOO8eming" origin="_9M9pBFaZEeqibuOO8eming" image="_9M9pGVaZEeqibuOO8eming"/>
<multiMappings xmi:id="_9M9pKlaZEeqibuOO8eming" origin="_9M9pDVaZEeqibuOO8eming" image="_9M9pIlaZEeqibuOO8eming"/>
<multiMappings xmi:id="_9M9pK1aZEeqibuOO8eming" origin="_9M9pBVaZEeqibuOO8eming" image="_9M9pGlaZEeqibuOO8eming"/>
<multiMappings xmi:id="_9M9pLFaZEeqibuOO8eming" origin="_9M9pDlaZEeqibuOO8eming" image="_9M9pI1aZEeqibuOO8eming"/>
<multiMappings xmi:id="_9M9pLVaZEeqibuOO8eming" origin="_9M9pBlaZEeqibuOO8eming" image="_9M9pG1aZEeqibuOO8eming"/>
</multiRules>
</units>
</henshin:Module>