<?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" xmi:id="_CRQ70LN0Eemcsc4aPpxbEQ" name="model">
  <eAnnotations xmi:id="_CRQ70LN0Eemcsc4aPpxbEQ0" source="genmymodel">
    <details xmi:id="_CRQ70LN0Eemcsc4aPpxbEQ00" key="uuid" value="_CRQ70LN0Eemcsc4aPpxbEQ"/>
  </eAnnotations>
  <eClassifiers xsi:type="ecore:EClass" xmi:id="_H-z2sJWiEDeVp7yVBGOIIA" name="PaymentGateWay " abstract="true" eSuperTypes="_m9KlQJWiEDeVp7yVBGOIIA _sT4LQJWiEDeVp7yVBGOIIA">
    <eAnnotations xmi:id="_H-z2sJWiEDeVp7yVBGOIIA0" source="genmymodel">
      <details xmi:id="_H-z2sJWiEDeVp7yVBGOIIA00" key="uuid" value="_H-z2sJWiEDeVp7yVBGOIIA"/>
    </eAnnotations>
    <eOperations xmi:id="_O7t-cJWiEDeVp7yVBGOIIA" name="addCard">
      <eAnnotations xmi:id="_O7t-cJWiEDeVp7yVBGOIIA0" source="genmymodel">
        <details xmi:id="_O7t-cJWiEDeVp7yVBGOIIA00" key="uuid" value="_O7t-cJWiEDeVp7yVBGOIIA"/>
      </eAnnotations>
    </eOperations>
    <eOperations xmi:id="_Rp74MJWiEDeVp7yVBGOIIA" name="deleteCard">
      <eAnnotations xmi:id="_Rp74MJWiEDeVp7yVBGOIIA0" source="genmymodel">
        <details xmi:id="_Rp74MJWiEDeVp7yVBGOIIA00" key="uuid" value="_Rp74MJWiEDeVp7yVBGOIIA"/>
      </eAnnotations>
    </eOperations>
    <eOperations xmi:id="_VvLPQJWiEDeVp7yVBGOIIA" name="editCard">
      <eAnnotations xmi:id="_VvLPQJWiEDeVp7yVBGOIIA0" source="genmymodel">
        <details xmi:id="_VvLPQJWiEDeVp7yVBGOIIA00" key="uuid" value="_VvLPQJWiEDeVp7yVBGOIIA"/>
      </eAnnotations>
    </eOperations>
    <eOperations xmi:id="_Yw7JAZWiEDeVp7yVBGOIIA" name="addCustomer">
      <eAnnotations xmi:id="_Yw7JAZWiEDeVp7yVBGOIIA0" source="genmymodel">
        <details xmi:id="_Yw7JAZWiEDeVp7yVBGOIIA00" key="uuid" value="_Yw7JAZWiEDeVp7yVBGOIIA"/>
      </eAnnotations>
    </eOperations>
    <eOperations xmi:id="_dvO2EZWiEDeVp7yVBGOIIA" name="chargeByCardFile">
      <eAnnotations xmi:id="_dvO2EZWiEDeVp7yVBGOIIA0" source="genmymodel">
        <details xmi:id="_dvO2EZWiEDeVp7yVBGOIIA00" key="uuid" value="_dvO2EZWiEDeVp7yVBGOIIA"/>
      </eAnnotations>
    </eOperations>
    <eOperations xmi:id="_jOyPAZWiEDeVp7yVBGOIIA" name="chargeByCard">
      <eAnnotations xmi:id="_jOyPAZWiEDeVp7yVBGOIIA0" source="genmymodel">
        <details xmi:id="_jOyPAZWiEDeVp7yVBGOIIA00" key="uuid" value="_jOyPAZWiEDeVp7yVBGOIIA"/>
      </eAnnotations>
    </eOperations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" xmi:id="_m9KlQJWiEDeVp7yVBGOIIA" name="StripeGateWay">
    <eAnnotations xmi:id="_m9KlQJWiEDeVp7yVBGOIIA0" source="genmymodel">
      <details xmi:id="_m9KlQJWiEDeVp7yVBGOIIA00" key="uuid" value="_m9KlQJWiEDeVp7yVBGOIIA"/>
    </eAnnotations>
    <eOperations xmi:id="_rkShYJWiEDeVp7yVBGOIIA" name="addCard">
      <eAnnotations xmi:id="_rkShYJWiEDeVp7yVBGOIIA0" source="genmymodel">
        <details xmi:id="_rkShYJWiEDeVp7yVBGOIIA00" key="uuid" value="_rkShYJWiEDeVp7yVBGOIIA"/>
      </eAnnotations>
    </eOperations>
    <eOperations xmi:id="_rkTIcJWiEDeVp7yVBGOIIA" name="deleteCard">
      <eAnnotations xmi:id="_rkTIcJWiEDeVp7yVBGOIIA0" source="genmymodel">
        <details xmi:id="_rkTIcJWiEDeVp7yVBGOIIA00" key="uuid" value="_rkTIcJWiEDeVp7yVBGOIIA"/>
      </eAnnotations>
    </eOperations>
    <eOperations xmi:id="_rkTIcZWiEDeVp7yVBGOIIA" name="editCard">
      <eAnnotations xmi:id="_rkTIcZWiEDeVp7yVBGOIIA0" source="genmymodel">
        <details xmi:id="_rkTIcZWiEDeVp7yVBGOIIA00" key="uuid" value="_rkTIcZWiEDeVp7yVBGOIIA"/>
      </eAnnotations>
    </eOperations>
    <eOperations xmi:id="_rkTvgJWiEDeVp7yVBGOIIA" name="addCustomer">
      <eAnnotations xmi:id="_rkTvgJWiEDeVp7yVBGOIIA0" source="genmymodel">
        <details xmi:id="_rkTvgJWiEDeVp7yVBGOIIA00" key="uuid" value="_rkTvgJWiEDeVp7yVBGOIIA"/>
      </eAnnotations>
    </eOperations>
    <eOperations xmi:id="_rkTvgZWiEDeVp7yVBGOIIA" name="chargeByCardFile">
      <eAnnotations xmi:id="_rkTvgZWiEDeVp7yVBGOIIA0" source="genmymodel">
        <details xmi:id="_rkTvgZWiEDeVp7yVBGOIIA00" key="uuid" value="_rkTvgZWiEDeVp7yVBGOIIA"/>
      </eAnnotations>
    </eOperations>
    <eOperations xmi:id="_rkTvgpWiEDeVp7yVBGOIIA" name="chargeByCard">
      <eAnnotations xmi:id="_rkTvgpWiEDeVp7yVBGOIIA0" source="genmymodel">
        <details xmi:id="_rkTvgpWiEDeVp7yVBGOIIA00" key="uuid" value="_rkTvgpWiEDeVp7yVBGOIIA"/>
      </eAnnotations>
    </eOperations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" xmi:id="_sT4LQJWiEDeVp7yVBGOIIA" name="SquareGateWay">
    <eAnnotations xmi:id="_sT4LQJWiEDeVp7yVBGOIIA0" source="genmymodel">
      <details xmi:id="_sT4LQJWiEDeVp7yVBGOIIA00" key="uuid" value="_sT4LQJWiEDeVp7yVBGOIIA"/>
    </eAnnotations>
    <eOperations xmi:id="_sT4LQZWiEDeVp7yVBGOIIA" name="addCard">
      <eAnnotations xmi:id="_sT4LQZWiEDeVp7yVBGOIIA0" source="genmymodel">
        <details xmi:id="_sT4LQZWiEDeVp7yVBGOIIA00" key="uuid" value="_sT4LQZWiEDeVp7yVBGOIIA"/>
      </eAnnotations>
    </eOperations>
    <eOperations xmi:id="_sT4yUJWiEDeVp7yVBGOIIA" name="deleteCard">
      <eAnnotations xmi:id="_sT4yUJWiEDeVp7yVBGOIIA0" source="genmymodel">
        <details xmi:id="_sT4yUJWiEDeVp7yVBGOIIA00" key="uuid" value="_sT4yUJWiEDeVp7yVBGOIIA"/>
      </eAnnotations>
    </eOperations>
    <eOperations xmi:id="_sT4yUZWiEDeVp7yVBGOIIA" name="editCard">
      <eAnnotations xmi:id="_sT4yUZWiEDeVp7yVBGOIIA0" source="genmymodel">
        <details xmi:id="_sT4yUZWiEDeVp7yVBGOIIA00" key="uuid" value="_sT4yUZWiEDeVp7yVBGOIIA"/>
      </eAnnotations>
    </eOperations>
    <eOperations xmi:id="_sT4yUpWiEDeVp7yVBGOIIA" name="addCustomer">
      <eAnnotations xmi:id="_sT4yUpWiEDeVp7yVBGOIIA0" source="genmymodel">
        <details xmi:id="_sT4yUpWiEDeVp7yVBGOIIA00" key="uuid" value="_sT4yUpWiEDeVp7yVBGOIIA"/>
      </eAnnotations>
    </eOperations>
    <eOperations xmi:id="_sT4yU5WiEDeVp7yVBGOIIA" name="chargeByCardFile">
      <eAnnotations xmi:id="_sT4yU5WiEDeVp7yVBGOIIA0" source="genmymodel">
        <details xmi:id="_sT4yU5WiEDeVp7yVBGOIIA00" key="uuid" value="_sT4yU5WiEDeVp7yVBGOIIA"/>
      </eAnnotations>
    </eOperations>
    <eOperations xmi:id="_sT4yVJWiEDeVp7yVBGOIIA" name="chargeByCard">
      <eAnnotations xmi:id="_sT4yVJWiEDeVp7yVBGOIIA0" source="genmymodel">
        <details xmi:id="_sT4yVJWiEDeVp7yVBGOIIA00" key="uuid" value="_sT4yVJWiEDeVp7yVBGOIIA"/>
      </eAnnotations>
    </eOperations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" xmi:id="_kr9iMJWjEDeVp7yVBGOIIA" name="Factory">
    <eAnnotations xmi:id="_kr9iMJWjEDeVp7yVBGOIIA0" source="genmymodel">
      <details xmi:id="_kr9iMJWjEDeVp7yVBGOIIA00" key="uuid" value="_kr9iMJWjEDeVp7yVBGOIIA"/>
    </eAnnotations>
    <eOperations xmi:id="_m4lx0ZWjEDeVp7yVBGOIIA" name="factoryPaymentGateWay">
      <eAnnotations xmi:id="_m4lx0ZWjEDeVp7yVBGOIIA0" source="genmymodel">
        <details xmi:id="_m4lx0ZWjEDeVp7yVBGOIIA00" key="uuid" value="_m4lx0ZWjEDeVp7yVBGOIIA"/>
      </eAnnotations>
    </eOperations>
    <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_rbKIoJWkEDeVp7yVBGOIIA" ordered="false" unique="false" eType="_m9KlQJWiEDeVp7yVBGOIIA" changeable="false" containment="true" resolveProxies="false">
      <eAnnotations xmi:id="_rbKIoJWkEDeVp7yVBGOIIA0" source="genmymodel">
        <details xmi:id="_rbKIoJWkEDeVp7yVBGOIIA00" key="uuid" value="_rbKIoJWkEDeVp7yVBGOIIA"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_vkG7AZWkEDeVp7yVBGOIIA" ordered="false" unique="false" eType="_sT4LQJWiEDeVp7yVBGOIIA" changeable="false" containment="true" resolveProxies="false">
      <eAnnotations xmi:id="_vkG7AZWkEDeVp7yVBGOIIA0" source="genmymodel">
        <details xmi:id="_vkG7AZWkEDeVp7yVBGOIIA00" key="uuid" value="_vkG7AZWkEDeVp7yVBGOIIA"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
</ecore:EPackage>

{"directed":true,"nodes":[{"nsPrefix":null,"nsURI":null,"name":"model","id":0,"eClass":"EPackage"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"PaymentGateWay ","instanceClass":null,"abstract":true,"id":1,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"StripeGateWay","instanceClass":null,"abstract":false,"id":2,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"SquareGateWay","instanceClass":null,"abstract":false,"id":3,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Factory","instanceClass":null,"abstract":false,"id":4,"interface":false,"eClass":"EClass"},{"ordered":true,"upperBound":1,"unique":true,"name":"addCard","lowerBound":0,"id":5,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"deleteCard","lowerBound":0,"id":6,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"editCard","lowerBound":0,"id":7,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"addCustomer","lowerBound":0,"id":8,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"chargeByCardFile","lowerBound":0,"id":9,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"chargeByCard","lowerBound":0,"id":10,"many":false,"required":false,"eClass":"EOperation"},{"id":11,"eClass":"EGenericType"},{"id":12,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"addCard","lowerBound":0,"id":13,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"deleteCard","lowerBound":0,"id":14,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"editCard","lowerBound":0,"id":15,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"addCustomer","lowerBound":0,"id":16,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"chargeByCardFile","lowerBound":0,"id":17,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"chargeByCard","lowerBound":0,"id":18,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"addCard","lowerBound":0,"id":19,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"deleteCard","lowerBound":0,"id":20,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"editCard","lowerBound":0,"id":21,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"addCustomer","lowerBound":0,"id":22,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"chargeByCardFile","lowerBound":0,"id":23,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"chargeByCard","lowerBound":0,"id":24,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"factoryPaymentGateWay","lowerBound":0,"id":25,"many":false,"required":false,"eClass":"EOperation"},{"container":false,"ordered":false,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":false,"name":null,"changeable":false,"resolveProxies":false,"lowerBound":0,"id":26,"derived":false},{"container":false,"ordered":false,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":false,"name":null,"changeable":false,"resolveProxies":false,"lowerBound":0,"id":27,"derived":false},{"id":28,"eClass":"EGenericType"},{"id":29,"eClass":"EGenericType"}],"links":[{"source":0,"target":1},{"source":0,"target":2},{"source":0,"target":3},{"source":0,"target":4},{"source":1,"target":0},{"source":1,"target":2},{"source":1,"target":3},{"source":1,"target":5},{"source":1,"target":6},{"source":1,"target":7},{"source":1,"target":8},{"source":1,"target":9},{"source":1,"target":10},{"source":1,"target":11},{"source":1,"target":12},{"source":5,"target":1},{"source":6,"target":1},{"source":7,"target":1},{"source":8,"target":1},{"source":9,"target":1},{"source":10,"target":1},{"source":11,"target":2},{"source":12,"target":3},{"source":2,"target":0},{"source":2,"target":13},{"source":2,"target":14},{"source":2,"target":15},{"source":2,"target":16},{"source":2,"target":17},{"source":2,"target":18},{"source":13,"target":2},{"source":14,"target":2},{"source":15,"target":2},{"source":16,"target":2},{"source":17,"target":2},{"source":18,"target":2},{"source":3,"target":0},{"source":3,"target":19},{"source":3,"target":20},{"source":3,"target":21},{"source":3,"target":22},{"source":3,"target":23},{"source":3,"target":24},{"source":19,"target":3},{"source":20,"target":3},{"source":21,"target":3},{"source":22,"target":3},{"source":23,"target":3},{"source":24,"target":3},{"source":4,"target":0},{"source":4,"target":25},{"source":4,"target":26},{"source":4,"target":27},{"source":25,"target":4},{"source":26,"target":2},{"source":26,"target":28},{"source":26,"target":4},{"source":28,"target":2},{"source":27,"target":3},{"source":27,"target":29},{"source":27,"target":4},{"source":29,"target":3}],"multigraph":true}
model
PaymentGateWay 
addCard
deleteCard
editCard
addCustomer
chargeByCardFile
chargeByCard
StripeGateWay
addCard
deleteCard
editCard
addCustomer
chargeByCardFile
chargeByCard
SquareGateWay
addCard
deleteCard
editCard
addCustomer
chargeByCardFile
chargeByCard
Factory
factoryPaymentGateWay